All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 53
    functionName: DECLARE_SUITE
    functionSourceFile: /src/selinux/libsepol/tests/libsepol-tests.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_SUITE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:56,1
    - Dst: printf
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:57,1
    - Dst: printf
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:58,1
    - Dst: printf
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: usage
    functionSourceFile: /src/selinux/libsepol/tests/libsepol-tests.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(char *progname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CU_initialize_registry
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:67,1
    - Dst: CU_get_error
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:68,1
    - Dst: DECLARE_SUITE
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:70,1
    - Dst: DECLARE_SUITE
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:71,1
    - Dst: DECLARE_SUITE
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:72,1
    - Dst: DECLARE_SUITE
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:73,1
    - Dst: DECLARE_SUITE
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:74,1
    - Dst: DECLARE_SUITE
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:75,1
    - Dst: DECLARE_SUITE
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:76,1
    - Dst: CU_basic_set_mode
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:79,1
    - Dst: CU_basic_set_mode
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:81,1
    - Dst: CU_console_run_tests
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:84,1
    - Dst: CU_basic_run_tests
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:86,1
    - Dst: CU_get_number_of_tests_failed
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:87,1
    - Dst: CU_cleanup_registry
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:88,1
    - Dst: CU_get_error
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - interactive
    - verbose
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 90
    functionName: do_tests
    functionSourceFile: /src/selinux/libsepol/tests/libsepol-tests.c
    functionUses: 0
    functionsReached:
    - DECLARE_SUITE
    - CU_get_number_of_tests_failed
    - CU_basic_set_mode
    - CU_get_error
    - CU_basic_run_tests
    - CU_cleanup_registry
    - CU_initialize_registry
    - CU_console_run_tests
    linkageType: ''
    returnType: bool
    signature: bool do_tests(int interactive, int verbose)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:100,1
    - Dst: usage
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:110,1
    - Dst: exit
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:111,1
    - Dst: do_tests
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:118,1
    - Dst: do_tests
      Src: /src/selinux/libsepol/tests/libsepol-tests.c:123,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 127
    functionName: main
    functionSourceFile: /src/selinux/libsepol/tests/libsepol-tests.c
    functionUses: 0
    functionsReached:
    - exit
    - do_tests
    - usage
    - getopt_long
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: test_load_policy
      Src: /src/selinux/libsepol/tests/test-linker.c:63,1
    - Dst: test_load_policy
      Src: /src/selinux/libsepol/tests/test-linker.c:67,1
    - Dst: calloc
      Src: /src/selinux/libsepol/tests/test-linker.c:72,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-linker.c:74,1
    - Dst: test_load_policy
      Src: /src/selinux/libsepol/tests/test-linker.c:78,1
    - Dst: link_modules
      Src: /src/selinux/libsepol/tests/test-linker.c:83,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-linker.c:84,1
    - Dst: link_modules
      Src: /src/selinux/libsepol/tests/test-linker.c:88,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-linker.c:89,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 94
    functionName: linker_test_init
    functionSourceFile: /src/selinux/libsepol/tests/test-linker.c
    functionUses: 0
    functionsReached:
    - test_load_policy
    - link_modules
    - fprintf
    - calloc
    linkageType: ''
    returnType: int
    signature: int linker_test_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-linker.c:100,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-linker.c:101,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-linker.c:104,1
    - Dst: free
      Src: /src/selinux/libsepol/tests/test-linker.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 108
    functionName: linker_test_cleanup
    functionSourceFile: /src/selinux/libsepol/tests/test-linker.c
    functionUses: 0
    functionsReached:
    - free
    - policydb_destroy
    linkageType: ''
    returnType: int
    signature: int linker_test_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_policydb_indexes
      Src: /src/selinux/libsepol/tests/test-linker.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: test_linker_indexes
    functionSourceFile: /src/selinux/libsepol/tests/test-linker.c
    functionUses: 0
    functionsReached:
    - test_policydb_indexes
    linkageType: ''
    returnType: void
    signature: void test_linker_indexes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: base_role_tests
      Src: /src/selinux/libsepol/tests/test-linker.c:117,1
    - Dst: base_role_tests
      Src: /src/selinux/libsepol/tests/test-linker.c:118,1
    - Dst: module_role_tests
      Src: /src/selinux/libsepol/tests/test-linker.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: test_linker_roles
    functionSourceFile: /src/selinux/libsepol/tests/test-linker.c
    functionUses: 0
    functionsReached:
    - base_role_tests
    - module_role_tests
    linkageType: ''
    returnType: void
    signature: void test_linker_roles(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: base_type_tests
      Src: /src/selinux/libsepol/tests/test-linker.c:124,1
    - Dst: base_type_tests
      Src: /src/selinux/libsepol/tests/test-linker.c:125,1
    - Dst: module_type_tests
      Src: /src/selinux/libsepol/tests/test-linker.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: test_linker_types
    functionSourceFile: /src/selinux/libsepol/tests/test-linker.c
    functionUses: 0
    functionsReached:
    - base_type_tests
    - module_type_tests
    linkageType: ''
    returnType: void
    signature: void test_linker_types(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: base_cond_tests
      Src: /src/selinux/libsepol/tests/test-linker.c:131,1
    - Dst: base_cond_tests
      Src: /src/selinux/libsepol/tests/test-linker.c:132,1
    - Dst: module_cond_tests
      Src: /src/selinux/libsepol/tests/test-linker.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: test_linker_cond
    functionSourceFile: /src/selinux/libsepol/tests/test-linker.c
    functionUses: 0
    functionsReached:
    - base_cond_tests
    - module_cond_tests
    linkageType: ''
    returnType: void
    signature: void test_linker_cond(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CU_add_test
      Src: /src/selinux/libsepol/tests/test-linker.c:138,1
    - Dst: CU_cleanup_registry
      Src: /src/selinux/libsepol/tests/test-linker.c:139,1
    - Dst: CU_get_error
      Src: /src/selinux/libsepol/tests/test-linker.c:140,1
    - Dst: CU_add_test
      Src: /src/selinux/libsepol/tests/test-linker.c:142,1
    - Dst: CU_cleanup_registry
      Src: /src/selinux/libsepol/tests/test-linker.c:143,1
    - Dst: CU_get_error
      Src: /src/selinux/libsepol/tests/test-linker.c:144,1
    - Dst: CU_add_test
      Src: /src/selinux/libsepol/tests/test-linker.c:146,1
    - Dst: CU_cleanup_registry
      Src: /src/selinux/libsepol/tests/test-linker.c:147,1
    - Dst: CU_get_error
      Src: /src/selinux/libsepol/tests/test-linker.c:148,1
    - Dst: CU_add_test
      Src: /src/selinux/libsepol/tests/test-linker.c:150,1
    - Dst: CU_cleanup_registry
      Src: /src/selinux/libsepol/tests/test-linker.c:151,1
    - Dst: CU_get_error
      Src: /src/selinux/libsepol/tests/test-linker.c:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - suite
    argTypes:
    - CU_pSuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 155
    functionName: linker_add_tests
    functionSourceFile: /src/selinux/libsepol/tests/test-linker.c
    functionUses: 0
    functionsReached:
    - CU_add_test
    - CU_cleanup_registry
    - CU_get_error
    linkageType: ''
    returnType: int
    signature: int linker_add_tests(CU_pSuite suite)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/debug.c:31,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/debug.c:31,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/debug.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bitmap
    - fp
    argTypes:
    - ebitmap_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: print_ebitmap
    functionSourceFile: /src/selinux/libsepol/tests/debug.c
    functionUses: 0
    functionsReached:
    - fprintf
    - ebitmap_get_bit
    linkageType: ''
    returnType: void
    signature: void print_ebitmap(ebitmap_t *bitmap, FILE *fp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/debug.c:43,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/debug.c:47,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/debug.c:50,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/debug.c:53,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/debug.c:56,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/debug.c:59,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/debug.c:62,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/debug.c:65,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - p
    - exp
    - fp
    argTypes:
    - policydb_t*
    - cond_expr_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 69
    functionName: display_expr
    functionSourceFile: /src/selinux/libsepol/tests/debug.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void display_expr(policydb_t *p, cond_expr_t *exp, FILE *fp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: policydb_init
      Src: /src/selinux/libsepol/tests/test-cond.c:35,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-cond.c:36,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-cond.c:37,1
    - Dst: test_load_policy
      Src: /src/selinux/libsepol/tests/test-cond.c:41,1
    - Dst: link_modules
      Src: /src/selinux/libsepol/tests/test-cond.c:45,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-cond.c:46,1
    - Dst: expand_module
      Src: /src/selinux/libsepol/tests/test-cond.c:50,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-cond.c:51,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-cond.c:58,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-cond.c:59,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 61
    functionName: cond_test_init
    functionSourceFile: /src/selinux/libsepol/tests/test-cond.c
    functionUses: 0
    functionsReached:
    - expand_module
    - policydb_init
    - test_load_policy
    - policydb_destroy
    - link_modules
    - fprintf
    linkageType: ''
    returnType: int
    signature: int cond_test_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-cond.c:65,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-cond.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: cond_test_cleanup
    functionSourceFile: /src/selinux/libsepol/tests/test-cond.c
    functionUses: 0
    functionsReached:
    - policydb_destroy
    linkageType: ''
    returnType: int
    signature: int cond_test_cleanup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-cond.c:80,1
    - Dst: cond_expr_equal
      Src: /src/selinux/libsepol/tests/test-cond.c:80,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-cond.c:82,1
    - Dst: cond_expr_equal
      Src: /src/selinux/libsepol/tests/test-cond.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 88
    functionName: test_cond_expr_equal
    functionSourceFile: /src/selinux/libsepol/tests/test-cond.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    - cond_expr_equal
    linkageType: ''
    returnType: void
    signature: void test_cond_expr_equal(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CU_add_test
      Src: /src/selinux/libsepol/tests/test-cond.c:93,1
    - Dst: CU_get_error
      Src: /src/selinux/libsepol/tests/test-cond.c:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - suite
    argTypes:
    - CU_pSuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: cond_add_tests
    functionSourceFile: /src/selinux/libsepol/tests/test-cond.c
    functionUses: 0
    functionsReached:
    - CU_add_test
    - CU_get_error
    linkageType: ''
    returnType: int
    signature: int cond_add_tests(CU_pSuite suite)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:20,1
    - Dst: random
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:23,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:24,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - e
    - length
    - set_chance
    argTypes:
    - ebitmap_t*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 31
    functionName: ebitmap_init_random
    functionSourceFile: /src/selinux/libsepol/tests/test-ebitmap.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_set_bit
    - random
    linkageType: ''
    returnType: int
    signature: "int ebitmap_init_random(ebitmap_t *e, unsigned int length,\n\t\t\t
      \      int set_chance)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:38,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:39,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:40,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:42,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:42,1
    - Dst: CU_ASSERT_PTR_NULL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:43,1
    - Dst: ebitmap_startnode
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:43,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:46,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:47,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:48,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:50,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:50,1
    - Dst: CU_ASSERT_PTR_NULL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:51,1
    - Dst: ebitmap_startnode
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 52
    functionName: test_ebitmap_init_destroy
    functionSourceFile: /src/selinux/libsepol/tests/test-ebitmap.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - CU_ASSERT_PTR_NULL
    - ebitmap_destroy
    - ebitmap_is_empty
    - CU_ASSERT
    - ebitmap_startnode
    linkageType: ''
    returnType: void
    signature: void test_ebitmap_init_destroy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:58,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:59,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:61,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:61,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:63,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:63,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:64,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:64,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:65,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:65,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:66,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:66,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:68,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:68,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:69,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:69,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:70,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:70,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:71,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:71,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:73,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:73,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:74,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:74,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:75,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:75,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:76,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:76,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:78,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:78,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:79,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:79,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:80,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:80,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:81,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:81,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:83,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:83,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:84,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:84,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:85,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:85,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:86,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:86,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:88,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:88,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:89,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:89,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:90,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:90,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:91,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:91,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:93,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:93,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:94,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:94,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:95,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:95,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:96,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:96,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:98,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:98,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:99,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:99,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:100,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:100,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:101,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:101,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:103,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:103,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:104,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:104,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:105,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:105,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:106,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:106,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:108,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:108,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:109,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:109,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:110,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:110,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:111,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:111,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:113,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:113,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:114,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:114,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:115,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:115,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:116,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:116,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:118,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:118,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:119,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:119,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:120,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:120,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:121,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:121,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:123,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:125,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:125,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:127,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:129,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 130
    functionName: test_ebitmap_cmp
    functionSourceFile: /src/selinux/libsepol/tests/test-ebitmap.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - ebitmap_cmp
    - CU_ASSERT_EQUAL
    - CU_ASSERT
    - ebitmap_set_bit
    - CU_ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void test_ebitmap_cmp(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:136,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:138,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:138,1
    - Dst: CU_ASSERT_TRUE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:139,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:139,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:140,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:140,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:141,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:141,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:142,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:142,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:144,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:144,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:146,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:146,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:147,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:147,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:148,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:148,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:149,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:149,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:150,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:150,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:152,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:152,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:153,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:153,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:154,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:154,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:155,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:155,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:156,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:156,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:158,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:158,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:159,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:159,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:160,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:160,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:161,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:161,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:162,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:162,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:164,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:164,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:165,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:165,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:166,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:166,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:167,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:167,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:168,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:168,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:170,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:170,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:171,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:171,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:172,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:172,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:173,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:173,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:174,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:174,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:176,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:176,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:177,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:177,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:178,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:178,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:179,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:179,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:180,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:180,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:182,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:182,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:183,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:183,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:184,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:184,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:185,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:185,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:186,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:186,1
    - Dst: ebitmap_for_each_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:194,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:195,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:200,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:203,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:204,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:206,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:206,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:209,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:212,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:212,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:213,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:213,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:214,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:214,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:215,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:215,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:216,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:216,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:218,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:218,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:219,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:219,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:220,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:220,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:221,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:221,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:222,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:222,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:224,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:224,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:225,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:225,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:226,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:226,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:227,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:227,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:228,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:228,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:230,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:230,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:231,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:231,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:232,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:232,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:233,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:233,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:234,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:234,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:236,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:236,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:237,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:237,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:238,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:238,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:239,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:239,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:240,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:240,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:242,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:242,1
    - Dst: CU_ASSERT_TRUE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:243,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:243,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:244,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:244,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:245,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:245,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:246,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:246,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:248,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 249
    functionName: test_ebitmap_set_and_get
    functionSourceFile: /src/selinux/libsepol/tests/test-ebitmap.c
    functionUses: 0
    functionsReached:
    - ebitmap_cardinality
    - ebitmap_init
    - ebitmap_destroy
    - ebitmap_for_each_positive_bit
    - ebitmap_for_each_bit
    - CU_ASSERT_TRUE
    - ebitmap_is_empty
    - CU_ASSERT
    - CU_ASSERT_EQUAL
    - ebitmap_highest_set_bit
    - ebitmap_get_bit
    - ebitmap_set_bit
    - CU_ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void test_ebitmap_set_and_get(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:255,1
    - Dst: ebitmap_init_range
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:255,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:256,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:256,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:257,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:257,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:259,1
    - Dst: ebitmap_init_range
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:259,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:260,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:260,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:261,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:261,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:263,1
    - Dst: ebitmap_init_range
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:263,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:264,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:264,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:265,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:265,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:267,1
    - Dst: ebitmap_init_range
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:267,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:268,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:268,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:269,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:269,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:271,1
    - Dst: ebitmap_init_range
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:271,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:272,1
    - Dst: ebitmap_init_range
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:272,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:274,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:275,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:276,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:277,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:278,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 280
    functionName: test_ebitmap_init_range
    functionSourceFile: /src/selinux/libsepol/tests/test-ebitmap.c
    functionUses: 0
    functionsReached:
    - ebitmap_cardinality
    - ebitmap_init_range
    - ebitmap_destroy
    - CU_ASSERT_EQUAL
    - ebitmap_highest_set_bit
    linkageType: ''
    returnType: void
    signature: void test_ebitmap_init_range(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:286,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:287,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:288,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:289,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:291,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:291,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:292,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:292,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:293,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:293,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:294,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:294,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:295,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:295,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:296,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:296,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:297,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:297,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:298,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:298,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:299,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:299,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:301,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:301,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:302,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:302,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:303,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:303,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:304,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:304,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:306,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:306,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:307,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:307,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:308,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:308,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:309,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:309,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:310,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:310,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:311,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:311,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:312,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:312,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:313,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:313,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:314,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:314,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:315,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:315,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:316,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:316,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:317,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:317,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:322,1
    - Dst: ebitmap_or
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:322,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:323,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:323,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:325,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:331,1
    - Dst: ebitmap_or
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:331,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:332,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:332,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:334,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:340,1
    - Dst: ebitmap_or
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:340,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:341,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:341,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:343,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:349,1
    - Dst: ebitmap_or
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:349,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:350,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:350,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:352,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:358,1
    - Dst: ebitmap_or
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:358,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:359,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:359,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:361,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:367,1
    - Dst: ebitmap_or
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:367,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:368,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:368,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:370,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:373,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:374,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:375,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 377
    functionName: test_ebitmap_or
    functionSourceFile: /src/selinux/libsepol/tests/test-ebitmap.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - ebitmap_or
    - ebitmap_cmp
    - CU_ASSERT_EQUAL
    - CU_ASSERT
    - ebitmap_set_bit
    linkageType: ''
    returnType: void
    signature: void test_ebitmap_or(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:384,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:385,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:386,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:387,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:388,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:390,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:390,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:391,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:391,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:392,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:392,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:393,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:393,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:394,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:394,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:395,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:395,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:396,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:396,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:397,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:397,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:398,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:398,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:400,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:400,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:401,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:401,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:402,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:402,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:403,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:403,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:405,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:405,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:406,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:406,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:408,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:408,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:409,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:409,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:410,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:410,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:411,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:411,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:412,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:412,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:413,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:413,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:414,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:414,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:415,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:415,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:416,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:416,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:417,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:417,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:418,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:418,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:419,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:419,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:424,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:424,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:425,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:425,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:427,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:433,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:433,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:434,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:434,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:436,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:442,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:442,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:443,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:443,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:445,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:451,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:451,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:452,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:452,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:454,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:460,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:460,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:461,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:461,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:463,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:469,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:469,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:470,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:470,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:472,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:478,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:478,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:479,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:479,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:481,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:487,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:487,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:488,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:488,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:490,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:493,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:494,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:495,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:496,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:497,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:506,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:507,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:508,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:510,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:510,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:511,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:511,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:512,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:512,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:513,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:513,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:514,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:514,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:516,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:516,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:517,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:517,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:518,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:518,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:519,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:519,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:521,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:521,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:522,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:522,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:524,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:524,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:525,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:525,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:527,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:528,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:529,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 532
    functionName: test_ebitmap_and
    functionSourceFile: /src/selinux/libsepol/tests/test-ebitmap.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - ebitmap_and
    - ebitmap_cmp
    - CU_ASSERT_EQUAL
    - CU_ASSERT
    - ebitmap_set_bit
    linkageType: ''
    returnType: void
    signature: void test_ebitmap_and(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:539,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:540,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:541,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:542,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:544,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:544,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:545,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:545,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:546,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:546,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:548,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:548,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:549,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:549,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:550,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:550,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:551,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:551,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:553,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:553,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:554,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:554,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:555,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:555,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:556,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:556,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:557,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:557,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:562,1
    - Dst: ebitmap_xor
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:562,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:563,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:563,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:564,1
    - Dst: ebitmap_xor
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:564,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:565,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:565,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:567,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:568,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:574,1
    - Dst: ebitmap_xor
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:574,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:575,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:575,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:577,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:583,1
    - Dst: ebitmap_xor
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:583,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:584,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:584,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:586,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:592,1
    - Dst: ebitmap_xor
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:592,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:593,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:593,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:595,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:601,1
    - Dst: ebitmap_xor
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:601,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:602,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:602,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:604,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:610,1
    - Dst: ebitmap_xor
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:610,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:611,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:611,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:613,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:616,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:617,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:618,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:619,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:628,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:629,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:630,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:632,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:632,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:633,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:633,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:634,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:634,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:635,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:635,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:636,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:636,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:638,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:638,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:639,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:639,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:640,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:640,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:641,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:641,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:643,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:643,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:644,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:644,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:645,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:645,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:646,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:646,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:647,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:647,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:649,1
    - Dst: ebitmap_xor
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:649,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:650,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:650,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:652,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:653,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:654,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 657
    functionName: test_ebitmap_xor
    functionSourceFile: /src/selinux/libsepol/tests/test-ebitmap.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - ebitmap_cmp
    - CU_ASSERT_EQUAL
    - CU_ASSERT
    - ebitmap_set_bit
    - ebitmap_xor
    linkageType: ''
    returnType: void
    signature: void test_ebitmap_xor(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:664,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:665,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:666,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:667,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:669,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:669,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:670,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:670,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:671,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:671,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:672,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:672,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:674,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:674,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:675,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:675,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:676,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:676,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:677,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:677,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:678,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:678,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:679,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:679,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:680,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:680,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:685,1
    - Dst: ebitmap_not
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:685,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:686,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:686,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:687,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:687,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:689,1
    - Dst: ebitmap_not
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:689,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:690,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:690,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:692,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:693,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:699,1
    - Dst: ebitmap_not
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:699,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:700,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:700,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:701,1
    - Dst: ebitmap_not
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:701,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:702,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:702,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:704,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:705,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:711,1
    - Dst: ebitmap_not
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:711,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:712,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:712,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:713,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:713,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:715,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:721,1
    - Dst: ebitmap_not
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:721,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:722,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:722,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:723,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:723,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:725,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:728,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:729,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:730,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:739,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:740,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:742,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:742,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:743,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:743,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:744,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:744,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:745,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:745,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:746,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:746,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:749,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:749,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:750,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:751,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:751,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:756,1
    - Dst: ebitmap_not
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:756,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:757,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:757,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:759,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:765,1
    - Dst: ebitmap_not
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:765,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:766,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:766,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:768,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:768,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:769,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:769,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:771,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:777,1
    - Dst: ebitmap_not
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:777,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:778,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:778,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:780,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:783,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 786
    functionName: test_ebitmap_not
    functionSourceFile: /src/selinux/libsepol/tests/test-ebitmap.c
    functionUses: 0
    functionsReached:
    - ebitmap_cardinality
    - ebitmap_init
    - ebitmap_destroy
    - ebitmap_for_each_positive_bit
    - ebitmap_cmp
    - ebitmap_not
    - CU_ASSERT_EQUAL
    - CU_ASSERT
    - ebitmap_set_bit
    - ebitmap_highest_set_bit
    - CU_ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void test_ebitmap_not(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:793,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:794,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:795,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:796,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:797,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:799,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:799,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:800,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:800,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:801,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:801,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:802,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:802,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:803,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:803,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:805,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:805,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:806,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:806,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:807,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:807,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:809,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:809,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:810,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:810,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:811,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:811,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:812,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:812,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:814,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:814,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:815,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:815,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:816,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:816,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:817,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:817,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:818,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:818,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:819,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:819,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:820,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:820,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:825,1
    - Dst: ebitmap_andnot
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:825,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:827,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:827,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:829,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:835,1
    - Dst: ebitmap_andnot
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:835,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:837,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:837,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:839,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:845,1
    - Dst: ebitmap_andnot
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:845,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:847,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:847,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:849,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:855,1
    - Dst: ebitmap_andnot
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:855,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:857,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:857,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:859,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:865,1
    - Dst: ebitmap_andnot
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:865,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:867,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:867,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:869,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:875,1
    - Dst: ebitmap_andnot
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:875,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:877,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:877,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:879,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:885,1
    - Dst: ebitmap_andnot
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:885,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:887,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:887,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:889,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:895,1
    - Dst: ebitmap_andnot
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:895,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:897,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:897,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:899,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:902,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:903,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:904,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:905,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:906,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:914,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:915,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:916,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:918,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:918,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:919,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:919,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:920,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:920,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:921,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:921,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:922,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:922,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:924,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:924,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:925,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:925,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:926,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:926,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:927,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:927,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:929,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:929,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:930,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:930,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:935,1
    - Dst: ebitmap_andnot
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:935,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:936,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:936,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:938,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:944,1
    - Dst: ebitmap_andnot
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:944,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:945,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:945,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:947,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:953,1
    - Dst: ebitmap_andnot
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:953,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:954,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:954,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:956,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:956,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:957,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:957,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:959,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:965,1
    - Dst: ebitmap_andnot
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:965,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:966,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:966,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:968,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:971,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:972,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 99
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 975
    functionName: test_ebitmap_andnot
    functionSourceFile: /src/selinux/libsepol/tests/test-ebitmap.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_andnot
    - ebitmap_destroy
    - ebitmap_cmp
    - CU_ASSERT_EQUAL
    - CU_ASSERT
    - ebitmap_set_bit
    - CU_ASSERT_FALSE
    linkageType: ''
    returnType: void
    signature: void test_ebitmap_andnot(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:983,1
    - Dst: ebitmap_init_random
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:983,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:984,1
    - Dst: ebitmap_init_random
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:984,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:986,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:986,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:987,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:987,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:989,1
    - Dst: ebitmap_or
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:989,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:991,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:991,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:992,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:993,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:995,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:995,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:997,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:997,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:998,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:999,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1001,1
    - Dst: ebitmap_xor
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1001,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1003,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1003,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1004,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1005,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1006,1
    - Dst: ebitmap_xor
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1006,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1007,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1007,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1009,1
    - Dst: ebitmap_not
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1009,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1011,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1011,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1012,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1013,1
    - Dst: ebitmap_not
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1013,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1014,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1014,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1016,1
    - Dst: ebitmap_andnot
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1016,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1018,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1018,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1019,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1020,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1022,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1023,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1024,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1025,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1026,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1027,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1028,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1029,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1030,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1031,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 2
    argNames:
    - length
    - set_chance
    argTypes:
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 977
    functionDepth: 2
    functionLinenumber: 977
    functionLinenumberEnd: 1032
    functionName: test_ebitmap__random_impl
    functionSourceFile: /src/selinux/libsepol/tests/test-ebitmap.c
    functionUses: 0
    functionsReached:
    - ebitmap_andnot
    - ebitmap_init_random
    - ebitmap_destroy
    - ebitmap_xor
    - ebitmap_or
    - ebitmap_and
    - ebitmap_cmp
    - ebitmap_not
    - CU_ASSERT_EQUAL
    - CU_ASSERT
    - ebitmap_get_bit
    - ebitmap_cpy
    linkageType: ''
    returnType: void
    signature: void test_ebitmap__random_impl(unsigned int length, int set_chance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ebitmap__random_impl
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1039,1
    - Dst: test_ebitmap__random_impl
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1042,1
    - Dst: test_ebitmap__random_impl
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1045,1
    - Dst: test_ebitmap__random_impl
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1048,1
    - Dst: test_ebitmap__random_impl
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1051,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1034
    functionDepth: 3
    functionLinenumber: 1034
    functionLinenumberEnd: 1052
    functionName: test_ebitmap__random
    functionSourceFile: /src/selinux/libsepol/tests/test-ebitmap.c
    functionUses: 0
    functionsReached:
    - test_ebitmap__random_impl
    linkageType: ''
    returnType: void
    signature: void test_ebitmap__random(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: srandom
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1060,1
    - Dst: time
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1060,1
    - Dst: sepol_debug
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1058
    functionDepth: 1
    functionLinenumber: 1058
    functionLinenumberEnd: 1066
    functionName: ebitmap_test_init
    functionSourceFile: /src/selinux/libsepol/tests/test-ebitmap.c
    functionUses: 0
    functionsReached:
    - srandom
    - sepol_debug
    - time
    linkageType: ''
    returnType: int
    signature: int ebitmap_test_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1068
    functionDepth: 0
    functionLinenumber: 1068
    functionLinenumberEnd: 1071
    functionName: ebitmap_test_cleanup
    functionSourceFile: /src/selinux/libsepol/tests/test-ebitmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ebitmap_test_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1073
    functionDepth: 0
    functionLinenumber: 1073
    functionLinenumberEnd: 1079
    functionName: ADD_TEST
    functionSourceFile: /src/selinux/libsepol/tests/test-ebitmap.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ADD_TEST(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ADD_TEST
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1082,1
    - Dst: ADD_TEST
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1083,1
    - Dst: ADD_TEST
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1084,1
    - Dst: ADD_TEST
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1085,1
    - Dst: ADD_TEST
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1086,1
    - Dst: ADD_TEST
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1087,1
    - Dst: ADD_TEST
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1088,1
    - Dst: ADD_TEST
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1089,1
    - Dst: ADD_TEST
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1090,1
    - Dst: ADD_TEST
      Src: /src/selinux/libsepol/tests/test-ebitmap.c:1091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - suite
    argTypes:
    - CU_pSuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1080
    functionDepth: 1
    functionLinenumber: 1080
    functionLinenumberEnd: 1093
    functionName: ebitmap_add_tests
    functionSourceFile: /src/selinux/libsepol/tests/test-ebitmap.c
    functionUses: 0
    functionsReached:
    - ADD_TEST
    linkageType: ''
    returnType: int
    signature: int ebitmap_add_tests(CU_pSuite suite)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: neverallow_test_init
    functionSourceFile: /src/selinux/libsepol/tests/test-neverallow.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int neverallow_test_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: neverallow_test_cleanup
    functionSourceFile: /src/selinux/libsepol/tests/test-neverallow.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int neverallow_test_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/tests/test-neverallow.c:36,1
    - Dst: free
      Src: /src/selinux/libsepol/tests/test-neverallow.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: messages_clean
    functionSourceFile: /src/selinux/libsepol/tests/test-neverallow.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void messages_clean(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CU_FAIL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:49,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-neverallow.c:50,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/tests/test-neverallow.c:54,1
    - Dst: CU_FAIL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:55,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-neverallow.c:56,1
    - Dst: CU_FAIL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:63,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-neverallow.c:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - count
    - expected
    argTypes:
    - unsigned
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 67
    functionName: messages_check
    functionSourceFile: /src/selinux/libsepol/tests/test-neverallow.c
    functionUses: 0
    functionsReached:
    - CU_FAIL
    - fprintf
    - strcmp
    linkageType: ''
    returnType: void
    signature: void messages_check(unsigned count, const char *const expected[count])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/selinux/libsepol/tests/test-neverallow.c:69,1
    - Dst: va_start
      Src: /src/selinux/libsepol/tests/test-neverallow.c:78,1
    - Dst: vasprintf
      Src: /src/selinux/libsepol/tests/test-neverallow.c:79,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:81,1
    - Dst: va_end
      Src: /src/selinux/libsepol/tests/test-neverallow.c:82,1
    - Dst: malloc
      Src: /src/selinux/libsepol/tests/test-neverallow.c:84,1
    - Dst: CU_FAIL_FATAL::CU_FAIL_FATAL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - varg
    - handle
    - fmt
    argTypes:
    - void*
    - sepol_handle_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 90
    functionName: msg_handler
    functionSourceFile: /src/selinux/libsepol/tests/test-neverallow.c
    functionUses: 0
    functionsReached:
    - CU_FAIL_FATAL
    - va_end
    - format
    - malloc
    - vasprintf
    - CU_FAIL_FATAL::CU_FAIL_FATAL
    - va_start
    linkageType: ''
    returnType: void
    signature: "void msg_handler(void *varg __attribute__((unused)),\n\t    sepol_handle_t
      *handle __attribute__((unused)), const char *fmt,\n\t    ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    functionName: ARRAY_SIZE
    functionSourceFile: /src/selinux/libsepol/tests/test-neverallow.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(a)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: policydb_init
      Src: /src/selinux/libsepol/tests/test-neverallow.c:132,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:133,1
    - Dst: test_load_policy
      Src: /src/selinux/libsepol/tests/test-neverallow.c:135,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:137,1
    - Dst: link_modules
      Src: /src/selinux/libsepol/tests/test-neverallow.c:139,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:140,1
    - Dst: expand_module
      Src: /src/selinux/libsepol/tests/test-neverallow.c:142,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:143,1
    - Dst: sepol_handle_create
      Src: /src/selinux/libsepol/tests/test-neverallow.c:145,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:146,1
    - Dst: sepol_msg_set_callback
      Src: /src/selinux/libsepol/tests/test-neverallow.c:148,1
    - Dst: check_assertions
      Src: /src/selinux/libsepol/tests/test-neverallow.c:150,1
    - Dst: CU_FAIL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:152,1
    - Dst: messages_check
      Src: /src/selinux/libsepol/tests/test-neverallow.c:154,1
    - Dst: ARRAY_SIZE
      Src: /src/selinux/libsepol/tests/test-neverallow.c:154,1
    - Dst: sepol_handle_destroy
      Src: /src/selinux/libsepol/tests/test-neverallow.c:156,1
    - Dst: messages_clean
      Src: /src/selinux/libsepol/tests/test-neverallow.c:157,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-neverallow.c:158,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-neverallow.c:159,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 160
    functionName: test_neverallow_basic
    functionSourceFile: /src/selinux/libsepol/tests/test-neverallow.c
    functionUses: 0
    functionsReached:
    - CU_FAIL_FATAL
    - CU_FAIL
    - ARRAY_SIZE
    - expand_module
    - messages_check
    - policydb_init
    - test_load_policy
    - sepol_handle_create
    - sepol_msg_set_callback
    - policydb_destroy
    - check_assertions
    - sepol_handle_destroy
    - link_modules
    - messages_clean
    linkageType: ''
    returnType: void
    signature: void test_neverallow_basic(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: policydb_init
      Src: /src/selinux/libsepol/tests/test-neverallow.c:203,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:204,1
    - Dst: test_load_policy
      Src: /src/selinux/libsepol/tests/test-neverallow.c:206,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:208,1
    - Dst: link_modules
      Src: /src/selinux/libsepol/tests/test-neverallow.c:210,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:211,1
    - Dst: expand_module
      Src: /src/selinux/libsepol/tests/test-neverallow.c:213,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:214,1
    - Dst: sepol_handle_create
      Src: /src/selinux/libsepol/tests/test-neverallow.c:216,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:217,1
    - Dst: sepol_msg_set_callback
      Src: /src/selinux/libsepol/tests/test-neverallow.c:219,1
    - Dst: check_assertions
      Src: /src/selinux/libsepol/tests/test-neverallow.c:221,1
    - Dst: CU_FAIL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:223,1
    - Dst: messages_check
      Src: /src/selinux/libsepol/tests/test-neverallow.c:225,1
    - Dst: ARRAY_SIZE
      Src: /src/selinux/libsepol/tests/test-neverallow.c:225,1
    - Dst: sepol_handle_destroy
      Src: /src/selinux/libsepol/tests/test-neverallow.c:227,1
    - Dst: messages_clean
      Src: /src/selinux/libsepol/tests/test-neverallow.c:228,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-neverallow.c:229,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-neverallow.c:230,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 231
    functionName: test_neverallow_minus_self
    functionSourceFile: /src/selinux/libsepol/tests/test-neverallow.c
    functionUses: 0
    functionsReached:
    - CU_FAIL_FATAL
    - CU_FAIL
    - ARRAY_SIZE
    - expand_module
    - messages_check
    - policydb_init
    - test_load_policy
    - sepol_handle_create
    - sepol_msg_set_callback
    - policydb_destroy
    - check_assertions
    - sepol_handle_destroy
    - link_modules
    - messages_clean
    linkageType: ''
    returnType: void
    signature: void test_neverallow_minus_self(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: policydb_init
      Src: /src/selinux/libsepol/tests/test-neverallow.c:275,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:276,1
    - Dst: test_load_policy
      Src: /src/selinux/libsepol/tests/test-neverallow.c:278,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:280,1
    - Dst: link_modules
      Src: /src/selinux/libsepol/tests/test-neverallow.c:282,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:283,1
    - Dst: expand_module
      Src: /src/selinux/libsepol/tests/test-neverallow.c:285,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:286,1
    - Dst: sepol_handle_create
      Src: /src/selinux/libsepol/tests/test-neverallow.c:288,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:289,1
    - Dst: sepol_msg_set_callback
      Src: /src/selinux/libsepol/tests/test-neverallow.c:291,1
    - Dst: check_assertions
      Src: /src/selinux/libsepol/tests/test-neverallow.c:293,1
    - Dst: CU_FAIL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:295,1
    - Dst: messages_check
      Src: /src/selinux/libsepol/tests/test-neverallow.c:297,1
    - Dst: ARRAY_SIZE
      Src: /src/selinux/libsepol/tests/test-neverallow.c:297,1
    - Dst: sepol_handle_destroy
      Src: /src/selinux/libsepol/tests/test-neverallow.c:299,1
    - Dst: messages_clean
      Src: /src/selinux/libsepol/tests/test-neverallow.c:300,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-neverallow.c:301,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-neverallow.c:302,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 303
    functionName: test_neverallow_not_self
    functionSourceFile: /src/selinux/libsepol/tests/test-neverallow.c
    functionUses: 0
    functionsReached:
    - CU_FAIL_FATAL
    - CU_FAIL
    - ARRAY_SIZE
    - expand_module
    - messages_check
    - policydb_init
    - test_load_policy
    - sepol_handle_create
    - sepol_msg_set_callback
    - policydb_destroy
    - check_assertions
    - sepol_handle_destroy
    - link_modules
    - messages_clean
    linkageType: ''
    returnType: void
    signature: void test_neverallow_not_self(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: policydb_init
      Src: /src/selinux/libsepol/tests/test-neverallow.c:329,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:330,1
    - Dst: test_load_policy
      Src: /src/selinux/libsepol/tests/test-neverallow.c:332,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:334,1
    - Dst: link_modules
      Src: /src/selinux/libsepol/tests/test-neverallow.c:336,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:337,1
    - Dst: expand_module
      Src: /src/selinux/libsepol/tests/test-neverallow.c:339,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:340,1
    - Dst: sepol_handle_create
      Src: /src/selinux/libsepol/tests/test-neverallow.c:342,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:343,1
    - Dst: sepol_msg_set_callback
      Src: /src/selinux/libsepol/tests/test-neverallow.c:345,1
    - Dst: check_assertions
      Src: /src/selinux/libsepol/tests/test-neverallow.c:347,1
    - Dst: CU_FAIL
      Src: /src/selinux/libsepol/tests/test-neverallow.c:349,1
    - Dst: messages_check
      Src: /src/selinux/libsepol/tests/test-neverallow.c:351,1
    - Dst: ARRAY_SIZE
      Src: /src/selinux/libsepol/tests/test-neverallow.c:351,1
    - Dst: sepol_handle_destroy
      Src: /src/selinux/libsepol/tests/test-neverallow.c:353,1
    - Dst: messages_clean
      Src: /src/selinux/libsepol/tests/test-neverallow.c:354,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-neverallow.c:355,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-neverallow.c:356,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 357
    functionName: test_neverallow_cond
    functionSourceFile: /src/selinux/libsepol/tests/test-neverallow.c
    functionUses: 0
    functionsReached:
    - CU_FAIL_FATAL
    - CU_FAIL
    - ARRAY_SIZE
    - expand_module
    - messages_check
    - policydb_init
    - test_load_policy
    - sepol_handle_create
    - sepol_msg_set_callback
    - policydb_destroy
    - check_assertions
    - sepol_handle_destroy
    - link_modules
    - messages_clean
    linkageType: ''
    returnType: void
    signature: void test_neverallow_cond(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CU_add_test
      Src: /src/selinux/libsepol/tests/test-neverallow.c:369,1
    - Dst: CU_cleanup_registry
      Src: /src/selinux/libsepol/tests/test-neverallow.c:370,1
    - Dst: CU_get_error
      Src: /src/selinux/libsepol/tests/test-neverallow.c:371,1
    - Dst: CU_add_test
      Src: /src/selinux/libsepol/tests/test-neverallow.c:374,1
    - Dst: CU_cleanup_registry
      Src: /src/selinux/libsepol/tests/test-neverallow.c:376,1
    - Dst: CU_get_error
      Src: /src/selinux/libsepol/tests/test-neverallow.c:377,1
    - Dst: CU_add_test
      Src: /src/selinux/libsepol/tests/test-neverallow.c:380,1
    - Dst: CU_cleanup_registry
      Src: /src/selinux/libsepol/tests/test-neverallow.c:382,1
    - Dst: CU_get_error
      Src: /src/selinux/libsepol/tests/test-neverallow.c:383,1
    - Dst: CU_add_test
      Src: /src/selinux/libsepol/tests/test-neverallow.c:387,1
    - Dst: CU_cleanup_registry
      Src: /src/selinux/libsepol/tests/test-neverallow.c:388,1
    - Dst: CU_get_error
      Src: /src/selinux/libsepol/tests/test-neverallow.c:389,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - suite
    argTypes:
    - CU_pSuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 393
    functionName: neverallow_add_tests
    functionSourceFile: /src/selinux/libsepol/tests/test-neverallow.c
    functionUses: 0
    functionsReached:
    - CU_add_test
    - CU_cleanup_registry
    - CU_get_error
    linkageType: ''
    returnType: int
    signature: int neverallow_add_tests(CU_pSuite suite)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: CU_ASSERT_FATAL
    functionSourceFile: /src/selinux/libsepol/tests/helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CU_ASSERT_FATAL(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: CU_FAIL_FATAL
    functionSourceFile: /src/selinux/libsepol/tests/helpers.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CU_FAIL_FATAL(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: CU_ASSERT_PTR_NOT_NULL_FATAL
    functionSourceFile: /src/selinux/libsepol/tests/helpers.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CU_ASSERT_PTR_NOT_NULL_FATAL(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:63,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:65,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - p
    - role
    argTypes:
    - policydb_t*
    - role_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: only_dominates_self
    functionSourceFile: /src/selinux/libsepol/tests/test-linker-roles.c
    functionUses: 0
    functionsReached:
    - ebitmap_for_each_positive_bit
    - CU_ASSERT
    linkageType: ''
    returnType: void
    signature: "void only_dominates_self(policydb_t *p __attribute__((unused)),\n\t\t\t\trole_datum_t
      *role)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:81,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:82,1
    - Dst: test_role_type_set
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:85,1
    - Dst: only_dominates_self
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:87,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:90,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:92,1
    - Dst: test_role_type_set
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:95,1
    - Dst: only_dominates_self
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - base
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 98
    functionName: base_role_tests
    functionSourceFile: /src/selinux/libsepol/tests/test-linker-roles.c
    functionUses: 1
    functionsReached:
    - test_sym_presence
    - test_role_type_set
    - test_find_decl_by_sym
    - only_dominates_self
    linkageType: ''
    returnType: void
    signature: void base_role_tests(policydb_t *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:113,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:114,1
    - Dst: test_role_type_set
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:117,1
    - Dst: only_dominates_self
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:119,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:122,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:124,1
    - Dst: test_role_type_set
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:128,1
    - Dst: only_dominates_self
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:130,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:136,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:137,1
    - Dst: test_role_type_set
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:141,1
    - Dst: only_dominates_self
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:143,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:146,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:148,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:150,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:151,1
    - Dst: test_role_type_set
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:156,1
    - Dst: only_dominates_self
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:158,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:162,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:164,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:165,1
    - Dst: test_role_type_set
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:168,1
    - Dst: test_role_type_set
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:170,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:171,1
    - Dst: only_dominates_self
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:175,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:178,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:180,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:181,1
    - Dst: test_role_type_set
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:184,1
    - Dst: test_role_type_set
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:186,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:187,1
    - Dst: only_dominates_self
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:191,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:195,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:197,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:198,1
    - Dst: test_role_type_set
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:201,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:202,1
    - Dst: test_role_type_set
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:206,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:207,1
    - Dst: only_dominates_self
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:211,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:215,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:217,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:219,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:220,1
    - Dst: test_role_type_set
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:223,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:224,1
    - Dst: test_role_type_set
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:229,1
    - Dst: only_dominates_self
      Src: /src/selinux/libsepol/tests/test-linker-roles.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 61
    argCount: 1
    argNames:
    - base
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 232
    functionName: module_role_tests
    functionSourceFile: /src/selinux/libsepol/tests/test-linker-roles.c
    functionUses: 1
    functionsReached:
    - test_sym_presence
    - test_role_type_set
    - test_find_decl_by_sym
    - only_dominates_self
    linkageType: ''
    returnType: void
    signature: void module_role_tests(policydb_t *base)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/test-expander-users.c:42,1
    - Dst: printf
      Src: /src/selinux/libsepol/tests/test-expander-users.c:44,1
    - Dst: CU_FAIL
      Src: /src/selinux/libsepol/tests/test-expander-users.c:45,1
    - Dst: calloc
      Src: /src/selinux/libsepol/tests/test-expander-users.c:48,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsepol/tests/test-expander-users.c:49,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/tests/test-expander-users.c:50,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/tests/test-expander-users.c:53,1
    - Dst: printf
      Src: /src/selinux/libsepol/tests/test-expander-users.c:63,1
    - Dst: CU_FAIL
      Src: /src/selinux/libsepol/tests/test-expander-users.c:65,1
    - Dst: free
      Src: /src/selinux/libsepol/tests/test-expander-users.c:68,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsepol/tests/test-expander-users.c:69,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 4
    argNames:
    - p
    - user_name
    - role_names
    - num_roles
    argTypes:
    - policydb_t*
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 70
    functionName: check_user_roles
    functionSourceFile: /src/selinux/libsepol/tests/test-expander-users.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - ebitmap_for_each_positive_bit
    - CU_FAIL
    - strcmp
    - CU_ASSERT_EQUAL
    - free
    - calloc
    - CU_ASSERT_FATAL
    - printf
    linkageType: ''
    returnType: void
    signature: "void check_user_roles(policydb_t *p, const char *user_name,\n\t\t\t
      \    const char **role_names, int num_roles)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_user_roles
      Src: /src/selinux/libsepol/tests/test-expander-users.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: test_expander_user_mapping
    functionSourceFile: /src/selinux/libsepol/tests/test-expander-users.c
    functionUses: 0
    functionsReached:
    - check_user_roles
    linkageType: ''
    returnType: void
    signature: void test_expander_user_mapping(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:80,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:81,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:82,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:83,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:84,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:85,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:86,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:88,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:90,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:91,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:92,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:93,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:94,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:96,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:97,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:98,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:99,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:101,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:103,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:104,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:105,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:106,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:108,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:110,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:112,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:114,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:114,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:116,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:116,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:118,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:118,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:120,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:120,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:122,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:122,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:124,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:124,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:126,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:126,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:128,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:128,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:130,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:130,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:132,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:132,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:134,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:134,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:136,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/test-expander-attr-map.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 138
    functionName: test_expander_attr_mapping
    functionSourceFile: /src/selinux/libsepol/tests/test-expander-attr-map.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    - test_attr_types
    - hashtab_search
    linkageType: ''
    returnType: void
    signature: void test_expander_attr_mapping(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: policydb_init
      Src: /src/selinux/libsepol/tests/test-downgrade.c:51,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-downgrade.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 57
    functionName: downgrade_test_init
    functionSourceFile: /src/selinux/libsepol/tests/test-downgrade.c
    functionUses: 0
    functionsReached:
    - policydb_init
    - fprintf
    linkageType: ''
    returnType: int
    signature: int downgrade_test_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-downgrade.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: downgrade_test_cleanup
    functionSourceFile: /src/selinux/libsepol/tests/test-downgrade.c
    functionUses: 0
    functionsReached:
    - policydb_destroy
    linkageType: ''
    returnType: int
    signature: int downgrade_test_cleanup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CU_add_test
      Src: /src/selinux/libsepol/tests/test-downgrade.c:86,1
    - Dst: CU_get_error
      Src: /src/selinux/libsepol/tests/test-downgrade.c:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - suite
    argTypes:
    - CU_pSuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    functionName: downgrade_add_tests
    functionSourceFile: /src/selinux/libsepol/tests/test-downgrade.c
    functionUses: 0
    functionsReached:
    - CU_add_test
    - CU_get_error
    linkageType: ''
    returnType: int
    signature: int downgrade_add_tests(CU_pSuite suite)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: do_downgrade_test
      Src: /src/selinux/libsepol/tests/test-downgrade.c:104,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-downgrade.c:105,1
    - Dst: do_downgrade_test
      Src: /src/selinux/libsepol/tests/test-downgrade.c:108,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-downgrade.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 111
    functionName: test_downgrade
    functionSourceFile: /src/selinux/libsepol/tests/test-downgrade.c
    functionUses: 0
    functionsReached:
    - fprintf
    - do_downgrade_test
    linkageType: ''
    returnType: void
    signature: void test_downgrade(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-downgrade.c:132,1
    - Dst: downgrade_test_init
      Src: /src/selinux/libsepol/tests/test-downgrade.c:133,1
    - Dst: read_binary_policy
      Src: /src/selinux/libsepol/tests/test-downgrade.c:136,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-downgrade.c:137,1
    - Dst: CU_FAIL
      Src: /src/selinux/libsepol/tests/test-downgrade.c:139,1
    - Dst: write_binary_policy
      Src: /src/selinux/libsepol/tests/test-downgrade.c:156,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-downgrade.c:158,1
    - Dst: CU_FAIL
      Src: /src/selinux/libsepol/tests/test-downgrade.c:161,1
    - Dst: policydb_init
      Src: /src/selinux/libsepol/tests/test-downgrade.c:166,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-downgrade.c:167,1
    - Dst: read_binary_policy
      Src: /src/selinux/libsepol/tests/test-downgrade.c:171,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-downgrade.c:173,1
    - Dst: CU_FAIL
      Src: /src/selinux/libsepol/tests/test-downgrade.c:176,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-downgrade.c:179,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 1
    argNames:
    - mls
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 186
    functionName: do_downgrade_test
    functionSourceFile: /src/selinux/libsepol/tests/test-downgrade.c
    functionUses: 1
    functionsReached:
    - write_binary_policy
    - downgrade_test_init
    - CU_FAIL
    - read_binary_policy
    - policydb_init
    - policydb_destroy
    - fprintf
    linkageType: ''
    returnType: int
    signature: int do_downgrade_test(int mls)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/libsepol/tests/test-downgrade.c:208,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-downgrade.c:209,1
    - Dst: strerror
      Src: /src/selinux/libsepol/tests/test-downgrade.c:210,1
    - Dst: memset
      Src: /src/selinux/libsepol/tests/test-downgrade.c:215,1
    - Dst: policydb_read
      Src: /src/selinux/libsepol/tests/test-downgrade.c:218,1
    - Dst: fclose
      Src: /src/selinux/libsepol/tests/test-downgrade.c:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - path
    - p
    argTypes:
    - char*
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 222
    functionName: read_binary_policy
    functionSourceFile: /src/selinux/libsepol/tests/test-downgrade.c
    functionUses: 1
    functionsReached:
    - policydb_read
    - fclose
    - strerror
    - memset
    - fopen
    - fprintf
    linkageType: ''
    returnType: int
    signature: int read_binary_policy(const char *path, policydb_t *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sepol_handle_create
      Src: /src/selinux/libsepol/tests/test-downgrade.c:244,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-downgrade.c:246,1
    - Dst: sepol_msg_set_callback
      Src: /src/selinux/libsepol/tests/test-downgrade.c:249,1
    - Dst: fopen
      Src: /src/selinux/libsepol/tests/test-downgrade.c:252,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-downgrade.c:253,1
    - Dst: strerror
      Src: /src/selinux/libsepol/tests/test-downgrade.c:254,1
    - Dst: sepol_handle_destroy
      Src: /src/selinux/libsepol/tests/test-downgrade.c:255,1
    - Dst: memset
      Src: /src/selinux/libsepol/tests/test-downgrade.c:260,1
    - Dst: policydb_write
      Src: /src/selinux/libsepol/tests/test-downgrade.c:264,1
    - Dst: sepol_handle_destroy
      Src: /src/selinux/libsepol/tests/test-downgrade.c:266,1
    - Dst: fclose
      Src: /src/selinux/libsepol/tests/test-downgrade.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - path
    - p
    argTypes:
    - char*
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 269
    functionName: write_binary_policy
    functionSourceFile: /src/selinux/libsepol/tests/test-downgrade.c
    functionUses: 1
    functionsReached:
    - fclose
    - strerror
    - sepol_handle_create
    - sepol_msg_set_callback
    - policydb_write
    - memset
    - fopen
    - sepol_handle_destroy
    - fprintf
    linkageType: ''
    returnType: int
    signature: int write_binary_policy(const char *path, policydb_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/test-linker-types.c:109,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsepol/tests/test-linker-types.c:111,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-linker-types.c:112,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-linker-types.c:113,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/test-linker-types.c:118,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsepol/tests/test-linker-types.c:120,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-linker-types.c:121,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-linker-types.c:122,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-linker-types.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - p
    - id
    - decls
    - len
    - primary
    argTypes:
    - policydb_t*
    - char*
    - unsigned int*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 125
    functionName: test_type_datum
    functionSourceFile: /src/selinux/libsepol/tests/test-linker-types.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    - CU_ASSERT_FATAL
    - hashtab_search
    linkageType: ''
    returnType: void
    signature: "void test_type_datum(policydb_t *p, const char *id, unsigned int *decls,\n\t\t\t
      \   int len, unsigned int primary)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:138,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-types.c:139,1
    - Dst: test_type_datum
      Src: /src/selinux/libsepol/tests/test-linker-types.c:140,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-types.c:142,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-linker-types.c:144,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:148,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-types.c:149,1
    - Dst: test_type_datum
      Src: /src/selinux/libsepol/tests/test-linker-types.c:150,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-types.c:152,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-linker-types.c:154,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:158,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-types.c:159,1
    - Dst: test_alias_datum
      Src: /src/selinux/libsepol/tests/test-linker-types.c:160,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:162,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-types.c:163,1
    - Dst: test_alias_datum
      Src: /src/selinux/libsepol/tests/test-linker-types.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - base
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 165
    functionName: base_type_tests
    functionSourceFile: /src/selinux/libsepol/tests/test-linker-types.c
    functionUses: 1
    functionsReached:
    - test_type_datum
    - test_sym_presence
    - test_find_decl_by_sym
    - test_alias_datum
    - test_attr_types
    linkageType: ''
    returnType: void
    signature: void base_type_tests(policydb_t *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:185,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-types.c:186,1
    - Dst: test_type_datum
      Src: /src/selinux/libsepol/tests/test-linker-types.c:187,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-types.c:189,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-linker-types.c:192,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:196,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-types.c:197,1
    - Dst: test_type_datum
      Src: /src/selinux/libsepol/tests/test-linker-types.c:199,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-types.c:201,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-linker-types.c:204,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:209,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-types.c:210,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-linker-types.c:212,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:215,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-types.c:216,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:219,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-linker-types.c:221,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:225,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-types.c:226,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-linker-types.c:229,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:232,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-types.c:233,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-linker-types.c:236,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:237,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-linker-types.c:239,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:243,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-types.c:244,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-linker-types.c:246,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:250,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-types.c:251,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:252,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-linker-types.c:254,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:258,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-types.c:259,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:260,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-linker-types.c:262,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:266,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-types.c:267,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:269,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-linker-types.c:271,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:276,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-types.c:277,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-linker-types.c:280,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:282,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-linker-types.c:284,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:287,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-types.c:289,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-linker-types.c:292,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-linker-types.c:295,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:297,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-linker-types.c:299,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:303,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-types.c:304,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-linker-types.c:306,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:308,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-linker-types.c:310,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:312,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-linker-types.c:314,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:317,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-types.c:319,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-linker-types.c:322,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:324,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-linker-types.c:326,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:328,1
    - Dst: test_attr_types
      Src: /src/selinux/libsepol/tests/test-linker-types.c:330,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-types.c:334,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-types.c:335,1
    - Dst: test_alias_datum
      Src: /src/selinux/libsepol/tests/test-linker-types.c:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 96
    argCount: 1
    argNames:
    - base
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 337
    functionName: module_type_tests
    functionSourceFile: /src/selinux/libsepol/tests/test-linker-types.c
    functionUses: 1
    functionsReached:
    - test_type_datum
    - test_sym_presence
    - test_find_decl_by_sym
    - test_alias_datum
    - test_attr_types
    linkageType: ''
    returnType: void
    signature: void module_type_tests(policydb_t *base)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libsepol/tests/helpers.c:41,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/tests/helpers.c:46,1
    - Dst: policydb_init
      Src: /src/selinux/libsepol/tests/helpers.c:52,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/helpers.c:53,1
    - Dst: read_source_policy
      Src: /src/selinux/libsepol/tests/helpers.c:61,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/helpers.c:62,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/helpers.c:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - p
    - policy_type
    - mls
    - test_name
    - policy_name
    argTypes:
    - policydb_t*
    - int
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 68
    functionName: test_load_policy
    functionSourceFile: /src/selinux/libsepol/tests/helpers.c
    functionUses: 6
    functionsReached:
    - read_source_policy
    - snprintf
    - policydb_init
    - policydb_destroy
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int test_load_policy(policydb_t *p, int policy_type, int mls,\n\t\t
      \    const char *test_name, const char *policy_name)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/helpers.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - p
    - symtab
    - sym
    argTypes:
    - policydb_t*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 86
    functionName: test_find_decl_by_sym
    functionSourceFile: /src/selinux/libsepol/tests/helpers.c
    functionUses: 4
    functionsReached:
    - hashtab_search
    linkageType: ''
    returnType: avrule_decl_t
    signature: avrule_decl_t *test_find_decl_by_sym(policydb_t *p, int symtab, const
      char *sym)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_role_type_set
      Src: /src/selinux/libsepol/tests/test-expander-roles.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: test_expander_role_mapping
    functionSourceFile: /src/selinux/libsepol/tests/test-expander-roles.c
    functionUses: 0
    functionsReached:
    - test_role_type_set
    linkageType: ''
    returnType: void
    signature: void test_expander_role_mapping(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/test-common.c:40,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-common.c:41,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsepol/tests/test-common.c:43,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/test-common.c:46,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsepol/tests/test-common.c:47,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:48,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:49,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-common.c:51,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:59,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 6
    argNames:
    - p
    - id
    - sym_type
    - scope_type
    - decls
    - len
    argTypes:
    - policydb_t*
    - char*
    - int
    - unsigned int
    - unsigned int*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 61
    functionName: test_sym_presence
    functionSourceFile: /src/selinux/libsepol/tests/test-common.c
    functionUses: 4
    functionsReached:
    - CU_FAIL_FATAL
    - hashtab_search
    - CU_ASSERT
    - CU_ASSERT_FATAL
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void test_sym_presence(policydb_t *p, const char *id, int sym_type,\n\t\t
      \      unsigned int scope_type, unsigned int *decls,\n\t\t       unsigned int
      len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: common_test_index
    functionSourceFile: /src/selinux/libsepol/tests/test-common.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    linkageType: ''
    returnType: int
    signature: "int common_test_index(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \    void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:80,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 84
    functionName: class_test_index
    functionSourceFile: /src/selinux/libsepol/tests/test-common.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    linkageType: ''
    returnType: int
    signature: "int class_test_index(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \   void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:91,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: role_test_index
    functionSourceFile: /src/selinux/libsepol/tests/test-common.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    linkageType: ''
    returnType: int
    signature: int role_test_index(hashtab_key_t key, hashtab_datum_t datum, void
      *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:104,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 108
    functionName: type_test_index
    functionSourceFile: /src/selinux/libsepol/tests/test-common.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    linkageType: ''
    returnType: int
    signature: int type_test_index(hashtab_key_t key, hashtab_datum_t datum, void
      *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:115,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 118
    functionName: user_test_index
    functionSourceFile: /src/selinux/libsepol/tests/test-common.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    linkageType: ''
    returnType: int
    signature: int user_test_index(hashtab_key_t key, hashtab_datum_t datum, void
      *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:125,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 128
    functionName: cond_test_index
    functionSourceFile: /src/selinux/libsepol/tests/test-common.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    linkageType: ''
    returnType: int
    signature: int cond_test_index(hashtab_key_t key, hashtab_datum_t datum, void
      *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: level_test_index
    functionSourceFile: /src/selinux/libsepol/tests/test-common.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    linkageType: ''
    returnType: int
    signature: "int level_test_index(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \   void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 148
    functionName: cat_test_index
    functionSourceFile: /src/selinux/libsepol/tests/test-common.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    linkageType: ''
    returnType: int
    signature: int cat_test_index(hashtab_key_t key, hashtab_datum_t datum, void *data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/tests/test-common.c:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - p
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 163
    functionName: test_policydb_indexes
    functionSourceFile: /src/selinux/libsepol/tests/test-common.c
    functionUses: 1
    functionsReached:
    - hashtab_map
    linkageType: ''
    returnType: void
    signature: void test_policydb_indexes(policydb_t *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/test-common.c:171,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/test-common.c:172,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsepol/tests/test-common.c:174,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsepol/tests/test-common.c:175,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:188,1
    - Dst: CU_ASSERT_NOT_EQUAL
      Src: /src/selinux/libsepol/tests/test-common.c:190,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:194,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:195,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 5
    argNames:
    - p
    - id
    - primary_id
    - mode
    - flavor
    argTypes:
    - policydb_t*
    - char*
    - char*
    - char
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 198
    functionName: test_alias_datum
    functionSourceFile: /src/selinux/libsepol/tests/test-common.c
    functionUses: 2
    functionsReached:
    - CU_ASSERT_PTR_NOT_NULL
    - CU_ASSERT
    - CU_ASSERT_NOT_EQUAL
    - hashtab_search
    linkageType: ''
    returnType: void
    signature: "void test_alias_datum(policydb_t *p, const char *id, const char *primary_id,\n\t\t
      \     char mode, unsigned int flavor)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/test-common.c:209,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/test-common.c:211,1
    - Dst: printf
      Src: /src/selinux/libsepol/tests/test-common.c:214,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsepol/tests/test-common.c:216,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/tests/test-common.c:218,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/tests/test-common.c:221,1
    - Dst: printf
      Src: /src/selinux/libsepol/tests/test-common.c:228,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:233,1
    - Dst: printf
      Src: /src/selinux/libsepol/tests/test-common.c:235,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:239,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:240,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 6
    argNames:
    - p
    - id
    - decl
    - types
    - len
    - flags
    argTypes:
    - policydb_t*
    - char*
    - avrule_decl_t*
    - char**
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 243
    functionName: test_role_type_set
    functionSourceFile: /src/selinux/libsepol/tests/test-common.c
    functionUses: 3
    functionsReached:
    - hashtab_search
    - ebitmap_for_each_positive_bit
    - strcmp
    - CU_ASSERT
    - CU_ASSERT_FATAL
    - printf
    linkageType: ''
    returnType: role_datum_t
    signature: "role_datum_t *test_role_type_set(policydb_t *p, const char *id,\n\t\t\t\t
      avrule_decl_t *decl, const char **types,\n\t\t\t\t unsigned int len, unsigned
      int flags)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/test-common.c:254,1
    - Dst: printf
      Src: /src/selinux/libsepol/tests/test-common.c:256,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/test-common.c:259,1
    - Dst: printf
      Src: /src/selinux/libsepol/tests/test-common.c:261,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsepol/tests/test-common.c:264,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:265,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:266,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/tests/test-common.c:268,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/tests/test-common.c:271,1
    - Dst: printf
      Src: /src/selinux/libsepol/tests/test-common.c:278,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-common.c:283,1
    - Dst: printf
      Src: /src/selinux/libsepol/tests/test-common.c:285,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - p
    - id
    - decl
    - types
    - len
    argTypes:
    - policydb_t*
    - char*
    - avrule_decl_t*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 286
    functionName: test_attr_types
    functionSourceFile: /src/selinux/libsepol/tests/test-common.c
    functionUses: 3
    functionsReached:
    - hashtab_search
    - ebitmap_for_each_positive_bit
    - strcmp
    - CU_ASSERT
    - CU_ASSERT_FATAL
    - printf
    linkageType: ''
    returnType: void
    signature: "void test_attr_types(policydb_t *p, const char *id, avrule_decl_t
      *decl,\n\t\t     const char **types, int len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_load_policy
      Src: /src/selinux/libsepol/tests/test-deps.c:100,1
    - Dst: test_load_policy
      Src: /src/selinux/libsepol/tests/test-deps.c:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 112
    functionName: deps_test_init
    functionSourceFile: /src/selinux/libsepol/tests/test-deps.c
    functionUses: 0
    functionsReached:
    - test_load_policy
    linkageType: ''
    returnType: int
    signature: int deps_test_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-deps.c:119,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-deps.c:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 127
    functionName: deps_test_cleanup
    functionSourceFile: /src/selinux/libsepol/tests/test-deps.c
    functionUses: 0
    functionsReached:
    - policydb_destroy
    linkageType: ''
    returnType: int
    signature: int deps_test_cleanup(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sepol_handle_create
      Src: /src/selinux/libsepol/tests/test-deps.c:155,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsepol/tests/test-deps.c:156,1
    - Dst: sepol_msg_set_callback
      Src: /src/selinux/libsepol/tests/test-deps.c:157,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsepol/tests/test-deps.c:167,1
    - Dst: test_load_policy
      Src: /src/selinux/libsepol/tests/test-deps.c:167,1
    - Dst: link_modules
      Src: /src/selinux/libsepol/tests/test-deps.c:172,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsepol/tests/test-deps.c:173,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-deps.c:174,1
    - Dst: sepol_handle_destroy
      Src: /src/selinux/libsepol/tests/test-deps.c:175,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-deps.c:180,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsepol/tests/test-deps.c:181,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-deps.c:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 4
    argNames:
    - req_met
    - b
    - policy
    - decl_type
    argTypes:
    - int
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 184
    functionName: do_deps_modreq_global
    functionSourceFile: /src/selinux/libsepol/tests/test-deps.c
    functionUses: 0
    functionsReached:
    - test_load_policy
    - sepol_handle_create
    - sepol_msg_set_callback
    - policydb_destroy
    - CU_ASSERT_FATAL
    - test_find_decl_by_sym
    - CU_ASSERT
    - sepol_handle_destroy
    - link_modules
    linkageType: ''
    returnType: void
    signature: "void do_deps_modreq_global(int req_met, int b, const char *policy,\n\t\t\t\t
      \ const char *decl_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_deps_modreq_global
      Src: /src/selinux/libsepol/tests/test-deps.c:196,1
    - Dst: do_deps_modreq_global
      Src: /src/selinux/libsepol/tests/test-deps.c:198,1
    - Dst: do_deps_modreq_global
      Src: /src/selinux/libsepol/tests/test-deps.c:201,1
    - Dst: do_deps_modreq_global
      Src: /src/selinux/libsepol/tests/test-deps.c:203,1
    - Dst: do_deps_modreq_global
      Src: /src/selinux/libsepol/tests/test-deps.c:206,1
    - Dst: do_deps_modreq_global
      Src: /src/selinux/libsepol/tests/test-deps.c:208,1
    - Dst: do_deps_modreq_global
      Src: /src/selinux/libsepol/tests/test-deps.c:211,1
    - Dst: do_deps_modreq_global
      Src: /src/selinux/libsepol/tests/test-deps.c:213,1
    - Dst: do_deps_modreq_global
      Src: /src/selinux/libsepol/tests/test-deps.c:216,1
    - Dst: do_deps_modreq_global
      Src: /src/selinux/libsepol/tests/test-deps.c:218,1
    - Dst: do_deps_modreq_global
      Src: /src/selinux/libsepol/tests/test-deps.c:220,1
    - Dst: do_deps_modreq_global
      Src: /src/selinux/libsepol/tests/test-deps.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 224
    functionName: deps_modreq_global
    functionSourceFile: /src/selinux/libsepol/tests/test-deps.c
    functionUses: 1
    functionsReached:
    - do_deps_modreq_global
    linkageType: ''
    returnType: void
    signature: void deps_modreq_global(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sepol_handle_create
      Src: /src/selinux/libsepol/tests/test-deps.c:252,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsepol/tests/test-deps.c:253,1
    - Dst: sepol_msg_set_callback
      Src: /src/selinux/libsepol/tests/test-deps.c:254,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsepol/tests/test-deps.c:262,1
    - Dst: test_load_policy
      Src: /src/selinux/libsepol/tests/test-deps.c:262,1
    - Dst: link_modules
      Src: /src/selinux/libsepol/tests/test-deps.c:267,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsepol/tests/test-deps.c:268,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-deps.c:269,1
    - Dst: sepol_handle_destroy
      Src: /src/selinux/libsepol/tests/test-deps.c:270,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-deps.c:274,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsepol/tests/test-deps.c:275,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-deps.c:278,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-deps.c:280,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 5
    argNames:
    - req_met
    - ret_val
    - b
    - policy
    - decl_type
    argTypes:
    - int
    - int
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 282
    functionName: do_deps_modreq_opt
    functionSourceFile: /src/selinux/libsepol/tests/test-deps.c
    functionUses: 0
    functionsReached:
    - test_load_policy
    - sepol_handle_create
    - sepol_msg_set_callback
    - policydb_destroy
    - CU_ASSERT_FATAL
    - test_find_decl_by_sym
    - CU_ASSERT
    - sepol_handle_destroy
    - link_modules
    linkageType: ''
    returnType: void
    signature: "void do_deps_modreq_opt(int req_met, int ret_val, int b,\n\t\t\t       const
      char *policy, const char *decl_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_deps_modreq_opt
      Src: /src/selinux/libsepol/tests/test-deps.c:294,1
    - Dst: do_deps_modreq_opt
      Src: /src/selinux/libsepol/tests/test-deps.c:296,1
    - Dst: do_deps_modreq_opt
      Src: /src/selinux/libsepol/tests/test-deps.c:299,1
    - Dst: do_deps_modreq_opt
      Src: /src/selinux/libsepol/tests/test-deps.c:301,1
    - Dst: do_deps_modreq_opt
      Src: /src/selinux/libsepol/tests/test-deps.c:304,1
    - Dst: do_deps_modreq_opt
      Src: /src/selinux/libsepol/tests/test-deps.c:306,1
    - Dst: do_deps_modreq_opt
      Src: /src/selinux/libsepol/tests/test-deps.c:309,1
    - Dst: do_deps_modreq_opt
      Src: /src/selinux/libsepol/tests/test-deps.c:311,1
    - Dst: do_deps_modreq_opt
      Src: /src/selinux/libsepol/tests/test-deps.c:314,1
    - Dst: do_deps_modreq_opt
      Src: /src/selinux/libsepol/tests/test-deps.c:316,1
    - Dst: do_deps_modreq_opt
      Src: /src/selinux/libsepol/tests/test-deps.c:319,1
    - Dst: do_deps_modreq_opt
      Src: /src/selinux/libsepol/tests/test-deps.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 291
    functionDepth: 3
    functionLinenumber: 291
    functionLinenumberEnd: 323
    functionName: deps_modreq_opt
    functionSourceFile: /src/selinux/libsepol/tests/test-deps.c
    functionUses: 1
    functionsReached:
    - do_deps_modreq_opt
    linkageType: ''
    returnType: void
    signature: void deps_modreq_opt(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CU_add_test
      Src: /src/selinux/libsepol/tests/test-deps.c:328,1
    - Dst: CU_get_error
      Src: /src/selinux/libsepol/tests/test-deps.c:329,1
    - Dst: CU_add_test
      Src: /src/selinux/libsepol/tests/test-deps.c:332,1
    - Dst: CU_get_error
      Src: /src/selinux/libsepol/tests/test-deps.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - suite
    argTypes:
    - CU_pSuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 337
    functionName: deps_add_tests
    functionSourceFile: /src/selinux/libsepol/tests/test-deps.c
    functionUses: 0
    functionsReached:
    - CU_add_test
    - CU_get_error
    linkageType: ''
    returnType: int
    signature: int deps_add_tests(CU_pSuite suite)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/tests/test-expander.c:79,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/tests/test-expander.c:80,1
    - Dst: policydb_init
      Src: /src/selinux/libsepol/tests/test-expander.c:86,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-expander.c:87,1
    - Dst: policydb_init
      Src: /src/selinux/libsepol/tests/test-expander.c:92,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-expander.c:93,1
    - Dst: policydb_init
      Src: /src/selinux/libsepol/tests/test-expander.c:98,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-expander.c:99,1
    - Dst: read_source_policy
      Src: /src/selinux/libsepol/tests/test-expander.c:106,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-expander.c:107,1
    - Dst: read_source_policy
      Src: /src/selinux/libsepol/tests/test-expander.c:114,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-expander.c:116,1
    - Dst: link_modules
      Src: /src/selinux/libsepol/tests/test-expander.c:122,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-expander.c:123,1
    - Dst: expand_module
      Src: /src/selinux/libsepol/tests/test-expander.c:127,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/tests/test-expander.c:128,1
    - Dst: free
      Src: /src/selinux/libsepol/tests/test-expander.c:133,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 5
    argNames:
    - mybase
    - num_modules
    - mymodules
    - myexpanded
    - myfiles
    argTypes:
    - policydb_t*
    - int
    - policydb_t**
    - policydb_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 136
    functionName: expander_policy_init
    functionSourceFile: /src/selinux/libsepol/tests/test-expander.c
    functionUses: 0
    functionsReached:
    - read_source_policy
    - snprintf
    - expand_module
    - policydb_init
    - free
    - calloc
    - link_modules
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int expander_policy_init(policydb_t *mybase, int num_modules,\n\t\t\t\tpolicydb_t
      **mymodules, policydb_t *myexpanded,\n\t\t\t\tconst char *const *myfiles)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: expander_policy_init
      Src: /src/selinux/libsepol/tests/test-expander.c:149,1
    - Dst: expander_policy_init
      Src: /src/selinux/libsepol/tests/test-expander.c:155,1
    - Dst: expander_policy_init
      Src: /src/selinux/libsepol/tests/test-expander.c:160,1
    - Dst: expander_policy_init
      Src: /src/selinux/libsepol/tests/test-expander.c:166,1
    - Dst: expander_policy_init
      Src: /src/selinux/libsepol/tests/test-expander.c:174,1
    - Dst: expander_policy_init
      Src: /src/selinux/libsepol/tests/test-expander.c:180,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 186
    functionName: expander_test_init
    functionSourceFile: /src/selinux/libsepol/tests/test-expander.c
    functionUses: 0
    functionsReached:
    - expander_policy_init
    linkageType: ''
    returnType: int
    signature: int expander_test_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-expander.c:190,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-expander.c:191,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-expander.c:192,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-expander.c:193,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-expander.c:194,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-expander.c:195,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-expander.c:196,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-expander.c:197,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-expander.c:198,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-expander.c:199,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-expander.c:200,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-expander.c:201,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-expander.c:202,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-expander.c:203,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-expander.c:204,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/tests/test-expander.c:205,1
    - Dst: free
      Src: /src/selinux/libsepol/tests/test-expander.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 209
    functionName: expander_test_cleanup
    functionSourceFile: /src/selinux/libsepol/tests/test-expander.c
    functionUses: 0
    functionsReached:
    - free
    - policydb_destroy
    linkageType: ''
    returnType: int
    signature: int expander_test_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_policydb_indexes
      Src: /src/selinux/libsepol/tests/test-expander.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 214
    functionName: test_expander_indexes
    functionSourceFile: /src/selinux/libsepol/tests/test-expander.c
    functionUses: 0
    functionsReached:
    - test_policydb_indexes
    linkageType: ''
    returnType: void
    signature: void test_expander_indexes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_alias_datum
      Src: /src/selinux/libsepol/tests/test-expander.c:218,1
    - Dst: test_alias_datum
      Src: /src/selinux/libsepol/tests/test-expander.c:220,1
    - Dst: test_alias_datum
      Src: /src/selinux/libsepol/tests/test-expander.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 224
    functionName: test_expander_alias
    functionSourceFile: /src/selinux/libsepol/tests/test-expander.c
    functionUses: 0
    functionsReached:
    - test_alias_datum
    linkageType: ''
    returnType: void
    signature: void test_expander_alias(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/tests/test-expander.c:240,1
    - Dst: calloc
      Src: /src/selinux/libsepol/tests/test-expander.c:243,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsepol/tests/test-expander.c:244,1
    - Dst: type_datum_init
      Src: /src/selinux/libsepol/tests/test-expander.c:246,1
    - Dst: type_set_init
      Src: /src/selinux/libsepol/tests/test-expander.c:250,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/tests/test-expander.c:252,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsepol/tests/test-expander.c:253,1
    - Dst: type_set_expand
      Src: /src/selinux/libsepol/tests/test-expander.c:256,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-expander.c:257,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/tests/test-expander.c:259,1
    - Dst: type_set_destroy
      Src: /src/selinux/libsepol/tests/test-expander.c:260,1
    - Dst: free
      Src: /src/selinux/libsepol/tests/test-expander.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 262
    functionName: test_expander_negset_bounds
    functionSourceFile: /src/selinux/libsepol/tests/test-expander.c
    functionUses: 0
    functionsReached:
    - type_set_expand
    - ebitmap_destroy
    - type_set_destroy
    - CU_ASSERT
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - ebitmap_set_bit
    - type_datum_init
    - calloc
    - memset
    - CU_ASSERT_FATAL
    - free
    - type_set_init
    linkageType: ''
    returnType: void
    signature: void test_expander_negset_bounds(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CU_add_test
      Src: /src/selinux/libsepol/tests/test-expander.c:267,1
    - Dst: CU_cleanup_registry
      Src: /src/selinux/libsepol/tests/test-expander.c:268,1
    - Dst: CU_get_error
      Src: /src/selinux/libsepol/tests/test-expander.c:269,1
    - Dst: CU_add_test
      Src: /src/selinux/libsepol/tests/test-expander.c:272,1
    - Dst: CU_cleanup_registry
      Src: /src/selinux/libsepol/tests/test-expander.c:274,1
    - Dst: CU_get_error
      Src: /src/selinux/libsepol/tests/test-expander.c:275,1
    - Dst: CU_add_test
      Src: /src/selinux/libsepol/tests/test-expander.c:278,1
    - Dst: CU_cleanup_registry
      Src: /src/selinux/libsepol/tests/test-expander.c:280,1
    - Dst: CU_get_error
      Src: /src/selinux/libsepol/tests/test-expander.c:281,1
    - Dst: CU_add_test
      Src: /src/selinux/libsepol/tests/test-expander.c:283,1
    - Dst: CU_cleanup_registry
      Src: /src/selinux/libsepol/tests/test-expander.c:285,1
    - Dst: CU_get_error
      Src: /src/selinux/libsepol/tests/test-expander.c:286,1
    - Dst: CU_add_test
      Src: /src/selinux/libsepol/tests/test-expander.c:288,1
    - Dst: CU_cleanup_registry
      Src: /src/selinux/libsepol/tests/test-expander.c:289,1
    - Dst: CU_get_error
      Src: /src/selinux/libsepol/tests/test-expander.c:290,1
    - Dst: CU_add_test
      Src: /src/selinux/libsepol/tests/test-expander.c:292,1
    - Dst: CU_cleanup_registry
      Src: /src/selinux/libsepol/tests/test-expander.c:294,1
    - Dst: CU_get_error
      Src: /src/selinux/libsepol/tests/test-expander.c:295,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - suite
    argTypes:
    - CU_pSuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 298
    functionName: expander_add_tests
    functionSourceFile: /src/selinux/libsepol/tests/test-expander.c
    functionUses: 0
    functionsReached:
    - CU_add_test
    - CU_cleanup_registry
    - CU_get_error
    linkageType: ''
    returnType: int
    signature: int expander_add_tests(CU_pSuite suite)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:64,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:65,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:70,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:72,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:74,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - p
    - d
    - bools
    - len
    argTypes:
    - policydb_t*
    - avrule_decl_t*
    - test_cond_expr_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 80
    functionName: test_cond_expr_mapping
    functionSourceFile: /src/selinux/libsepol/tests/test-linker-cond-map.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    - strcmp
    - CU_ASSERT_FATAL
    linkageType: ''
    returnType: void
    signature: "void test_cond_expr_mapping(policydb_t *p, avrule_decl_t *d,\n\t\t\t\t
      \  test_cond_expr_t *bools, int len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:86,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:87,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - p
    - boolean
    - state
    argTypes:
    - policydb_t*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: test_bool_state
    functionSourceFile: /src/selinux/libsepol/tests/test-linker-cond-map.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    - CU_ASSERT_FATAL
    - hashtab_search
    linkageType: ''
    returnType: void
    signature: void test_bool_state(policydb_t *p, const char *boolean, int state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:101,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:103,1
    - Dst: test_bool_state
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:104,1
    - Dst: test_cond_expr_mapping
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:108,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:111,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:113,1
    - Dst: test_bool_state
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:114,1
    - Dst: test_cond_expr_mapping
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - base
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 119
    functionName: base_cond_tests
    functionSourceFile: /src/selinux/libsepol/tests/test-linker-cond-map.c
    functionUses: 1
    functionsReached:
    - test_cond_expr_mapping
    - test_sym_presence
    - test_bool_state
    - test_find_decl_by_sym
    linkageType: ''
    returnType: void
    signature: void base_cond_tests(policydb_t *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:128,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:130,1
    - Dst: test_bool_state
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:131,1
    - Dst: test_cond_expr_mapping
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:135,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:138,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:140,1
    - Dst: test_bool_state
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:142,1
    - Dst: test_cond_expr_mapping
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:146,1
    - Dst: test_find_decl_by_sym
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:149,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:151,1
    - Dst: test_sym_presence
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:152,1
    - Dst: test_bool_state
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:153,1
    - Dst: test_bool_state
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:154,1
    - Dst: test_cond_expr_mapping
      Src: /src/selinux/libsepol/tests/test-linker-cond-map.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 1
    argNames:
    - base
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 163
    functionName: module_cond_tests
    functionSourceFile: /src/selinux/libsepol/tests/test-linker-cond-map.c
    functionUses: 1
    functionsReached:
    - test_cond_expr_mapping
    - test_sym_presence
    - test_bool_state
    - test_find_decl_by_sym
    linkageType: ''
    returnType: void
    signature: void module_cond_tests(policydb_t *base)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: BUG
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUG()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reallocarray
      Src: /src/selinux/libsepol/src/services.c:100,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - expr_ptr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 110
    functionName: push
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - ERR
    - reallocarray
    linkageType: ''
    returnType: void
    signature: void push(char *expr_ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 121
    functionName: pop
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - ERR
    linkageType: ''
    returnType: char
    signature: char *pop(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - sidtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 128
    functionName: sepol_set_sidtab
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sepol_set_sidtab(sidtab_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: sepol_set_policydb
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sepol_set_policydb(policydb_t *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: policy_file_init
      Src: /src/selinux/libsepol/src/services.c:140,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/src/services.c:144,1
    - Dst: policydb_init
      Src: /src/selinux/libsepol/src/services.c:145,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:146,1
    - Dst: policydb_read
      Src: /src/selinux/libsepol/src/services.c:149,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/src/services.c:150,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:151,1
    - Dst: sepol_sidtab_init
      Src: /src/selinux/libsepol/src/services.c:155,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 156
    functionName: sepol_set_policydb_from_file
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - policydb_read
    - ERR
    - policy_file_init
    - sepol_sidtab_init
    - policydb_init
    - policydb_destroy
    linkageType: ''
    returnType: int
    signature: int sepol_set_policydb_from_file(FILE *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/services.c:185,1
    - Dst: realloc
      Src: /src/selinux/libsepol/src/services.c:188,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - e_buf
    - string
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 202
    functionName: cat_expr_buf
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - ERR
    - snprintf
    - realloc
    linkageType: ''
    returnType: void
    signature: void cat_expr_buf(char *e_buf, const char *string)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_startbit
      Src: /src/selinux/libsepol/src/services.c:229,1
    - Dst: ebitmap_length
      Src: /src/selinux/libsepol/src/services.c:229,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/services.c:230,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/services.c:236,1
    - Dst: cat_expr_buf
      Src: /src/selinux/libsepol/src/services.c:237,1
    - Dst: cat_expr_buf
      Src: /src/selinux/libsepol/src/services.c:240,1
    - Dst: cat_expr_buf
      Src: /src/selinux/libsepol/src/services.c:242,1
    - Dst: ebitmap_startbit
      Src: /src/selinux/libsepol/src/services.c:244,1
    - Dst: ebitmap_length
      Src: /src/selinux/libsepol/src/services.c:244,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/services.c:246,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/services.c:253,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/services.c:257,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/services.c:261,1
    - Dst: cat_expr_buf
      Src: /src/selinux/libsepol/src/services.c:265,1
    - Dst: cat_expr_buf
      Src: /src/selinux/libsepol/src/services.c:269,1
    - Dst: cat_expr_buf
      Src: /src/selinux/libsepol/src/services.c:271,1
    - Dst: cat_expr_buf
      Src: /src/selinux/libsepol/src/services.c:273,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 41
    argCount: 5
    argNames:
    - e
    - type
    - src
    - op
    - failed
    argTypes:
    - constraint_expr_t*
    - int
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 276
    functionName: get_name_list
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - snprintf
    - ebitmap_length
    - ebitmap_startbit
    - ebitmap_get_bit
    - cat_expr_buf
    linkageType: ''
    returnType: void
    signature: "void get_name_list(constraint_expr_t *e, int type, const char *src,\n\t\t\t
      \ const char *op, int failed)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/services.c:282,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/services.c:285,1
    - Dst: cat_expr_buf
      Src: /src/selinux/libsepol/src/services.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - src
    - tgt
    - op
    - failed
    argTypes:
    - char*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 287
    functionName: msgcat
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - cat_expr_buf
    - snprintf
    linkageType: ''
    returnType: void
    signature: void msgcat(const char *src, const char *tgt, const char *op, int failed)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/selinux/libsepol/src/services.c:325,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:327,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/services.c:336,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/services.c:344,1
    - Dst: sepol_av_to_string
      Src: /src/selinux/libsepol/src/services.c:353,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/services.c:356,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:358,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/services.c:360,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 3
    argNames:
    - tclass
    - constraint
    - xcontext
    argTypes:
    - sepol_security_class_t
    - constraint_node_t*
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 367
    functionName: get_class_info
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - free
    - sepol_av_to_string
    - snprintf
    - realloc
    linkageType: ''
    returnType: char
    signature: "char *get_class_info(sepol_security_class_t tclass,\n\t\t\t    constraint_node_t
      *constraint,\n\t\t\t    context_struct_t *xcontext)"
  - BBCount: 59
    BranchProfiles: []
    Callsites:
    - Dst: get_class_info
      Src: /src/selinux/libsepol/src/services.c:437,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:439,1
    - Dst: reallocarray
      Src: /src/selinux/libsepol/src/services.c:457,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:461,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/services.c:475,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:477,1
    - Dst: BUG
      Src: /src/selinux/libsepol/src/services.c:487,1
    - Dst: cat_expr_buf
      Src: /src/selinux/libsepol/src/services.c:492,1
    - Dst: BUG
      Src: /src/selinux/libsepol/src/services.c:496,1
    - Dst: cat_expr_buf
      Src: /src/selinux/libsepol/src/services.c:502,1
    - Dst: BUG
      Src: /src/selinux/libsepol/src/services.c:506,1
    - Dst: cat_expr_buf
      Src: /src/selinux/libsepol/src/services.c:512,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:522,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/services.c:523,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:524,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/services.c:525,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:530,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/services.c:531,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:532,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/services.c:533,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:540,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/services.c:541,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:542,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/services.c:543,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/services.c:547,1
    - Dst: msgcat
      Src: /src/selinux/libsepol/src/services.c:549,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/services.c:553,1
    - Dst: msgcat
      Src: /src/selinux/libsepol/src/services.c:555,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/services.c:559,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/services.c:562,1
    - Dst: msgcat
      Src: /src/selinux/libsepol/src/services.c:565,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:575,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/services.c:576,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:577,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/services.c:578,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:583,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/services.c:584,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:585,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/services.c:586,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:591,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/services.c:592,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:593,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/services.c:594,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:599,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/services.c:600,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:601,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/services.c:602,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:607,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/services.c:608,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:609,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/services.c:610,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:615,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/services.c:616,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:617,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/services.c:618,1
    - Dst: mls_level_eq
      Src: /src/selinux/libsepol/src/services.c:622,1
    - Dst: msgcat
      Src: /src/selinux/libsepol/src/services.c:623,1
    - Dst: mls_level_eq
      Src: /src/selinux/libsepol/src/services.c:627,1
    - Dst: msgcat
      Src: /src/selinux/libsepol/src/services.c:628,1
    - Dst: mls_level_dom
      Src: /src/selinux/libsepol/src/services.c:632,1
    - Dst: msgcat
      Src: /src/selinux/libsepol/src/services.c:633,1
    - Dst: mls_level_dom
      Src: /src/selinux/libsepol/src/services.c:637,1
    - Dst: msgcat
      Src: /src/selinux/libsepol/src/services.c:638,1
    - Dst: mls_level_incomp
      Src: /src/selinux/libsepol/src/services.c:642,1
    - Dst: msgcat
      Src: /src/selinux/libsepol/src/services.c:643,1
    - Dst: BUG
      Src: /src/selinux/libsepol/src/services.c:647,1
    - Dst: BUG
      Src: /src/selinux/libsepol/src/services.c:652,1
    - Dst: msgcat
      Src: /src/selinux/libsepol/src/services.c:659,1
    - Dst: msgcat
      Src: /src/selinux/libsepol/src/services.c:663,1
    - Dst: BUG
      Src: /src/selinux/libsepol/src/services.c:666,1
    - Dst: BUG
      Src: /src/selinux/libsepol/src/services.c:683,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/services.c:689,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:691,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/services.c:692,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/services.c:696,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:698,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/services.c:699,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/services.c:703,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:705,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/services.c:706,1
    - Dst: BUG
      Src: /src/selinux/libsepol/src/services.c:708,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/services.c:714,1
    - Dst: get_name_list
      Src: /src/selinux/libsepol/src/services.c:715,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/services.c:719,1
    - Dst: get_name_list
      Src: /src/selinux/libsepol/src/services.c:720,1
    - Dst: BUG
      Src: /src/selinux/libsepol/src/services.c:723,1
    - Dst: BUG
      Src: /src/selinux/libsepol/src/services.c:728,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/services.c:752,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:754,1
    - Dst: strncmp
      Src: /src/selinux/libsepol/src/services.c:761,1
    - Dst: strncmp
      Src: /src/selinux/libsepol/src/services.c:762,1
    - Dst: pop
      Src: /src/selinux/libsepol/src/services.c:763,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/services.c:764,1
    - Dst: pop
      Src: /src/selinux/libsepol/src/services.c:765,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/services.c:766,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/services.c:769,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:771,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/services.c:775,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/src/services.c:778,1
    - Dst: push
      Src: /src/selinux/libsepol/src/services.c:780,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:781,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:782,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:783,1
    - Dst: strncmp
      Src: /src/selinux/libsepol/src/services.c:784,1
    - Dst: pop
      Src: /src/selinux/libsepol/src/services.c:785,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/services.c:786,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/services.c:788,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:790,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/services.c:794,1
    - Dst: strncmp
      Src: /src/selinux/libsepol/src/services.c:796,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/src/services.c:797,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/src/services.c:800,1
    - Dst: push
      Src: /src/selinux/libsepol/src/services.c:802,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:803,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:804,1
    - Dst: push
      Src: /src/selinux/libsepol/src/services.c:806,1
    - Dst: pop
      Src: /src/selinux/libsepol/src/services.c:810,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/src/services.c:814,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/services.c:838,1
    - Dst: realloc
      Src: /src/selinux/libsepol/src/services.c:846,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:848,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:865,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:868,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:869,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:870,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:874,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:876,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:877,1
    CyclomaticComplexity: 90
    EdgeCount: 90
    ICount: 376
    argCount: 7
    argNames:
    - scontext
    - tcontext
    - xcontext
    - tclass
    - constraint
    - r_buf
    - flags
    argTypes:
    - context_struct_t*
    - context_struct_t*
    - context_struct_t*
    - sepol_security_class_t
    - constraint_node_t*
    - char**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 879
    functionName: constraint_expr_eval_reason
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - strncmp
    - mls_level_dom
    - mls_level_incomp
    - get_class_info
    - cat_expr_buf
    - reallocarray
    - mls_level_eq
    - malloc
    - push
    - free
    - strlen
    - BUG
    - ERR
    - pop
    - sprintf
    - ebitmap_get_bit
    - calloc
    - memset
    - strdup
    - msgcat
    - snprintf
    - get_name_list
    - realloc
    linkageType: ''
    returnType: int
    signature: "int constraint_expr_eval_reason(context_struct_t *scontext,\n\t\t\t\t
      \      context_struct_t *tcontext,\n\t\t\t\t       context_struct_t *xcontext,\n\t\t\t\t
      \      sepol_security_class_t tclass,\n\t\t\t\t       constraint_node_t *constraint,\n\t\t\t\t
      \      char **r_buf, unsigned int flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/services.c:910,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/services.c:912,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/services.c:916,1
    - Dst: context_struct_compute_av
      Src: /src/selinux/libsepol/src/services.c:921,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 6
    argNames:
    - scontext
    - tcontext
    - tclass
    - requested
    - avd
    - reason
    argTypes:
    - context_struct_t*
    - context_struct_t*
    - sepol_security_class_t
    - sepol_access_vector_t
    - struct sepol_av_decision*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 890
    functionDepth: 1
    functionLinenumber: 890
    functionLinenumberEnd: 936
    functionName: type_attribute_bounds_av
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - memcpy
    - context_struct_compute_av
    - memset
    linkageType: ''
    returnType: void
    signature: "void type_attribute_bounds_av(context_struct_t *scontext,\n\t\t\t\t
      \    context_struct_t *tcontext,\n\t\t\t\t     sepol_security_class_t tclass,\n\t\t\t\t
      \    sepol_access_vector_t requested,\n\t\t\t\t     struct sepol_av_decision
      *avd,\n\t\t\t\t     unsigned int *reason)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:960,1
    - Dst: avtab_search_node
      Src: /src/selinux/libsepol/src/services.c:988,1
    - Dst: avtab_search_node_next
      Src: /src/selinux/libsepol/src/services.c:990,1
    - Dst: cond_compute_av
      Src: /src/selinux/libsepol/src/services.c:1002,1
    - Dst: constraint_expr_eval_reason
      Src: /src/selinux/libsepol/src/services.c:1019,1
    - Dst: type_attribute_bounds_av
      Src: /src/selinux/libsepol/src/services.c:1057,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 62
    argCount: 8
    argNames:
    - scontext
    - tcontext
    - tclass
    - requested
    - avd
    - reason
    - r_buf
    - flags
    argTypes:
    - context_struct_t*
    - context_struct_t*
    - sepol_security_class_t
    - sepol_access_vector_t
    - struct sepol_av_decision*
    - unsigned int*
    - char**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 942
    functionDepth: 3
    functionLinenumber: 942
    functionLinenumberEnd: 1060
    functionName: context_struct_compute_av
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 1
    functionsReached:
    - ERR
    - avtab_search_node
    - avtab_search_node_next
    - constraint_expr_eval_reason
    - type_attribute_bounds_av
    - cond_compute_av
    linkageType: ''
    returnType: int
    signature: "int context_struct_compute_av(context_struct_t *scontext,\n\t\t\t\t
      \    context_struct_t *tcontext,\n\t\t\t\t     sepol_security_class_t tclass,\n\t\t\t\t
      \    sepol_access_vector_t requested,\n\t\t\t\t     struct sepol_av_decision
      *avd,\n\t\t\t\t     unsigned int *reason, char **r_buf,\n\t\t\t\t     unsigned
      int flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: avtab_search_node
      Src: /src/selinux/libsepol/src/services.c:988,1
    - Dst: avtab_search_node_next
      Src: /src/selinux/libsepol/src/services.c:990,1
    - Dst: cond_compute_av
      Src: /src/selinux/libsepol/src/services.c:1002,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 984
    functionDepth: 1
    functionLinenumber: 984
    functionLinenumberEnd: 1004
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 6
    functionsReached:
    - avtab_search_node
    - cond_compute_av
    - avtab_search_node_next
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(sattr, snode, i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: avtab_search_node
      Src: /src/selinux/libsepol/src/services.c:988,1
    - Dst: avtab_search_node_next
      Src: /src/selinux/libsepol/src/services.c:990,1
    - Dst: cond_compute_av
      Src: /src/selinux/libsepol/src/services.c:1002,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 1003
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 6
    functionsReached:
    - avtab_search_node
    - cond_compute_av
    - avtab_search_node_next
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(tattr, tnode, j)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1080,1
    - Dst: sepol_sidtab_search
      Src: /src/selinux/libsepol/src/services.c:1085,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1087,1
    - Dst: sepol_sidtab_search
      Src: /src/selinux/libsepol/src/services.c:1091,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1093,1
    - Dst: sepol_sidtab_search
      Src: /src/selinux/libsepol/src/services.c:1097,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1099,1
    - Dst: constraint_expr_eval_reason
      Src: /src/selinux/libsepol/src/services.c:1115,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 6
    argNames:
    - oldsid
    - newsid
    - tasksid
    - tclass
    - reason_buf
    - flags
    argTypes:
    - sepol_security_id_t
    - sepol_security_id_t
    - sepol_security_id_t
    - sepol_security_class_t
    - char**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1066
    functionDepth: 3
    functionLinenumber: 1066
    functionLinenumberEnd: 1123
    functionName: sepol_validate_transition_reason_buffer
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - sepol_sidtab_search
    - ERR
    - constraint_expr_eval_reason
    linkageType: ''
    returnType: int
    signature: "int sepol_validate_transition_reason_buffer(sepol_security_id_t oldsid,\n\t\t\t\t\t
      \   sepol_security_id_t newsid,\n\t\t\t\t\t    sepol_security_id_t tasksid,\n\t\t\t\t\t
      \   sepol_security_class_t tclass,\n\t\t\t\t\t    char **reason_buf,\n\t\t\t\t\t
      \   unsigned int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sepol_sidtab_search
      Src: /src/selinux/libsepol/src/services.c:1133,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1135,1
    - Dst: sepol_sidtab_search
      Src: /src/selinux/libsepol/src/services.c:1139,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1141,1
    - Dst: context_struct_compute_av
      Src: /src/selinux/libsepol/src/services.c:1146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - ssid
    - tsid
    - tclass
    - requested
    - avd
    - reason
    argTypes:
    - sepol_security_id_t
    - sepol_security_id_t
    - sepol_security_class_t
    - sepol_access_vector_t
    - struct sepol_av_decision*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1125
    functionDepth: 4
    functionLinenumber: 1125
    functionLinenumberEnd: 1150
    functionName: sepol_compute_av_reason
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - sepol_sidtab_search
    - ERR
    - context_struct_compute_av
    linkageType: ''
    returnType: int
    signature: "int sepol_compute_av_reason(sepol_security_id_t ssid, sepol_security_id_t
      tsid,\n\t\t\t    sepol_security_class_t tclass,\n\t\t\t    sepol_access_vector_t
      requested,\n\t\t\t    struct sepol_av_decision *avd, unsigned int *reason)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sepol_sidtab_search
      Src: /src/selinux/libsepol/src/services.c:1168,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1170,1
    - Dst: sepol_sidtab_search
      Src: /src/selinux/libsepol/src/services.c:1174,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1176,1
    - Dst: context_struct_compute_av
      Src: /src/selinux/libsepol/src/services.c:1192,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 8
    argNames:
    - ssid
    - tsid
    - tclass
    - requested
    - avd
    - reason
    - reason_buf
    - flags
    argTypes:
    - sepol_security_id_t
    - sepol_security_id_t
    - sepol_security_class_t
    - sepol_access_vector_t
    - struct sepol_av_decision*
    - unsigned int*
    - char**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1157
    functionDepth: 4
    functionLinenumber: 1157
    functionLinenumberEnd: 1196
    functionName: sepol_compute_av_reason_buffer
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - sepol_sidtab_search
    - ERR
    - context_struct_compute_av
    linkageType: ''
    returnType: int
    signature: "int sepol_compute_av_reason_buffer(sepol_security_id_t ssid,\n\t\t\t\t
      \  sepol_security_id_t tsid,\n\t\t\t\t   sepol_security_class_t tclass,\n\t\t\t\t
      \  sepol_access_vector_t requested,\n\t\t\t\t   struct sepol_av_decision *avd,\n\t\t\t\t
      \  unsigned int *reason, char **reason_buf,\n\t\t\t\t   unsigned int flags)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_compute_av_reason
      Src: /src/selinux/libsepol/src/services.c:1204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ssid
    - tsid
    - tclass
    - requested
    - avd
    argTypes:
    - sepol_security_id_t
    - sepol_security_id_t
    - sepol_security_class_t
    - sepol_access_vector_t
    - struct sepol_av_decision*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1198
    functionDepth: 5
    functionLinenumber: 1198
    functionLinenumberEnd: 1206
    functionName: sepol_compute_av
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - sepol_compute_av_reason
    linkageType: ''
    returnType: int
    signature: "int sepol_compute_av(sepol_security_id_t ssid, sepol_security_id_t
      tsid,\n\t\t     sepol_security_class_t tclass,\n\t\t     sepol_access_vector_t
      requested,\n\t\t     struct sepol_av_decision *avd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/services.c:1217,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - class_name
    - tclass
    argTypes:
    - char*
    - sepol_security_class_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1212
    functionDepth: 0
    functionLinenumber: 1212
    functionLinenumberEnd: 1224
    functionName: sepol_string_to_security_class
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: "int sepol_string_to_security_class(const char *class_name,\n\t\t\t\t
      \  sepol_security_class_t *tclass)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1237,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/services.c:1243,1
    - Dst: UINT32_C
      Src: /src/selinux/libsepol/src/services.c:1246,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/services.c:1253,1
    - Dst: UINT32_C
      Src: /src/selinux/libsepol/src/services.c:1257,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1261,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - tclass
    - perm_name
    - av
    argTypes:
    - sepol_security_class_t
    - char*
    - sepol_access_vector_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1230
    functionDepth: 0
    functionLinenumber: 1230
    functionLinenumberEnd: 1263
    functionName: sepol_string_to_av_perm
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - ERR
    - UINT32_C
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: "int sepol_string_to_av_perm(sepol_security_class_t tclass,\n\t\t\t
      \   const char *perm_name, sepol_access_vector_t *av)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sepol_av_to_string
      Src: /src/selinux/libsepol/src/services.c:1269,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/services.c:1272,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/services.c:1275,1
    - Dst: strcpy
      Src: /src/selinux/libsepol/src/services.c:1277,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/src/services.c:1279,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:1281,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/src/services.c:1283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - tclass
    - av
    argTypes:
    - sepol_security_class_t
    - sepol_access_vector_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1265
    functionDepth: 1
    functionLinenumber: 1265
    functionLinenumberEnd: 1287
    functionName: sepol_av_perm_to_string
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - strcpy
    - sepol_av_to_string
    - sprintf
    - free
    - memset
    - strlen
    linkageType: ''
    returnType: char
    signature: "char *sepol_av_perm_to_string(sepol_security_class_t tclass,\n\t\t\t\t
      \   sepol_access_vector_t av)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_sidtab_search
      Src: /src/selinux/libsepol/src/services.c:1303,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1305,1
    - Dst: context_to_string
      Src: /src/selinux/libsepol/src/services.c:1309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - sid
    - scontext
    - scontext_len
    argTypes:
    - sepol_security_id_t
    - sepol_security_context_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1296
    functionDepth: 1
    functionLinenumber: 1296
    functionLinenumberEnd: 1312
    functionName: sepol_sid_to_context
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - sepol_sidtab_search
    - ERR
    - context_to_string
    linkageType: ''
    returnType: int
    signature: "int sepol_sid_to_context(sepol_security_id_t sid,\n\t\t\t sepol_security_context_t
      *scontext,\n\t\t\t size_t *scontext_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: context_from_string
      Src: /src/selinux/libsepol/src/services.c:1324,1
    - Dst: sepol_sidtab_context_to_sid
      Src: /src/selinux/libsepol/src/services.c:1329,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/services.c:1332,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:1333,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/services.c:1338,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:1339,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1341,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - scontext
    - scontext_len
    - sid
    argTypes:
    - sepol_const_security_context_t
    - size_t
    - sepol_security_id_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1318
    functionDepth: 1
    functionLinenumber: 1318
    functionLinenumberEnd: 1343
    functionName: sepol_context_to_sid
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - ERR
    - context_destroy
    - sepol_sidtab_context_to_sid
    - free
    - context_from_string
    linkageType: ''
    returnType: int
    signature: "int sepol_context_to_sid(sepol_const_security_context_t scontext,\n\t\t\t
      size_t scontext_len, sepol_security_id_t *sid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: context_to_string
      Src: /src/selinux/libsepol/src/services.c:1355,1
    - Dst: context_to_string
      Src: /src/selinux/libsepol/src/services.c:1356,1
    - Dst: context_to_string
      Src: /src/selinux/libsepol/src/services.c:1357,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1358,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:1362,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:1363,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:1364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - scontext
    - tcontext
    - tclass
    - newcontext
    argTypes:
    - context_struct_t*
    - context_struct_t*
    - sepol_security_class_t
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1345
    functionDepth: 1
    functionLinenumber: 1345
    functionLinenumberEnd: 1367
    functionName: compute_sid_handle_invalid_context
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - ERR
    - free
    - context_to_string
    linkageType: ''
    returnType: int
    signature: "int compute_sid_handle_invalid_context(\n\tcontext_struct_t *scontext,
      context_struct_t *tcontext,\n\tsepol_security_class_t tclass, context_struct_t
      *newcontext)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: sepol_sidtab_search
      Src: /src/selinux/libsepol/src/services.c:1381,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1383,1
    - Dst: sepol_sidtab_search
      Src: /src/selinux/libsepol/src/services.c:1386,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1388,1
    - Dst: context_init
      Src: /src/selinux/libsepol/src/services.c:1395,1
    - Dst: avtab_search
      Src: /src/selinux/libsepol/src/services.c:1447,1
    - Dst: avtab_search_node
      Src: /src/selinux/libsepol/src/services.c:1451,1
    - Dst: avtab_search_node_next
      Src: /src/selinux/libsepol/src/services.c:1453,1
    - Dst: mls_compute_sid
      Src: /src/selinux/libsepol/src/services.c:1483,1
    - Dst: policydb_context_isvalid
      Src: /src/selinux/libsepol/src/services.c:1489,1
    - Dst: compute_sid_handle_invalid_context
      Src: /src/selinux/libsepol/src/services.c:1490,1
    - Dst: sepol_sidtab_context_to_sid
      Src: /src/selinux/libsepol/src/services.c:1496,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/services.c:1498,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 89
    argCount: 5
    argNames:
    - ssid
    - tsid
    - tclass
    - specified
    - out_sid
    argTypes:
    - sepol_security_id_t
    - sepol_security_id_t
    - sepol_security_class_t
    - uint32_t
    - sepol_security_id_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1369
    functionDepth: 2
    functionLinenumber: 1369
    functionLinenumberEnd: 1500
    functionName: sepol_compute_sid
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - sepol_sidtab_search
    - ERR
    - avtab_search_node
    - context_init
    - policydb_context_isvalid
    - compute_sid_handle_invalid_context
    - sepol_sidtab_context_to_sid
    - avtab_search
    - context_destroy
    - avtab_search_node_next
    - mls_compute_sid
    linkageType: ''
    returnType: int
    signature: "int sepol_compute_sid(sepol_security_id_t ssid, sepol_security_id_t
      tsid,\n\t\t\t     sepol_security_class_t tclass, uint32_t specified,\n\t\t\t
      \    sepol_security_id_t *out_sid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_compute_sid
      Src: /src/selinux/libsepol/src/services.c:1510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ssid
    - tsid
    - tclass
    - out_sid
    argTypes:
    - sepol_security_id_t
    - sepol_security_id_t
    - sepol_security_class_t
    - sepol_security_id_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1506
    functionDepth: 3
    functionLinenumber: 1506
    functionLinenumberEnd: 1511
    functionName: sepol_transition_sid
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - sepol_compute_sid
    linkageType: ''
    returnType: int
    signature: "int sepol_transition_sid(sepol_security_id_t ssid, sepol_security_id_t
      tsid,\n\t\t\t sepol_security_class_t tclass,\n\t\t\t sepol_security_id_t *out_sid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_compute_sid
      Src: /src/selinux/libsepol/src/services.c:1522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ssid
    - tsid
    - tclass
    - out_sid
    argTypes:
    - sepol_security_id_t
    - sepol_security_id_t
    - sepol_security_class_t
    - sepol_security_id_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1523
      start: 1518
    functionDepth: 3
    functionLinenumber: 1518
    functionLinenumberEnd: 1523
    functionName: sepol_member_sid
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - sepol_compute_sid
    linkageType: ''
    returnType: int
    signature: "int sepol_member_sid(sepol_security_id_t ssid, sepol_security_id_t
      tsid,\n\t\t     sepol_security_class_t tclass,\n\t\t     sepol_security_id_t
      *out_sid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_compute_sid
      Src: /src/selinux/libsepol/src/services.c:1533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ssid
    - tsid
    - tclass
    - out_sid
    argTypes:
    - sepol_security_id_t
    - sepol_security_id_t
    - sepol_security_class_t
    - sepol_security_id_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1529
    functionDepth: 3
    functionLinenumber: 1529
    functionLinenumberEnd: 1534
    functionName: sepol_change_sid
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - sepol_compute_sid
    linkageType: ''
    returnType: int
    signature: "int sepol_change_sid(sepol_security_id_t ssid, sepol_security_id_t
      tsid,\n\t\t     sepol_security_class_t tclass,\n\t\t     sepol_security_id_t
      *out_sid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/services.c:1549,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1551,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1555,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1541
    functionDepth: 0
    functionLinenumber: 1541
    functionLinenumberEnd: 1559
    functionName: validate_perm
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: int validate_perm(hashtab_key_t key, hashtab_datum_t datum, void *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/services.c:1574,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1576,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1580,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1585,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/services.c:1592,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1595,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/services.c:1602,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1604,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1566
    functionDepth: 0
    functionLinenumber: 1566
    functionLinenumberEnd: 1608
    functionName: validate_class
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_map
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: int validate_class(hashtab_key_t key, hashtab_datum_t datum, void *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_sidtab_insert
      Src: /src/selinux/libsepol/src/services.c:1616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sid
    - context
    - arg
    argTypes:
    - sepol_security_id_t
    - context_struct_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1611
    functionDepth: 1
    functionLinenumber: 1611
    functionLinenumberEnd: 1617
    functionName: clone_sid
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - sepol_sidtab_insert
    linkageType: ''
    returnType: int
    signature: "int clone_sid(sepol_security_id_t sid, context_struct_t *context,\n\t\t
      \    void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: context_to_string
      Src: /src/selinux/libsepol/src/services.c:1628,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1629,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:1630,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - context
    argTypes:
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1619
    functionDepth: 1
    functionLinenumber: 1619
    functionLinenumberEnd: 1633
    functionName: convert_context_handle_invalid_context
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - ERR
    - free
    - context_to_string
    linkageType: ''
    returnType: int
    signature: int convert_context_handle_invalid_context(context_struct_t *context)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: context_cpy
      Src: /src/selinux/libsepol/src/services.c:1661,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/services.c:1665,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/services.c:1675,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/services.c:1684,1
    - Dst: mls_convert_context
      Src: /src/selinux/libsepol/src/services.c:1692,1
    - Dst: policydb_context_isvalid
      Src: /src/selinux/libsepol/src/services.c:1697,1
    - Dst: convert_context_handle_invalid_context
      Src: /src/selinux/libsepol/src/services.c:1698,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/services.c:1703,1
    - Dst: context_to_string
      Src: /src/selinux/libsepol/src/services.c:1707,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/services.c:1708,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1709,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:1710,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - key
    - c
    - p
    argTypes:
    - sepol_security_id_t
    - context_struct_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1647
    functionDepth: 2
    functionLinenumber: 1647
    functionLinenumberEnd: 1712
    functionName: convert_context
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 1
    functionsReached:
    - ERR
    - context_cpy
    - policydb_context_isvalid
    - context_destroy
    - hashtab_search
    - convert_context_handle_invalid_context
    - free
    - context_to_string
    - mls_convert_context
    linkageType: ''
    returnType: int
    signature: "int convert_context(sepol_security_id_t key __attribute__((unused)),\n\t\t\t
      \  context_struct_t *c, void *p)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fread
      Src: /src/selinux/libsepol/src/services.c:1721,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/services.c:1731,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - buf
    - fp
    - bytes
    argTypes:
    - void*
    - struct policy_file*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1715
    functionDepth: 0
    functionLinenumber: 1715
    functionLinenumberEnd: 1740
    functionName: next_entry
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - fread
    - memcpy
    linkageType: ''
    returnType: int
    signature: int next_entry(void *buf, struct policy_file *fp, size_t bytes)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_mul_overflow
      Src: /src/selinux/libsepol/src/services.c:1746,1
    - Dst: fwrite
      Src: /src/selinux/libsepol/src/services.c:1751,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/services.c:1758,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - ptr
    - size
    - n
    - fp
    argTypes:
    - void*
    - size_t
    - size_t
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1769
      start: 1742
    functionDepth: 0
    functionLinenumber: 1742
    functionLinenumberEnd: 1769
    functionName: put_entry
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - fwrite
    - __builtin_mul_overflow
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t put_entry(const void *ptr, size_t size, size_t n, struct policy_file
      *fp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: zero_or_saturated
      Src: /src/selinux/libsepol/src/services.c:1784,1
    - Dst: exceeds_available_bytes
      Src: /src/selinux/libsepol/src/services.c:1785,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/services.c:1790,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/services.c:1798,1
    - Dst: memchr
      Src: /src/selinux/libsepol/src/services.c:1803,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - strp
    - fp
    - len
    argTypes:
    - char**
    - struct policy_file*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1779
    functionDepth: 1
    functionLinenumber: 1779
    functionLinenumberEnd: 1810
    functionName: str_read
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - memchr
    - zero_or_saturated
    - malloc
    - exceeds_available_bytes
    - next_entry
    linkageType: ''
    returnType: int
    signature: int str_read(char **strp, struct policy_file *fp, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: policy_file_init
      Src: /src/selinux/libsepol/src/services.c:1837,1
    - Dst: policydb_init
      Src: /src/selinux/libsepol/src/services.c:1843,1
    - Dst: policydb_read
      Src: /src/selinux/libsepol/src/services.c:1846,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/src/services.c:1847,1
    - Dst: sepol_sidtab_init
      Src: /src/selinux/libsepol/src/services.c:1851,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/services.c:1854,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/services.c:1856,1
    - Dst: sepol_sidtab_shutdown
      Src: /src/selinux/libsepol/src/services.c:1862,1
    - Dst: sepol_sidtab_map
      Src: /src/selinux/libsepol/src/services.c:1863,1
    - Dst: sepol_sidtab_map_remove_on_error
      Src: /src/selinux/libsepol/src/services.c:1872,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/services.c:1875,1
    - Dst: sepol_sidtab_set
      Src: /src/selinux/libsepol/src/services.c:1876,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/services.c:1879,1
    - Dst: sepol_sidtab_set
      Src: /src/selinux/libsepol/src/services.c:1880,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/src/services.c:1883,1
    - Dst: sepol_sidtab_destroy
      Src: /src/selinux/libsepol/src/services.c:1884,1
    - Dst: sepol_sidtab_destroy
      Src: /src/selinux/libsepol/src/services.c:1889,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/src/services.c:1890,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1892
      start: 1829
    functionDepth: 1
    functionLinenumber: 1829
    functionLinenumberEnd: 1892
    functionName: sepol_load_policy
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - policydb_read
    - ERR
    - policy_file_init
    - hashtab_map
    - sepol_sidtab_init
    - sepol_sidtab_set
    - sepol_sidtab_shutdown
    - policydb_init
    - sepol_sidtab_map
    - policydb_destroy
    - memcpy
    - sepol_sidtab_destroy
    - sepol_sidtab_map_remove_on_error
    linkageType: ''
    returnType: int
    signature: int sepol_load_policy(void *data, size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/services.c:1909,1
    - Dst: sepol_sidtab_context_to_sid
      Src: /src/selinux/libsepol/src/services.c:1916,1
    - Dst: sepol_sidtab_context_to_sid
      Src: /src/selinux/libsepol/src/services.c:1920,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - name
    - fs_sid
    - file_sid
    argTypes:
    - char*
    - sepol_security_id_t*
    - sepol_security_id_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1901
    functionDepth: 1
    functionLinenumber: 1901
    functionLinenumberEnd: 1934
    functionName: sepol_fs_sid
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - sepol_sidtab_context_to_sid
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int sepol_fs_sid(char *name, sepol_security_id_t *fs_sid,\n\t\t sepol_security_id_t
      *file_sid)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sepol_sidtab_context_to_sid
      Src: /src/selinux/libsepol/src/services.c:1957,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - subnet_prefix
    - pkey
    - out_sid
    argTypes:
    - uint64_t
    - uint16_t
    - sepol_security_id_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1940
    functionDepth: 1
    functionLinenumber: 1940
    functionLinenumberEnd: 1969
    functionName: sepol_ibpkey_sid
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - sepol_sidtab_context_to_sid
    linkageType: ''
    returnType: int
    signature: "int sepol_ibpkey_sid(uint64_t subnet_prefix, uint16_t pkey,\n\t\t
      \    sepol_security_id_t *out_sid)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/services.c:1984,1
    - Dst: sepol_sidtab_context_to_sid
      Src: /src/selinux/libsepol/src/services.c:1991,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - dev_name
    - port
    - out_sid
    argTypes:
    - char*
    - uint8_t
    - sepol_security_id_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2003
      start: 1975
    functionDepth: 1
    functionLinenumber: 1975
    functionLinenumberEnd: 2003
    functionName: sepol_ibendport_sid
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - sepol_sidtab_context_to_sid
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int sepol_ibendport_sid(char *dev_name, uint8_t port,\n\t\t\tsepol_security_id_t
      *out_sid)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sepol_sidtab_context_to_sid
      Src: /src/selinux/libsepol/src/services.c:2026,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 5
    argNames:
    - domain
    - type
    - protocol
    - port
    - out_sid
    argTypes:
    - uint16_t
    - uint16_t
    - uint8_t
    - uint16_t
    - sepol_security_id_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 2009
    functionDepth: 1
    functionLinenumber: 2009
    functionLinenumberEnd: 2038
    functionName: sepol_port_sid
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - sepol_sidtab_context_to_sid
    linkageType: ''
    returnType: int
    signature: "int sepol_port_sid(uint16_t domain __attribute__((unused)),\n\t\t
      \  uint16_t type __attribute__((unused)), uint8_t protocol,\n\t\t   uint16_t
      port, sepol_security_id_t *out_sid)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/services.c:2055,1
    - Dst: sepol_sidtab_context_to_sid
      Src: /src/selinux/libsepol/src/services.c:2062,1
    - Dst: sepol_sidtab_context_to_sid
      Src: /src/selinux/libsepol/src/services.c:2066,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - name
    - if_sid
    - msg_sid
    argTypes:
    - char*
    - sepol_security_id_t*
    - sepol_security_id_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2080
      start: 2047
    functionDepth: 1
    functionLinenumber: 2047
    functionLinenumberEnd: 2080
    functionName: sepol_netif_sid
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - sepol_sidtab_context_to_sid
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int sepol_netif_sid(char *name, sepol_security_id_t *if_sid,\n\t\t
      \   sepol_security_id_t *msg_sid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - input
    - addr
    - mask
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2082
    functionDepth: 0
    functionLinenumber: 2082
    functionLinenumberEnd: 2093
    functionName: match_ipv6_addrmask
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int match_ipv6_addrmask(uint32_t *input, uint32_t *addr, uint32_t *mask)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: match_ipv6_addrmask
      Src: /src/selinux/libsepol/src/services.c:2135,1
    - Dst: sepol_sidtab_context_to_sid
      Src: /src/selinux/libsepol/src/services.c:2149,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 4
    argNames:
    - domain
    - addrp
    - addrlen
    - out_sid
    argTypes:
    - uint16_t
    - void*
    - size_t
    - sepol_security_id_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2101
    functionDepth: 1
    functionLinenumber: 2101
    functionLinenumberEnd: 2161
    functionName: sepol_node_sid
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - match_ipv6_addrmask
    - sepol_sidtab_context_to_sid
    linkageType: ''
    returnType: int
    signature: "int sepol_node_sid(uint16_t domain, void *addrp, size_t addrlen,\n\t\t
      \  sepol_security_id_t *out_sid)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sepol_sidtab_search
      Src: /src/selinux/libsepol/src/services.c:2185,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/services.c:2191,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/services.c:2199,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/services.c:2205,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/services.c:2208,1
    - Dst: mls_setup_user_range
      Src: /src/selinux/libsepol/src/services.c:2213,1
    - Dst: context_struct_compute_av
      Src: /src/selinux/libsepol/src/services.c:2217,1
    - Dst: sepol_sidtab_context_to_sid
      Src: /src/selinux/libsepol/src/services.c:2223,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:2226,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/services.c:2233,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:2237,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/services.c:2240,1
    - Dst: free
      Src: /src/selinux/libsepol/src/services.c:2242,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 4
    argNames:
    - fromsid
    - username
    - sids
    - nel
    argTypes:
    - sepol_security_id_t
    - char*
    - sepol_security_id_t**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2254
      start: 2172
    functionDepth: 4
    functionLinenumber: 2172
    functionLinenumberEnd: 2254
    functionName: sepol_get_user_sids
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - sepol_sidtab_search
    - sepol_sidtab_context_to_sid
    - hashtab_search
    - ebitmap_for_each_positive_bit
    - mls_setup_user_range
    - free
    - calloc
    - memcpy
    - context_struct_compute_av
    linkageType: ''
    returnType: int
    signature: "int sepol_get_user_sids(sepol_security_id_t fromsid, char *username,\n\t\t\tsepol_security_id_t
      **sids, uint32_t *nel)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/services.c:2270,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/services.c:2282,1
    - Dst: strncmp
      Src: /src/selinux/libsepol/src/services.c:2284,1
    - Dst: sepol_sidtab_context_to_sid
      Src: /src/selinux/libsepol/src/services.c:2295,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 4
    argNames:
    - fstype
    - path
    - sclass
    - sid
    argTypes:
    - char*
    - char*
    - sepol_security_class_t
    - sepol_security_id_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2304
      start: 2261
    functionDepth: 1
    functionLinenumber: 2261
    functionLinenumberEnd: 2304
    functionName: sepol_genfs_sid
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - strncmp
    - sepol_sidtab_context_to_sid
    - strlen
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int sepol_genfs_sid(const char *fstype, const char *path,\n\t\t    sepol_security_class_t
      sclass, sepol_security_id_t *sid)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/services.c:2314,1
    - Dst: sepol_sidtab_context_to_sid
      Src: /src/selinux/libsepol/src/services.c:2322,1
    - Dst: sepol_genfs_sid
      Src: /src/selinux/libsepol/src/services.c:2329,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - fstype
    - behavior
    - sid
    argTypes:
    - char*
    - unsigned int*
    - sepol_security_id_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2340
      start: 2306
    functionDepth: 2
    functionLinenumber: 2306
    functionLinenumberEnd: 2340
    functionName: sepol_fs_use
    functionSourceFile: /src/selinux/libsepol/src/services.c
    functionUses: 0
    functionsReached:
    - sepol_genfs_sid
    - sepol_sidtab_context_to_sid
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int sepol_fs_use(const char *fstype, unsigned int *behavior,\n\t\t
      sepol_security_id_t *sid)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:69,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:70,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:75,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:77,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:82,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:83,1
    - Dst: cpu_to_le64
      Src: /src/selinux/libsepol/src/write.c:86,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:87,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - e
    - fp
    argTypes:
    - ebitmap_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 93
    functionName: ebitmap_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - cpu_to_le32
    - cpu_to_le64
    - put_entry
    linkageType: ''
    returnType: int
    signature: int ebitmap_write(ebitmap_t *e, struct policy_file *fp)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_le16
      Src: /src/selinux/libsepol/src/write.c:105,1
    - Dst: cpu_to_le16
      Src: /src/selinux/libsepol/src/write.c:106,1
    - Dst: cpu_to_le16
      Src: /src/selinux/libsepol/src/write.c:107,1
    - Dst: cpu_to_le16
      Src: /src/selinux/libsepol/src/write.c:108,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:109,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/write.c:114,1
    - Dst: policydb_has_cond_xperms_feature
      Src: /src/selinux/libsepol/src/write.c:121,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/write.c:123,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/write.c:132,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:141,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:145,1
    - Dst: ARRAY_SIZE
      Src: /src/selinux/libsepol/src/write.c:148,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:149,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:150,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:154,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:155,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 4
    argNames:
    - p
    - cur
    - fp
    - conditional
    argTypes:
    - policydb_t*
    - avtab_ptr_t
    - struct policy_file*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 161
    functionName: avtab_write_item
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - ERR
    - policydb_has_cond_xperms_feature
    - ARRAY_SIZE
    - cpu_to_le16
    - put_entry
    - cpu_to_le32
    linkageType: ''
    returnType: int
    signature: "int avtab_write_item(policydb_t *p, avtab_ptr_t cur,\n\t\t\t    struct
      policy_file *fp, unsigned conditional)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:171,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:172,1
    - Dst: avtab_write_item
      Src: /src/selinux/libsepol/src/write.c:178,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - p
    - a
    - fp
    argTypes:
    - struct policydb*
    - avtab_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 188
    functionName: avtab_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - avtab_write_item
    - cpu_to_le32
    - put_entry
    linkageType: ''
    returnType: int
    signature: int avtab_write(struct policydb *p, avtab_t *a, struct policy_file
      *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:204,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:205,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:206,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:211,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:212,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - l
    - fp
    argTypes:
    - mls_semantic_level_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 219
    functionName: mls_write_semantic_level_helper
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - cpu_to_le32
    - put_entry
    linkageType: ''
    returnType: int
    signature: "int mls_write_semantic_level_helper(mls_semantic_level_t *l,\n\t\t\t\t\t
      \  struct policy_file *fp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mls_write_semantic_level_helper
      Src: /src/selinux/libsepol/src/write.c:230,1
    - Dst: mls_write_semantic_level_helper
      Src: /src/selinux/libsepol/src/write.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - r
    - fp
    argTypes:
    - mls_semantic_range_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 237
    functionName: mls_write_semantic_range_helper
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - mls_write_semantic_level_helper
    linkageType: ''
    returnType: int
    signature: "int mls_write_semantic_range_helper(mls_semantic_range_t *r,\n\t\t\t\t\t
      \  struct policy_file *fp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:248,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:249,1
    - Dst: ebitmap_write
      Src: /src/selinux/libsepol/src/write.c:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - l
    - fp
    argTypes:
    - mls_level_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 257
    functionName: mls_write_level
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - ebitmap_write
    - cpu_to_le32
    - put_entry
    linkageType: ''
    returnType: int
    signature: int mls_write_level(mls_level_t *l, struct policy_file *fp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mls_level_eq
      Src: /src/selinux/libsepol/src/write.c:269,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:272,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:274,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:275,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:277,1
    - Dst: ebitmap_write
      Src: /src/selinux/libsepol/src/write.c:281,1
    - Dst: ebitmap_write
      Src: /src/selinux/libsepol/src/write.c:284,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - r
    - fp
    argTypes:
    - mls_range_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 288
    functionName: mls_write_range_helper
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - mls_level_eq
    - ebitmap_write
    - cpu_to_le32
    - put_entry
    linkageType: ''
    returnType: int
    signature: int mls_write_range_helper(mls_range_t *r, struct policy_file *fp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsepol/src/write.c:300,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:302,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:303,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:304,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:308,1
    - Dst: mls_write_level
      Src: /src/selinux/libsepol/src/write.c:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - key
    - datum
    - ptr
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 290
    functionDepth: 3
    functionLinenumber: 290
    functionLinenumberEnd: 316
    functionName: sens_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - mls_write_level
    - cpu_to_le32
    - strlen
    - put_entry
    linkageType: ''
    returnType: int
    signature: int sens_write(hashtab_key_t key, hashtab_datum_t datum, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsepol/src/write.c:328,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:330,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:331,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:332,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:333,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - key
    - datum
    - ptr
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 342
    functionName: cat_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - cpu_to_le32
    - strlen
    - put_entry
    linkageType: ''
    returnType: int
    signature: int cat_write(hashtab_key_t key, hashtab_datum_t datum, void *ptr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:359,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:360,1
    - Dst: WARN
      Src: /src/selinux/libsepol/src/write.c:366,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:373,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:374,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:375,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:376,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:380,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:381,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 388
    functionName: role_trans_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - WARN
    - cpu_to_le32
    - put_entry
    linkageType: ''
    returnType: int
    signature: int role_trans_write(policydb_t *p, struct policy_file *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:399,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:400,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:404,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:405,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:406,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - r
    - fp
    argTypes:
    - role_allow_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 411
    functionName: role_allow_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - cpu_to_le32
    - put_entry
    linkageType: ''
    returnType: int
    signature: int role_allow_write(role_allow_t *r, struct policy_file *fp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsepol/src/write.c:422,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/write.c:424,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:425,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:426,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:430,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:434,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:435,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:436,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:437,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:438,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - key
    - data
    - ptr
    argTypes:
    - hashtab_key_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 447
    functionName: filename_write_one_compat
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - ebitmap_for_each_positive_bit
    - cpu_to_le32
    - strlen
    - put_entry
    linkageType: ''
    returnType: int
    signature: int filename_write_one_compat(hashtab_key_t key, void *data, void *ptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsepol/src/write.c:457,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:458,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:459,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:463,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:474,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:475,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:476,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:477,1
    - Dst: ebitmap_write
      Src: /src/selinux/libsepol/src/write.c:483,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:486,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:487,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - key
    - data
    - ptr
    argTypes:
    - hashtab_key_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 449
    functionDepth: 2
    functionLinenumber: 449
    functionLinenumberEnd: 495
    functionName: filename_write_one
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - ebitmap_write
    - cpu_to_le32
    - strlen
    - put_entry
    linkageType: ''
    returnType: int
    signature: int filename_write_one(hashtab_key_t key, void *data, void *ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:507,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:508,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/write.c:512,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:515,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:516,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/write.c:520,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - struct policydb*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 523
    functionName: filename_trans_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - hashtab_map
    - cpu_to_le32
    - put_entry
    linkageType: ''
    returnType: int
    signature: int filename_trans_write(struct policydb *p, void *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_write
      Src: /src/selinux/libsepol/src/write.c:530,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:533,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:534,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - x
    - fp
    argTypes:
    - role_set_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 525
    functionDepth: 2
    functionLinenumber: 525
    functionLinenumberEnd: 539
    functionName: role_set_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - ebitmap_write
    - cpu_to_le32
    - put_entry
    linkageType: ''
    returnType: int
    signature: int role_set_write(role_set_t *x, struct policy_file *fp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_write
      Src: /src/selinux/libsepol/src/write.c:546,1
    - Dst: ebitmap_write
      Src: /src/selinux/libsepol/src/write.c:548,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:551,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:552,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - x
    - fp
    argTypes:
    - type_set_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 557
    functionName: type_set_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - ebitmap_write
    - cpu_to_le32
    - put_entry
    linkageType: ''
    returnType: int
    signature: int type_set_write(type_set_t *x, struct policy_file *fp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsepol/src/write.c:570,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:572,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:573,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:574,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:575,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:578,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:584,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:585,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - key
    - datum
    - ptr
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 591
    functionName: cond_write_bool
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - cpu_to_le32
    - strlen
    - put_entry
    linkageType: ''
    returnType: int
    signature: int cond_write_bool(hashtab_key_t key, hashtab_datum_t datum, void
      *ptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:616,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:617,1
    - Dst: avtab_write_item
      Src: /src/selinux/libsepol/src/write.c:628,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - p
    - list
    - fp
    argTypes:
    - policydb_t*
    - cond_av_list_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 635
    functionName: cond_write_av_list
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - avtab_write_item
    - cpu_to_le32
    - put_entry
    linkageType: ''
    returnType: int
    signature: "int cond_write_av_list(policydb_t *p, cond_av_list_t *list,\n\t\t\t
      \     struct policy_file *fp)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:644,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:645,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:654,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:655,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:662,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:663,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:664,1
    - Dst: cond_write_av_list
      Src: /src/selinux/libsepol/src/write.c:670,1
    - Dst: cond_write_av_list
      Src: /src/selinux/libsepol/src/write.c:672,1
    - Dst: avrule_write_list
      Src: /src/selinux/libsepol/src/write.c:675,1
    - Dst: avrule_write_list
      Src: /src/selinux/libsepol/src/write.c:677,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:683,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:684,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - p
    - node
    - fp
    argTypes:
    - policydb_t*
    - cond_node_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 637
    functionDepth: 3
    functionLinenumber: 637
    functionLinenumberEnd: 690
    functionName: cond_write_node
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - avrule_write_list
    - cond_write_av_list
    - cpu_to_le32
    - put_entry
    linkageType: ''
    returnType: int
    signature: "int cond_write_node(policydb_t *p, cond_node_t *node,\n\t\t\t   struct
      policy_file *fp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:702,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:703,1
    - Dst: cond_write_node
      Src: /src/selinux/libsepol/src/write.c:708,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - p
    - list
    - fp
    argTypes:
    - policydb_t*
    - cond_list_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 692
    functionDepth: 4
    functionLinenumber: 692
    functionLinenumberEnd: 712
    functionName: cond_write_list
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - cond_write_node
    - cpu_to_le32
    - put_entry
    linkageType: ''
    returnType: int
    signature: "int cond_write_list(policydb_t *p, cond_list_t *list,\n\t\t\t   struct
      policy_file *fp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:725,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:726,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:727,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:728,1
    - Dst: mls_write_range_helper
      Src: /src/selinux/libsepol/src/write.c:734,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - p
    - c
    - fp
    argTypes:
    - struct policydb*
    - context_struct_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 718
    functionDepth: 3
    functionLinenumber: 718
    functionLinenumberEnd: 738
    functionName: context_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - mls_write_range_helper
    - cpu_to_le32
    - put_entry
    linkageType: ''
    returnType: int
    signature: "int context_write(struct policydb *p, context_struct_t *c,\n\t\t\t
      struct policy_file *fp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsepol/src/write.c:756,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:758,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:759,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:760,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:764,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - key
    - datum
    - ptr
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 769
    functionName: perm_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - cpu_to_le32
    - strlen
    - put_entry
    linkageType: ''
    returnType: int
    signature: int perm_write(hashtab_key_t key, hashtab_datum_t datum, void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsepol/src/write.c:781,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:783,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:784,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:785,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:786,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:787,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:791,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/write.c:795,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - key
    - datum
    - ptr
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 799
    functionName: common_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - hashtab_map
    - cpu_to_le32
    - strlen
    - put_entry
    linkageType: ''
    returnType: int
    signature: int common_write(hashtab_key_t key, hashtab_datum_t datum, void *ptr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:814,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:815,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:816,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:820,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:821,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:822,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:823,1
    - Dst: ebitmap_write
      Src: /src/selinux/libsepol/src/write.c:831,1
    - Dst: type_set_write
      Src: /src/selinux/libsepol/src/write.c:835,1
    - Dst: type_set_write
      Src: /src/selinux/libsepol/src/write.c:839,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 4
    argNames:
    - p
    - node
    - allowxtarget
    - fp
    argTypes:
    - policydb_t*
    - constraint_node_t*
    - int
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 850
      start: 801
    functionDepth: 3
    functionLinenumber: 801
    functionLinenumberEnd: 850
    functionName: write_cons_helper
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - ebitmap_write
    - type_set_write
    - cpu_to_le32
    - put_entry
    linkageType: ''
    returnType: int
    signature: "int write_cons_helper(policydb_t *p, constraint_node_t *node,\n\t\t\t
      \    int allowxtarget, struct policy_file *fp)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsepol/src/write.c:864,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/write.c:866,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:876,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:877,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:878,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:879,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:881,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:884,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:885,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:889,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:894,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/write.c:898,1
    - Dst: write_cons_helper
      Src: /src/selinux/libsepol/src/write.c:901,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:912,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:913,1
    - Dst: write_cons_helper
      Src: /src/selinux/libsepol/src/write.c:916,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:926,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:927,1
    - Dst: WARN
      Src: /src/selinux/libsepol/src/write.c:929,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:939,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:940,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:949,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:950,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 65
    argCount: 3
    argNames:
    - key
    - datum
    - ptr
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 852
    functionDepth: 4
    functionLinenumber: 852
    functionLinenumberEnd: 956
    functionName: class_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - write_cons_helper
    - hashtab_map
    - WARN
    - put_entry
    - cpu_to_le32
    - strlen
    linkageType: ''
    returnType: int
    signature: int class_write(hashtab_key_t key, hashtab_datum_t datum, void *ptr)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsepol/src/write.c:982,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:984,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:985,1
    - Dst: policydb_has_boundary_feature
      Src: /src/selinux/libsepol/src/write.c:986,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:987,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:988,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:992,1
    - Dst: ebitmap_write
      Src: /src/selinux/libsepol/src/write.c:996,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/write.c:1011,1
    - Dst: ebitmap_write
      Src: /src/selinux/libsepol/src/write.c:1012,1
    - Dst: ebitmap_write
      Src: /src/selinux/libsepol/src/write.c:1015,1
    - Dst: type_set_write
      Src: /src/selinux/libsepol/src/write.c:1019,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1025,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1026,1
    - Dst: ebitmap_write
      Src: /src/selinux/libsepol/src/write.c:1030,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 3
    argNames:
    - key
    - datum
    - ptr
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 958
    functionDepth: 3
    functionLinenumber: 958
    functionLinenumberEnd: 1035
    functionName: role_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - policydb_has_boundary_feature
    - put_entry
    - ebitmap_write
    - cpu_to_le32
    - strlen
    - type_set_write
    linkageType: ''
    returnType: int
    signature: int role_write(hashtab_key_t key, hashtab_datum_t datum, void *ptr)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsepol/src/write.c:1048,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1050,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1051,1
    - Dst: WARN
      Src: /src/selinux/libsepol/src/write.c:1056,1
    - Dst: policydb_has_boundary_feature
      Src: /src/selinux/libsepol/src/write.c:1062,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1067,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1088,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1089,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1091,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1094,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1098,1
    - Dst: WARN
      Src: /src/selinux/libsepol/src/write.c:1101,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1108,1
    - Dst: ebitmap_write
      Src: /src/selinux/libsepol/src/write.c:1113,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1117,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 46
    argCount: 3
    argNames:
    - key
    - datum
    - ptr
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1037
    functionDepth: 2
    functionLinenumber: 1037
    functionLinenumberEnd: 1122
    functionName: type_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - policydb_has_boundary_feature
    - WARN
    - put_entry
    - ebitmap_write
    - cpu_to_le32
    - strlen
    linkageType: ''
    returnType: int
    signature: int type_write(hashtab_key_t key, hashtab_datum_t datum, void *ptr)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsepol/src/write.c:1135,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1137,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1138,1
    - Dst: policydb_has_boundary_feature
      Src: /src/selinux/libsepol/src/write.c:1139,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1140,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1141,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1145,1
    - Dst: ebitmap_write
      Src: /src/selinux/libsepol/src/write.c:1150,1
    - Dst: role_set_write
      Src: /src/selinux/libsepol/src/write.c:1153,1
    - Dst: mls_write_range_helper
      Src: /src/selinux/libsepol/src/write.c:1164,1
    - Dst: mls_write_level
      Src: /src/selinux/libsepol/src/write.c:1166,1
    - Dst: mls_write_semantic_range_helper
      Src: /src/selinux/libsepol/src/write.c:1172,1
    - Dst: mls_write_semantic_level_helper
      Src: /src/selinux/libsepol/src/write.c:1174,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 34
    argCount: 3
    argNames:
    - key
    - datum
    - ptr
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1124
    functionDepth: 3
    functionLinenumber: 1124
    functionLinenumberEnd: 1179
    functionName: user_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - mls_write_level
    - policydb_has_boundary_feature
    - mls_write_semantic_level_helper
    - role_set_write
    - mls_write_range_helper
    - mls_write_semantic_range_helper
    - put_entry
    - ebitmap_write
    - cpu_to_le32
    - strlen
    linkageType: ''
    returnType: int
    signature: int user_write(hashtab_key_t key, hashtab_datum_t datum, void *ptr)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/selinux/libsepol/src/write.c:1198,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1205,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1206,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1214,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1215,1
    - Dst: context_write
      Src: /src/selinux/libsepol/src/write.c:1218,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1222,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1223,1
    - Dst: context_write
      Src: /src/selinux/libsepol/src/write.c:1226,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1233,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1234,1
    - Dst: context_write
      Src: /src/selinux/libsepol/src/write.c:1237,1
    - Dst: cpu_to_le64
      Src: /src/selinux/libsepol/src/write.c:1247,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1248,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/write.c:1255,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1265,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1266,1
    - Dst: context_write
      Src: /src/selinux/libsepol/src/write.c:1271,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1275,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1276,1
    - Dst: context_write
      Src: /src/selinux/libsepol/src/write.c:1279,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/write.c:1283,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1284,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1285,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1288,1
    - Dst: context_write
      Src: /src/selinux/libsepol/src/write.c:1291,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 94
    argCount: 3
    argNames:
    - info
    - p
    - fp
    argTypes:
    - struct policydb_compat_info*
    - policydb_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1187
    functionDepth: 4
    functionLinenumber: 1187
    functionLinenumberEnd: 1298
    functionName: ocontext_write_xen
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - ERR
    - context_write
    - cpu_to_le64
    - put_entry
    - INFO
    - cpu_to_le32
    - strlen
    linkageType: ''
    returnType: int
    signature: "int ocontext_write_xen(const struct policydb_compat_info *info,\n\t\t\t
      \     policydb_t *p, struct policy_file *fp)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/selinux/libsepol/src/write.c:1311,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1318,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1319,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1327,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1328,1
    - Dst: context_write
      Src: /src/selinux/libsepol/src/write.c:1331,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/write.c:1336,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1337,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1338,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1341,1
    - Dst: context_write
      Src: /src/selinux/libsepol/src/write.c:1344,1
    - Dst: context_write
      Src: /src/selinux/libsepol/src/write.c:1346,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/write.c:1351,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1354,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1355,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1357,1
    - Dst: context_write
      Src: /src/selinux/libsepol/src/write.c:1361,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/write.c:1365,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1366,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1367,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1368,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1371,1
    - Dst: context_write
      Src: /src/selinux/libsepol/src/write.c:1376,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1384,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1386,1
    - Dst: context_write
      Src: /src/selinux/libsepol/src/write.c:1389,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1395,1
    - Dst: context_write
      Src: /src/selinux/libsepol/src/write.c:1398,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1402,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/write.c:1403,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1404,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1405,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1408,1
    - Dst: context_write
      Src: /src/selinux/libsepol/src/write.c:1411,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1423,1
    - Dst: context_write
      Src: /src/selinux/libsepol/src/write.c:1426,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 114
    argCount: 3
    argNames:
    - info
    - p
    - fp
    argTypes:
    - struct policydb_compat_info*
    - policydb_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1300
    functionDepth: 4
    functionLinenumber: 1300
    functionLinenumberEnd: 1433
    functionName: ocontext_write_selinux
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - context_write
    - memcpy
    - put_entry
    - INFO
    - cpu_to_le32
    - strlen
    linkageType: ''
    returnType: int
    signature: "int ocontext_write_selinux(const struct policydb_compat_info *info,\n\t\t\t\t
      \ policydb_t *p, struct policy_file *fp)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ocontext_write_selinux
      Src: /src/selinux/libsepol/src/write.c:1441,1
    - Dst: ocontext_write_xen
      Src: /src/selinux/libsepol/src/write.c:1444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - info
    - p
    - fp
    argTypes:
    - struct policydb_compat_info*
    - policydb_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1435
    functionDepth: 5
    functionLinenumber: 1435
    functionLinenumberEnd: 1448
    functionName: ocontext_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - ocontext_write_selinux
    - ocontext_write_xen
    linkageType: ''
    returnType: int
    signature: "int ocontext_write(const struct policydb_compat_info *info,\n\t\t\t
      \ policydb_t *p, struct policy_file *fp)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1459,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1460,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/write.c:1464,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1465,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1466,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1469,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1475,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1476,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/write.c:1480,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1481,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1482,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1485,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1488,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1489,1
    - Dst: context_write
      Src: /src/selinux/libsepol/src/write.c:1492,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1450
    functionDepth: 4
    functionLinenumber: 1450
    functionLinenumberEnd: 1497
    functionName: genfs_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - context_write
    - cpu_to_le32
    - strlen
    - put_entry
    linkageType: ''
    returnType: int
    signature: int genfs_write(policydb_t *p, struct policy_file *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - key
    - data
    - ptr
    argTypes:
    - hashtab_key_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1506
    functionDepth: 0
    functionLinenumber: 1506
    functionLinenumberEnd: 1519
    functionName: rangetrans_count
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int rangetrans_count(hashtab_key_t key,\n\t\t\t    void *data __attribute__((unused)),
      void *ptr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/selinux/libsepol/src/write.c:1536,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1544,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1545,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1546,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1550,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1551,1
    - Dst: mls_write_range_helper
      Src: /src/selinux/libsepol/src/write.c:1555,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - key
    - data
    - ptr
    argTypes:
    - hashtab_key_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1521
    functionDepth: 3
    functionLinenumber: 1521
    functionLinenumberEnd: 1560
    functionName: range_write_helper
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - put_entry
    - cpu_to_le32
    - mls_write_range_helper
    - WARN
    linkageType: ''
    returnType: int
    signature: int range_write_helper(hashtab_key_t key, void *data, void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/write.c:1574,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1578,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1579,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/write.c:1583,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1562
    functionDepth: 1
    functionLinenumber: 1562
    functionLinenumberEnd: 1584
    functionName: range_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - hashtab_map
    - cpu_to_le32
    - put_entry
    linkageType: ''
    returnType: int
    signature: int range_write(policydb_t *p, struct policy_file *fp)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/write.c:1597,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1603,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1604,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1605,1
    - Dst: type_set_write
      Src: /src/selinux/libsepol/src/write.c:1609,1
    - Dst: type_set_write
      Src: /src/selinux/libsepol/src/write.c:1612,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1622,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1623,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1629,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1630,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1631,1
    - Dst: ARRAY_SIZE
      Src: /src/selinux/libsepol/src/write.c:1639,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/write.c:1645,1
    - Dst: policydb_has_cond_xperms_feature
      Src: /src/selinux/libsepol/src/write.c:1652,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/write.c:1653,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/write.c:1661,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1669,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1673,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1677,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1678,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 4
    argNames:
    - p
    - avrule
    - fp
    - conditional
    argTypes:
    - policydb_t*
    - avrule_t*
    - struct policy_file*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1588
    functionDepth: 3
    functionLinenumber: 1588
    functionLinenumberEnd: 1684
    functionName: avrule_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - ERR
    - policydb_has_cond_xperms_feature
    - ARRAY_SIZE
    - put_entry
    - cpu_to_le32
    - type_set_write
    linkageType: ''
    returnType: int
    signature: "int avrule_write(policydb_t *p, avrule_t *avrule, struct policy_file
      *fp,\n\t\t\tunsigned conditional)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1699,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1700,1
    - Dst: avrule_write
      Src: /src/selinux/libsepol/src/write.c:1705,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - p
    - avrules
    - fp
    - conditional
    argTypes:
    - policydb_t*
    - avrule_t*
    - struct policy_file*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1686
    functionDepth: 4
    functionLinenumber: 1686
    functionLinenumberEnd: 1711
    functionName: avrule_write_list
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 1
    functionsReached:
    - avrule_write
    - cpu_to_le32
    - put_entry
    linkageType: ''
    returnType: int
    signature: "int avrule_write_list(policydb_t *p, avrule_t *avrules,\n\t\t\t     struct
      policy_file *fp, unsigned conditional)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - in
    - p
    argTypes:
    - ebitmap_t*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1728
      start: 1713
    functionDepth: 0
    functionLinenumber: 1713
    functionLinenumberEnd: 1728
    functionName: only_process
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int only_process(ebitmap_t *in, struct policydb *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1726
      start: 1723
    functionDepth: 0
    functionLinenumber: 1723
    functionLinenumberEnd: 1726
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(in, node, i)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: only_process
      Src: /src/selinux/libsepol/src/write.c:1741,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1744,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1745,1
    - Dst: only_process
      Src: /src/selinux/libsepol/src/write.c:1749,1
    - Dst: WARN
      Src: /src/selinux/libsepol/src/write.c:1751,1
    - Dst: role_set_write
      Src: /src/selinux/libsepol/src/write.c:1758,1
    - Dst: type_set_write
      Src: /src/selinux/libsepol/src/write.c:1760,1
    - Dst: ebitmap_write
      Src: /src/selinux/libsepol/src/write.c:1763,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1765,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1766,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 28
    argCount: 3
    argNames:
    - p
    - t
    - fp
    argTypes:
    - policydb_t*
    - role_trans_rule_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1730
    functionDepth: 3
    functionLinenumber: 1730
    functionLinenumberEnd: 1771
    functionName: role_trans_rule_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - only_process
    - WARN
    - role_set_write
    - put_entry
    - ebitmap_write
    - cpu_to_le32
    - type_set_write
    linkageType: ''
    returnType: int
    signature: "int role_trans_rule_write(policydb_t *p, role_trans_rule_t *t,\n\t\t\t\t
      struct policy_file *fp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1782,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1783,1
    - Dst: role_set_write
      Src: /src/selinux/libsepol/src/write.c:1787,1
    - Dst: role_set_write
      Src: /src/selinux/libsepol/src/write.c:1789,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - r
    - fp
    argTypes:
    - role_allow_rule_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1793
      start: 1773
    functionDepth: 3
    functionLinenumber: 1773
    functionLinenumberEnd: 1793
    functionName: role_allow_rule_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - role_set_write
    - cpu_to_le32
    - put_entry
    linkageType: ''
    returnType: int
    signature: int role_allow_rule_write(role_allow_rule_t *r, struct policy_file
      *fp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1806,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1807,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/write.c:1812,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1813,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1814,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1818,1
    - Dst: type_set_write
      Src: /src/selinux/libsepol/src/write.c:1822,1
    - Dst: type_set_write
      Src: /src/selinux/libsepol/src/write.c:1824,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1827,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1828,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1829,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/write.c:1836,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1841,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - p
    - t
    - fp
    argTypes:
    - policydb_t*
    - filename_trans_rule_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1795
    functionDepth: 3
    functionLinenumber: 1795
    functionLinenumberEnd: 1846
    functionName: filename_trans_rule_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - ERR
    - put_entry
    - cpu_to_le32
    - strlen
    - type_set_write
    linkageType: ''
    returnType: int
    signature: "int filename_trans_rule_write(policydb_t *p, filename_trans_rule_t
      *t,\n\t\t\t\t     struct policy_file *fp)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1857,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1858,1
    - Dst: type_set_write
      Src: /src/selinux/libsepol/src/write.c:1862,1
    - Dst: type_set_write
      Src: /src/selinux/libsepol/src/write.c:1864,1
    - Dst: ebitmap_write
      Src: /src/selinux/libsepol/src/write.c:1866,1
    - Dst: mls_write_semantic_range_helper
      Src: /src/selinux/libsepol/src/write.c:1868,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - t
    - fp
    argTypes:
    - range_trans_rule_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1848
    functionDepth: 3
    functionLinenumber: 1848
    functionLinenumberEnd: 1872
    functionName: range_trans_rule_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - put_entry
    - ebitmap_write
    - cpu_to_le32
    - mls_write_semantic_range_helper
    - type_set_write
    linkageType: ''
    returnType: int
    signature: int range_trans_rule_write(range_trans_rule_t *t, struct policy_file
      *fp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_write
      Src: /src/selinux/libsepol/src/write.c:1881,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1885,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1886,1
    - Dst: ebitmap_write
      Src: /src/selinux/libsepol/src/write.c:1890,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - scope_index
    - num_scope_syms
    - fp
    argTypes:
    - scope_index_t*
    - unsigned int
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1874
    functionDepth: 2
    functionLinenumber: 1874
    functionLinenumberEnd: 1895
    functionName: scope_index_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - ebitmap_write
    - cpu_to_le32
    - put_entry
    linkageType: ''
    returnType: int
    signature: "int scope_index_write(scope_index_t *scope_index,\n\t\t\t     unsigned
      int num_scope_syms,\n\t\t\t     struct policy_file *fp)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1903,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1904,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1905,1
    - Dst: cond_write_list
      Src: /src/selinux/libsepol/src/write.c:1908,1
    - Dst: avrule_write_list
      Src: /src/selinux/libsepol/src/write.c:1909,1
    - Dst: role_trans_rule_write
      Src: /src/selinux/libsepol/src/write.c:1910,1
    - Dst: role_allow_rule_write
      Src: /src/selinux/libsepol/src/write.c:1911,1
    - Dst: filename_trans_rule_write
      Src: /src/selinux/libsepol/src/write.c:1916,1
    - Dst: range_trans_rule_write
      Src: /src/selinux/libsepol/src/write.c:1920,1
    - Dst: scope_index_write
      Src: /src/selinux/libsepol/src/write.c:1923,1
    - Dst: scope_index_write
      Src: /src/selinux/libsepol/src/write.c:1924,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1930,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1931,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1932,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/write.c:1935,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 4
    argNames:
    - decl
    - num_scope_syms
    - p
    - fp
    argTypes:
    - avrule_decl_t*
    - int
    - policydb_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1940
      start: 1897
    functionDepth: 5
    functionLinenumber: 1897
    functionLinenumberEnd: 1940
    functionName: avrule_decl_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - hashtab_map
    - avrule_write_list
    - cond_write_list
    - scope_index_write
    - role_trans_rule_write
    - put_entry
    - range_trans_rule_write
    - filename_trans_rule_write
    - cpu_to_le32
    - role_allow_rule_write
    linkageType: ''
    returnType: int
    signature: "int avrule_decl_write(avrule_decl_t *decl, int num_scope_syms,\n\t\t\t
      \    policydb_t *p, struct policy_file *fp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1951,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1952,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1964,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:1965,1
    - Dst: avrule_decl_write
      Src: /src/selinux/libsepol/src/write.c:1969,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 4
    argNames:
    - block
    - num_scope_syms
    - p
    - fp
    argTypes:
    - avrule_block_t*
    - int
    - policydb_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1942
    functionDepth: 6
    functionLinenumber: 1942
    functionLinenumberEnd: 1976
    functionName: avrule_block_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - avrule_decl_write
    - cpu_to_le32
    - put_entry
    linkageType: ''
    returnType: int
    signature: "int avrule_block_write(avrule_block_t *block, int num_scope_syms,\n\t\t\t
      \     policydb_t *p, struct policy_file *fp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsepol/src/write.c:1984,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/write.c:1994,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:1999,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:2002,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:2003,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:2005,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:2006,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:2009,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:2012,1
    - Dst: free
      Src: /src/selinux/libsepol/src/write.c:2016,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - key
    - datum
    - ptr
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 1978
    functionDepth: 1
    functionLinenumber: 1978
    functionLinenumberEnd: 2018
    functionName: scope_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached:
    - free
    - calloc
    - put_entry
    - cpu_to_le32
    - strlen
    linkageType: ''
    returnType: int
    signature: int scope_write(hashtab_key_t key, hashtab_datum_t datum, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - key
    - datum
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 2020
    functionDepth: 0
    functionLinenumber: 2020
    functionLinenumberEnd: 2031
    functionName: role_attr_uncount
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int role_attr_uncount(hashtab_key_t key __attribute__((unused)),\n\t\t\t
      \    hashtab_datum_t datum, void *args)"
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/write.c:2059,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:2073,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/write.c:2074,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:2077,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/write.c:2078,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:2081,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:2082,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:2085,1
    - Dst: policydb_lookup_compat
      Src: /src/selinux/libsepol/src/write.c:2091,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/write.c:2094,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:2104,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:2106,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:2107,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:2108,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:2109,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:2111,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/write.c:2117,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:2118,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:2119,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:2122,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/write.c:2125,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:2126,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:2127,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:2130,1
    - Dst: ebitmap_write
      Src: /src/selinux/libsepol/src/write.c:2140,1
    - Dst: ebitmap_write
      Src: /src/selinux/libsepol/src/write.c:2145,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/write.c:2151,1
    - Dst: WARN
      Src: /src/selinux/libsepol/src/write.c:2153,1
    - Dst: ebitmap_write
      Src: /src/selinux/libsepol/src/write.c:2159,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:2165,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/write.c:2178,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:2181,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:2182,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/write.c:2185,1
    - Dst: avtab_write
      Src: /src/selinux/libsepol/src/write.c:2190,1
    - Dst: cond_write_list
      Src: /src/selinux/libsepol/src/write.c:2192,1
    - Dst: role_trans_write
      Src: /src/selinux/libsepol/src/write.c:2194,1
    - Dst: role_allow_write
      Src: /src/selinux/libsepol/src/write.c:2196,1
    - Dst: filename_trans_write
      Src: /src/selinux/libsepol/src/write.c:2199,1
    - Dst: WARN
      Src: /src/selinux/libsepol/src/write.c:2203,1
    - Dst: avrule_block_write
      Src: /src/selinux/libsepol/src/write.c:2207,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/write.c:2212,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/write.c:2213,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/write.c:2216,1
    - Dst: ocontext_write
      Src: /src/selinux/libsepol/src/write.c:2221,1
    - Dst: genfs_write
      Src: /src/selinux/libsepol/src/write.c:2221,1
    - Dst: range_write
      Src: /src/selinux/libsepol/src/write.c:2229,1
    - Dst: ebitmap_write
      Src: /src/selinux/libsepol/src/write.c:2236,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 138
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2038
    functionDepth: 7
    functionLinenumber: 2038
    functionLinenumberEnd: 2242
    functionName: policydb_write
    functionSourceFile: /src/selinux/libsepol/src/write.c
    functionUses: 1
    functionsReached:
    - ocontext_write
    - ERR
    - genfs_write
    - hashtab_map
    - ebitmap_for_each_positive_bit
    - cond_write_list
    - role_trans_write
    - policydb_lookup_compat
    - range_write
    - filename_trans_write
    - WARN
    - avrule_block_write
    - role_allow_write
    - avtab_write
    - put_entry
    - ebitmap_write
    - cpu_to_le32
    - strlen
    linkageType: ''
    returnType: int
    signature: int policydb_write(policydb_t *p, struct policy_file *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/optimize.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct type_vec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: type_vec_init
    functionSourceFile: /src/selinux/libsepol/src/optimize.c
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: int
    signature: int type_vec_init(struct type_vec *v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/optimize.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct type_vec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: type_vec_destroy
    functionSourceFile: /src/selinux/libsepol/src/optimize.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void type_vec_destroy(struct type_vec *v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reallocarray
      Src: /src/selinux/libsepol/src/optimize.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - v
    - type
    argTypes:
    - struct type_vec*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 74
    functionName: type_vec_append
    functionSourceFile: /src/selinux/libsepol/src/optimize.c
    functionUses: 0
    functionsReached:
    - reallocarray
    linkageType: ''
    returnType: int
    signature: int type_vec_append(struct type_vec *v, uint32_t type)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - v
    - type
    argTypes:
    - struct type_vec*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 92
    functionName: type_vec_contains
    functionSourceFile: /src/selinux/libsepol/src/optimize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int type_vec_contains(const struct type_vec *v, uint32_t type)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/optimize.c:99,1
    - Dst: type_vec_init
      Src: /src/selinux/libsepol/src/optimize.c:104,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/optimize.c:111,1
    - Dst: type_vec_append
      Src: /src/selinux/libsepol/src/optimize.c:113,1
    - Dst: ebitmap_contains
      Src: /src/selinux/libsepol/src/optimize.c:129,1
    - Dst: type_vec_append
      Src: /src/selinux/libsepol/src/optimize.c:130,1
    - Dst: type_vec_destroy
      Src: /src/selinux/libsepol/src/optimize.c:139,1
    - Dst: free
      Src: /src/selinux/libsepol/src/optimize.c:140,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 1
    argNames:
    - p
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 142
    functionName: build_type_map
    functionSourceFile: /src/selinux/libsepol/src/optimize.c
    functionUses: 0
    functionsReached:
    - type_vec_append
    - type_vec_destroy
    - ebitmap_for_each_positive_bit
    - type_vec_init
    - ebitmap_contains
    - free
    - calloc
    linkageType: ''
    returnType: struct type_vec
    signature: struct type_vec *build_type_map(const policydb_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type_vec_destroy
      Src: /src/selinux/libsepol/src/optimize.c:148,1
    - Dst: free
      Src: /src/selinux/libsepol/src/optimize.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p
    - type_map
    argTypes:
    - policydb_t*
    - struct type_vec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: destroy_type_map
    functionSourceFile: /src/selinux/libsepol/src/optimize.c
    functionUses: 0
    functionsReached:
    - type_vec_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void destroy_type_map(const policydb_t *p, struct type_vec *type_map)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 163
    functionName: process_xperms
    functionSourceFile: /src/selinux/libsepol/src/optimize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int process_xperms(uint32_t *p1, const uint32_t *p2)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_C
      Src: /src/selinux/libsepol/src/optimize.c:170,1
    - Dst: process_xperms
      Src: /src/selinux/libsepol/src/optimize.c:183,1
    - Dst: xperm_test
      Src: /src/selinux/libsepol/src/optimize.c:186,1
    - Dst: process_xperms
      Src: /src/selinux/libsepol/src/optimize.c:192,1
    - Dst: process_xperms
      Src: /src/selinux/libsepol/src/optimize.c:197,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 3
    argNames:
    - specified
    - d1
    - d2
    argTypes:
    - uint16_t
    - avtab_datum_t*
    - avtab_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 202
    functionName: process_avtab_datum
    functionSourceFile: /src/selinux/libsepol/src/optimize.c
    functionUses: 0
    functionsReached:
    - process_xperms
    - xperm_test
    - UINT32_C
    linkageType: ''
    returnType: int
    signature: "int process_avtab_datum(uint16_t specified, avtab_datum_t *d1,\n\t\t\t
      \      const avtab_datum_t *d2)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: avtab_search
      Src: /src/selinux/libsepol/src/optimize.c:238,1
    - Dst: process_avtab_datum
      Src: /src/selinux/libsepol/src/optimize.c:242,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 4
    argNames:
    - entry
    - tab
    - type_map
    - not_cond
    argTypes:
    - avtab_ptr_t
    - avtab_t*
    - struct type_vec*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 247
    functionName: is_avrule_redundant
    functionSourceFile: /src/selinux/libsepol/src/optimize.c
    functionUses: 0
    functionsReached:
    - process_avtab_datum
    - avtab_search
    linkageType: ''
    returnType: int
    signature: "int is_avrule_redundant(avtab_ptr_t entry, avtab_t *tab,\n\t\t\t       const
      struct type_vec *type_map,\n\t\t\t       unsigned char not_cond)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - id
    argTypes:
    - policydb_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: is_type_attr
    functionSourceFile: /src/selinux/libsepol/src/optimize.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_type_attr(policydb_t *p, unsigned int id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_type_attr
      Src: /src/selinux/libsepol/src/optimize.c:259,1
    - Dst: is_type_attr
      Src: /src/selinux/libsepol/src/optimize.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - entry
    - p
    argTypes:
    - avtab_ptr_t
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 260
    functionName: is_avrule_with_attr
    functionSourceFile: /src/selinux/libsepol/src/optimize.c
    functionUses: 0
    functionsReached:
    - is_type_attr
    linkageType: ''
    returnType: int
    signature: int is_avrule_with_attr(avtab_ptr_t entry, policydb_t *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: type_vec_contains
      Src: /src/selinux/libsepol/src/optimize.c:290,1
    - Dst: type_vec_contains
      Src: /src/selinux/libsepol/src/optimize.c:292,1
    - Dst: process_avtab_datum
      Src: /src/selinux/libsepol/src/optimize.c:295,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 24
    argCount: 3
    argNames:
    - e1
    - list
    - type_map
    argTypes:
    - avtab_ptr_t
    - cond_av_list_t*
    - struct type_vec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 299
    functionName: is_cond_rule_redundant
    functionSourceFile: /src/selinux/libsepol/src/optimize.c
    functionUses: 0
    functionsReached:
    - type_vec_contains
    - process_avtab_datum
    linkageType: ''
    returnType: int
    signature: "int is_cond_rule_redundant(avtab_ptr_t e1, cond_av_list_t *list,\n\t\t\t\t
      \ const struct type_vec *type_map)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_avrule_redundant
      Src: /src/selinux/libsepol/src/optimize.c:310,1
    - Dst: free
      Src: /src/selinux/libsepol/src/optimize.c:316,1
    - Dst: free
      Src: /src/selinux/libsepol/src/optimize.c:317,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - p
    - type_map
    argTypes:
    - policydb_t*
    - struct type_vec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 301
    functionDepth: 3
    functionLinenumber: 301
    functionLinenumberEnd: 326
    functionName: optimize_avtab
    functionSourceFile: /src/selinux/libsepol/src/optimize.c
    functionUses: 0
    functionsReached:
    - is_avrule_redundant
    - free
    linkageType: ''
    returnType: void
    signature: void optimize_avtab(policydb_t *p, const struct type_vec *type_map)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_avrule_with_attr
      Src: /src/selinux/libsepol/src/optimize.c:343,1
    - Dst: is_avrule_redundant
      Src: /src/selinux/libsepol/src/optimize.c:367,1
    - Dst: is_cond_rule_redundant
      Src: /src/selinux/libsepol/src/optimize.c:369,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - cond
    - del
    - p
    - type_map
    argTypes:
    - cond_av_list_t**
    - cond_av_list_t**
    - policydb_t*
    - struct type_vec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 329
    functionDepth: 3
    functionLinenumber: 329
    functionLinenumberEnd: 380
    functionName: optimize_cond_av_list
    functionSourceFile: /src/selinux/libsepol/src/optimize.c
    functionUses: 0
    functionsReached:
    - is_avrule_redundant
    - is_avrule_with_attr
    - is_cond_rule_redundant
    linkageType: ''
    returnType: void
    signature: "void optimize_cond_av_list(cond_av_list_t **cond, cond_av_list_t **del,\n\t\t\t\t
      \ policydb_t *p,\n\t\t\t\t  const struct type_vec *type_map)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: optimize_cond_av_list
      Src: /src/selinux/libsepol/src/optimize.c:393,1
    - Dst: optimize_cond_av_list
      Src: /src/selinux/libsepol/src/optimize.c:394,1
    - Dst: cond_node_destroy
      Src: /src/selinux/libsepol/src/optimize.c:402,1
    - Dst: free
      Src: /src/selinux/libsepol/src/optimize.c:403,1
    - Dst: free
      Src: /src/selinux/libsepol/src/optimize.c:426,1
    - Dst: free
      Src: /src/selinux/libsepol/src/optimize.c:438,1
    - Dst: free
      Src: /src/selinux/libsepol/src/optimize.c:439,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 2
    argNames:
    - p
    - type_map
    argTypes:
    - policydb_t*
    - struct type_vec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 382
    functionDepth: 4
    functionLinenumber: 382
    functionLinenumberEnd: 447
    functionName: optimize_cond_avtab
    functionSourceFile: /src/selinux/libsepol/src/optimize.c
    functionUses: 0
    functionsReached:
    - cond_node_destroy
    - optimize_cond_av_list
    - free
    linkageType: ''
    returnType: void
    signature: void optimize_cond_avtab(policydb_t *p, const struct type_vec *type_map)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: build_type_map
      Src: /src/selinux/libsepol/src/optimize.c:456,1
    - Dst: optimize_avtab
      Src: /src/selinux/libsepol/src/optimize.c:460,1
    - Dst: optimize_cond_avtab
      Src: /src/selinux/libsepol/src/optimize.c:461,1
    - Dst: destroy_type_map
      Src: /src/selinux/libsepol/src/optimize.c:463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 449
    functionDepth: 5
    functionLinenumber: 449
    functionLinenumberEnd: 465
    functionName: policydb_optimize
    functionSourceFile: /src/selinux/libsepol/src/optimize.c
    functionUses: 0
    functionsReached:
    - destroy_type_map
    - build_type_map
    - optimize_cond_avtab
    - optimize_avtab
    linkageType: ''
    returnType: int
    signature: int policydb_optimize(policydb_t *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - version
    - type
    - target_platform
    argTypes:
    - unsigned int
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 490
    functionName: policydb_lookup_compat
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct policydb_compat_info
    signature: "struct policydb_compat_info *\npolicydb_lookup_compat(unsigned int
      version, unsigned int type,\n\t\t       unsigned int target_platform)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/policydb.c:494,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/policydb.c:495,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/policydb.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - type_set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 497
    functionName: type_set_init
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 1
    functionsReached:
    - ebitmap_init
    - memset
    linkageType: ''
    returnType: void
    signature: void type_set_init(type_set_t *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb.c:502,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb.c:503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - type_set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 505
    functionName: type_set_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 1
    functionsReached:
    - ebitmap_destroy
    linkageType: ''
    returnType: void
    signature: void type_set_destroy(type_set_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/policydb.c:509,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/policydb.c:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - role_set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 511
    functionName: role_set_init
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - memset
    linkageType: ''
    returnType: void
    signature: void role_set_init(role_set_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb.c:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - role_set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 516
    functionName: role_set_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ebitmap_destroy
    linkageType: ''
    returnType: void
    signature: void role_set_destroy(role_set_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/policydb.c:520,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/policydb.c:521,1
    - Dst: type_set_init
      Src: /src/selinux/libsepol/src/policydb.c:522,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/policydb.c:523,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/policydb.c:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - role_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 525
    functionName: role_datum_init
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - type_set_init
    - memset
    linkageType: ''
    returnType: void
    signature: void role_datum_init(role_datum_t *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb.c:530,1
    - Dst: type_set_destroy
      Src: /src/selinux/libsepol/src/policydb.c:531,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb.c:532,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb.c:533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - role_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 535
    functionName: role_datum_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ebitmap_destroy
    - type_set_destroy
    linkageType: ''
    returnType: void
    signature: void role_datum_destroy(role_datum_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/policydb.c:539,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/policydb.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - type_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 541
    functionName: type_datum_init
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 1
    functionsReached:
    - ebitmap_init
    - memset
    linkageType: ''
    returnType: void
    signature: void type_datum_init(type_datum_t *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb.c:546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - type_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 548
    functionName: type_datum_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ebitmap_destroy
    linkageType: ''
    returnType: void
    signature: void type_datum_destroy(type_datum_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/policydb.c:552,1
    - Dst: role_set_init
      Src: /src/selinux/libsepol/src/policydb.c:553,1
    - Dst: mls_semantic_range_init
      Src: /src/selinux/libsepol/src/policydb.c:554,1
    - Dst: mls_semantic_level_init
      Src: /src/selinux/libsepol/src/policydb.c:555,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/policydb.c:556,1
    - Dst: mls_range_init
      Src: /src/selinux/libsepol/src/policydb.c:557,1
    - Dst: mls_level_init
      Src: /src/selinux/libsepol/src/policydb.c:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - x
    argTypes:
    - user_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 559
    functionName: user_datum_init
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - role_set_init
    - mls_semantic_range_init
    - mls_semantic_level_init
    - memset
    - mls_range_init
    - mls_level_init
    linkageType: ''
    returnType: void
    signature: void user_datum_init(user_datum_t *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: role_set_destroy
      Src: /src/selinux/libsepol/src/policydb.c:564,1
    - Dst: mls_semantic_range_destroy
      Src: /src/selinux/libsepol/src/policydb.c:565,1
    - Dst: mls_semantic_level_destroy
      Src: /src/selinux/libsepol/src/policydb.c:566,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb.c:567,1
    - Dst: mls_range_destroy
      Src: /src/selinux/libsepol/src/policydb.c:568,1
    - Dst: mls_level_destroy
      Src: /src/selinux/libsepol/src/policydb.c:569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - x
    argTypes:
    - user_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 571
    functionName: user_datum_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ebitmap_destroy
    - mls_level_destroy
    - role_set_destroy
    - mls_range_destroy
    - mls_semantic_range_destroy
    - mls_semantic_level_destroy
    linkageType: ''
    returnType: void
    signature: void user_datum_destroy(user_datum_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/policydb.c:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - level_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 576
    functionName: level_datum_init
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void level_datum_init(level_datum_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - level_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 583
    functionName: level_datum_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void level_datum_destroy(level_datum_t *x __attribute__((unused)))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/policydb.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - cat_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 588
    functionName: cat_datum_init
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void cat_datum_init(cat_datum_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - cat_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 594
    functionName: cat_datum_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cat_datum_destroy(cat_datum_t *x __attribute__((unused)))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/policydb.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - class_perm_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 599
    functionName: class_perm_node_init
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void class_perm_node_init(class_perm_node_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/policydb.c:603,1
    - Dst: type_set_init
      Src: /src/selinux/libsepol/src/policydb.c:604,1
    - Dst: type_set_init
      Src: /src/selinux/libsepol/src/policydb.c:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - avrule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 606
    functionName: avrule_init
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - type_set_init
    - memset
    linkageType: ''
    returnType: void
    signature: void avrule_init(avrule_t *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type_set_destroy
      Src: /src/selinux/libsepol/src/policydb.c:615,1
    - Dst: type_set_destroy
      Src: /src/selinux/libsepol/src/policydb.c:616,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:618,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:624,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:627,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - x
    argTypes:
    - avrule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 628
    functionName: avrule_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - free
    - type_set_destroy
    linkageType: ''
    returnType: void
    signature: void avrule_destroy(avrule_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/policydb.c:632,1
    - Dst: role_set_init
      Src: /src/selinux/libsepol/src/policydb.c:633,1
    - Dst: type_set_init
      Src: /src/selinux/libsepol/src/policydb.c:634,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/policydb.c:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - role_trans_rule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 636
    functionName: role_trans_rule_init
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - role_set_init
    - type_set_init
    - memset
    linkageType: ''
    returnType: void
    signature: void role_trans_rule_init(role_trans_rule_t *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: role_set_destroy
      Src: /src/selinux/libsepol/src/policydb.c:641,1
    - Dst: type_set_destroy
      Src: /src/selinux/libsepol/src/policydb.c:642,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb.c:643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - role_trans_rule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 638
    functionDepth: 2
    functionLinenumber: 638
    functionLinenumberEnd: 645
    functionName: role_trans_rule_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - role_set_destroy
    - ebitmap_destroy
    - type_set_destroy
    linkageType: ''
    returnType: void
    signature: void role_trans_rule_destroy(role_trans_rule_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: role_trans_rule_destroy
      Src: /src/selinux/libsepol/src/policydb.c:651,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - role_trans_rule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 647
    functionDepth: 3
    functionLinenumber: 647
    functionLinenumberEnd: 655
    functionName: role_trans_rule_list_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - free
    - role_trans_rule_destroy
    linkageType: ''
    returnType: void
    signature: void role_trans_rule_list_destroy(role_trans_rule_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/policydb.c:659,1
    - Dst: type_set_init
      Src: /src/selinux/libsepol/src/policydb.c:660,1
    - Dst: type_set_init
      Src: /src/selinux/libsepol/src/policydb.c:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - filename_trans_rule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 657
    functionDepth: 2
    functionLinenumber: 657
    functionLinenumberEnd: 662
    functionName: filename_trans_rule_init
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - type_set_init
    - memset
    linkageType: ''
    returnType: void
    signature: void filename_trans_rule_init(filename_trans_rule_t *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type_set_destroy
      Src: /src/selinux/libsepol/src/policydb.c:668,1
    - Dst: type_set_destroy
      Src: /src/selinux/libsepol/src/policydb.c:669,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - filename_trans_rule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 664
    functionDepth: 2
    functionLinenumber: 664
    functionLinenumberEnd: 671
    functionName: filename_trans_rule_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - free
    - type_set_destroy
    linkageType: ''
    returnType: void
    signature: void filename_trans_rule_destroy(filename_trans_rule_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: filename_trans_rule_destroy
      Src: /src/selinux/libsepol/src/policydb.c:678,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - filename_trans_rule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 673
    functionDepth: 3
    functionLinenumber: 673
    functionLinenumberEnd: 682
    functionName: filename_trans_rule_list_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - filename_trans_rule_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void filename_trans_rule_list_destroy(filename_trans_rule_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/policydb.c:686,1
    - Dst: role_set_init
      Src: /src/selinux/libsepol/src/policydb.c:687,1
    - Dst: role_set_init
      Src: /src/selinux/libsepol/src/policydb.c:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - role_allow_rule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 684
    functionDepth: 2
    functionLinenumber: 684
    functionLinenumberEnd: 689
    functionName: role_allow_rule_init
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - role_set_init
    - memset
    linkageType: ''
    returnType: void
    signature: void role_allow_rule_init(role_allow_rule_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: role_set_destroy
      Src: /src/selinux/libsepol/src/policydb.c:693,1
    - Dst: role_set_destroy
      Src: /src/selinux/libsepol/src/policydb.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - role_allow_rule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 691
    functionDepth: 2
    functionLinenumber: 691
    functionLinenumberEnd: 695
    functionName: role_allow_rule_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - role_set_destroy
    linkageType: ''
    returnType: void
    signature: void role_allow_rule_destroy(role_allow_rule_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: role_allow_rule_destroy
      Src: /src/selinux/libsepol/src/policydb.c:701,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:702,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - role_allow_rule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 697
    functionDepth: 3
    functionLinenumber: 697
    functionLinenumberEnd: 705
    functionName: role_allow_rule_list_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - free
    - role_allow_rule_destroy
    linkageType: ''
    returnType: void
    signature: void role_allow_rule_list_destroy(role_allow_rule_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type_set_init
      Src: /src/selinux/libsepol/src/policydb.c:709,1
    - Dst: type_set_init
      Src: /src/selinux/libsepol/src/policydb.c:710,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/policydb.c:711,1
    - Dst: mls_semantic_range_init
      Src: /src/selinux/libsepol/src/policydb.c:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - range_trans_rule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 707
    functionDepth: 2
    functionLinenumber: 707
    functionLinenumberEnd: 714
    functionName: range_trans_rule_init
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - mls_semantic_range_init
    - type_set_init
    linkageType: ''
    returnType: void
    signature: void range_trans_rule_init(range_trans_rule_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: type_set_destroy
      Src: /src/selinux/libsepol/src/policydb.c:718,1
    - Dst: type_set_destroy
      Src: /src/selinux/libsepol/src/policydb.c:719,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb.c:720,1
    - Dst: mls_semantic_range_destroy
      Src: /src/selinux/libsepol/src/policydb.c:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - range_trans_rule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 716
    functionDepth: 2
    functionLinenumber: 716
    functionLinenumberEnd: 722
    functionName: range_trans_rule_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - mls_semantic_range_destroy
    - ebitmap_destroy
    - type_set_destroy
    linkageType: ''
    returnType: void
    signature: void range_trans_rule_destroy(range_trans_rule_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range_trans_rule_destroy
      Src: /src/selinux/libsepol/src/policydb.c:728,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:729,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - range_trans_rule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 724
    functionDepth: 3
    functionLinenumber: 724
    functionLinenumberEnd: 732
    functionName: range_trans_rule_list_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - free
    - range_trans_rule_destroy
    linkageType: ''
    returnType: void
    signature: void range_trans_rule_list_destroy(range_trans_rule_t *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avrule_destroy
      Src: /src/selinux/libsepol/src/policydb.c:745,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:746,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - avrule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 734
    functionDepth: 3
    functionLinenumber: 734
    functionLinenumberEnd: 748
    functionName: avrule_list_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - free
    - avrule_destroy
    linkageType: ''
    returnType: void
    signature: void avrule_list_destroy(avrule_t *x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:761,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/policydb.c:766,1
    - Dst: symtab_insert
      Src: /src/selinux/libsepol/src/policydb.c:771,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:785,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:787,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - p
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 789
    functionName: roles_init
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - symtab_insert
    - free
    - calloc
    - strdup
    linkageType: ''
    returnType: int
    signature: int roles_init(policydb_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - c
    - prevhash
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 795
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 795
    functionName: partial_name_hash
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ignore_unsigned_overflow_
    signature: ignore_unsigned_overflow_ partial_name_hash(unsigned long c, unsigned
      long prevhash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: partial_name_hash
      Src: /src/selinux/libsepol/src/policydb.c:808,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - h
    - k
    argTypes:
    - hashtab_t
    - const_hashtab_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 810
    functionName: filenametr_hash
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - partial_name_hash
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int filenametr_hash(hashtab_t h, const_hashtab_key_t k)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spaceship_cmp
      Src: /src/selinux/libsepol/src/policydb.c:819,1
    - Dst: spaceship_cmp
      Src: /src/selinux/libsepol/src/policydb.c:823,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/policydb.c:827,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - h
    - k1
    - k2
    argTypes:
    - hashtab_t
    - const_hashtab_key_t
    - const_hashtab_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 828
    functionName: filenametr_cmp
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - strcmp
    - spaceship_cmp
    linkageType: ''
    returnType: int
    signature: "int filenametr_cmp(hashtab_t h __attribute__((unused)),\n\t\t\t  const_hashtab_key_t
      k1, const_hashtab_key_t k2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - k
    argTypes:
    - hashtab_t
    - const_hashtab_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 836
    functionName: rangetr_hash
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int rangetr_hash(hashtab_t h, const_hashtab_key_t k)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: spaceship_cmp
      Src: /src/selinux/libsepol/src/policydb.c:845,1
    - Dst: spaceship_cmp
      Src: /src/selinux/libsepol/src/policydb.c:849,1
    - Dst: spaceship_cmp
      Src: /src/selinux/libsepol/src/policydb.c:853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - h
    - k1
    - k2
    argTypes:
    - hashtab_t
    - const_hashtab_key_t
    - const_hashtab_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 856
    functionName: rangetr_cmp
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - spaceship_cmp
    linkageType: ''
    returnType: int
    signature: "int rangetr_cmp(hashtab_t h __attribute__((unused)),\n\t\t       const_hashtab_key_t
      k1, const_hashtab_key_t k2)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/policydb.c:865,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/src/policydb.c:869,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/src/policydb.c:876,1
    - Dst: avrule_block_create
      Src: /src/selinux/libsepol/src/policydb.c:880,1
    - Dst: avrule_decl_create
      Src: /src/selinux/libsepol/src/policydb.c:881,1
    - Dst: avtab_init
      Src: /src/selinux/libsepol/src/policydb.c:886,1
    - Dst: roles_init
      Src: /src/selinux/libsepol/src/policydb.c:890,1
    - Dst: cond_policydb_init
      Src: /src/selinux/libsepol/src/policydb.c:894,1
    - Dst: hashtab_create
      Src: /src/selinux/libsepol/src/policydb.c:899,1
    - Dst: hashtab_create
      Src: /src/selinux/libsepol/src/policydb.c:905,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/policydb.c:911,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/policydb.c:912,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/policydb.c:913,1
    - Dst: hashtab_destroy
      Src: /src/selinux/libsepol/src/policydb.c:919,1
    - Dst: hashtab_destroy
      Src: /src/selinux/libsepol/src/policydb.c:920,1
    - Dst: hashtab_destroy
      Src: /src/selinux/libsepol/src/policydb.c:922,1
    - Dst: hashtab_destroy
      Src: /src/selinux/libsepol/src/policydb.c:923,1
    - Dst: avrule_block_list_destroy
      Src: /src/selinux/libsepol/src/policydb.c:925,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 1
    argNames:
    - p
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 861
    functionDepth: 2
    functionLinenumber: 861
    functionLinenumberEnd: 927
    functionName: policydb_init
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 12
    functionsReached:
    - avrule_block_create
    - ebitmap_init
    - avtab_init
    - symtab_init
    - avrule_block_list_destroy
    - cond_policydb_init
    - avrule_decl_create
    - roles_init
    - memset
    - hashtab_destroy
    - hashtab_create
    linkageType: ''
    returnType: int
    signature: int policydb_init(policydb_t *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb.c:938,1
    - Dst: type_set_expand
      Src: /src/selinux/libsepol/src/policydb.c:939,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - key
    - datum
    - arg
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 944
    functionName: policydb_role_cache
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ebitmap_destroy
    - type_set_expand
    linkageType: ''
    returnType: int
    signature: "int policydb_role_cache(hashtab_key_t key __attribute__((unused)),\n\t\t\thashtab_datum_t
      datum, void *arg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb.c:955,1
    - Dst: role_set_expand
      Src: /src/selinux/libsepol/src/policydb.c:956,1
    - Dst: mls_range_destroy
      Src: /src/selinux/libsepol/src/policydb.c:965,1
    - Dst: mls_semantic_range_expand
      Src: /src/selinux/libsepol/src/policydb.c:966,1
    - Dst: mls_level_destroy
      Src: /src/selinux/libsepol/src/policydb.c:971,1
    - Dst: mls_semantic_level_expand
      Src: /src/selinux/libsepol/src/policydb.c:972,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - key
    - datum
    - arg
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 979
    functionName: policydb_user_cache
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ebitmap_destroy
    - mls_semantic_level_expand
    - mls_level_destroy
    - mls_range_destroy
    - mls_semantic_range_expand
    - role_set_expand
    linkageType: ''
    returnType: int
    signature: "int policydb_user_cache(hashtab_key_t key __attribute__((unused)),\n\t\t\thashtab_datum_t
      datum, void *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: value_isvalid
      Src: /src/selinux/libsepol/src/policydb.c:998,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - key
    - datum
    - datap
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 1005
    functionName: common_index
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - value_isvalid
    linkageType: ''
    returnType: int
    signature: int common_index(hashtab_key_t key, hashtab_datum_t datum, void *datap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: value_isvalid
      Src: /src/selinux/libsepol/src/policydb.c:1014,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - key
    - datum
    - datap
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1007
    functionDepth: 1
    functionLinenumber: 1007
    functionLinenumberEnd: 1022
    functionName: class_index
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - value_isvalid
    linkageType: ''
    returnType: int
    signature: int class_index(hashtab_key_t key, hashtab_datum_t datum, void *datap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: value_isvalid
      Src: /src/selinux/libsepol/src/policydb.c:1031,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - key
    - datum
    - datap
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1024
    functionDepth: 1
    functionLinenumber: 1024
    functionLinenumberEnd: 1039
    functionName: role_index
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - value_isvalid
    linkageType: ''
    returnType: int
    signature: int role_index(hashtab_key_t key, hashtab_datum_t datum, void *datap)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: value_isvalid
      Src: /src/selinux/libsepol/src/policydb.c:1049,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - key
    - datum
    - datap
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1041
    functionDepth: 1
    functionLinenumber: 1041
    functionLinenumberEnd: 1060
    functionName: type_index
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - value_isvalid
    linkageType: ''
    returnType: int
    signature: int type_index(hashtab_key_t key, hashtab_datum_t datum, void *datap)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: value_isvalid
      Src: /src/selinux/libsepol/src/policydb.c:1070,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - key
    - datum
    - datap
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1062
    functionDepth: 1
    functionLinenumber: 1062
    functionLinenumberEnd: 1078
    functionName: user_index
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - value_isvalid
    linkageType: ''
    returnType: int
    signature: int user_index(hashtab_key_t key, hashtab_datum_t datum, void *datap)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: value_isvalid
      Src: /src/selinux/libsepol/src/policydb.c:1089,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - key
    - datum
    - datap
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1080
    functionDepth: 1
    functionLinenumber: 1080
    functionLinenumberEnd: 1097
    functionName: sens_index
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - value_isvalid
    linkageType: ''
    returnType: int
    signature: int sens_index(hashtab_key_t key, hashtab_datum_t datum, void *datap)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: value_isvalid
      Src: /src/selinux/libsepol/src/policydb.c:1108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - key
    - datum
    - datap
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1116
    functionName: cat_index
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - value_isvalid
    linkageType: ''
    returnType: int
    signature: int cat_index(hashtab_key_t key, hashtab_datum_t datum, void *datap)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1131,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:1133,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb.c:1137,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1140,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:1141,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1146,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:1148,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb.c:1152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - p
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1129
    functionDepth: 0
    functionLinenumber: 1129
    functionLinenumberEnd: 1156
    functionName: policydb_index_classes
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - hashtab_map
    - free
    - calloc
    linkageType: ''
    returnType: int
    signature: int policydb_index_classes(policydb_t *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cond_init_bool_indexes
      Src: /src/selinux/libsepol/src/policydb.c:1160,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:1163,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb.c:1166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1158
    functionDepth: 1
    functionLinenumber: 1158
    functionLinenumberEnd: 1169
    functionName: policydb_index_bools
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - cond_init_bool_indexes
    - hashtab_map
    - calloc
    linkageType: ''
    returnType: int
    signature: int policydb_index_bools(policydb_t *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1177,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:1188,1
    - Dst: value_isvalid
      Src: /src/selinux/libsepol/src/policydb.c:1197,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:1198,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:1203,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - handle
    - p
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 1171
    functionDepth: 1
    functionLinenumber: 1171
    functionLinenumberEnd: 1212
    functionName: policydb_index_decls
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ERR
    - value_isvalid
    - free
    - calloc
    linkageType: ''
    returnType: int
    signature: int policydb_index_decls(sepol_handle_t *handle, policydb_t *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/selinux/libsepol/src/policydb.c:1224,1
    - Dst: INFO
      Src: /src/selinux/libsepol/src/policydb.c:1230,1
    - Dst: INFO
      Src: /src/selinux/libsepol/src/policydb.c:1233,1
    - Dst: avtab_hash_eval
      Src: /src/selinux/libsepol/src/policydb.c:1237,1
    - Dst: hashtab_hash_eval
      Src: /src/selinux/libsepol/src/policydb.c:1239,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1242,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:1243,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1248,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:1249,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1254,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:1255,1
    - Dst: cond_init_bool_indexes
      Src: /src/selinux/libsepol/src/policydb.c:1260,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1264,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:1267,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb.c:1271,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb.c:1277,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb.c:1280,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - handle
    - p
    - verbose
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1218
    functionDepth: 1
    functionLinenumber: 1218
    functionLinenumberEnd: 1284
    functionName: policydb_index_others
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - cond_init_bool_indexes
    - hashtab_map
    - free
    - calloc
    - hashtab_hash_eval
    - INFO
    - avtab_hash_eval
    linkageType: ''
    returnType: int
    signature: "int policydb_index_others(sepol_handle_t *handle, policydb_t *p,\n\t\t\t
      \ unsigned verbose)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1296,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1292
    functionDepth: 0
    functionLinenumber: 1292
    functionLinenumberEnd: 1299
    functionName: perm_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: "int perm_destroy(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\tvoid
      *p __attribute__((unused)))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1307,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb.c:1309,1
    - Dst: hashtab_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1310,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1301
    functionDepth: 0
    functionLinenumber: 1301
    functionLinenumberEnd: 1313
    functionName: common_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - hashtab_map
    - free
    - hashtab_destroy
    linkageType: ''
    returnType: int
    signature: "int common_destroy(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \ void *p __attribute__((unused)))"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1322,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb.c:1327,1
    - Dst: hashtab_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1328,1
    - Dst: constraint_expr_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1331,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1334,1
    - Dst: constraint_expr_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1339,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1342,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1346,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1347,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1315
    functionDepth: 1
    functionLinenumber: 1315
    functionLinenumberEnd: 1349
    functionName: class_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - hashtab_map
    - free
    - constraint_expr_destroy
    - hashtab_destroy
    linkageType: ''
    returnType: int
    signature: "int class_destroy(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      void *p __attribute__((unused)))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1354,1
    - Dst: role_datum_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1355,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1351
    functionDepth: 3
    functionLinenumber: 1351
    functionLinenumberEnd: 1358
    functionName: role_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - role_datum_destroy
    - free
    linkageType: ''
    returnType: int
    signature: "int role_destroy(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\tvoid
      *p __attribute__((unused)))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1363,1
    - Dst: type_datum_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1364,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1360
    functionDepth: 2
    functionLinenumber: 1360
    functionLinenumberEnd: 1367
    functionName: type_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - free
    - type_datum_destroy
    linkageType: ''
    returnType: int
    signature: "int type_destroy(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\tvoid
      *p __attribute__((unused)))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1372,1
    - Dst: user_datum_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1373,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1369
    functionDepth: 3
    functionLinenumber: 1369
    functionLinenumberEnd: 1376
    functionName: user_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - user_datum_destroy
    - free
    linkageType: ''
    returnType: int
    signature: "int user_destroy(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\tvoid
      *p __attribute__((unused)))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1384,1
    - Dst: mls_level_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1387,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1388,1
    - Dst: level_datum_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1390,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1378
    functionDepth: 1
    functionLinenumber: 1378
    functionLinenumberEnd: 1393
    functionName: sens_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - mls_level_destroy
    - free
    - level_datum_destroy
    linkageType: ''
    returnType: int
    signature: "int sens_destroy(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\tvoid
      *p __attribute__((unused)))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1399,1
    - Dst: cat_datum_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1400,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1395
    functionDepth: 1
    functionLinenumber: 1395
    functionLinenumberEnd: 1403
    functionName: cat_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - cat_datum_destroy
    - free
    linkageType: ''
    returnType: int
    signature: "int cat_destroy(hashtab_key_t key, hashtab_datum_t datum,\n\t\t       void
      *p __attribute__((unused)))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1417,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1418,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1421,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1411
    functionDepth: 1
    functionLinenumber: 1411
    functionLinenumberEnd: 1426
    functionName: filenametr_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ebitmap_destroy
    - free
    linkageType: ''
    returnType: int
    signature: "int filenametr_destroy(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \     void *p __attribute__((unused)))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1432,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1433,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1434,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1428
    functionDepth: 1
    functionLinenumber: 1428
    functionLinenumberEnd: 1437
    functionName: range_tr_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ebitmap_destroy
    - free
    linkageType: ''
    returnType: int
    signature: "int range_tr_destroy(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \   void *p __attribute__((unused)))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1449,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1450,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1453,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1455,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1456,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - ocontexts
    argTypes:
    - ocontext_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1439
    functionDepth: 1
    functionLinenumber: 1439
    functionLinenumberEnd: 1459
    functionName: ocontext_selinux_free
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - free
    - context_destroy
    linkageType: ''
    returnType: void
    signature: void ocontext_selinux_free(ocontext_t **ocontexts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1471,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1472,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1474,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1475,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - ocontexts
    argTypes:
    - ocontext_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1478
      start: 1461
    functionDepth: 1
    functionLinenumber: 1461
    functionLinenumberEnd: 1478
    functionName: ocontext_xen_free
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - free
    - context_destroy
    linkageType: ''
    returnType: void
    signature: void ocontext_xen_free(ocontext_t **ocontexts)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1494,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1496,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1498,1
    - Dst: symtabs_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1500,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1504,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1508,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1510,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1512,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1514,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1515,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb.c:1518,1
    - Dst: hashtab_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1519,1
    - Dst: avrule_block_list_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1521,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1522,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1523,1
    - Dst: avtab_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1525,1
    - Dst: ocontext_selinux_free
      Src: /src/selinux/libsepol/src/policydb.c:1528,1
    - Dst: ocontext_xen_free
      Src: /src/selinux/libsepol/src/policydb.c:1530,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1534,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1539,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1540,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1541,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1545,1
    - Dst: cond_policydb_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1547,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1551,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1555,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1559,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1563,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb.c:1565,1
    - Dst: hashtab_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1566,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb.c:1568,1
    - Dst: hashtab_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1569,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1573,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1575,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1580,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1582,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 79
    argCount: 1
    argNames:
    - p
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1483
    functionDepth: 2
    functionLinenumber: 1483
    functionLinenumberEnd: 1586
    functionName: policydb_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 17
    functionsReached:
    - avtab_destroy
    - hashtab_map
    - ebitmap_destroy
    - context_destroy
    - avrule_block_list_destroy
    - symtabs_destroy
    - ocontext_selinux_free
    - ocontext_xen_free
    - free
    - cond_policydb_destroy
    - hashtab_destroy
    linkageType: ''
    returnType: void
    signature: void policydb_destroy(policydb_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb.c:1592,1
    - Dst: hashtab_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - symtab
    argTypes:
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1588
    functionDepth: 0
    functionLinenumber: 1588
    functionLinenumberEnd: 1595
    functionName: symtabs_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 1
    functionsReached:
    - hashtab_destroy
    - hashtab_map
    linkageType: ''
    returnType: void
    signature: void symtabs_destroy(symtab_t *symtab)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1601,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1603,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1607
      start: 1597
    functionDepth: 0
    functionLinenumber: 1597
    functionLinenumberEnd: 1607
    functionName: scope_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: "int scope_destroy(hashtab_key_t key, hashtab_datum_t datum,\n\t\t
      \ void *p __attribute__((unused)))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sepol_sidtab_init
      Src: /src/selinux/libsepol/src/policydb.c:1617,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:1618,1
    - Dst: sepol_sidtab_insert
      Src: /src/selinux/libsepol/src/policydb.c:1624,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:1625,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - p
    - s
    argTypes:
    - policydb_t*
    - sidtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1613
    functionDepth: 1
    functionLinenumber: 1613
    functionLinenumberEnd: 1631
    functionName: policydb_load_isids
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - sepol_sidtab_init
    - ERR
    - sepol_sidtab_insert
    linkageType: ''
    returnType: int
    signature: int policydb_load_isids(policydb_t *p, sidtab_t *s)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/policydb.c:1670,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/policydb.c:1685,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/policydb.c:1687,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/policydb.c:1690,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1691,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/policydb.c:1697,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1699,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:1700,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/policydb.c:1715,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/policydb.c:1717,1
    - Dst: add_i_to_a
      Src: /src/selinux/libsepol/src/policydb.c:1738,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 61
    argCount: 7
    argNames:
    - pol
    - sym
    - key
    - datum
    - scope
    - avrule_decl_id
    - value
    argTypes:
    - policydb_t*
    - uint32_t
    - hashtab_key_t
    - hashtab_datum_t
    - uint32_t
    - uint32_t
    - uint32_t*
    assertStmts:
    - condition: (base_role != NULL)
      pos:
        line_end: 1716
        line_start: 1716
        source_file: /src/selinux/libsepol/src/policydb.c
    constantsTouched: []
    func_position:
      end: 1757
      start: 1656
    functionDepth: 1
    functionLinenumber: 1656
    functionLinenumberEnd: 1757
    functionName: symtab_insert
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 1
    functionsReached:
    - hashtab_search
    - add_i_to_a
    - malloc
    - hashtab_insert
    - assert
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int symtab_insert(policydb_t *pol, uint32_t sym, hashtab_key_t key,\n\t\t
      \ hashtab_datum_t datum, uint32_t scope,\n\t\t  uint32_t avrule_decl_id, uint32_t
      *value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: type_set_init
      Src: /src/selinux/libsepol/src/policydb.c:1762,1
    - Dst: ebitmap_or
      Src: /src/selinux/libsepol/src/policydb.c:1764,1
    - Dst: ebitmap_or
      Src: /src/selinux/libsepol/src/policydb.c:1767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - dst
    - a
    - b
    argTypes:
    - type_set_t*
    - type_set_t*
    - type_set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1759
    functionDepth: 2
    functionLinenumber: 1759
    functionLinenumberEnd: 1775
    functionName: type_set_or
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ebitmap_or
    - type_set_init
    linkageType: ''
    returnType: int
    signature: "int type_set_or(type_set_t *dst, const type_set_t *a,\n\t\t       const
      type_set_t *b)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: type_set_init
      Src: /src/selinux/libsepol/src/policydb.c:1779,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/src/policydb.c:1782,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/src/policydb.c:1784,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - type_set_t*
    - type_set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1788
      start: 1777
    functionDepth: 2
    functionLinenumber: 1777
    functionLinenumberEnd: 1788
    functionName: type_set_cpy
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ebitmap_cpy
    - type_set_init
    linkageType: ''
    returnType: int
    signature: int type_set_cpy(type_set_t *dst, const type_set_t *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: type_set_or
      Src: /src/selinux/libsepol/src/policydb.c:1795,1
    - Dst: type_set_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1797,1
    - Dst: type_set_cpy
      Src: /src/selinux/libsepol/src/policydb.c:1798,1
    - Dst: type_set_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1799,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - dst
    - other
    argTypes:
    - type_set_t*
    - type_set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1790
    functionDepth: 3
    functionLinenumber: 1790
    functionLinenumberEnd: 1802
    functionName: type_set_or_eq
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - type_set_or
    - type_set_destroy
    - type_set_cpy
    linkageType: ''
    returnType: int
    signature: int type_set_or_eq(type_set_t *dst, const type_set_t *other)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_read
      Src: /src/selinux/libsepol/src/policydb.c:1814,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:1816,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:1819,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - r
    - fp
    argTypes:
    - role_set_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1809
    functionDepth: 1
    functionLinenumber: 1809
    functionLinenumberEnd: 1822
    functionName: role_set_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - le32_to_cpu
    - next_entry
    - ebitmap_read
    linkageType: ''
    returnType: int
    signature: int role_set_read(role_set_t *r, struct policy_file *fp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_read
      Src: /src/selinux/libsepol/src/policydb.c:1829,1
    - Dst: ebitmap_read
      Src: /src/selinux/libsepol/src/policydb.c:1831,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:1834,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:1837,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - t
    - fp
    argTypes:
    - type_set_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1840
      start: 1824
    functionDepth: 1
    functionLinenumber: 1824
    functionLinenumberEnd: 1840
    functionName: type_set_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - le32_to_cpu
    - next_entry
    - ebitmap_read
    linkageType: ''
    returnType: int
    signature: int type_set_read(type_set_t *t, struct policy_file *fp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:1851,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:1855,1
    - Dst: ARRAY_SIZE
      Src: /src/selinux/libsepol/src/policydb.c:1856,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:1857,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:1861,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:1863,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:1866,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:1868,1
    - Dst: ebitmap_read
      Src: /src/selinux/libsepol/src/policydb.c:1872,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:1874,1
    - Dst: ebitmap_read
      Src: /src/selinux/libsepol/src/policydb.c:1878,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:1880,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/src/policydb.c:1884,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:1886,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb.c:1895,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 2
    argNames:
    - r
    - fp
    argTypes:
    - mls_range_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1846
    functionDepth: 1
    functionLinenumber: 1846
    functionLinenumberEnd: 1897
    functionName: mls_read_range_helper
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ERR
    - ebitmap_destroy
    - ARRAY_SIZE
    - le32_to_cpu
    - next_entry
    - ebitmap_cpy
    - ebitmap_read
    linkageType: ''
    returnType: int
    signature: int mls_read_range_helper(mls_range_t *r, struct policy_file *fp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mls_semantic_level_init
      Src: /src/selinux/libsepol/src/policydb.c:1911,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:1913,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:1915,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:1918,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:1920,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/policydb.c:1922,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:1924,1
    - Dst: mls_semantic_cat_init
      Src: /src/selinux/libsepol/src/policydb.c:1928,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:1932,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:1934,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:1937,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:1938,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - l
    - fp
    argTypes:
    - mls_semantic_level_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1945
      start: 1903
    functionDepth: 1
    functionLinenumber: 1903
    functionLinenumberEnd: 1945
    functionName: mls_read_semantic_level_helper
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ERR
    - le32_to_cpu
    - malloc
    - mls_semantic_level_init
    - mls_semantic_cat_init
    - next_entry
    linkageType: ''
    returnType: int
    signature: "int mls_read_semantic_level_helper(mls_semantic_level_t *l,\n\t\t\t\t\t
      \ struct policy_file *fp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mls_read_semantic_level_helper
      Src: /src/selinux/libsepol/src/policydb.c:1956,1
    - Dst: mls_read_semantic_level_helper
      Src: /src/selinux/libsepol/src/policydb.c:1960,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - r
    - fp
    argTypes:
    - mls_semantic_range_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1951
    functionDepth: 2
    functionLinenumber: 1951
    functionLinenumberEnd: 1963
    functionName: mls_read_semantic_range_helper
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - mls_read_semantic_level_helper
    linkageType: ''
    returnType: int
    signature: "int mls_read_semantic_range_helper(mls_semantic_range_t *r,\n\t\t\t\t\t
      \ struct policy_file *fp)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: mls_semantic_level_init
      Src: /src/selinux/libsepol/src/policydb.c:1971,1
    - Dst: ebitmap_for_each_bit
      Src: /src/selinux/libsepol/src/policydb.c:1973,1
    - Dst: ebitmap_node_get_bit
      Src: /src/selinux/libsepol/src/policydb.c:1974,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/policydb.c:1977,1
    - Dst: mls_semantic_cat_init
      Src: /src/selinux/libsepol/src/policydb.c:1982,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - l
    - sl
    argTypes:
    - mls_level_t*
    - mls_semantic_level_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1997
      start: 1965
    functionDepth: 1
    functionLinenumber: 1965
    functionLinenumberEnd: 1997
    functionName: mls_level_to_semantic
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ebitmap_for_each_bit
    - malloc
    - mls_semantic_level_init
    - mls_semantic_cat_init
    - ebitmap_node_get_bit
    linkageType: ''
    returnType: int
    signature: int mls_level_to_semantic(mls_level_t *l, mls_semantic_level_t *sl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mls_level_to_semantic
      Src: /src/selinux/libsepol/src/policydb.c:2001,1
    - Dst: mls_level_to_semantic
      Src: /src/selinux/libsepol/src/policydb.c:2004,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - r
    - sr
    argTypes:
    - mls_range_t*
    - mls_semantic_range_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2008
      start: 1999
    functionDepth: 2
    functionLinenumber: 1999
    functionLinenumberEnd: 2008
    functionName: mls_range_to_semantic
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - mls_level_to_semantic
    linkageType: ''
    returnType: int
    signature: int mls_range_to_semantic(mls_range_t *r, mls_semantic_range_t *sr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2020,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:2022,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2025,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2026,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2027,1
    - Dst: mls_read_range_helper
      Src: /src/selinux/libsepol/src/policydb.c:2031,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:2032,1
    - Dst: policydb_context_isvalid
      Src: /src/selinux/libsepol/src/policydb.c:2038,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:2039,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/policydb.c:2040,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - c
    - p
    - fp
    argTypes:
    - context_struct_t*
    - policydb_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 2014
    functionDepth: 2
    functionLinenumber: 2014
    functionLinenumberEnd: 2044
    functionName: context_read_and_validate
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ERR
    - policydb_context_isvalid
    - context_destroy
    - le32_to_cpu
    - mls_read_range_helper
    - next_entry
    linkageType: ''
    returnType: int
    signature: "int context_read_and_validate(context_struct_t *c, policydb_t *p,\n\t\t\t\t
      \    struct policy_file *fp)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:2061,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2065,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2069,1
    - Dst: str_read
      Src: /src/selinux/libsepol/src/policydb.c:2070,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2073,1
    - Dst: value_isvalid
      Src: /src/selinux/libsepol/src/policydb.c:2074,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/policydb.c:2077,1
    - Dst: perm_destroy
      Src: /src/selinux/libsepol/src/policydb.c:2083,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - p
    - h
    - fp
    - nprim
    argTypes:
    - policydb_t*
    - hashtab_t
    - struct policy_file*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 2052
    functionDepth: 2
    functionLinenumber: 2052
    functionLinenumberEnd: 2085
    functionName: perm_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - perm_destroy
    - le32_to_cpu
    - hashtab_insert
    - str_read
    - value_isvalid
    - calloc
    - next_entry
    linkageType: ''
    returnType: int
    signature: "int perm_read(policydb_t *p __attribute__((unused)), hashtab_t h,\n\t\t
      \    struct policy_file *fp, uint32_t nprim)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:2096,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2100,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2104,1
    - Dst: str_read
      Src: /src/selinux/libsepol/src/policydb.c:2105,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2109,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/src/policydb.c:2111,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2113,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2116,1
    - Dst: perm_read
      Src: /src/selinux/libsepol/src/policydb.c:2119,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/policydb.c:2124,1
    - Dst: common_destroy
      Src: /src/selinux/libsepol/src/policydb.c:2130,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 3
    argNames:
    - p
    - h
    - fp
    argTypes:
    - policydb_t*
    - hashtab_t
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2087
    functionDepth: 3
    functionLinenumber: 2087
    functionLinenumberEnd: 2132
    functionName: common_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - symtab_init
    - le32_to_cpu
    - hashtab_insert
    - str_read
    - calloc
    - common_destroy
    - perm_read
    - next_entry
    linkageType: ''
    returnType: int
    signature: int common_read(policydb_t *p, hashtab_t h, struct policy_file *fp)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:2147,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2156,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2159,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2160,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/policydb.c:2164,1
    - Dst: constraint_expr_init
      Src: /src/selinux/libsepol/src/policydb.c:2167,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:2168,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2177,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2180,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2181,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2182,1
    - Dst: ebitmap_read
      Src: /src/selinux/libsepol/src/policydb.c:2206,1
    - Dst: type_set_read
      Src: /src/selinux/libsepol/src/policydb.c:2209,1
    - Dst: type_set_read
      Src: /src/selinux/libsepol/src/policydb.c:2214,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 74
    argCount: 5
    argNames:
    - p
    - nodep
    - ncons
    - allowxtarget
    - fp
    argTypes:
    - policydb_t*
    - constraint_node_t**
    - unsigned int
    - int
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2134
    functionDepth: 2
    functionLinenumber: 2134
    functionLinenumberEnd: 2228
    functionName: read_cons_helper
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - constraint_expr_init
    - type_set_read
    - le32_to_cpu
    - malloc
    - free
    - calloc
    - next_entry
    - ebitmap_read
    linkageType: ''
    returnType: int
    signature: "int read_cons_helper(policydb_t *p, constraint_node_t **nodep,\n\t\t\t
      \   unsigned int ncons, int allowxtarget,\n\t\t\t    struct policy_file *fp)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:2239,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2243,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2247,1
    - Dst: str_read
      Src: /src/selinux/libsepol/src/policydb.c:2248,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2252,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2253,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/src/policydb.c:2257,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2259,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2262,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2264,1
    - Dst: str_read
      Src: /src/selinux/libsepol/src/policydb.c:2267,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/policydb.c:2272,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:2274,1
    - Dst: perm_read
      Src: /src/selinux/libsepol/src/policydb.c:2279,1
    - Dst: read_cons_helper
      Src: /src/selinux/libsepol/src/policydb.c:2284,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2291,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2294,1
    - Dst: read_cons_helper
      Src: /src/selinux/libsepol/src/policydb.c:2295,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2303,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2306,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2307,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2308,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2315,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2318,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/policydb.c:2321,1
    - Dst: class_destroy
      Src: /src/selinux/libsepol/src/policydb.c:2327,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 81
    argCount: 3
    argNames:
    - p
    - h
    - fp
    argTypes:
    - policydb_t*
    - hashtab_t
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2329
      start: 2230
    functionDepth: 3
    functionLinenumber: 2230
    functionLinenumberEnd: 2329
    functionName: class_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_search
    - symtab_init
    - le32_to_cpu
    - hashtab_insert
    - str_read
    - calloc
    - class_destroy
    - read_cons_helper
    - perm_read
    - next_entry
    linkageType: ''
    returnType: int
    signature: int class_read(policydb_t *p, hashtab_t h, struct policy_file *fp)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:2339,1
    - Dst: policydb_has_boundary_feature
      Src: /src/selinux/libsepol/src/policydb.c:2343,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2346,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2350,1
    - Dst: str_read
      Src: /src/selinux/libsepol/src/policydb.c:2351,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2355,1
    - Dst: policydb_has_boundary_feature
      Src: /src/selinux/libsepol/src/policydb.c:2356,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2357,1
    - Dst: ebitmap_read
      Src: /src/selinux/libsepol/src/policydb.c:2359,1
    - Dst: ebitmap_read
      Src: /src/selinux/libsepol/src/policydb.c:2363,1
    - Dst: type_set_read
      Src: /src/selinux/libsepol/src/policydb.c:2366,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2372,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2376,1
    - Dst: ebitmap_read
      Src: /src/selinux/libsepol/src/policydb.c:2378,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/policydb.c:2382,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:2384,1
    - Dst: role_destroy
      Src: /src/selinux/libsepol/src/policydb.c:2386,1
    - Dst: role_destroy
      Src: /src/selinux/libsepol/src/policydb.c:2389,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/policydb.c:2393,1
    - Dst: role_destroy
      Src: /src/selinux/libsepol/src/policydb.c:2399,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 57
    argCount: 3
    argNames:
    - p
    - h
    - fp
    argTypes:
    - policydb_t*
    - hashtab_t
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2401
      start: 2331
    functionDepth: 4
    functionLinenumber: 2331
    functionLinenumberEnd: 2401
    functionName: role_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ERR
    - type_set_read
    - le32_to_cpu
    - policydb_has_boundary_feature
    - strcmp
    - role_destroy
    - hashtab_insert
    - str_read
    - calloc
    - next_entry
    - ebitmap_read
    linkageType: ''
    returnType: int
    signature: int role_read(policydb_t *p, hashtab_t h, struct policy_file *fp)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:2412,1
    - Dst: policydb_has_boundary_feature
      Src: /src/selinux/libsepol/src/policydb.c:2416,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2429,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2433,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2434,1
    - Dst: policydb_has_boundary_feature
      Src: /src/selinux/libsepol/src/policydb.c:2435,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2440,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2441,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2443,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2461,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2463,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2465,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2467,1
    - Dst: ebitmap_read
      Src: /src/selinux/libsepol/src/policydb.c:2472,1
    - Dst: str_read
      Src: /src/selinux/libsepol/src/policydb.c:2476,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/policydb.c:2480,1
    - Dst: type_destroy
      Src: /src/selinux/libsepol/src/policydb.c:2486,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 63
    argCount: 3
    argNames:
    - p
    - h
    - fp
    argTypes:
    - policydb_t*
    - hashtab_t
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2488
      start: 2403
    functionDepth: 3
    functionLinenumber: 2403
    functionLinenumberEnd: 2488
    functionName: type_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - le32_to_cpu
    - policydb_has_boundary_feature
    - hashtab_insert
    - str_read
    - type_destroy
    - calloc
    - next_entry
    - ebitmap_read
    linkageType: ''
    returnType: int
    signature: int type_read(policydb_t *p, hashtab_t h, struct policy_file *fp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2500,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2503,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:2506,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2515,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2518,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2519,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2520,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2522,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2525,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2531
      start: 2490
    functionDepth: 0
    functionLinenumber: 2490
    functionLinenumberEnd: 2531
    functionName: role_trans_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - le32_to_cpu
    - next_entry
    - calloc
    linkageType: ''
    returnType: int
    signature: int role_trans_read(policydb_t *p, struct policy_file *fp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2540,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2543,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:2546,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2555,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2558,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2559,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - r
    - fp
    argTypes:
    - role_allow_t**
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2563
      start: 2533
    functionDepth: 0
    functionLinenumber: 2533
    functionLinenumberEnd: 2563
    functionName: role_allow_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - le32_to_cpu
    - next_entry
    - calloc
    linkageType: ''
    returnType: int
    signature: int role_allow_read(role_allow_t **r, struct policy_file *fp)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/policydb.c:2578,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/policydb.c:2580,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/policydb.c:2591,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/policydb.c:2595,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/policydb.c:2608,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:2610,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/policydb.c:2615,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:2617,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:2618,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/policydb.c:2626,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:2628,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:2629,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:2630,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/policydb.c:2637,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 56
    argCount: 8
    argNames:
    - p
    - stype
    - ttype
    - tclass
    - name
    - name_alloc
    - otype
    - present_otype
    argTypes:
    - policydb_t*
    - uint32_t
    - uint32_t
    - uint32_t
    - char*
    - char**
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2638
      start: 2565
    functionDepth: 1
    functionLinenumber: 2565
    functionLinenumberEnd: 2638
    functionName: policydb_filetrans_insert
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - hashtab_search
    - malloc
    - hashtab_insert
    - ebitmap_set_bit
    - free
    - ebitmap_get_bit
    - strdup
    linkageType: ''
    returnType: int
    signature: "int policydb_filetrans_insert(policydb_t *p, uint32_t stype, uint32_t
      ttype,\n\t\t\t      uint32_t tclass, const char *name,\n\t\t\t      char **name_alloc,
      uint32_t otype,\n\t\t\t      uint32_t *present_otype)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2646,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2649,1
    - Dst: str_read
      Src: /src/selinux/libsepol/src/policydb.c:2651,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2655,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2659,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2663,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2664,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2665,1
    - Dst: policydb_filetrans_insert
      Src: /src/selinux/libsepol/src/policydb.c:2667,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:2679,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:2682,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2684
      start: 2640
    functionDepth: 2
    functionLinenumber: 2640
    functionLinenumberEnd: 2684
    functionName: filename_trans_read_one_compat
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - le32_to_cpu
    - str_read
    - policydb_filetrans_insert
    - free
    - next_entry
    linkageType: ''
    returnType: int
    signature: int filename_trans_read_one_compat(policydb_t *p, struct policy_file
      *fp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/policydb.c:2691,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/policydb.c:2692,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/policydb.c:2695,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/policydb.c:2698,1
    - Dst: ebitmap_match_any
      Src: /src/selinux/libsepol/src/policydb.c:2701,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/src/policydb.c:2704,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb.c:2711,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb.c:2712,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - datum
    argTypes:
    - filename_trans_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2714
      start: 2686
    functionDepth: 1
    functionLinenumber: 2686
    functionLinenumberEnd: 2714
    functionName: filename_trans_check_datum
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - ebitmap_set_bit
    - ebitmap_get_bit
    - ebitmap_match_any
    - ebitmap_union
    linkageType: ''
    returnType: int
    signature: int filename_trans_check_datum(filename_trans_datum_t *datum)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2725,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2728,1
    - Dst: str_read
      Src: /src/selinux/libsepol/src/policydb.c:2730,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2734,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2738,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2739,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2740,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/policydb.c:2746,1
    - Dst: ebitmap_read
      Src: /src/selinux/libsepol/src/policydb.c:2754,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2758,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2762,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/src/policydb.c:2764,1
    - Dst: filename_trans_check_datum
      Src: /src/selinux/libsepol/src/policydb.c:2769,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/policydb.c:2772,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/policydb.c:2780,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:2787,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:2788,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb.c:2793,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:2794,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 65
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2797
      start: 2716
    functionDepth: 2
    functionLinenumber: 2716
    functionLinenumberEnd: 2797
    functionName: filename_trans_read_one
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ebitmap_cardinality
    - ebitmap_destroy
    - filename_trans_check_datum
    - le32_to_cpu
    - malloc
    - hashtab_insert
    - str_read
    - free
    - next_entry
    - ebitmap_read
    linkageType: ''
    returnType: int
    signature: int filename_trans_read_one(policydb_t *p, struct policy_file *fp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2805,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2808,1
    - Dst: filename_trans_read_one_compat
      Src: /src/selinux/libsepol/src/policydb.c:2812,1
    - Dst: filename_trans_read_one
      Src: /src/selinux/libsepol/src/policydb.c:2818,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2824
      start: 2799
    functionDepth: 3
    functionLinenumber: 2799
    functionLinenumberEnd: 2824
    functionName: filename_trans_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - filename_trans_read_one_compat
    - le32_to_cpu
    - next_entry
    - filename_trans_read_one
    linkageType: ''
    returnType: int
    signature: int filename_trans_read(policydb_t *p, struct policy_file *fp)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2836,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2839,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:2842,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2852,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2855,1
    - Dst: is_saturated
      Src: /src/selinux/libsepol/src/policydb.c:2856,1
    - Dst: context_read_and_validate
      Src: /src/selinux/libsepol/src/policydb.c:2858,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2863,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2866,1
    - Dst: context_read_and_validate
      Src: /src/selinux/libsepol/src/policydb.c:2867,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2872,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2875,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2876,1
    - Dst: context_read_and_validate
      Src: /src/selinux/libsepol/src/policydb.c:2877,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2885,1
    - Dst: le64_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2890,1
    - Dst: le64_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2892,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2894,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2899,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2901,1
    - Dst: context_read_and_validate
      Src: /src/selinux/libsepol/src/policydb.c:2903,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2908,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2911,1
    - Dst: context_read_and_validate
      Src: /src/selinux/libsepol/src/policydb.c:2912,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2917,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2920,1
    - Dst: str_read
      Src: /src/selinux/libsepol/src/policydb.c:2921,1
    - Dst: context_read_and_validate
      Src: /src/selinux/libsepol/src/policydb.c:2924,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:2930,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 86
    argCount: 3
    argNames:
    - info
    - p
    - fp
    argTypes:
    - struct policydb_compat_info*
    - policydb_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2936
      start: 2826
    functionDepth: 3
    functionLinenumber: 2826
    functionLinenumberEnd: 2936
    functionName: ocontext_read_xen
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ERR
    - le32_to_cpu
    - str_read
    - context_read_and_validate
    - is_saturated
    - calloc
    - le64_to_cpu
    - next_entry
    linkageType: ''
    returnType: int
    signature: "int ocontext_read_xen(const struct policydb_compat_info *info,\n\t\t\t
      \    policydb_t *p, struct policy_file *fp)"
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2947,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2950,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:2953,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2965,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2968,1
    - Dst: is_saturated
      Src: /src/selinux/libsepol/src/policydb.c:2969,1
    - Dst: context_read_and_validate
      Src: /src/selinux/libsepol/src/policydb.c:2971,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2977,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:2980,1
    - Dst: str_read
      Src: /src/selinux/libsepol/src/policydb.c:2984,1
    - Dst: context_read_and_validate
      Src: /src/selinux/libsepol/src/policydb.c:2988,1
    - Dst: context_read_and_validate
      Src: /src/selinux/libsepol/src/policydb.c:2991,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:2998,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3002,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3003,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/policydb.c:3014,1
    - Dst: context_read_and_validate
      Src: /src/selinux/libsepol/src/policydb.c:3017,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3025,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3028,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3032,1
    - Dst: str_read
      Src: /src/selinux/libsepol/src/policydb.c:3036,1
    - Dst: context_read_and_validate
      Src: /src/selinux/libsepol/src/policydb.c:3042,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3048,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3051,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3052,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3053,1
    - Dst: context_read_and_validate
      Src: /src/selinux/libsepol/src/policydb.c:3054,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3059,1
    - Dst: context_read_and_validate
      Src: /src/selinux/libsepol/src/policydb.c:3064,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3069,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3072,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3073,1
    - Dst: str_read
      Src: /src/selinux/libsepol/src/policydb.c:3075,1
    - Dst: context_read_and_validate
      Src: /src/selinux/libsepol/src/policydb.c:3079,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3086,1
    - Dst: context_read_and_validate
      Src: /src/selinux/libsepol/src/policydb.c:3095,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:3101,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 129
    argCount: 3
    argNames:
    - info
    - p
    - fp
    argTypes:
    - struct policydb_compat_info*
    - policydb_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3108
      start: 2937
    functionDepth: 3
    functionLinenumber: 2937
    functionLinenumberEnd: 3108
    functionName: ocontext_read_selinux
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ERR
    - le32_to_cpu
    - str_read
    - context_read_and_validate
    - is_saturated
    - calloc
    - memcpy
    - next_entry
    linkageType: ''
    returnType: int
    signature: "int ocontext_read_selinux(const struct policydb_compat_info *info,\n\t\t\t\t
      policydb_t *p, struct policy_file *fp)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ocontext_read_selinux
      Src: /src/selinux/libsepol/src/policydb.c:3116,1
    - Dst: ocontext_read_xen
      Src: /src/selinux/libsepol/src/policydb.c:3119,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:3122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - info
    - p
    - fp
    argTypes:
    - struct policydb_compat_info*
    - policydb_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3125
      start: 3110
    functionDepth: 4
    functionLinenumber: 3110
    functionLinenumberEnd: 3125
    functionName: ocontext_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ERR
    - ocontext_read_selinux
    - ocontext_read_xen
    linkageType: ''
    returnType: int
    signature: "int ocontext_read(const struct policydb_compat_info *info, policydb_t
      *p,\n\t\t\t struct policy_file *fp)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3136,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3139,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3142,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3145,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:3146,1
    - Dst: str_read
      Src: /src/selinux/libsepol/src/policydb.c:3150,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:3152,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:3153,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/policydb.c:3159,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:3160,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:3162,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:3163,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/policydb.c:3166,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3174,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3177,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:3179,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3183,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3186,1
    - Dst: str_read
      Src: /src/selinux/libsepol/src/policydb.c:3187,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3191,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3194,1
    - Dst: context_read_and_validate
      Src: /src/selinux/libsepol/src/policydb.c:3195,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/policydb.c:3199,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:3202,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/policydb.c:3208,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/policydb.c:3209,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/policydb.c:3227,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/policydb.c:3228,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:3229,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:3230,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 95
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3233
      start: 3127
    functionDepth: 3
    functionLinenumber: 3127
    functionLinenumberEnd: 3233
    functionName: genfs_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ERR
    - context_destroy
    - le32_to_cpu
    - strcmp
    - str_read
    - context_read_and_validate
    - free
    - calloc
    - next_entry
    - strlen
    linkageType: ''
    returnType: int
    signature: int genfs_read(policydb_t *p, struct policy_file *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mls_level_init
      Src: /src/selinux/libsepol/src/policydb.c:3244,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3246,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:3248,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3251,1
    - Dst: ebitmap_read
      Src: /src/selinux/libsepol/src/policydb.c:3253,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:3254,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - lp
    - fp
    argTypes:
    - mls_level_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3261
      start: 3239
    functionDepth: 1
    functionLinenumber: 3239
    functionLinenumberEnd: 3261
    functionName: mls_read_level
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ERR
    - le32_to_cpu
    - mls_level_init
    - next_entry
    - ebitmap_read
    linkageType: ''
    returnType: int
    signature: int mls_read_level(mls_level_t *lp, struct policy_file *fp)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:3271,1
    - Dst: policydb_has_boundary_feature
      Src: /src/selinux/libsepol/src/policydb.c:3275,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3278,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3282,1
    - Dst: str_read
      Src: /src/selinux/libsepol/src/policydb.c:3283,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3287,1
    - Dst: policydb_has_boundary_feature
      Src: /src/selinux/libsepol/src/policydb.c:3288,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3289,1
    - Dst: ebitmap_read
      Src: /src/selinux/libsepol/src/policydb.c:3292,1
    - Dst: role_set_read
      Src: /src/selinux/libsepol/src/policydb.c:3295,1
    - Dst: mls_read_range_helper
      Src: /src/selinux/libsepol/src/policydb.c:3310,1
    - Dst: mls_read_level
      Src: /src/selinux/libsepol/src/policydb.c:3312,1
    - Dst: mls_range_to_semantic
      Src: /src/selinux/libsepol/src/policydb.c:3315,1
    - Dst: mls_level_to_semantic
      Src: /src/selinux/libsepol/src/policydb.c:3318,1
    - Dst: mls_read_semantic_range_helper
      Src: /src/selinux/libsepol/src/policydb.c:3326,1
    - Dst: mls_read_semantic_level_helper
      Src: /src/selinux/libsepol/src/policydb.c:3328,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/policydb.c:3332,1
    - Dst: user_destroy
      Src: /src/selinux/libsepol/src/policydb.c:3338,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 59
    argCount: 3
    argNames:
    - p
    - h
    - fp
    argTypes:
    - policydb_t*
    - hashtab_t
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3340
      start: 3263
    functionDepth: 4
    functionLinenumber: 3263
    functionLinenumberEnd: 3340
    functionName: user_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - mls_read_semantic_level_helper
    - le32_to_cpu
    - policydb_has_boundary_feature
    - user_destroy
    - hashtab_insert
    - str_read
    - calloc
    - mls_range_to_semantic
    - mls_read_range_helper
    - mls_level_to_semantic
    - mls_read_level
    - next_entry
    - mls_read_semantic_range_helper
    - role_set_read
    - ebitmap_read
    linkageType: ''
    returnType: int
    signature: int user_read(policydb_t *p, hashtab_t h, struct policy_file *fp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/policydb.c:3350,1
    - Dst: level_datum_init
      Src: /src/selinux/libsepol/src/policydb.c:3353,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3355,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3359,1
    - Dst: str_read
      Src: /src/selinux/libsepol/src/policydb.c:3360,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3364,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/policydb.c:3366,1
    - Dst: mls_read_level
      Src: /src/selinux/libsepol/src/policydb.c:3367,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/policydb.c:3370,1
    - Dst: sens_destroy
      Src: /src/selinux/libsepol/src/policydb.c:3376,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - p
    - h
    - fp
    argTypes:
    - policydb_t*
    - hashtab_t
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3378
      start: 3342
    functionDepth: 2
    functionLinenumber: 3342
    functionLinenumberEnd: 3378
    functionName: sens_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - level_datum_init
    - le32_to_cpu
    - malloc
    - hashtab_insert
    - sens_destroy
    - str_read
    - mls_read_level
    - next_entry
    linkageType: ''
    returnType: int
    signature: "int sens_read(policydb_t *p __attribute__((unused)), hashtab_t h,\n\t\t
      \    struct policy_file *fp)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/policydb.c:3388,1
    - Dst: cat_datum_init
      Src: /src/selinux/libsepol/src/policydb.c:3391,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3393,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3397,1
    - Dst: str_read
      Src: /src/selinux/libsepol/src/policydb.c:3398,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3402,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3403,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/policydb.c:3405,1
    - Dst: cat_destroy
      Src: /src/selinux/libsepol/src/policydb.c:3411,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - p
    - h
    - fp
    argTypes:
    - policydb_t*
    - hashtab_t
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3413
      start: 3380
    functionDepth: 2
    functionLinenumber: 3380
    functionLinenumberEnd: 3413
    functionName: cat_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - cat_destroy
    - le32_to_cpu
    - cat_datum_init
    - malloc
    - hashtab_insert
    - str_read
    - next_entry
    linkageType: ''
    returnType: int
    signature: "int cat_read(policydb_t *p __attribute__((unused)), hashtab_t h,\n\t\t
      \   struct policy_file *fp)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/policydb.c:3431,1
    - Dst: avrule_init
      Src: /src/selinux/libsepol/src/policydb.c:3435,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3437,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3441,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3442,1
    - Dst: type_set_read
      Src: /src/selinux/libsepol/src/policydb.c:3444,1
    - Dst: type_set_read
      Src: /src/selinux/libsepol/src/policydb.c:3447,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3450,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3453,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/policydb.c:3456,1
    - Dst: class_perm_node_init
      Src: /src/selinux/libsepol/src/policydb.c:3459,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3461,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:3463,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3467,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3468,1
    - Dst: ARRAY_SIZE
      Src: /src/selinux/libsepol/src/policydb.c:3480,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:3484,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:3492,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:3499,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3503,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:3505,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3509,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:3511,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3515,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:3517,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3521,1
    - Dst: avrule_destroy
      Src: /src/selinux/libsepol/src/policydb.c:3527,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:3528,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 89
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3531
      start: 3423
    functionDepth: 3
    functionLinenumber: 3423
    functionLinenumberEnd: 3531
    functionName: avrule_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ERR
    - ARRAY_SIZE
    - le32_to_cpu
    - malloc
    - next_entry
    - avrule_init
    - free
    - calloc
    - class_perm_node_init
    - type_set_read
    - avrule_destroy
    linkageType: ''
    returnType: avrule_t
    signature: avrule_t *avrule_read(policydb_t *p, struct policy_file *fp)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3543,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3546,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:3548,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3551,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3554,1
    - Dst: value_isvalid
      Src: /src/selinux/libsepol/src/policydb.c:3555,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3557,1
    - Dst: value_isvalid
      Src: /src/selinux/libsepol/src/policydb.c:3558,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3561,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3564,1
    - Dst: value_isvalid
      Src: /src/selinux/libsepol/src/policydb.c:3567,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:3569,1
    - Dst: mls_read_range_helper
      Src: /src/selinux/libsepol/src/policydb.c:3572,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/policydb.c:3576,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/policydb.c:3585,1
    - Dst: range_trans_rule_init
      Src: /src/selinux/libsepol/src/policydb.c:3588,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/policydb.c:3590,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/policydb.c:3593,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/policydb.c:3596,1
    - Dst: mls_range_to_semantic
      Src: /src/selinux/libsepol/src/policydb.c:3599,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:3607,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:3609,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:3616,1
    - Dst: mls_range_destroy
      Src: /src/selinux/libsepol/src/policydb.c:3618,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:3619,1
    - Dst: range_trans_rule_destroy
      Src: /src/selinux/libsepol/src/policydb.c:3622,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:3623,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 87
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3626
      start: 3533
    functionDepth: 3
    functionLinenumber: 3533
    functionLinenumberEnd: 3626
    functionName: range_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - le32_to_cpu
    - malloc
    - hashtab_insert
    - mls_range_destroy
    - value_isvalid
    - range_trans_rule_init
    - calloc
    - ebitmap_set_bit
    - mls_read_range_helper
    - mls_range_to_semantic
    - free
    - range_trans_rule_destroy
    - next_entry
    linkageType: ''
    returnType: int
    signature: int range_read(policydb_t *p, struct policy_file *fp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3637,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3641,1
    - Dst: avrule_read
      Src: /src/selinux/libsepol/src/policydb.c:3644,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - p
    - avrules
    - fp
    argTypes:
    - policydb_t*
    - avrule_t**
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3658
      start: 3628
    functionDepth: 4
    functionLinenumber: 3628
    functionLinenumberEnd: 3658
    functionName: avrule_read_list
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - le32_to_cpu
    - next_entry
    - avrule_read
    linkageType: ''
    returnType: int
    signature: int avrule_read_list(policydb_t *p, avrule_t **avrules, struct policy_file
      *fp)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3668,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3671,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/policydb.c:3674,1
    - Dst: role_trans_rule_init
      Src: /src/selinux/libsepol/src/policydb.c:3678,1
    - Dst: role_set_read
      Src: /src/selinux/libsepol/src/policydb.c:3686,1
    - Dst: type_set_read
      Src: /src/selinux/libsepol/src/policydb.c:3689,1
    - Dst: ebitmap_read
      Src: /src/selinux/libsepol/src/policydb.c:3693,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/policydb.c:3698,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3703,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3706,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - p
    - r
    - fp
    argTypes:
    - policydb_t*
    - role_trans_rule_t**
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3711
      start: 3660
    functionDepth: 3
    functionLinenumber: 3660
    functionLinenumberEnd: 3711
    functionName: role_trans_rule_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - type_set_read
    - le32_to_cpu
    - malloc
    - ebitmap_set_bit
    - role_trans_rule_init
    - next_entry
    - role_set_read
    - ebitmap_read
    linkageType: ''
    returnType: int
    signature: "int role_trans_rule_read(policydb_t *p, role_trans_rule_t **r,\n\t\t\t\tstruct
      policy_file *fp)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3720,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3723,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/policydb.c:3726,1
    - Dst: role_allow_rule_init
      Src: /src/selinux/libsepol/src/policydb.c:3730,1
    - Dst: role_set_read
      Src: /src/selinux/libsepol/src/policydb.c:3738,1
    - Dst: role_set_read
      Src: /src/selinux/libsepol/src/policydb.c:3741,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - r
    - fp
    argTypes:
    - role_allow_rule_t**
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3747
      start: 3713
    functionDepth: 3
    functionLinenumber: 3713
    functionLinenumberEnd: 3747
    functionName: role_allow_rule_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - le32_to_cpu
    - malloc
    - next_entry
    - role_allow_rule_init
    - role_set_read
    linkageType: ''
    returnType: int
    signature: int role_allow_rule_read(role_allow_rule_t **r, struct policy_file
      *fp)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3757,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3760,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/policydb.c:3763,1
    - Dst: filename_trans_rule_init
      Src: /src/selinux/libsepol/src/policydb.c:3767,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3775,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3779,1
    - Dst: str_read
      Src: /src/selinux/libsepol/src/policydb.c:3781,1
    - Dst: type_set_read
      Src: /src/selinux/libsepol/src/policydb.c:3785,1
    - Dst: type_set_read
      Src: /src/selinux/libsepol/src/policydb.c:3788,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3796,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3799,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3800,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3802,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 3
    argNames:
    - p
    - r
    - fp
    argTypes:
    - policydb_t*
    - filename_trans_rule_t**
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3806
      start: 3749
    functionDepth: 3
    functionLinenumber: 3749
    functionLinenumberEnd: 3806
    functionName: filename_trans_rule_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - type_set_read
    - le32_to_cpu
    - malloc
    - str_read
    - filename_trans_rule_init
    - next_entry
    linkageType: ''
    returnType: int
    signature: "int filename_trans_rule_read(policydb_t *p, filename_trans_rule_t
      **r,\n\t\t\t\t    struct policy_file *fp)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3815,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3818,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/policydb.c:3820,1
    - Dst: range_trans_rule_init
      Src: /src/selinux/libsepol/src/policydb.c:3824,1
    - Dst: type_set_read
      Src: /src/selinux/libsepol/src/policydb.c:3831,1
    - Dst: type_set_read
      Src: /src/selinux/libsepol/src/policydb.c:3834,1
    - Dst: ebitmap_read
      Src: /src/selinux/libsepol/src/policydb.c:3837,1
    - Dst: mls_read_semantic_range_helper
      Src: /src/selinux/libsepol/src/policydb.c:3840,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - r
    - fp
    argTypes:
    - range_trans_rule_t**
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3847
      start: 3808
    functionDepth: 3
    functionLinenumber: 3808
    functionLinenumberEnd: 3847
    functionName: range_trans_rule_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - le32_to_cpu
    - malloc
    - next_entry
    - range_trans_rule_init
    - type_set_read
    - mls_read_semantic_range_helper
    - ebitmap_read
    linkageType: ''
    returnType: int
    signature: int range_trans_rule_read(range_trans_rule_t **r, struct policy_file
      *fp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_read
      Src: /src/selinux/libsepol/src/policydb.c:3857,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3861,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3864,1
    - Dst: is_saturated
      Src: /src/selinux/libsepol/src/policydb.c:3865,1
    - Dst: exceeds_available_bytes
      Src: /src/selinux/libsepol/src/policydb.c:3866,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:3874,1
    - Dst: ebitmap_read
      Src: /src/selinux/libsepol/src/policydb.c:3879,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - scope_index
    - num_scope_syms
    - fp
    argTypes:
    - scope_index_t*
    - unsigned int
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3884
      start: 3849
    functionDepth: 1
    functionLinenumber: 3849
    functionLinenumberEnd: 3884
    functionName: scope_index_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - le32_to_cpu
    - is_saturated
    - calloc
    - exceeds_available_bytes
    - next_entry
    - ebitmap_read
    linkageType: ''
    returnType: int
    signature: "int scope_index_read(scope_index_t *scope_index,\n\t\t\t    unsigned
      int num_scope_syms, struct policy_file *fp)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3893,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3896,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3897,1
    - Dst: cond_read_list
      Src: /src/selinux/libsepol/src/policydb.c:3898,1
    - Dst: avrule_read_list
      Src: /src/selinux/libsepol/src/policydb.c:3899,1
    - Dst: role_trans_rule_read
      Src: /src/selinux/libsepol/src/policydb.c:3900,1
    - Dst: role_allow_rule_read
      Src: /src/selinux/libsepol/src/policydb.c:3901,1
    - Dst: filename_trans_rule_read
      Src: /src/selinux/libsepol/src/policydb.c:3906,1
    - Dst: range_trans_rule_read
      Src: /src/selinux/libsepol/src/policydb.c:3910,1
    - Dst: scope_index_read
      Src: /src/selinux/libsepol/src/policydb.c:3913,1
    - Dst: scope_index_read
      Src: /src/selinux/libsepol/src/policydb.c:3914,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3919,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3922,1
    - Dst: is_saturated
      Src: /src/selinux/libsepol/src/policydb.c:3923,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3925,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 33
    argCount: 4
    argNames:
    - p
    - decl
    - num_scope_syms
    - fp
    argTypes:
    - policydb_t*
    - avrule_decl_t*
    - unsigned int
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3934
      start: 3886
    functionDepth: 5
    functionLinenumber: 3886
    functionLinenumberEnd: 3934
    functionName: avrule_decl_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - range_trans_rule_read
    - role_allow_rule_read
    - le32_to_cpu
    - avrule_read_list
    - scope_index_read
    - is_saturated
    - filename_trans_rule_read
    - next_entry
    - cond_read_list
    - role_trans_rule_read
    linkageType: ''
    returnType: int
    signature: "int avrule_decl_read(policydb_t *p, avrule_decl_t *decl,\n\t\t\t    unsigned
      int num_scope_syms, struct policy_file *fp)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsepol/src/policydb.c:3944,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3946,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3949,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:3954,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:3957,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:3959,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:3966,1
    - Dst: avrule_decl_create
      Src: /src/selinux/libsepol/src/policydb.c:3968,1
    - Dst: avrule_block_destroy
      Src: /src/selinux/libsepol/src/policydb.c:3969,1
    - Dst: avrule_decl_read
      Src: /src/selinux/libsepol/src/policydb.c:3972,1
    - Dst: avrule_decl_destroy
      Src: /src/selinux/libsepol/src/policydb.c:3974,1
    - Dst: avrule_block_destroy
      Src: /src/selinux/libsepol/src/policydb.c:3975,1
    - Dst: avrule_decl_destroy
      Src: /src/selinux/libsepol/src/policydb.c:3981,1
    - Dst: avrule_block_destroy
      Src: /src/selinux/libsepol/src/policydb.c:3982,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/policydb.c:3992,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/policydb.c:4002,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 56
    argCount: 4
    argNames:
    - p
    - block
    - num_scope_syms
    - fp
    argTypes:
    - policydb_t*
    - avrule_block_t**
    - unsigned int
    - struct policy_file*
    assertStmts:
    - condition: (*block == NULL)
      pos:
        line_end: 3943
        line_start: 3943
        source_file: /src/selinux/libsepol/src/policydb.c
    - condition: (last_block)
      pos:
        line_end: 4001
        line_start: 4001
        source_file: /src/selinux/libsepol/src/policydb.c
    - condition: (last_decl)
      pos:
        line_end: 3991
        line_start: 3991
        source_file: /src/selinux/libsepol/src/policydb.c
    constantsTouched: []
    func_position:
      end: 4011
      start: 3936
    functionDepth: 6
    functionLinenumber: 3936
    functionLinenumberEnd: 4011
    functionName: avrule_block_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - avrule_block_destroy
    - avrule_decl_destroy
    - le32_to_cpu
    - assert
    - avrule_decl_read
    - free
    - calloc
    - avrule_decl_create
    - next_entry
    linkageType: ''
    returnType: int
    signature: "int avrule_block_read(policydb_t *p, avrule_block_t **block,\n\t\t\t
      \    unsigned int num_scope_syms,\n\t\t\t     struct policy_file *fp)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:4023,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:4026,1
    - Dst: str_read
      Src: /src/selinux/libsepol/src/policydb.c:4028,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/policydb.c:4033,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:4037,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:4040,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:4043,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:4044,1
    - Dst: zero_or_saturated
      Src: /src/selinux/libsepol/src/policydb.c:4045,1
    - Dst: exceeds_available_bytes
      Src: /src/selinux/libsepol/src/policydb.c:4046,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:4048,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:4051,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:4055,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:4060,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/policydb.c:4063,1
    - Dst: scope_destroy
      Src: /src/selinux/libsepol/src/policydb.c:4065,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/policydb.c:4067,1
    - Dst: scope_destroy
      Src: /src/selinux/libsepol/src/policydb.c:4075,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 53
    argCount: 3
    argNames:
    - p
    - symnum
    - fp
    argTypes:
    - policydb_t*
    - int
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4077
      start: 4013
    functionDepth: 2
    functionLinenumber: 4013
    functionLinenumberEnd: 4077
    functionName: scope_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - ERR
    - zero_or_saturated
    - hashtab_search
    - scope_destroy
    - le32_to_cpu
    - strcmp
    - hashtab_insert
    - str_read
    - calloc
    - exceeds_available_bytes
    - next_entry
    linkageType: ''
    returnType: int
    signature: int scope_read(policydb_t *p, int symnum, struct policy_file *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/policydb.c:4085,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - policydb
    - class_name
    argTypes:
    - struct policydb*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4089
      start: 4079
    functionDepth: 0
    functionLinenumber: 4079
    functionLinenumberEnd: 4089
    functionName: policydb_string_to_security_class
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    linkageType: ''
    returnType: sepol_security_class_t
    signature: "sepol_security_class_t policydb_string_to_security_class(struct policydb
      *policydb,\n\t\t\t\t  const char *class_name)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/policydb.c:4102,1
    - Dst: UINT32_C
      Src: /src/selinux/libsepol/src/policydb.c:4105,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/policydb.c:4110,1
    - Dst: UINT32_C
      Src: /src/selinux/libsepol/src/policydb.c:4114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - policydb
    - tclass
    - perm_name
    argTypes:
    - struct policydb*
    - sepol_security_class_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4117
      start: 4091
    functionDepth: 0
    functionLinenumber: 4091
    functionLinenumberEnd: 4117
    functionName: policydb_string_to_av_perm
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - UINT32_C
    - hashtab_search
    linkageType: ''
    returnType: sepol_access_vector_t
    signature: "sepol_access_vector_t policydb_string_to_av_perm(struct policydb *policydb,\n\t\t\t
      \  sepol_security_class_t tclass, const char *perm_name)"
  - BBCount: 70
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:4135,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:4139,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:4146,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:4155,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:4160,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:4162,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/policydb.c:4169,1
    - Dst: policydb_set_target_platform
      Src: /src/selinux/libsepol/src/policydb.c:4171,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:4177,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/policydb.c:4184,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:4185,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:4197,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:4201,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:4211,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:4222,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:4232,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/policydb.c:4240,1
    - Dst: policydb_lookup_compat
      Src: /src/selinux/libsepol/src/policydb.c:4258,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:4261,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:4270,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:4280,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:4283,1
    - Dst: str_read
      Src: /src/selinux/libsepol/src/policydb.c:4284,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:4288,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:4291,1
    - Dst: str_read
      Src: /src/selinux/libsepol/src/policydb.c:4292,1
    - Dst: ebitmap_read
      Src: /src/selinux/libsepol/src/policydb.c:4302,1
    - Dst: ebitmap_read
      Src: /src/selinux/libsepol/src/policydb.c:4307,1
    - Dst: ebitmap_read
      Src: /src/selinux/libsepol/src/policydb.c:4313,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:4318,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:4321,1
    - Dst: is_saturated
      Src: /src/selinux/libsepol/src/policydb.c:4322,1
    - Dst: exceeds_available_bytes
      Src: /src/selinux/libsepol/src/policydb.c:4323,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:4325,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:4327,1
    - Dst: policydb_string_to_security_class
      Src: /src/selinux/libsepol/src/policydb.c:4342,1
    - Dst: policydb_string_to_security_class
      Src: /src/selinux/libsepol/src/policydb.c:4343,1
    - Dst: policydb_string_to_security_class
      Src: /src/selinux/libsepol/src/policydb.c:4347,1
    - Dst: avtab_read
      Src: /src/selinux/libsepol/src/policydb.c:4354,1
    - Dst: cond_read_list
      Src: /src/selinux/libsepol/src/policydb.c:4356,1
    - Dst: role_trans_read
      Src: /src/selinux/libsepol/src/policydb.c:4358,1
    - Dst: role_allow_read
      Src: /src/selinux/libsepol/src/policydb.c:4360,1
    - Dst: filename_trans_read
      Src: /src/selinux/libsepol/src/policydb.c:4363,1
    - Dst: avrule_block_destroy
      Src: /src/selinux/libsepol/src/policydb.c:4367,1
    - Dst: avrule_block_read
      Src: /src/selinux/libsepol/src/policydb.c:4369,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:4373,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/policydb.c:4377,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/policydb.c:4380,1
    - Dst: scope_read
      Src: /src/selinux/libsepol/src/policydb.c:4382,1
    - Dst: policydb_index_decls
      Src: /src/selinux/libsepol/src/policydb.c:4388,1
    - Dst: policydb_index_classes
      Src: /src/selinux/libsepol/src/policydb.c:4391,1
    - Dst: policydb_string_to_av_perm
      Src: /src/selinux/libsepol/src/policydb.c:4398,1
    - Dst: policydb_string_to_av_perm
      Src: /src/selinux/libsepol/src/policydb.c:4402,1
    - Dst: policydb_index_others
      Src: /src/selinux/libsepol/src/policydb.c:4409,1
    - Dst: ocontext_read
      Src: /src/selinux/libsepol/src/policydb.c:4412,1
    - Dst: genfs_read
      Src: /src/selinux/libsepol/src/policydb.c:4416,1
    - Dst: range_read
      Src: /src/selinux/libsepol/src/policydb.c:4424,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:4430,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:4431,1
    - Dst: ebitmap_read
      Src: /src/selinux/libsepol/src/policydb.c:4435,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/policydb.c:4437,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb.c:4448,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/policydb.c:4453,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/policydb.c:4459,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/policydb.c:4463,1
    - Dst: policydb_validate
      Src: /src/selinux/libsepol/src/policydb.c:4469,1
    CyclomaticComplexity: 137
    EdgeCount: 137
    ICount: 279
    argCount: 3
    argNames:
    - p
    - fp
    - verbose
    argTypes:
    - policydb_t*
    - struct policy_file*
    - unsigned
    assertStmts:
    - condition: (0)
      pos:
        line_end: 4239
        line_start: 4239
        source_file: /src/selinux/libsepol/src/policydb.c
    constantsTouched: []
    func_position:
      end: 4475
      start: 4123
    functionDepth: 7
    functionLinenumber: 4123
    functionLinenumberEnd: 4475
    functionName: policydb_read
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 3
    functionsReached:
    - policydb_validate
    - avtab_read
    - ebitmap_for_each_positive_bit
    - ocontext_read
    - strcmp
    - assert
    - str_read
    - policydb_string_to_security_class
    - policydb_lookup_compat
    - policydb_index_others
    - is_saturated
    - policydb_set_target_platform
    - policydb_string_to_av_perm
    - exceeds_available_bytes
    - next_entry
    - role_allow_read
    - filename_trans_read
    - ERR
    - policydb_index_classes
    - role_trans_read
    - avrule_block_destroy
    - le32_to_cpu
    - calloc
    - scope_read
    - cond_read_list
    - avrule_block_read
    - genfs_read
    - range_read
    - ebitmap_set_bit
    - policydb_index_decls
    - ebitmap_read
    linkageType: ''
    returnType: int
    signature: int policydb_read(policydb_t *p, struct policy_file *fp, unsigned verbose)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:4482,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb.c:4484,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:4486,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb.c:4492,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb.c:4496,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb.c:4500,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - p
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4504
      start: 4477
    functionDepth: 0
    functionLinenumber: 4477
    functionLinenumberEnd: 4504
    functionName: policydb_reindex_users
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - hashtab_map
    - free
    - calloc
    linkageType: ''
    returnType: int
    signature: int policydb_reindex_users(policydb_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/policydb.c:4508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pf
    argTypes:
    - policy_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4509
      start: 4506
    functionDepth: 0
    functionLinenumber: 4506
    functionLinenumberEnd: 4509
    functionName: policy_file_init
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 2
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void policy_file_init(policy_file_t *pf)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - p
    - platform
    argTypes:
    - policydb_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4521
      start: 4511
    functionDepth: 0
    functionLinenumber: 4511
    functionLinenumberEnd: 4521
    functionName: policydb_set_target_platform
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int policydb_set_target_platform(policydb_t *p, int platform)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sort_ocontexts
      Src: /src/selinux/libsepol/src/policydb.c:4525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4526
      start: 4523
    functionDepth: 1
    functionLinenumber: 4523
    functionLinenumberEnd: 4526
    functionName: policydb_sort_ocontexts
    functionSourceFile: /src/selinux/libsepol/src/policydb.c
    functionUses: 0
    functionsReached:
    - sort_ocontexts
    linkageType: ''
    returnType: int
    signature: int policydb_sort_ocontexts(policydb_t *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/handle.c:8,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 24
    functionName: sepol_handle_create
    functionSourceFile: /src/selinux/libsepol/src/handle.c
    functionUses: 7
    functionsReached:
    - malloc
    linkageType: ''
    returnType: sepol_handle_t
    signature: sepol_handle_t *sepol_handle_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsepol/src/handle.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sh
    argTypes:
    - sepol_handle_t*
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/selinux/libsepol/src/handle.c
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: sepol_get_preserve_tunables
    functionSourceFile: /src/selinux/libsepol/src/handle.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int sepol_get_preserve_tunables(sepol_handle_t *sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsepol/src/handle.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sh
    - preserve_tunables
    argTypes:
    - sepol_handle_t*
    - int
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/selinux/libsepol/src/handle.c
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: sepol_set_preserve_tunables
    functionSourceFile: /src/selinux/libsepol/src/handle.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void sepol_set_preserve_tunables(sepol_handle_t *sh, int preserve_tunables)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsepol/src/handle.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sh
    argTypes:
    - sepol_handle_t*
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/selinux/libsepol/src/handle.c
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: sepol_get_disable_dontaudit
    functionSourceFile: /src/selinux/libsepol/src/handle.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int sepol_get_disable_dontaudit(sepol_handle_t *sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsepol/src/handle.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sh
    - disable_dontaudit
    argTypes:
    - sepol_handle_t*
    - int
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/selinux/libsepol/src/handle.c
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: sepol_set_disable_dontaudit
    functionSourceFile: /src/selinux/libsepol/src/handle.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void sepol_set_disable_dontaudit(sepol_handle_t *sh, int disable_dontaudit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsepol/src/handle.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sh
    - consume_base
    argTypes:
    - sepol_handle_t*
    - int
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/selinux/libsepol/src/handle.c
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: sepol_set_expand_consume_base
    functionSourceFile: /src/selinux/libsepol/src/handle.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void sepol_set_expand_consume_base(sepol_handle_t *sh, int consume_base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/handle.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sh
    argTypes:
    - sepol_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: sepol_handle_destroy
    functionSourceFile: /src/selinux/libsepol/src/handle.c
    functionUses: 7
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void sepol_handle_destroy(sepol_handle_t *sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: UNUSED
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: UNUSED
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/src/module_to_cil.c:78,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:79,1
    - Dst: _exit
      Src: /src/selinux/libsepol/src/module_to_cil.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - indent
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: cil_indent
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - fprintf
    - _exit
    linkageType: ''
    returnType: void
    signature: void cil_indent(int indent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/selinux/libsepol/src/module_to_cil.c:84,1
    - Dst: va_start
      Src: /src/selinux/libsepol/src/module_to_cil.c:88,1
    - Dst: vfprintf
      Src: /src/selinux/libsepol/src/module_to_cil.c:89,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:90,1
    - Dst: _exit
      Src: /src/selinux/libsepol/src/module_to_cil.c:91,1
    - Dst: va_end
      Src: /src/selinux/libsepol/src/module_to_cil.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 94
    functionName: cil_printf
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - va_end
    - vfprintf
    - format
    - va_start
    - _exit
    linkageType: ''
    returnType: void
    signature: "void cil_printf(const char *fmt,\n\t\t\t\t\t\t\t     ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/selinux/libsepol/src/module_to_cil.c:96,1
    - Dst: cil_indent
      Src: /src/selinux/libsepol/src/module_to_cil.c:100,1
    - Dst: va_start
      Src: /src/selinux/libsepol/src/module_to_cil.c:101,1
    - Dst: vfprintf
      Src: /src/selinux/libsepol/src/module_to_cil.c:102,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:103,1
    - Dst: _exit
      Src: /src/selinux/libsepol/src/module_to_cil.c:104,1
    - Dst: va_end
      Src: /src/selinux/libsepol/src/module_to_cil.c:106,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/src/module_to_cil.c:107,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:108,1
    - Dst: _exit
      Src: /src/selinux/libsepol/src/module_to_cil.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - indent
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 111
    functionName: cil_println
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - va_end
    - vfprintf
    - format
    - cil_indent
    - va_start
    - fprintf
    - _exit
    linkageType: ''
    returnType: void
    signature: void cil_println(int indent, const char *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/selinux/libsepol/src/module_to_cil.c:121,1
    - Dst: zero_or_saturated
      Src: /src/selinux/libsepol/src/module_to_cil.c:129,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/module_to_cil.c:134,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:136,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/module_to_cil.c:141,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - start
    - end
    - line
    argTypes:
    - char**
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 151
    functionName: get_line
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - zero_or_saturated
    - isspace
    - malloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: int get_line(char **start, char *end, char **line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:201,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 207
    functionName: list_destroy
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void list_destroy(struct list **list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:219,1
    - Dst: list_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 225
    functionName: role_list_destroy
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - list_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void role_list_destroy(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:241,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:244,1
    - Dst: list_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:249,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - attr_list
    argTypes:
    - struct list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 250
    functionName: attr_list_destroy
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - list_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void attr_list_destroy(struct list **attr_list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/module_to_cil.c:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 261
    functionName: list_init
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: int
    signature: int list_init(struct list **list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/module_to_cil.c:266,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - list
    - data
    argTypes:
    - struct list*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 279
    functionName: list_prepend
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - calloc
    linkageType: ''
    returnType: int
    signature: int list_prepend(struct list *list, void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/module_to_cil.c:287,1
    - Dst: list_prepend
      Src: /src/selinux/libsepol/src/module_to_cil.c:295,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - key
    - data
    - args
    argTypes:
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 299
    functionName: roles_gather_map
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - free
    - calloc
    - list_prepend
    linkageType: ''
    returnType: int
    signature: int roles_gather_map(char *key, void *data, void *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_init
      Src: /src/selinux/libsepol/src/module_to_cil.c:305,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/module_to_cil.c:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - roles_tab
    argTypes:
    - hashtab_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 314
    functionName: role_list_create
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - hashtab_map
    - list_init
    linkageType: ''
    returnType: int
    signature: int role_list_create(hashtab_t roles_tab)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/module_to_cil.c:330,1
    - Dst: list_init
      Src: /src/selinux/libsepol/src/module_to_cil.c:339,1
    - Dst: list_prepend
      Src: /src/selinux/libsepol/src/module_to_cil.c:349,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - key
    - data
    - arg
    argTypes:
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 357
    functionName: typealiases_gather_map
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - list_prepend
    - list_init
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: int typealiases_gather_map(char *key, void *data, void *arg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:364,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 370
    functionName: typealias_list_destroy
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - list_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void typealias_list_destroy(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/module_to_cil.c:388,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/module_to_cil.c:393,1
    - Dst: typealias_list_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:401,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - pdb
    argTypes:
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 404
    functionName: typealias_list_create
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - hashtab_map
    - calloc
    - typealias_list_destroy
    linkageType: ''
    returnType: int
    signature: int typealias_list_create(struct policydb *pdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:412,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct stack**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 417
    functionName: stack_destroy
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: int stack_destroy(struct stack **stack)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/module_to_cil.c:422,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/module_to_cil.c:427,1
    - Dst: stack_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:440,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct stack**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 442
    functionName: stack_init
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - stack_destroy
    - calloc
    linkageType: ''
    returnType: int
    signature: int stack_init(struct stack **stack)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_smul_overflow
      Src: /src/selinux/libsepol/src/module_to_cil.c:451,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:452,1
    - Dst: reallocarray
      Src: /src/selinux/libsepol/src/module_to_cil.c:455,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:458,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - stack
    - ptr
    argTypes:
    - struct stack*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 471
    functionName: stack_push
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - __builtin_smul_overflow
    - reallocarray
    linkageType: ''
    returnType: int
    signature: int stack_push(struct stack *stack, void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 481
    functionName: stack_pop
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *stack_pop(struct stack *stack)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 490
    functionName: stack_peek
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *stack_peek(struct stack *stack)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/module_to_cil.c:501,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - pdb
    - decl_stack
    - start
    - symbol_type
    - id
    argTypes:
    - struct policydb*
    - struct stack*
    - int
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 517
    functionName: is_id_in_scope_with_start
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: "int is_id_in_scope_with_start(struct policydb *pdb,\n\t\t\t\t     struct
      stack *decl_stack, int start,\n\t\t\t\t     uint32_t symbol_type, char *id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_id_in_scope_with_start
      Src: /src/selinux/libsepol/src/module_to_cil.c:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pdb
    - decl_stack
    - type
    - symbol_type
    argTypes:
    - struct policydb*
    - struct stack*
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 527
    functionName: is_id_in_ancestor_scope
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - is_id_in_scope_with_start
    linkageType: ''
    returnType: int
    signature: "int is_id_in_ancestor_scope(struct policydb *pdb,\n\t\t\t\t   struct
      stack *decl_stack, char *type,\n\t\t\t\t   uint32_t symbol_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_id_in_scope_with_start
      Src: /src/selinux/libsepol/src/module_to_cil.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pdb
    - decl_stack
    - type
    - symbol_type
    argTypes:
    - struct policydb*
    - struct stack*
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 536
    functionName: is_id_in_scope
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - is_id_in_scope_with_start
    linkageType: ''
    returnType: int
    signature: "int is_id_in_scope(struct policydb *pdb, struct stack *decl_stack,\n\t\t\t
      \ char *type, uint32_t symbol_type)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:546,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:549,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:554,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:556,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:562,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:567,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:570,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - pdb
    - level
    argTypes:
    - struct policydb*
    - struct mls_semantic_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 573
    functionName: semantic_level_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_printf
    linkageType: ''
    returnType: int
    signature: "int semantic_level_to_cil(struct policydb *pdb,\n\t\t\t\t struct mls_semantic_level
      *level)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:610,1
    - Dst: sepol_av_to_string
      Src: /src/selinux/libsepol/src/module_to_cil.c:618,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:621,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:627,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:629,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:633,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:637,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:639,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 6
    argNames:
    - indent
    - pdb
    - type
    - src
    - tgt
    - classperms
    argTypes:
    - int
    - struct policydb*
    - uint32_t
    - char*
    - char*
    - struct class_perm_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 575
    functionDepth: 2
    functionLinenumber: 575
    functionLinenumberEnd: 650
    functionName: avrule_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - cil_println
    - free
    - sepol_av_to_string
    linkageType: ''
    returnType: int
    signature: "int avrule_to_cil(int indent, struct policydb *pdb, uint32_t type,\n\t\t\t
      const char *src, const char *tgt,\n\t\t\t const struct class_perm_node *classperms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 654
    functionName: next_bit_in_range
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: next_bit_in_range(i, p)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xperm_test
      Src: /src/selinux/libsepol/src/module_to_cil.c:670,1
    - Dst: next_bit_in_range
      Src: /src/selinux/libsepol/src/module_to_cil.c:673,1
    - Dst: next_bit_in_range
      Src: /src/selinux/libsepol/src/module_to_cil.c:676,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:684,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:693,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:697,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:703,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:707,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 1
    argNames:
    - xperms
    argTypes:
    - av_extended_perms_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 714
    functionName: xperms_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - next_bit_in_range
    - xperm_test
    - cil_printf
    linkageType: ''
    returnType: int
    signature: int xperms_to_cil(const av_extended_perms_t *xperms)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:740,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:751,1
    - Dst: cil_indent
      Src: /src/selinux/libsepol/src/module_to_cil.c:758,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:759,1
    - Dst: xperms_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:761,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:762,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 7
    argNames:
    - indent
    - pdb
    - type
    - src
    - tgt
    - classperms
    - xperms
    argTypes:
    - int
    - struct policydb*
    - uint32_t
    - char*
    - char*
    - class_perm_node_t*
    - av_extended_perms_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 716
    functionDepth: 2
    functionLinenumber: 716
    functionLinenumberEnd: 769
    functionName: avrulex_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_indent
    - ERR
    - xperms_to_cil
    - cil_printf
    linkageType: ''
    returnType: int
    signature: "int avrulex_to_cil(int indent, struct policydb *pdb, uint32_t type,\n\t\t\t
      \ const char *src, const char *tgt,\n\t\t\t  const class_perm_node_t *classperms,\n\t\t\t
      \ const av_extended_perms_t *xperms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 779
    functionName: num_digits
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int num_digits(unsigned int n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - pdb
    - map
    - type
    argTypes:
    - struct policydb*
    - struct ebitmap*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 792
    functionName: ebitmap_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_printf
    linkageType: ''
    returnType: int
    signature: int ebitmap_to_cil(struct policydb *pdb, struct ebitmap *map, int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 789
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 11
    functionsReached:
    - cil_printf
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(map, node, i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsepol/src/module_to_cil.c:809,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/module_to_cil.c:809,1
    - Dst: num_digits
      Src: /src/selinux/libsepol/src/module_to_cil.c:809,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/module_to_cil.c:810,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:812,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/module_to_cil.c:816,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:818,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:819,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - pdb
    - is_type
    argTypes:
    - struct policydb*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 826
    functionName: get_new_attr_name
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - snprintf
    - malloc
    - num_digits
    - free
    - strlen
    linkageType: ''
    returnType: char
    signature: char *get_new_attr_name(struct policydb *pdb, int is_type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/module_to_cil.c:834,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:836,1
    - Dst: list_prepend
      Src: /src/selinux/libsepol/src/module_to_cil.c:841,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:853,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - attr_list
    - attr_name
    - is_type
    - set
    argTypes:
    - struct list*
    - char*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 855
    functionName: cil_add_attr_to_list
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - free
    - calloc
    - list_prepend
    linkageType: ''
    returnType: int
    signature: "int cil_add_attr_to_list(struct list *attr_list, char *attr_name,\n\t\t\t\tint
      is_type, void *set)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/module_to_cil.c:885,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/module_to_cil.c:886,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/module_to_cil.c:894,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:898,1
    - Dst: cil_indent
      Src: /src/selinux/libsepol/src/module_to_cil.c:899,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:900,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:903,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:907,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:911,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:915,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:917,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:919,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:923,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:926,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:929,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:933,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:937,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:940,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 5
    argNames:
    - indent
    - pdb
    - is_type
    - set
    - attr_name
    argTypes:
    - int
    - struct policydb*
    - int
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 857
    functionDepth: 2
    functionLinenumber: 857
    functionLinenumberEnd: 943
    functionName: cil_print_attr_strs
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_indent
    - ebitmap_is_empty
    - cil_println
    - cil_printf
    linkageType: ''
    returnType: int
    signature: "int cil_print_attr_strs(int indent, struct policydb *pdb, int is_type,\n\t\t\t
      \      void *set, char *attr_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 918
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 11
    functionsReached:
    - cil_printf
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(pos, node, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 927
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 11
    functionsReached:
    - cil_printf
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(neg, node, i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_print_attr_strs
      Src: /src/selinux/libsepol/src/module_to_cil.c:954,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - indent
    - pdb
    - attr_list
    argTypes:
    - int
    - struct policydb*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 945
    functionDepth: 3
    functionLinenumber: 945
    functionLinenumberEnd: 962
    functionName: cil_print_attr_list
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_print_attr_strs
    linkageType: ''
    returnType: int
    signature: "int cil_print_attr_list(int indent, struct policydb *pdb,\n\t\t\t
      \      struct list *attr_list)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:985,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:987,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:994,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 3
    argNames:
    - attr_list
    - is_type
    - set
    argTypes:
    - struct list*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 1001
    functionName: search_attr_list
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ebitmap_cmp
    linkageType: ''
    returnType: char
    signature: char *search_attr_list(struct list *attr_list, int is_type, void *set)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: search_attr_list
      Src: /src/selinux/libsepol/src/module_to_cil.c:1013,1
    - Dst: get_new_attr_name
      Src: /src/selinux/libsepol/src/module_to_cil.c:1016,1
    - Dst: cil_add_attr_to_list
      Src: /src/selinux/libsepol/src/module_to_cil.c:1022,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:1024,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/module_to_cil.c:1029,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:1031,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 6
    argNames:
    - pdb
    - is_type
    - set
    - attr_list
    - names
    - num_names
    argTypes:
    - struct policydb*
    - int
    - void*
    - struct list*
    - char***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1003
    functionDepth: 2
    functionLinenumber: 1003
    functionLinenumberEnd: 1040
    functionName: set_to_names
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - search_attr_list
    - ERR
    - get_new_attr_name
    - cil_add_attr_to_list
    - malloc
    - free
    linkageType: ''
    returnType: int
    signature: "int set_to_names(struct policydb *pdb, int is_type, void *set,\n\t\t\tstruct
      list *attr_list, char ***names,\n\t\t\tunsigned int *num_names)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:1054,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/module_to_cil.c:1067,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:1069,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 4
    argNames:
    - map
    - vals_to_names
    - names
    - num_names
    argTypes:
    - struct ebitmap*
    - char**
    - char***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1042
    functionDepth: 0
    functionLinenumber: 1042
    functionLinenumberEnd: 1085
    functionName: ebitmap_to_names
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - calloc
    linkageType: ''
    returnType: int
    signature: "int ebitmap_to_names(struct ebitmap *map, char **vals_to_names,\n\t\t\t
      \   char ***names, unsigned int *num_names)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:1054,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1052
    functionDepth: 0
    functionLinenumber: 1052
    functionLinenumberEnd: 1059
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 11
    functionsReached:
    - ERR
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(map, node, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1075
    functionDepth: 0
    functionLinenumber: 1075
    functionLinenumberEnd: 1078
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(map, node, i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: set_to_names
      Src: /src/selinux/libsepol/src/module_to_cil.c:1097,1
    - Dst: ebitmap_to_names
      Src: /src/selinux/libsepol/src/module_to_cil.c:1103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - pdb
    - rs
    - attr_list
    - names
    - num_names
    argTypes:
    - struct policydb*
    - struct role_set*
    - struct list*
    - char***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1087
    functionDepth: 3
    functionLinenumber: 1087
    functionLinenumberEnd: 1112
    functionName: process_roleset
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - set_to_names
    - ebitmap_to_names
    linkageType: ''
    returnType: int
    signature: "int process_roleset(struct policydb *pdb, struct role_set *rs,\n\t\t\t
      \  struct list *attr_list, char ***names,\n\t\t\t   unsigned int *num_names)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/module_to_cil.c:1123,1
    - Dst: set_to_names
      Src: /src/selinux/libsepol/src/module_to_cil.c:1124,1
    - Dst: ebitmap_to_names
      Src: /src/selinux/libsepol/src/module_to_cil.c:1129,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - pdb
    - ts
    - attr_list
    - names
    - num_names
    argTypes:
    - struct policydb*
    - struct type_set*
    - struct list*
    - char***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1114
    functionDepth: 3
    functionLinenumber: 1114
    functionLinenumberEnd: 1138
    functionName: process_typeset
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ebitmap_is_empty
    - set_to_names
    - ebitmap_to_names
    linkageType: ''
    returnType: int
    signature: "int process_typeset(struct policydb *pdb, struct type_set *ts,\n\t\t\t
      \  struct list *attr_list, char ***names,\n\t\t\t   unsigned int *num_names)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:1142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - names
    - num_names
    argTypes:
    - char***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1140
    functionDepth: 0
    functionLinenumber: 1140
    functionLinenumberEnd: 1145
    functionName: names_destroy
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void names_destroy(char ***names, unsigned int *num_names)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: list_init
      Src: /src/selinux/libsepol/src/module_to_cil.c:1159,1
    - Dst: is_id_in_ancestor_scope
      Src: /src/selinux/libsepol/src/module_to_cil.c:1166,1
    - Dst: process_typeset
      Src: /src/selinux/libsepol/src/module_to_cil.c:1172,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:1177,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:1178,1
    - Dst: names_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:1182,1
    - Dst: cil_print_attr_list
      Src: /src/selinux/libsepol/src/module_to_cil.c:1185,1
    - Dst: attr_list_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:1191,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 4
    argNames:
    - pdb
    - decl_stack
    - type_name
    - indent
    argTypes:
    - struct policydb*
    - struct stack*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1147
    functionDepth: 4
    functionLinenumber: 1147
    functionLinenumberEnd: 1193
    functionName: roletype_role_in_ancestor_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_print_attr_list
    - is_id_in_ancestor_scope
    - attr_list_destroy
    - cil_println
    - strcmp
    - list_init
    - names_destroy
    - process_typeset
    linkageType: ''
    returnType: int
    signature: "int roletype_role_in_ancestor_to_cil(struct policydb *pdb,\n\t\t\t\t\t
      \   struct stack *decl_stack,\n\t\t\t\t\t    char *type_name, int indent)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_add_overflow
      Src: /src/selinux/libsepol/src/module_to_cil.c:1206,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/module_to_cil.c:1206,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:1207,1
    - Dst: __builtin_add_overflow
      Src: /src/selinux/libsepol/src/module_to_cil.c:1213,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:1214,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:1219,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/module_to_cil.c:1223,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:1225,1
    - Dst: stpcpy
      Src: /src/selinux/libsepol/src/module_to_cil.c:1234,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:1244,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - names
    - num_names
    - string
    argTypes:
    - char**
    - unsigned int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1195
    functionDepth: 0
    functionLinenumber: 1195
    functionLinenumberEnd: 1246
    functionName: name_list_to_string
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - malloc
    - stpcpy
    - free
    - __builtin_add_overflow
    - strlen
    linkageType: ''
    returnType: int
    signature: "int name_list_to_string(char **names, unsigned int num_names,\n\t\t\t
      \      char **string)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:1262,1
    - Dst: process_typeset
      Src: /src/selinux/libsepol/src/module_to_cil.c:1267,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/module_to_cil.c:1273,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/module_to_cil.c:1274,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:1276,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:1281,1
    - Dst: process_typeset
      Src: /src/selinux/libsepol/src/module_to_cil.c:1291,1
    - Dst: avrulex_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:1301,1
    - Dst: avrule_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:1306,1
    - Dst: avrulex_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:1318,1
    - Dst: avrule_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:1324,1
    - Dst: avrulex_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:1334,1
    - Dst: avrule_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:1339,1
    - Dst: names_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:1350,1
    - Dst: names_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:1351,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:1355,1
    - Dst: names_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:1362,1
    - Dst: names_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:1363,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 78
    argCount: 4
    argNames:
    - indent
    - pdb
    - avrule_list
    - attr_list
    argTypes:
    - int
    - struct policydb*
    - struct avrule*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1248
    functionDepth: 4
    functionLinenumber: 1248
    functionLinenumberEnd: 1366
    functionName: avrule_list_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - avrule_to_cil
    - cil_println
    - ebitmap_is_empty
    - names_destroy
    - process_typeset
    - avrulex_to_cil
    linkageType: ''
    returnType: int
    signature: "int avrule_list_to_cil(int indent, struct policydb *pdb,\n\t\t\t      struct
      avrule *avrule_list,\n\t\t\t      struct list *attr_list)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: stack_init
      Src: /src/selinux/libsepol/src/module_to_cil.c:1386,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:1388,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/module_to_cil.c:1398,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/module_to_cil.c:1399,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:1401,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/module_to_cil.c:1405,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:1407,1
    - Dst: stack_pop
      Src: /src/selinux/libsepol/src/module_to_cil.c:1440,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/module_to_cil.c:1441,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:1443,1
    - Dst: stack_pop
      Src: /src/selinux/libsepol/src/module_to_cil.c:1449,1
    - Dst: stack_pop
      Src: /src/selinux/libsepol/src/module_to_cil.c:1450,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:1455,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/module_to_cil.c:1465,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/module_to_cil.c:1465,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/module_to_cil.c:1465,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/module_to_cil.c:1467,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:1469,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/module_to_cil.c:1474,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:1477,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:1483,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:1484,1
    - Dst: stack_push
      Src: /src/selinux/libsepol/src/module_to_cil.c:1489,1
    - Dst: stack_pop
      Src: /src/selinux/libsepol/src/module_to_cil.c:1502,1
    - Dst: stack_peek
      Src: /src/selinux/libsepol/src/module_to_cil.c:1503,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:1504,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:1509,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:1510,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:1516,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:1517,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:1518,1
    - Dst: stack_pop
      Src: /src/selinux/libsepol/src/module_to_cil.c:1520,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:1521,1
    - Dst: stack_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:1523,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 129
    argCount: 3
    argNames:
    - indent
    - pdb
    - cond_expr
    argTypes:
    - int
    - struct policydb*
    - struct cond_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1368
    functionDepth: 2
    functionLinenumber: 1368
    functionLinenumberEnd: 1526
    functionName: cond_expr_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - stack_peek
    - snprintf
    - strdup
    - stack_push
    - cil_println
    - stack_destroy
    - malloc
    - free
    - stack_init
    - strlen
    - stack_pop
    linkageType: ''
    returnType: int
    signature: "int cond_expr_to_cil(int indent, struct policydb *pdb,\n\t\t\t    struct
      cond_expr *cond_expr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cond_expr_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:1538,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:1544,1
    - Dst: avrule_list_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:1545,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:1550,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:1554,1
    - Dst: avrule_list_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:1555,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:1560,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:1563,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 4
    argNames:
    - indent
    - pdb
    - cond_list
    - attr_list
    argTypes:
    - int
    - struct policydb*
    - struct cond_node*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1528
    functionDepth: 5
    functionLinenumber: 1528
    functionLinenumberEnd: 1568
    functionName: cond_list_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_println
    - avrule_list_to_cil
    - cond_expr_to_cil
    linkageType: ''
    returnType: int
    signature: "int cond_list_to_cil(int indent, struct policydb *pdb,\n\t\t\t    struct
      cond_node *cond_list, struct list *attr_list)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: process_roleset
      Src: /src/selinux/libsepol/src/module_to_cil.c:1590,1
    - Dst: process_typeset
      Src: /src/selinux/libsepol/src/module_to_cil.c:1597,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/module_to_cil.c:1605,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:1607,1
    - Dst: names_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:1619,1
    - Dst: names_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:1620,1
    - Dst: names_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:1624,1
    - Dst: names_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:1625,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 5
    argNames:
    - indent
    - pdb
    - rules
    - role_attr_list
    - type_attr_list
    argTypes:
    - int
    - struct policydb*
    - struct role_trans_rule*
    - struct list*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1570
    functionDepth: 4
    functionLinenumber: 1570
    functionLinenumberEnd: 1628
    functionName: role_trans_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ebitmap_for_each_positive_bit
    - cil_println
    - process_roleset
    - names_destroy
    - process_typeset
    linkageType: ''
    returnType: int
    signature: "int role_trans_to_cil(int indent, struct policydb *pdb,\n\t\t\t     struct
      role_trans_rule *rules,\n\t\t\t     struct list *role_attr_list,\n\t\t\t     struct
      list *type_attr_list)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: process_roleset
      Src: /src/selinux/libsepol/src/module_to_cil.c:1645,1
    - Dst: process_roleset
      Src: /src/selinux/libsepol/src/module_to_cil.c:1651,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:1659,1
    - Dst: names_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:1664,1
    - Dst: names_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:1665,1
    - Dst: names_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:1671,1
    - Dst: names_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:1672,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 4
    argNames:
    - indent
    - pdb
    - rules
    - attr_list
    argTypes:
    - int
    - struct policydb*
    - struct role_allow_rule*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1630
    functionDepth: 4
    functionLinenumber: 1630
    functionLinenumberEnd: 1675
    functionName: role_allows_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - process_roleset
    - names_destroy
    - cil_println
    linkageType: ''
    returnType: int
    signature: "int role_allows_to_cil(int indent, struct policydb *pdb,\n\t\t\t      struct
      role_allow_rule *rules,\n\t\t\t      struct list *attr_list)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: process_typeset
      Src: /src/selinux/libsepol/src/module_to_cil.c:1699,1
    - Dst: process_typeset
      Src: /src/selinux/libsepol/src/module_to_cil.c:1705,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/module_to_cil.c:1712,1
    - Dst: cil_indent
      Src: /src/selinux/libsepol/src/module_to_cil.c:1714,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:1715,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:1719,1
    - Dst: semantic_level_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:1721,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:1727,1
    - Dst: semantic_level_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:1729,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:1735,1
    - Dst: names_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:1740,1
    - Dst: names_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:1741,1
    - Dst: names_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:1747,1
    - Dst: names_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:1748,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 4
    argNames:
    - indent
    - pdb
    - rules
    - attr_list
    argTypes:
    - int
    - struct policydb*
    - struct range_trans_rule*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1751
      start: 1677
    functionDepth: 4
    functionLinenumber: 1677
    functionLinenumberEnd: 1751
    functionName: range_trans_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_printf
    - ebitmap_for_each_positive_bit
    - semantic_level_to_cil
    - names_destroy
    - process_typeset
    - cil_indent
    linkageType: ''
    returnType: int
    signature: "int range_trans_to_cil(int indent, struct policydb *pdb,\n\t\t\t      struct
      range_trans_rule *rules,\n\t\t\t      struct list *attr_list)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: process_typeset
      Src: /src/selinux/libsepol/src/module_to_cil.c:1769,1
    - Dst: process_typeset
      Src: /src/selinux/libsepol/src/module_to_cil.c:1775,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:1782,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:1793,1
    - Dst: names_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:1805,1
    - Dst: names_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:1806,1
    - Dst: names_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:1811,1
    - Dst: names_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:1812,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - indent
    - pdb
    - rules
    - attr_list
    argTypes:
    - int
    - struct policydb*
    - struct filename_trans_rule*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1815
      start: 1753
    functionDepth: 4
    functionLinenumber: 1753
    functionLinenumberEnd: 1815
    functionName: filename_trans_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_println
    - names_destroy
    - process_typeset
    linkageType: ''
    returnType: int
    signature: "int filename_trans_to_cil(int indent, struct policydb *pdb,\n\t\t\t\t
      struct filename_trans_rule *rules,\n\t\t\t\t struct list *attr_list)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - key
    - data
    - args
    argTypes:
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1827
    functionDepth: 0
    functionLinenumber: 1827
    functionLinenumberEnd: 1836
    functionName: class_perm_to_array
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int class_perm_to_array(char *key, void *data, void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spaceship_cmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:1843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1844
      start: 1838
    functionDepth: 0
    functionLinenumber: 1838
    functionLinenumberEnd: 1844
    functionName: class_perm_cmp
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - spaceship_cmp
    linkageType: ''
    returnType: int
    signature: int class_perm_cmp(const void *a, const void *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/module_to_cil.c:1854,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/module_to_cil.c:1858,1
    - Dst: qsort
      Src: /src/selinux/libsepol/src/module_to_cil.c:1863,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:1865,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:1867,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:1869,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:1874,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - key
    - data
    - UNUSED(arg)
    argTypes:
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1876
      start: 1846
    functionDepth: 1
    functionLinenumber: 1846
    functionLinenumberEnd: 1876
    functionName: common_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - hashtab_map
    - cil_printf
    - qsort
    - free
    - calloc
    linkageType: ''
    returnType: int
    signature: int common_to_cil(char *key, void *data, void *UNUSED(arg))
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: stack_init
      Src: /src/selinux/libsepol/src/module_to_cil.c:1902,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:1927,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:1996,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/module_to_cil.c:2009,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/module_to_cil.c:2009,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/module_to_cil.c:2010,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/module_to_cil.c:2011,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:2013,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2017,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:2020,1
    - Dst: ebitmap_to_names
      Src: /src/selinux/libsepol/src/module_to_cil.c:2028,1
    - Dst: ebitmap_to_names
      Src: /src/selinux/libsepol/src/module_to_cil.c:2036,1
    - Dst: ebitmap_to_names
      Src: /src/selinux/libsepol/src/module_to_cil.c:2044,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/module_to_cil.c:2053,1
    - Dst: name_list_to_string
      Src: /src/selinux/libsepol/src/module_to_cil.c:2059,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/module_to_cil.c:2067,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/module_to_cil.c:2067,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/module_to_cil.c:2068,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/module_to_cil.c:2072,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:2074,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2079,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2083,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:2088,1
    - Dst: names_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:2094,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:2095,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:2110,1
    - Dst: stack_pop
      Src: /src/selinux/libsepol/src/module_to_cil.c:2120,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/module_to_cil.c:2121,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:2123,1
    - Dst: stack_pop
      Src: /src/selinux/libsepol/src/module_to_cil.c:2129,1
    - Dst: stack_pop
      Src: /src/selinux/libsepol/src/module_to_cil.c:2130,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:2135,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/module_to_cil.c:2145,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/module_to_cil.c:2145,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/module_to_cil.c:2145,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/module_to_cil.c:2147,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:2149,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2154,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:2157,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:2163,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:2164,1
    - Dst: stack_push
      Src: /src/selinux/libsepol/src/module_to_cil.c:2169,1
    - Dst: stack_pop
      Src: /src/selinux/libsepol/src/module_to_cil.c:2177,1
    - Dst: stack_peek
      Src: /src/selinux/libsepol/src/module_to_cil.c:2178,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:2179,1
    - Dst: names_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:2190,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:2191,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:2193,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:2194,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:2195,1
    - Dst: stack_pop
      Src: /src/selinux/libsepol/src/module_to_cil.c:2197,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:2198,1
    - Dst: stack_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:2200,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 270
    argCount: 4
    argNames:
    - pdb
    - exprs
    - expr_string
    - use_mls
    argTypes:
    - struct policydb*
    - struct constraint_expr*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2204
      start: 1878
    functionDepth: 2
    functionLinenumber: 1878
    functionLinenumberEnd: 2204
    functionName: constraint_expr_to_string
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - stack_peek
    - stack_pop
    - snprintf
    - ebitmap_to_names
    - stack_push
    - stack_destroy
    - malloc
    - names_destroy
    - free
    - name_list_to_string
    - stack_init
    - strlen
    - strdup
    linkageType: ''
    returnType: int
    signature: "int constraint_expr_to_string(struct policydb *pdb,\n\t\t\t\t     struct
      constraint_expr *exprs,\n\t\t\t\t     char **expr_string, int *use_mls)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: constraint_expr_to_string
      Src: /src/selinux/libsepol/src/module_to_cil.c:2219,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:2227,1
    - Dst: sepol_av_to_string
      Src: /src/selinux/libsepol/src/module_to_cil.c:2236,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:2239,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:2245,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:2247,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2251,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:2253,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2255,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:2259,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:2266,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 6
    argNames:
    - indent
    - pdb
    - classkey
    - class
    - constraints
    - is_constraint
    argTypes:
    - int
    - struct policydb*
    - char*
    - struct class_datum*
    - struct constraint_node*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2268
      start: 2206
    functionDepth: 3
    functionLinenumber: 2206
    functionLinenumberEnd: 2268
    functionName: constraints_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - cil_println
    - sepol_av_to_string
    - free
    - constraint_expr_to_string
    linkageType: ''
    returnType: int
    signature: "int constraints_to_cil(int indent, struct policydb *pdb, char *classkey,\n\t\t\t
      \     struct class_datum *class,\n\t\t\t      struct constraint_node *constraints,\n\t\t\t
      \     int is_constraint)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/module_to_cil.c:2420,1
    - Dst: cil_indent
      Src: /src/selinux/libsepol/src/module_to_cil.c:2424,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2425,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/module_to_cil.c:2427,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2428,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - indent
    - pdb
    - order
    argTypes:
    - int
    - struct policydb*
    - struct ebitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2434
      start: 2414
    functionDepth: 1
    functionLinenumber: 2414
    functionLinenumberEnd: 2434
    functionName: class_order_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_indent
    - ebitmap_is_empty
    - ebitmap_for_each_positive_bit
    - cil_printf
    linkageType: ''
    returnType: int
    signature: "int class_order_to_cil(int indent, struct policydb *pdb,\n\t\t\t      struct
      ebitmap order)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: list_init
      Src: /src/selinux/libsepol/src/module_to_cil.c:2451,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2462,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2469,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/src/module_to_cil.c:2472,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:2473,1
    - Dst: process_typeset
      Src: /src/selinux/libsepol/src/module_to_cil.c:2478,1
    - Dst: is_id_in_scope
      Src: /src/selinux/libsepol/src/module_to_cil.c:2484,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2486,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2492,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2499,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/module_to_cil.c:2502,1
    - Dst: cil_indent
      Src: /src/selinux/libsepol/src/module_to_cil.c:2503,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2504,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/module_to_cil.c:2505,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2506,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2508,1
    - Dst: process_typeset
      Src: /src/selinux/libsepol/src/module_to_cil.c:2512,1
    - Dst: is_id_in_scope
      Src: /src/selinux/libsepol/src/module_to_cil.c:2518,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2520,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:2528,1
    - Dst: cil_print_attr_list
      Src: /src/selinux/libsepol/src/module_to_cil.c:2533,1
    - Dst: attr_list_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:2539,1
    - Dst: names_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:2540,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 72
    argCount: 7
    argNames:
    - indent
    - pdb
    - UNUSED(block)
    - decl_stack
    - key
    - datum
    - scope
    argTypes:
    - int
    - struct policydb*
    - struct avrule_block*
    - struct stack*
    - char*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2543
      start: 2436
    functionDepth: 4
    functionLinenumber: 2436
    functionLinenumberEnd: 2543
    functionName: role_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ebitmap_cardinality
    - ERR
    - cil_print_attr_list
    - cil_printf
    - ebitmap_for_each_positive_bit
    - attr_list_destroy
    - cil_println
    - is_id_in_scope
    - list_init
    - ebitmap_is_empty
    - names_destroy
    - process_typeset
    - cil_indent
    linkageType: ''
    returnType: int
    signature: "int role_to_cil(int indent, struct policydb *pdb,\n\t\t       struct
      avrule_block *UNUSED(block),\n\t\t       struct stack *decl_stack, char *key,
      void *datum,\n\t\t       int scope)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2559,1
    - Dst: roletype_role_in_ancestor_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:2563,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2571,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2574,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2579,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2583,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2587,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2594,1
    - Dst: cil_indent
      Src: /src/selinux/libsepol/src/module_to_cil.c:2598,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2599,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2601,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2603,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2605,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/module_to_cil.c:2608,1
    - Dst: cil_indent
      Src: /src/selinux/libsepol/src/module_to_cil.c:2609,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2610,1
    - Dst: ebitmap_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:2611,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2612,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:2618,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 7
    argNames:
    - indent
    - pdb
    - UNUSED(block)
    - decl_stack
    - key
    - datum
    - scope
    argTypes:
    - int
    - struct policydb*
    - struct avrule_block*
    - struct stack*
    - char*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2627
      start: 2545
    functionDepth: 5
    functionLinenumber: 2545
    functionLinenumberEnd: 2627
    functionName: type_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - cil_printf
    - cil_println
    - ebitmap_to_cil
    - ebitmap_is_empty
    - roletype_role_in_ancestor_to_cil
    - cil_indent
    linkageType: ''
    returnType: int
    signature: "int type_to_cil(int indent, struct policydb *pdb,\n\t\t       struct
      avrule_block *UNUSED(block),\n\t\t       struct stack *decl_stack, char *key,
      void *datum,\n\t\t       int scope)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2647,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2652,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2655,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/module_to_cil.c:2657,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2658,1
    - Dst: cil_indent
      Src: /src/selinux/libsepol/src/module_to_cil.c:2662,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2663,1
    - Dst: semantic_level_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:2665,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2667,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2669,1
    - Dst: cil_indent
      Src: /src/selinux/libsepol/src/module_to_cil.c:2671,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2672,1
    - Dst: semantic_level_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:2674,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2675,1
    - Dst: semantic_level_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:2676,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2678,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2680,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 7
    argNames:
    - indent
    - pdb
    - UNUSED(block)
    - UNUSED(decl_stack)
    - key
    - datum
    - scope
    argTypes:
    - int
    - struct policydb*
    - struct avrule_block*
    - struct stack*
    - char*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2683
      start: 2629
    functionDepth: 2
    functionLinenumber: 2629
    functionLinenumberEnd: 2683
    functionName: user_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_printf
    - ebitmap_for_each_positive_bit
    - cil_println
    - semantic_level_to_cil
    - cil_indent
    linkageType: ''
    returnType: int
    signature: "int user_to_cil(int indent, struct policydb *pdb,\n\t\t       struct
      avrule_block *UNUSED(block),\n\t\t       struct stack *UNUSED(decl_stack), char
      *key, void *datum,\n\t\t       int scope)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - indent
    - UNUSED(pdb)
    - UNUSED(block)
    - UNUSED(decl_stack)
    - key
    - datum
    - scope
    argTypes:
    - int
    - struct policydb*
    - struct avrule_block*
    - struct stack*
    - char*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2705
      start: 2685
    functionDepth: 2
    functionLinenumber: 2685
    functionLinenumberEnd: 2705
    functionName: boolean_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_println
    linkageType: ''
    returnType: int
    signature: "int boolean_to_cil(int indent, struct policydb *UNUSED(pdb),\n\t\t\t
      \ struct avrule_block *UNUSED(block),\n\t\t\t  struct stack *UNUSED(decl_stack),
      char *key,\n\t\t\t  void *datum, int scope)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2719,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2721,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2722,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/module_to_cil.c:2728,1
    - Dst: cil_indent
      Src: /src/selinux/libsepol/src/module_to_cil.c:2729,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2730,1
    - Dst: ebitmap_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:2731,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2732,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 7
    argNames:
    - indent
    - pdb
    - UNUSED(block)
    - UNUSED(decl_stack)
    - key
    - datum
    - scope
    argTypes:
    - int
    - struct policydb*
    - struct avrule_block*
    - struct stack*
    - char*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2736
      start: 2707
    functionDepth: 2
    functionLinenumber: 2707
    functionLinenumberEnd: 2736
    functionName: sens_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_printf
    - cil_println
    - ebitmap_to_cil
    - ebitmap_is_empty
    - cil_indent
    linkageType: ''
    returnType: int
    signature: "int sens_to_cil(int indent, struct policydb *pdb,\n\t\t       struct
      avrule_block *UNUSED(block),\n\t\t       struct stack *UNUSED(decl_stack), char
      *key, void *datum,\n\t\t       int scope)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/module_to_cil.c:2747,1
    - Dst: cil_indent
      Src: /src/selinux/libsepol/src/module_to_cil.c:2751,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2752,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/module_to_cil.c:2754,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2755,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2758,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - indent
    - pdb
    - order
    argTypes:
    - int
    - struct policydb*
    - struct ebitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2761
      start: 2738
    functionDepth: 1
    functionLinenumber: 2738
    functionLinenumberEnd: 2761
    functionName: sens_order_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_indent
    - ebitmap_is_empty
    - ebitmap_for_each_positive_bit
    - cil_printf
    linkageType: ''
    returnType: int
    signature: "int sens_order_to_cil(int indent, struct policydb *pdb,\n\t\t\t     struct
      ebitmap order)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2778,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2780,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2781,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 7
    argNames:
    - indent
    - pdb
    - UNUSED(block)
    - UNUSED(decl_stack)
    - key
    - datum
    - scope
    argTypes:
    - int
    - struct policydb*
    - struct avrule_block*
    - struct stack*
    - char*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2786
      start: 2763
    functionDepth: 2
    functionLinenumber: 2763
    functionLinenumberEnd: 2786
    functionName: cat_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_println
    linkageType: ''
    returnType: int
    signature: "int cat_to_cil(int indent, struct policydb *pdb,\n\t\t      struct
      avrule_block *UNUSED(block),\n\t\t      struct stack *UNUSED(decl_stack), char
      *key, void *datum,\n\t\t      int scope)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/module_to_cil.c:2798,1
    - Dst: cil_indent
      Src: /src/selinux/libsepol/src/module_to_cil.c:2803,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2804,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/module_to_cil.c:2806,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2807,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2810,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - indent
    - pdb
    - order
    argTypes:
    - int
    - struct policydb*
    - struct ebitmap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2815
      start: 2788
    functionDepth: 1
    functionLinenumber: 2788
    functionLinenumberEnd: 2815
    functionName: cat_order_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_indent
    - ebitmap_is_empty
    - ebitmap_for_each_positive_bit
    - cil_printf
    linkageType: ''
    returnType: int
    signature: "int cat_order_to_cil(int indent, struct policydb *pdb,\n\t\t\t    struct
      ebitmap order)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_polcap_getname
      Src: /src/selinux/libsepol/src/module_to_cil.c:2828,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:2830,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - pdb
    argTypes:
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2841
      start: 2817
    functionDepth: 2
    functionLinenumber: 2817
    functionLinenumberEnd: 2841
    functionName: polcaps_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - cil_println
    - sepol_polcap_getname
    linkageType: ''
    returnType: int
    signature: int polcaps_to_cil(struct policydb *pdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_polcap_getname
      Src: /src/selinux/libsepol/src/module_to_cil.c:2828,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:2830,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:2835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2836
      start: 2827
    functionDepth: 2
    functionLinenumber: 2827
    functionLinenumberEnd: 2836
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 18
    functionsReached:
    - ERR
    - cil_println
    - sepol_polcap_getname
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(map, node, i)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2850,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/module_to_cil.c:2852,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2853,1
    - Dst: ebitmap_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:2854,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2855,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2858,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - pdb
    - level
    argTypes:
    - struct policydb*
    - struct mls_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2861
      start: 2843
    functionDepth: 2
    functionLinenumber: 2843
    functionLinenumberEnd: 2861
    functionName: level_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 2
    functionsReached:
    - ebitmap_to_cil
    - ebitmap_is_empty
    - cil_printf
    linkageType: ''
    returnType: int
    signature: int level_to_cil(struct policydb *pdb, struct mls_level *level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2865,1
    - Dst: level_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:2870,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2871,1
    - Dst: level_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:2872,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2874,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2875,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2876,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2879,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - pdb
    - con
    argTypes:
    - struct policydb*
    - struct context_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2882
      start: 2863
    functionDepth: 3
    functionLinenumber: 2863
    functionLinenumberEnd: 2882
    functionName: context_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - level_to_cil
    - cil_printf
    linkageType: ''
    returnType: int
    signature: int context_to_cil(struct policydb *pdb, struct context_struct *con)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: isids_to_strs
      Src: /src/selinux/libsepol/src/module_to_cil.c:2895,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:2897,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/module_to_cil.c:2901,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:2902,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/module_to_cil.c:2906,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/module_to_cil.c:2907,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2908,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2911,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/module_to_cil.c:2913,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/module_to_cil.c:2914,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2916,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2921,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2923,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/module_to_cil.c:2925,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/module_to_cil.c:2925,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:2927,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/module_to_cil.c:2928,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:2929,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/module_to_cil.c:2934,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/module_to_cil.c:2938,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/module_to_cil.c:2940,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2941,1
    - Dst: context_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:2943,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:2944,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:2947,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/module_to_cil.c:2949,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:2950,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 53
    argCount: 4
    argNames:
    - pdb
    - sid_to_string
    - num_sids
    - isids
    argTypes:
    - struct policydb*
    - char**
    - unsigned
    - struct ocontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2953
      start: 2884
    functionDepth: 4
    functionLinenumber: 2884
    functionLinenumberEnd: 2953
    functionName: ocontext_isid_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - isids_to_strs
    - ERR
    - strs_num_items
    - cil_printf
    - strs_read_at_index
    - context_to_cil
    - free
    - calloc
    - strs_destroy
    - strs_free_all
    linkageType: ''
    returnType: int
    signature: "int ocontext_isid_to_cil(struct policydb *pdb,\n\t\t\t\tconst char
      *const *sid_to_string,\n\t\t\t\tunsigned num_sids, struct ocontext *isids)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ocontext_isid_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:2960,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - pdb
    - isids
    argTypes:
    - struct policydb*
    - struct ocontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2970
      start: 2955
    functionDepth: 5
    functionLinenumber: 2955
    functionLinenumberEnd: 2970
    functionName: ocontext_selinux_isid_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ocontext_isid_to_cil
    linkageType: ''
    returnType: int
    signature: "int ocontext_selinux_isid_to_cil(struct policydb *pdb,\n\t\t\t\t\tstruct
      ocontext *isids)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:2976,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - UNUSED(pdb)
    - fss
    argTypes:
    - struct policydb*
    - struct ocontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2981
      start: 2972
    functionDepth: 0
    functionLinenumber: 2972
    functionLinenumberEnd: 2981
    functionName: ocontext_selinux_fs_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    linkageType: ''
    returnType: int
    signature: "int ocontext_selinux_fs_to_cil(struct policydb *UNUSED(pdb),\n\t\t\t\t
      \     struct ocontext *fss)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:3007,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3017,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3019,1
    - Dst: context_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:3022,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3024,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - pdb
    - portcons
    argTypes:
    - struct policydb*
    - struct ocontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3030
      start: 2983
    functionDepth: 4
    functionLinenumber: 2983
    functionLinenumberEnd: 3030
    functionName: ocontext_selinux_port_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - cil_printf
    - context_to_cil
    linkageType: ''
    returnType: int
    signature: "int ocontext_selinux_port_to_cil(struct policydb *pdb,\n\t\t\t\t\tstruct
      ocontext *portcons)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/module_to_cil.c:3045,1
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/src/module_to_cil.c:3049,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:3051,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3057,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3059,1
    - Dst: context_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:3062,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3064,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - pdb
    - ibpkeycons
    argTypes:
    - struct policydb*
    - struct ocontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3069
      start: 3032
    functionDepth: 4
    functionLinenumber: 3032
    functionLinenumberEnd: 3069
    functionName: ocontext_selinux_ibpkey_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - cil_printf
    - context_to_cil
    - inet_ntop
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int ocontext_selinux_ibpkey_to_cil(struct policydb *pdb,\n\t\t\t\t\t
      \ struct ocontext *ibpkeycons)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3077,1
    - Dst: context_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:3078,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3080,1
    - Dst: context_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:3081,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3082,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pdb
    - netifs
    argTypes:
    - struct policydb*
    - struct ocontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3086
      start: 3071
    functionDepth: 4
    functionLinenumber: 3071
    functionLinenumberEnd: 3086
    functionName: ocontext_selinux_netif_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_printf
    - context_to_cil
    linkageType: ''
    returnType: int
    signature: "int ocontext_selinux_netif_to_cil(struct policydb *pdb,\n\t\t\t\t\t
      struct ocontext *netifs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/src/module_to_cil.c:3097,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:3099,1
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/src/module_to_cil.c:3104,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:3106,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3111,1
    - Dst: context_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:3113,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - pdb
    - nodes
    argTypes:
    - struct policydb*
    - struct ocontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3121
      start: 3088
    functionDepth: 4
    functionLinenumber: 3088
    functionLinenumberEnd: 3121
    functionName: ocontext_selinux_node_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - inet_ntop
    - ERR
    - cil_printf
    - context_to_cil
    linkageType: ''
    returnType: int
    signature: "int ocontext_selinux_node_to_cil(struct policydb *pdb,\n\t\t\t\t\tstruct
      ocontext *nodes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/src/module_to_cil.c:3132,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:3134,1
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/src/module_to_cil.c:3139,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:3141,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3146,1
    - Dst: context_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:3148,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - pdb
    - nodes
    argTypes:
    - struct policydb*
    - struct ocontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3156
      start: 3123
    functionDepth: 4
    functionLinenumber: 3123
    functionLinenumberEnd: 3156
    functionName: ocontext_selinux_node6_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - inet_ntop
    - ERR
    - cil_printf
    - context_to_cil
    linkageType: ''
    returnType: int
    signature: "int ocontext_selinux_node6_to_cil(struct policydb *pdb,\n\t\t\t\t\t
      struct ocontext *nodes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3164,1
    - Dst: context_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:3167,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pdb
    - ibendports
    argTypes:
    - struct policydb*
    - struct ocontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3173
      start: 3158
    functionDepth: 4
    functionLinenumber: 3158
    functionLinenumberEnd: 3173
    functionName: ocontext_selinux_ibendport_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_printf
    - context_to_cil
    linkageType: ''
    returnType: int
    signature: "int ocontext_selinux_ibendport_to_cil(struct policydb *pdb,\n\t\t\t\t\t
      \    struct ocontext *ibendports)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:3194,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3200,1
    - Dst: context_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:3202,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3204,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - pdb
    - fsuses
    argTypes:
    - struct policydb*
    - struct ocontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3210
      start: 3175
    functionDepth: 4
    functionLinenumber: 3175
    functionLinenumberEnd: 3210
    functionName: ocontext_selinux_fsuse_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - cil_printf
    - context_to_cil
    linkageType: ''
    returnType: int
    signature: "int ocontext_selinux_fsuse_to_cil(struct policydb *pdb,\n\t\t\t\t\t
      struct ocontext *fsuses)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ocontext_isid_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:3217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - pdb
    - isids
    argTypes:
    - struct policydb*
    - struct ocontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3226
      start: 3212
    functionDepth: 5
    functionLinenumber: 3212
    functionLinenumberEnd: 3226
    functionName: ocontext_xen_isid_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ocontext_isid_to_cil
    linkageType: ''
    returnType: int
    signature: "int ocontext_xen_isid_to_cil(struct policydb *pdb,\n\t\t\t\t    struct
      ocontext *isids)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3234,1
    - Dst: context_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:3235,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pdb
    - pirqs
    argTypes:
    - struct policydb*
    - struct ocontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3240
      start: 3228
    functionDepth: 4
    functionLinenumber: 3228
    functionLinenumberEnd: 3240
    functionName: ocontext_xen_pirq_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_printf
    - context_to_cil
    linkageType: ''
    returnType: int
    signature: "int ocontext_xen_pirq_to_cil(struct policydb *pdb,\n\t\t\t\t    struct
      ocontext *pirqs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3254,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3256,1
    - Dst: context_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:3259,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - pdb
    - ioports
    argTypes:
    - struct policydb*
    - struct ocontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3265
      start: 3242
    functionDepth: 4
    functionLinenumber: 3242
    functionLinenumberEnd: 3265
    functionName: ocontext_xen_ioport_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_printf
    - context_to_cil
    linkageType: ''
    returnType: int
    signature: "int ocontext_xen_ioport_to_cil(struct policydb *pdb,\n\t\t\t\t      struct
      ocontext *ioports)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3279,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3281,1
    - Dst: context_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:3285,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - pdb
    - iomems
    argTypes:
    - struct policydb*
    - struct ocontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3291
      start: 3267
    functionDepth: 4
    functionLinenumber: 3267
    functionLinenumberEnd: 3291
    functionName: ocontext_xen_iomem_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_printf
    - context_to_cil
    linkageType: ''
    returnType: int
    signature: "int ocontext_xen_iomem_to_cil(struct policydb *pdb,\n\t\t\t\t     struct
      ocontext *iomems)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3299,1
    - Dst: context_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:3301,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - pdb
    - pcids
    argTypes:
    - struct policydb*
    - struct ocontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3306
      start: 3293
    functionDepth: 4
    functionLinenumber: 3293
    functionLinenumberEnd: 3306
    functionName: ocontext_xen_pcidevice_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_printf
    - context_to_cil
    linkageType: ''
    returnType: int
    signature: "int ocontext_xen_pcidevice_to_cil(struct policydb *pdb,\n\t\t\t\t\t
      struct ocontext *pcids)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:3346,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - pdb
    argTypes:
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3363
      start: 3308
    functionDepth: 0
    functionLinenumber: 3308
    functionLinenumberEnd: 3363
    functionName: ocontexts_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    linkageType: ''
    returnType: int
    signature: int ocontexts_to_cil(struct policydb *pdb)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/module_to_cil.c:3371,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/module_to_cil.c:3379,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:3383,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:3393,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:3395,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:3397,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:3400,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:3403,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:3406,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:3409,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3415,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3419,1
    - Dst: context_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:3422,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3423,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 1
    argNames:
    - pdb
    argTypes:
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3428
      start: 3365
    functionDepth: 4
    functionLinenumber: 3365
    functionLinenumberEnd: 3428
    functionName: genfscon_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - cil_printf
    - context_to_cil
    - strcmp
    - ebitmap_get_bit
    - strlen
    linkageType: ''
    returnType: int
    signature: int genfscon_to_cil(struct policydb *pdb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tokenize
      Src: /src/selinux/libsepol/src/module_to_cil.c:3440,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:3442,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3447,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3450,1
    - Dst: strtok_r
      Src: /src/selinux/libsepol/src/module_to_cil.c:3451,1
    - Dst: strchr
      Src: /src/selinux/libsepol/src/module_to_cil.c:3453,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3455,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3458,1
    - Dst: strtok_r
      Src: /src/selinux/libsepol/src/module_to_cil.c:3460,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3462,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3465,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3469,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3470,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - levelstr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3472
      start: 3430
    functionDepth: 1
    functionLinenumber: 3430
    functionLinenumberEnd: 3472
    functionName: level_string_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - strchr
    - tokenize
    - cil_printf
    - strtok_r
    - free
    linkageType: ''
    returnType: int
    signature: int level_string_to_cil(char *levelstr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/selinux/libsepol/src/module_to_cil.c:3480,1
    - Dst: level_string_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:3489,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3490,1
    - Dst: level_string_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:3491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - levelrangestr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3494
      start: 3474
    functionDepth: 2
    functionLinenumber: 3474
    functionLinenumberEnd: 3494
    functionName: level_range_string_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_printf
    - strchr
    - level_string_to_cil
    linkageType: ''
    returnType: int
    signature: int level_range_string_to_cil(char *levelrangestr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tokenize
      Src: /src/selinux/libsepol/src/module_to_cil.c:3505,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:3507,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3512,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3515,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3516,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3517,1
    - Dst: level_range_string_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:3519,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3522,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3527,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3528,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3529,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3530,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - contextstr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3533
      start: 3496
    functionDepth: 3
    functionLinenumber: 3496
    functionLinenumberEnd: 3533
    functionName: context_string_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - tokenize
    - cil_printf
    - level_range_string_to_cil
    - free
    linkageType: ''
    returnType: int
    signature: int context_string_to_cil(char *contextstr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sepol_module_package_get_seusers
      Src: /src/selinux/libsepol/src/module_to_cil.c:3538,1
    - Dst: sepol_module_package_get_seusers_len
      Src: /src/selinux/libsepol/src/module_to_cil.c:3539,1
    - Dst: get_line
      Src: /src/selinux/libsepol/src/module_to_cil.c:3553,1
    - Dst: isspace
      Src: /src/selinux/libsepol/src/module_to_cil.c:3555,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3560,1
    - Dst: tokenize
      Src: /src/selinux/libsepol/src/module_to_cil.c:3565,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:3568,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:3573,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3574,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3576,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3581,1
    - Dst: level_range_string_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:3584,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3588,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3590,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3591,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3592,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3593,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3598,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3604,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3605,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3606,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3607,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 1
    argNames:
    - mod_pkg
    argTypes:
    - struct sepol_module_package*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3610
      start: 3535
    functionDepth: 3
    functionLinenumber: 3535
    functionLinenumberEnd: 3610
    functionName: seusers_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - tokenize
    - isspace
    - get_line
    - cil_printf
    - sepol_module_package_get_seusers
    - strcmp
    - sepol_module_package_get_seusers_len
    - level_range_string_to_cil
    - free
    linkageType: ''
    returnType: int
    signature: int seusers_to_cil(struct sepol_module_package *mod_pkg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_module_package_get_netfilter_contexts_len
      Src: /src/selinux/libsepol/src/module_to_cil.c:3615,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:3618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mod_pkg
    argTypes:
    - struct sepol_module_package*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3623
      start: 3612
    functionDepth: 1
    functionLinenumber: 3612
    functionLinenumberEnd: 3623
    functionName: netfilter_contexts_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_module_package_get_netfilter_contexts_len
    linkageType: ''
    returnType: int
    signature: int netfilter_contexts_to_cil(struct sepol_module_package *mod_pkg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sepol_module_package_get_user_extra
      Src: /src/selinux/libsepol/src/module_to_cil.c:3628,1
    - Dst: sepol_module_package_get_user_extra_len
      Src: /src/selinux/libsepol/src/module_to_cil.c:3629,1
    - Dst: get_line
      Src: /src/selinux/libsepol/src/module_to_cil.c:3646,1
    - Dst: isspace
      Src: /src/selinux/libsepol/src/module_to_cil.c:3648,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3653,1
    - Dst: tokenize
      Src: /src/selinux/libsepol/src/module_to_cil.c:3658,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:3662,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/module_to_cil.c:3666,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:3668,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:3669,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:3671,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:3676,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3677,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3678,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3679,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3680,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3681,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3686,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3692,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3693,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3694,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3695,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3696,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 52
    argCount: 1
    argNames:
    - mod_pkg
    argTypes:
    - struct sepol_module_package*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3699
      start: 3625
    functionDepth: 2
    functionLinenumber: 3625
    functionLinenumberEnd: 3699
    functionName: user_extra_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - tokenize
    - isspace
    - get_line
    - sepol_module_package_get_user_extra
    - cil_printf
    - cil_println
    - strcmp
    - free
    - sepol_module_package_get_user_extra_len
    - strlen
    linkageType: ''
    returnType: int
    signature: int user_extra_to_cil(struct sepol_module_package *mod_pkg)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: sepol_module_package_get_file_contexts
      Src: /src/selinux/libsepol/src/module_to_cil.c:3704,1
    - Dst: sepol_module_package_get_file_contexts_len
      Src: /src/selinux/libsepol/src/module_to_cil.c:3705,1
    - Dst: get_line
      Src: /src/selinux/libsepol/src/module_to_cil.c:3720,1
    - Dst: isspace
      Src: /src/selinux/libsepol/src/module_to_cil.c:3722,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3727,1
    - Dst: tokenize
      Src: /src/selinux/libsepol/src/module_to_cil.c:3732,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:3735,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:3746,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:3748,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:3750,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:3752,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:3754,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:3756,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:3758,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:3762,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3767,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:3769,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3770,1
    - Dst: context_string_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:3772,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3775,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3777,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3778,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3779,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3780,1
    - Dst: cil_printf
      Src: /src/selinux/libsepol/src/module_to_cil.c:3785,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3791,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3792,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3793,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:3794,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 80
    argCount: 1
    argNames:
    - mod_pkg
    argTypes:
    - struct sepol_module_package*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3797
      start: 3701
    functionDepth: 4
    functionLinenumber: 3701
    functionLinenumberEnd: 3797
    functionName: file_contexts_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - tokenize
    - isspace
    - get_line
    - cil_printf
    - sepol_module_package_get_file_contexts_len
    - context_string_to_cil
    - strcmp
    - free
    - sepol_module_package_get_file_contexts
    linkageType: ''
    returnType: int
    signature: int file_contexts_to_cil(struct sepol_module_package *mod_pkg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stack_peek
      Src: /src/selinux/libsepol/src/module_to_cil.c:3816,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/module_to_cil.c:3831,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:3845,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:3846,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - indent
    - pdb
    - UNUSED(block)
    - decl_stack
    argTypes:
    - int
    - struct policydb*
    - struct avrule_block*
    - struct stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3854
      start: 3808
    functionDepth: 2
    functionLinenumber: 3808
    functionLinenumberEnd: 3854
    functionName: typealiases_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - stack_peek
    - cil_println
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: "int typealiases_to_cil(int indent, struct policydb *pdb,\n\t\t\t      struct
      avrule_block *UNUSED(block),\n\t\t\t      struct stack *decl_stack)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: stack_peek
      Src: /src/selinux/libsepol/src/module_to_cil.c:3868,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/module_to_cil.c:3876,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/module_to_cil.c:3878,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/module_to_cil.c:3883,1
    - Dst: cat_order_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:3896,1
    - Dst: sens_order_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:3903,1
    - Dst: class_order_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:3910,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 4
    argNames:
    - indent
    - pdb
    - block
    - decl_stack
    argTypes:
    - int
    - struct policydb*
    - struct avrule_block*
    - struct stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3920
      start: 3856
    functionDepth: 2
    functionLinenumber: 3856
    functionLinenumberEnd: 3920
    functionName: declared_scopes_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - sens_order_to_cil
    - stack_peek
    - hashtab_search
    - ebitmap_for_each_positive_bit
    - class_order_to_cil
    - cat_order_to_cil
    linkageType: ''
    returnType: int
    signature: "int declared_scopes_to_cil(int indent, struct policydb *pdb,\n\t\t\t\t
      \ struct avrule_block *block,\n\t\t\t\t  struct stack *decl_stack)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: stack_peek
      Src: /src/selinux/libsepol/src/module_to_cil.c:3934,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/module_to_cil.c:3943,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/module_to_cil.c:3947,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/module_to_cil.c:3968,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 4
    argNames:
    - indent
    - pdb
    - block
    - decl_stack
    argTypes:
    - int
    - struct policydb*
    - struct avrule_block*
    - struct stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3984
      start: 3922
    functionDepth: 1
    functionLinenumber: 3922
    functionLinenumberEnd: 3984
    functionName: required_scopes_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ebitmap_for_each_positive_bit
    - stack_peek
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: "int required_scopes_to_cil(int indent, struct policydb *pdb,\n\t\t\t\t
      \ struct avrule_block *block,\n\t\t\t\t  struct stack *decl_stack)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - key
    - data
    - arg
    argTypes:
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4002
      start: 3986
    functionDepth: 0
    functionLinenumber: 3986
    functionLinenumberEnd: 4002
    functionName: additive_scopes_to_cil_map
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int additive_scopes_to_cil_map(char *key, void *data, void *arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stack_peek
      Src: /src/selinux/libsepol/src/module_to_cil.c:4009,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/module_to_cil.c:4020,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - indent
    - pdb
    - block
    - decl_stack
    argTypes:
    - int
    - struct policydb*
    - struct avrule_block*
    - struct stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4031
      start: 4004
    functionDepth: 1
    functionLinenumber: 4004
    functionLinenumberEnd: 4031
    functionName: additive_scopes_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - stack_peek
    - hashtab_map
    linkageType: ''
    returnType: int
    signature: "int additive_scopes_to_cil(int indent, struct policydb *pdb,\n\t\t\t\t
      \ struct avrule_block *block,\n\t\t\t\t  struct stack *decl_stack)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/module_to_cil.c:4044,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/src/module_to_cil.c:4050,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:4051,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:4054,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/src/module_to_cil.c:4065,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/src/module_to_cil.c:4066,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:4069,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:4076,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - sup
    - sub
    argTypes:
    - struct scope_index*
    - struct scope_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4078
      start: 4033
    functionDepth: 1
    functionLinenumber: 4033
    functionLinenumberEnd: 4078
    functionName: is_scope_superset
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - ebitmap_and
    - ebitmap_cmp
    linkageType: ''
    returnType: int
    signature: int is_scope_superset(struct scope_index *sup, struct scope_index *sub)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: list_init
      Src: /src/selinux/libsepol/src/module_to_cil.c:4090,1
    - Dst: list_init
      Src: /src/selinux/libsepol/src/module_to_cil.c:4094,1
    - Dst: typealiases_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4099,1
    - Dst: declared_scopes_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4104,1
    - Dst: required_scopes_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4109,1
    - Dst: additive_scopes_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4114,1
    - Dst: avrule_list_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4119,1
    - Dst: role_trans_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4124,1
    - Dst: role_allows_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4130,1
    - Dst: range_trans_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4136,1
    - Dst: filename_trans_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4142,1
    - Dst: cond_list_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4148,1
    - Dst: cil_print_attr_list
      Src: /src/selinux/libsepol/src/module_to_cil.c:4153,1
    - Dst: cil_print_attr_list
      Src: /src/selinux/libsepol/src/module_to_cil.c:4157,1
    - Dst: attr_list_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:4163,1
    - Dst: attr_list_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:4164,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 77
    argCount: 4
    argNames:
    - pdb
    - block
    - stack
    - indent
    argTypes:
    - struct policydb*
    - struct avrule_block*
    - struct stack*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4167
      start: 4080
    functionDepth: 6
    functionLinenumber: 4080
    functionLinenumberEnd: 4167
    functionName: block_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_print_attr_list
    - avrule_list_to_cil
    - role_allows_to_cil
    - declared_scopes_to_cil
    - required_scopes_to_cil
    - attr_list_destroy
    - role_trans_to_cil
    - list_init
    - additive_scopes_to_cil
    - range_trans_to_cil
    - typealiases_to_cil
    - filename_trans_to_cil
    - cond_list_to_cil
    linkageType: ''
    returnType: int
    signature: "int block_to_cil(struct policydb *pdb, struct avrule_block *block,\n\t\t\tstruct
      stack *stack, int indent)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:4182,1
    - Dst: stack_peek
      Src: /src/selinux/libsepol/src/module_to_cil.c:4188,1
    - Dst: is_scope_superset
      Src: /src/selinux/libsepol/src/module_to_cil.c:4189,1
    - Dst: stack_pop
      Src: /src/selinux/libsepol/src/module_to_cil.c:4194,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:4196,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:4199,1
    - Dst: stack_push
      Src: /src/selinux/libsepol/src/module_to_cil.c:4204,1
    - Dst: block_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4209,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 4
    argNames:
    - pdb
    - block
    - stack
    - indent
    argTypes:
    - struct policydb*
    - struct avrule_block*
    - struct stack*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4216
      start: 4169
    functionDepth: 7
    functionLinenumber: 4169
    functionLinenumberEnd: 4216
    functionName: module_block_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - stack_peek
    - stack_push
    - cil_println
    - block_to_cil
    - is_scope_superset
    - stack_pop
    linkageType: ''
    returnType: int
    signature: "int module_block_to_cil(struct policydb *pdb, struct avrule_block
      *block,\n\t\t\t       struct stack *stack, int *indent)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:4230,1
    - Dst: stack_push
      Src: /src/selinux/libsepol/src/module_to_cil.c:4234,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/module_to_cil.c:4242,1
    - Dst: block_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4247,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - pdb
    - block
    - stack
    argTypes:
    - struct policydb*
    - struct avrule_block*
    - struct stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4254
      start: 4218
    functionDepth: 7
    functionLinenumber: 4218
    functionLinenumberEnd: 4254
    functionName: global_block_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - stack_push
    - hashtab_map
    - block_to_cil
    linkageType: ''
    returnType: int
    signature: "int global_block_to_cil(struct policydb *pdb, struct avrule_block
      *block,\n\t\t\t       struct stack *stack)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stack_init
      Src: /src/selinux/libsepol/src/module_to_cil.c:4263,1
    - Dst: global_block_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4269,1
    - Dst: module_block_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4275,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:4283,1
    - Dst: stack_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:4287,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - pdb
    argTypes:
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4290
      start: 4256
    functionDepth: 8
    functionLinenumber: 4256
    functionLinenumberEnd: 4290
    functionName: blocks_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - stack_destroy
    - cil_println
    - module_block_to_cil
    - global_block_to_cil
    - stack_init
    linkageType: ''
    returnType: int
    signature: int blocks_to_cil(struct policydb *pdb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stack_push
      Src: /src/selinux/libsepol/src/module_to_cil.c:4311,1
    - Dst: block_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4316,1
    - Dst: stack_pop
      Src: /src/selinux/libsepol/src/module_to_cil.c:4321,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - pdb
    - block
    - stack
    argTypes:
    - struct policydb*
    - struct avrule_block*
    - struct stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4325
      start: 4292
    functionDepth: 7
    functionLinenumber: 4292
    functionLinenumberEnd: 4325
    functionName: linked_block_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - stack_push
    - block_to_cil
    - stack_pop
    linkageType: ''
    returnType: int
    signature: "int linked_block_to_cil(struct policydb *pdb, struct avrule_block
      *block,\n\t\t\t       struct stack *stack)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stack_init
      Src: /src/selinux/libsepol/src/module_to_cil.c:4335,1
    - Dst: global_block_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4341,1
    - Dst: linked_block_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4347,1
    - Dst: stack_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:4354,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - pdb
    argTypes:
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4357
      start: 4327
    functionDepth: 8
    functionLinenumber: 4327
    functionLinenumberEnd: 4357
    functionName: linked_blocks_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - stack_destroy
    - global_block_to_cil
    - stack_init
    - linked_block_to_cil
    linkageType: ''
    returnType: int
    signature: int linked_blocks_to_cil(struct policydb *pdb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:4375,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:4381,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - pdb
    argTypes:
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4387
      start: 4359
    functionDepth: 2
    functionLinenumber: 4359
    functionLinenumberEnd: 4387
    functionName: handle_unknown_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - cil_println
    linkageType: ''
    returnType: int
    signature: int handle_unknown_to_cil(struct policydb *pdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:4392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pdb
    argTypes:
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4395
      start: 4389
    functionDepth: 2
    functionLinenumber: 4389
    functionLinenumberEnd: 4395
    functionName: generate_mls
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_println
    linkageType: ''
    returnType: int
    signature: int generate_mls(struct policydb *pdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:4399,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:4400,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:4401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4404
      start: 4397
    functionDepth: 2
    functionLinenumber: 4397
    functionLinenumberEnd: 4404
    functionName: generate_default_level
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_println
    linkageType: ''
    returnType: int
    signature: int generate_default_level(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:4408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4411
      start: 4406
    functionDepth: 2
    functionLinenumber: 4406
    functionLinenumberEnd: 4411
    functionName: generate_default_object
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_println
    linkageType: ''
    returnType: int
    signature: int generate_default_object(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:4415,1
    - Dst: cil_println
      Src: /src/selinux/libsepol/src/module_to_cil.c:4416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4419
      start: 4413
    functionDepth: 2
    functionLinenumber: 4413
    functionLinenumberEnd: 4419
    functionName: generate_gen_require_attribute
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - cil_println
    linkageType: ''
    returnType: int
    signature: int generate_gen_require_attribute(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libsepol/src/module_to_cil.c:4432,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:4434,1
    - Dst: isalnum
      Src: /src/selinux/libsepol/src/module_to_cil.c:4443,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - pdb
    argTypes:
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4453
      start: 4421
    functionDepth: 0
    functionLinenumber: 4421
    functionLinenumberEnd: 4453
    functionName: fix_module_name
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - isalnum
    - strdup
    linkageType: ''
    returnType: int
    signature: int fix_module_name(struct policydb *pdb)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:4468,1
    - Dst: fix_module_name
      Src: /src/selinux/libsepol/src/module_to_cil.c:4473,1
    - Dst: generate_default_level
      Src: /src/selinux/libsepol/src/module_to_cil.c:4483,1
    - Dst: generate_default_object
      Src: /src/selinux/libsepol/src/module_to_cil.c:4492,1
    - Dst: generate_gen_require_attribute
      Src: /src/selinux/libsepol/src/module_to_cil.c:4498,1
    - Dst: handle_unknown_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4504,1
    - Dst: generate_mls
      Src: /src/selinux/libsepol/src/module_to_cil.c:4510,1
    - Dst: role_list_create
      Src: /src/selinux/libsepol/src/module_to_cil.c:4516,1
    - Dst: typealias_list_create
      Src: /src/selinux/libsepol/src/module_to_cil.c:4521,1
    - Dst: polcaps_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4526,1
    - Dst: ocontexts_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4531,1
    - Dst: genfscon_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4536,1
    - Dst: linked_blocks_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4543,1
    - Dst: blocks_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4545,1
    - Dst: role_list_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:4554,1
    - Dst: typealias_list_destroy
      Src: /src/selinux/libsepol/src/module_to_cil.c:4555,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 87
    argCount: 3
    argNames:
    - fp
    - pdb
    - linked
    argTypes:
    - FILE*
    - struct policydb*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4558
      start: 4455
    functionDepth: 9
    functionLinenumber: 4455
    functionLinenumberEnd: 4558
    functionName: sepol_module_policydb_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ocontexts_to_cil
    - ERR
    - genfscon_to_cil
    - role_list_destroy
    - generate_gen_require_attribute
    - generate_default_level
    - fix_module_name
    - typealias_list_destroy
    - generate_default_object
    - typealias_list_create
    - linked_blocks_to_cil
    - blocks_to_cil
    - polcaps_to_cil
    - role_list_create
    - generate_mls
    - handle_unknown_to_cil
    linkageType: ''
    returnType: int
    signature: int sepol_module_policydb_to_cil(FILE *fp, struct policydb *pdb, int
      linked)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sepol_module_package_get_policy
      Src: /src/selinux/libsepol/src/module_to_cil.c:4567,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:4569,1
    - Dst: sepol_module_policydb_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4574,1
    - Dst: seusers_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4579,1
    - Dst: netfilter_contexts_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4584,1
    - Dst: user_extra_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4589,1
    - Dst: file_contexts_to_cil
      Src: /src/selinux/libsepol/src/module_to_cil.c:4594,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 2
    argNames:
    - fp
    - mod_pkg
    argTypes:
    - FILE*
    - struct sepol_module_package*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4603
      start: 4560
    functionDepth: 10
    functionLinenumber: 4560
    functionLinenumberEnd: 4603
    functionName: sepol_module_package_to_cil
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_module_policydb_to_cil
    - file_contexts_to_cil
    - user_extra_to_cil
    - netfilter_contexts_to_cil
    - sepol_module_package_get_policy
    - seusers_to_cil
    linkageType: ''
    returnType: int
    signature: int sepol_module_package_to_cil(FILE *fp, struct sepol_module_package
      *mod_pkg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/module_to_cil.c:4615,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:4617,1
    - Dst: fread
      Src: /src/selinux/libsepol/src/module_to_cil.c:4622,1
    - Dst: __builtin_mul_overflow
      Src: /src/selinux/libsepol/src/module_to_cil.c:4625,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:4626,1
    - Dst: realloc
      Src: /src/selinux/libsepol/src/module_to_cil.c:4630,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:4632,1
    - Dst: ferror
      Src: /src/selinux/libsepol/src/module_to_cil.c:4640,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:4641,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:4652,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - fp
    - data
    - data_len
    argTypes:
    - FILE*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4654
      start: 4605
    functionDepth: 0
    functionLinenumber: 4605
    functionLinenumberEnd: 4654
    functionName: fp_to_buffer
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - __builtin_mul_overflow
    - malloc
    - realloc
    - ferror
    - free
    - fread
    linkageType: ''
    returnType: int
    signature: int fp_to_buffer(FILE *fp, char **data, size_t *data_len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sepol_policy_file_create
      Src: /src/selinux/libsepol/src/module_to_cil.c:4667,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:4669,1
    - Dst: fileno
      Src: /src/selinux/libsepol/src/module_to_cil.c:4673,1
    - Dst: fstat
      Src: /src/selinux/libsepol/src/module_to_cil.c:4674,1
    - Dst: S_ISFIFO
      Src: /src/selinux/libsepol/src/module_to_cil.c:4679,1
    - Dst: S_ISSOCK
      Src: /src/selinux/libsepol/src/module_to_cil.c:4679,1
    - Dst: fp_to_buffer
      Src: /src/selinux/libsepol/src/module_to_cil.c:4683,1
    - Dst: sepol_policy_file_set_mem
      Src: /src/selinux/libsepol/src/module_to_cil.c:4688,1
    - Dst: sepol_policy_file_set_fp
      Src: /src/selinux/libsepol/src/module_to_cil.c:4690,1
    - Dst: sepol_module_package_create
      Src: /src/selinux/libsepol/src/module_to_cil.c:4693,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:4695,1
    - Dst: sepol_module_package_read
      Src: /src/selinux/libsepol/src/module_to_cil.c:4699,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module_to_cil.c:4701,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module_to_cil.c:4708,1
    - Dst: sepol_policy_file_free
      Src: /src/selinux/libsepol/src/module_to_cil.c:4710,1
    - Dst: sepol_module_package_free
      Src: /src/selinux/libsepol/src/module_to_cil.c:4713,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 2
    argNames:
    - fp
    - mod_pkg
    argTypes:
    - FILE*
    - struct sepol_module_package**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4717
      start: 4656
    functionDepth: 1
    functionLinenumber: 4656
    functionLinenumberEnd: 4717
    functionName: sepol_ppfile_to_module_package
    functionSourceFile: /src/selinux/libsepol/src/module_to_cil.c
    functionUses: 0
    functionsReached:
    - sepol_policy_file_create
    - ERR
    - sepol_policy_file_free
    - fp_to_buffer
    - sepol_module_package_free
    - sepol_policy_file_set_fp
    - sepol_module_package_create
    - S_ISSOCK
    - fileno
    - free
    - fstat
    - S_ISFIFO
    - sepol_policy_file_set_mem
    - sepol_module_package_read
    linkageType: ''
    returnType: int
    signature: "int sepol_ppfile_to_module_package(FILE *fp,\n\t\t\t\t   struct sepol_module_package
      **mod_pkg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - l
    argTypes:
    - cond_av_list_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 49
    functionName: cond_optimize
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cond_optimize(cond_av_list_t **l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cond_optimize
      Src: /src/selinux/libsepol/src/conditional.c:57,1
    - Dst: cond_optimize
      Src: /src/selinux/libsepol/src/conditional.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cl
    argTypes:
    - cond_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: cond_optimize_lists
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 0
    functionsReached:
    - cond_optimize
    linkageType: ''
    returnType: void
    signature: void cond_optimize_lists(cond_list_t *cl)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - target
    - bools
    - num_bools
    argTypes:
    - unsigned int
    - unsigned int[]
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 76
    functionName: bool_present
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int bool_present(unsigned int target, unsigned int bools[],\n\t\t\tunsigned
      int num_bools)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bool_present
      Src: /src/selinux/libsepol/src/conditional.c:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - cond_node_t*
    - cond_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 93
    functionName: same_bools
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 0
    functionsReached:
    - bool_present
    linkageType: ''
    returnType: int
    signature: int same_bools(cond_node_t *a, cond_node_t *b)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: same_bools
      Src: /src/selinux/libsepol/src/conditional.c:112,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 27
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - cond_node_t*
    - cond_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 135
    functionName: cond_expr_equal
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 1
    functionsReached:
    - same_bools
    linkageType: ''
    returnType: int
    signature: int cond_expr_equal(cond_node_t *a, cond_node_t *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/conditional.c:147,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/conditional.c:151,1
    - Dst: cond_copy_expr
      Src: /src/selinux/libsepol/src/conditional.c:154,1
    - Dst: free
      Src: /src/selinux/libsepol/src/conditional.c:156,1
    - Dst: cond_evaluate_expr
      Src: /src/selinux/libsepol/src/conditional.c:159,1
    - Dst: min
      Src: /src/selinux/libsepol/src/conditional.c:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - p
    - node
    argTypes:
    - policydb_t*
    - cond_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 168
    functionName: cond_node_create
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 0
    functionsReached:
    - cond_copy_expr
    - cond_evaluate_expr
    - malloc
    - free
    - memset
    - min
    linkageType: ''
    returnType: cond_node_t
    signature: cond_node_t *cond_node_create(policydb_t *p, cond_node_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cond_expr_equal
      Src: /src/selinux/libsepol/src/conditional.c:179,1
    - Dst: cond_node_create
      Src: /src/selinux/libsepol/src/conditional.c:187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - p
    - needle
    - haystack
    - was_created
    argTypes:
    - policydb_t*
    - cond_node_t*
    - cond_node_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: cond_node_find
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 0
    functionsReached:
    - cond_node_create
    - cond_expr_equal
    linkageType: ''
    returnType: cond_node_t
    signature: "cond_node_t *cond_node_find(policydb_t *p, cond_node_t *needle,\n\t\t\t
      \   cond_node_t *haystack, int *was_created)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cond_node_find
      Src: /src/selinux/libsepol/src/conditional.c:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - p
    - list
    - cn
    argTypes:
    - policydb_t*
    - cond_node_t*
    - cond_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 191
    functionDepth: 4
    functionLinenumber: 191
    functionLinenumberEnd: 201
    functionName: cond_node_search
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 0
    functionsReached:
    - cond_node_find
    linkageType: ''
    returnType: cond_node_t
    signature: cond_node_t *cond_node_search(policydb_t *p, cond_node_t *list, cond_node_t
      *cn)
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 2
    argNames:
    - p
    - expr
    argTypes:
    - policydb_t*
    - cond_expr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 265
    functionName: cond_evaluate_expr
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cond_evaluate_expr(policydb_t *p, cond_expr_t *expr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/conditional.c:273,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/conditional.c:276,1
    - Dst: free
      Src: /src/selinux/libsepol/src/conditional.c:293,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - expr
    argTypes:
    - cond_expr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 297
    functionName: cond_copy_expr
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 1
    functionsReached:
    - free
    - malloc
    - memset
    linkageType: ''
    returnType: cond_expr_t
    signature: cond_expr_t *cond_copy_expr(cond_expr_t *expr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cond_evaluate_expr
      Src: /src/selinux/libsepol/src/conditional.c:311,1
    - Dst: WARN
      Src: /src/selinux/libsepol/src/conditional.c:315,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - p
    - node
    argTypes:
    - policydb_t*
    - cond_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 336
    functionName: evaluate_cond_node
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 0
    functionsReached:
    - cond_evaluate_expr
    - WARN
    linkageType: ''
    returnType: int
    signature: int evaluate_cond_node(policydb_t *p, cond_node_t *node)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/conditional.c:353,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/conditional.c:369,1
    - Dst: free
      Src: /src/selinux/libsepol/src/conditional.c:382,1
    - Dst: bool_present
      Src: /src/selinux/libsepol/src/conditional.c:390,1
    - Dst: UINT32_C
      Src: /src/selinux/libsepol/src/conditional.c:414,1
    - Dst: UINT32_C
      Src: /src/selinux/libsepol/src/conditional.c:420,1
    - Dst: cond_evaluate_expr
      Src: /src/selinux/libsepol/src/conditional.c:422,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/conditional.c:424,1
    - Dst: UINT32_C
      Src: /src/selinux/libsepol/src/conditional.c:431,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 2
    argNames:
    - p
    - cn
    argTypes:
    - policydb_t*
    - cond_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 440
    functionName: cond_normalize_expr
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 0
    functionsReached:
    - ERR
    - cond_evaluate_expr
    - bool_present
    - UINT32_C
    - free
    - memset
    linkageType: ''
    returnType: int
    signature: int cond_normalize_expr(policydb_t *p, cond_node_t *cn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: evaluate_cond_node
      Src: /src/selinux/libsepol/src/conditional.c:448,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 453
    functionName: evaluate_conds
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 0
    functionsReached:
    - evaluate_cond_node
    linkageType: ''
    returnType: int
    signature: int evaluate_conds(policydb_t *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avtab_init
      Src: /src/selinux/libsepol/src/conditional.c:459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 463
    functionName: cond_policydb_init
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 1
    functionsReached:
    - avtab_init
    linkageType: ''
    returnType: int
    signature: int cond_policydb_init(policydb_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/conditional.c:471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - list
    argTypes:
    - cond_av_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 473
    functionName: cond_av_list_destroy
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cond_av_list_destroy(cond_av_list_t *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/conditional.c:484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - expr
    argTypes:
    - cond_expr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 486
    functionName: cond_expr_destroy
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cond_expr_destroy(cond_expr_t *expr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cond_expr_destroy
      Src: /src/selinux/libsepol/src/conditional.c:493,1
    - Dst: avrule_list_destroy
      Src: /src/selinux/libsepol/src/conditional.c:494,1
    - Dst: avrule_list_destroy
      Src: /src/selinux/libsepol/src/conditional.c:495,1
    - Dst: cond_av_list_destroy
      Src: /src/selinux/libsepol/src/conditional.c:496,1
    - Dst: cond_av_list_destroy
      Src: /src/selinux/libsepol/src/conditional.c:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - node
    argTypes:
    - cond_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 488
    functionDepth: 4
    functionLinenumber: 488
    functionLinenumberEnd: 498
    functionName: cond_node_destroy
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 1
    functionsReached:
    - avrule_list_destroy
    - cond_av_list_destroy
    - cond_expr_destroy
    linkageType: ''
    returnType: void
    signature: void cond_node_destroy(cond_node_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cond_node_destroy
      Src: /src/selinux/libsepol/src/conditional.c:509,1
    - Dst: free
      Src: /src/selinux/libsepol/src/conditional.c:510,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - list
    argTypes:
    - cond_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 500
    functionDepth: 5
    functionLinenumber: 500
    functionLinenumberEnd: 512
    functionName: cond_list_destroy
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 0
    functionsReached:
    - cond_node_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void cond_list_destroy(cond_list_t *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/conditional.c:517,1
    - Dst: avtab_destroy
      Src: /src/selinux/libsepol/src/conditional.c:518,1
    - Dst: cond_list_destroy
      Src: /src/selinux/libsepol/src/conditional.c:519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 514
    functionDepth: 6
    functionLinenumber: 514
    functionLinenumberEnd: 520
    functionName: cond_policydb_destroy
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 1
    functionsReached:
    - avtab_destroy
    - free
    - cond_list_destroy
    linkageType: ''
    returnType: void
    signature: void cond_policydb_destroy(policydb_t *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/conditional.c:525,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/conditional.c:526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - p
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 531
    functionName: cond_init_bool_indexes
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 2
    functionsReached:
    - free
    - calloc
    linkageType: ''
    returnType: int
    signature: int cond_init_bool_indexes(policydb_t *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/conditional.c:537,1
    - Dst: free
      Src: /src/selinux/libsepol/src/conditional.c:538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 540
    functionName: cond_destroy_bool
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: "int cond_destroy_bool(hashtab_key_t key, hashtab_datum_t datum,\n\t\t
      \     void *p __attribute__((unused)))"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - key
    - datum
    - datap
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 560
    functionName: cond_index_bool
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cond_index_bool(hashtab_key_t key, hashtab_datum_t datum, void
      *datap)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - b
    argTypes:
    - cond_bool_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 567
    functionName: bool_isvalid
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bool_isvalid(cond_bool_datum_t *b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/conditional.c:576,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/conditional.c:579,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/conditional.c:581,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/conditional.c:585,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/conditional.c:586,1
    - Dst: bool_isvalid
      Src: /src/selinux/libsepol/src/conditional.c:588,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/conditional.c:591,1
    - Dst: str_read
      Src: /src/selinux/libsepol/src/conditional.c:592,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/conditional.c:597,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/conditional.c:600,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/conditional.c:603,1
    - Dst: cond_destroy_bool
      Src: /src/selinux/libsepol/src/conditional.c:608,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 3
    argNames:
    - p
    - h
    - fp
    argTypes:
    - policydb_t*
    - hashtab_t
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 569
    functionDepth: 2
    functionLinenumber: 569
    functionLinenumberEnd: 610
    functionName: cond_read_bool
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 0
    functionsReached:
    - bool_isvalid
    - le32_to_cpu
    - malloc
    - hashtab_insert
    - str_read
    - memset
    - cond_destroy_bool
    - next_entry
    linkageType: ''
    returnType: int
    signature: int cond_read_bool(policydb_t *p, hashtab_t h, struct policy_file *fp)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: avtab_search
      Src: /src/selinux/libsepol/src/conditional.c:634,1
    - Dst: WARN
      Src: /src/selinux/libsepol/src/conditional.c:635,1
    - Dst: avtab_search_node
      Src: /src/selinux/libsepol/src/conditional.c:648,1
    - Dst: avtab_search_node_next
      Src: /src/selinux/libsepol/src/conditional.c:650,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/conditional.c:652,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/conditional.c:665,1
    - Dst: avtab_search
      Src: /src/selinux/libsepol/src/conditional.c:671,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/conditional.c:672,1
    - Dst: avtab_insert_nonunique
      Src: /src/selinux/libsepol/src/conditional.c:679,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/conditional.c:681,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/conditional.c:686,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/conditional.c:689,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 4
    argNames:
    - a
    - k
    - d
    - ptr
    argTypes:
    - avtab_t*
    - avtab_key_t*
    - avtab_datum_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 698
    functionName: cond_insertf
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 0
    functionsReached:
    - avtab_search_node
    - ERR
    - avtab_search
    - malloc
    - WARN
    - avtab_search_node_next
    - memset
    - avtab_insert_nonunique
    linkageType: ''
    returnType: int
    signature: "int cond_insertf(avtab_t *a __attribute__((unused)), avtab_key_t *k,\n\t\t\tavtab_datum_t
      *d, void *ptr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/conditional.c:710,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/conditional.c:714,1
    - Dst: avtab_read_item
      Src: /src/selinux/libsepol/src/conditional.c:724,1
    - Dst: cond_av_list_destroy
      Src: /src/selinux/libsepol/src/conditional.c:727,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - p
    - fp
    - ret_list
    - other
    argTypes:
    - policydb_t*
    - void*
    - cond_av_list_t**
    - cond_av_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 734
    functionName: cond_read_av_list
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 0
    functionsReached:
    - le32_to_cpu
    - next_entry
    - cond_av_list_destroy
    - avtab_read_item
    linkageType: ''
    returnType: int
    signature: "int cond_read_av_list(policydb_t *p, void *fp, cond_av_list_t **ret_list,\n\t\t\t
      \    cond_av_list_t *other)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/selinux/libsepol/src/conditional.c:739,1
    - Dst: WARN
      Src: /src/selinux/libsepol/src/conditional.c:745,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - p
    - expr
    argTypes:
    - policydb_t*
    - cond_expr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 750
    functionName: expr_isvalid
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 0
    functionsReached:
    - WARN
    linkageType: ''
    returnType: int
    signature: int expr_isvalid(policydb_t *p, cond_expr_t *expr)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/conditional.c:758,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/conditional.c:762,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/conditional.c:764,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/conditional.c:769,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/conditional.c:772,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/conditional.c:776,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/conditional.c:780,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/conditional.c:782,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/conditional.c:783,1
    - Dst: expr_isvalid
      Src: /src/selinux/libsepol/src/conditional.c:785,1
    - Dst: free
      Src: /src/selinux/libsepol/src/conditional.c:786,1
    - Dst: cond_read_av_list
      Src: /src/selinux/libsepol/src/conditional.c:799,1
    - Dst: cond_read_av_list
      Src: /src/selinux/libsepol/src/conditional.c:801,1
    - Dst: avrule_read_list
      Src: /src/selinux/libsepol/src/conditional.c:805,1
    - Dst: avrule_read_list
      Src: /src/selinux/libsepol/src/conditional.c:807,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/conditional.c:813,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/conditional.c:816,1
    - Dst: cond_node_destroy
      Src: /src/selinux/libsepol/src/conditional.c:821,1
    - Dst: free
      Src: /src/selinux/libsepol/src/conditional.c:822,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 64
    argCount: 3
    argNames:
    - p
    - node
    - fp
    argTypes:
    - policydb_t*
    - cond_node_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 752
    functionDepth: 5
    functionLinenumber: 752
    functionLinenumberEnd: 824
    functionName: cond_read_node
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 0
    functionsReached:
    - cond_node_destroy
    - le32_to_cpu
    - expr_isvalid
    - malloc
    - avrule_read_list
    - free
    - memset
    - cond_read_av_list
    - next_entry
    linkageType: ''
    returnType: int
    signature: int cond_read_node(policydb_t *p, cond_node_t *node, void *fp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/conditional.c:832,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/conditional.c:836,1
    - Dst: avtab_alloc
      Src: /src/selinux/libsepol/src/conditional.c:838,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/conditional.c:843,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/conditional.c:846,1
    - Dst: cond_read_node
      Src: /src/selinux/libsepol/src/conditional.c:848,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - p
    - list
    - fp
    argTypes:
    - policydb_t*
    - cond_list_t**
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 826
    functionDepth: 6
    functionLinenumber: 826
    functionLinenumberEnd: 861
    functionName: cond_read_list
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 2
    functionsReached:
    - cond_read_node
    - le32_to_cpu
    - malloc
    - memset
    - avtab_alloc
    - next_entry
    linkageType: ''
    returnType: int
    signature: int cond_read_list(policydb_t *p, cond_list_t **list, void *fp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: avtab_search_node
      Src: /src/selinux/libsepol/src/conditional.c:874,1
    - Dst: avtab_search_node_next
      Src: /src/selinux/libsepol/src/conditional.c:875,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - ctab
    - key
    - avd
    argTypes:
    - avtab_t*
    - avtab_key_t*
    - struct sepol_av_decision*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 892
    functionName: cond_compute_av
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 3
    functionsReached:
    - avtab_search_node
    - avtab_search_node_next
    linkageType: ''
    returnType: void
    signature: "void cond_compute_av(avtab_t *ctab, avtab_key_t *key,\n\t\t     struct
      sepol_av_decision *avd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - key
    - cond_list
    argTypes:
    - avtab_key_t*
    - cond_av_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 894
    functionDepth: 0
    functionLinenumber: 894
    functionLinenumberEnd: 906
    functionName: cond_av_list_search
    functionSourceFile: /src/selinux/libsepol/src/conditional.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: avtab_datum_t
    signature: avtab_datum_t *cond_av_list_search(avtab_key_t *key, cond_av_list_t
      *cond_list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/port_record.c:32,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/port_record.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - handle
    - low
    - high
    - proto
    - key_ptr
    argTypes:
    - sepol_handle_t*
    - int
    - int
    - int
    - sepol_port_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 46
    functionName: sepol_port_key_create
    functionSourceFile: /src/selinux/libsepol/src/port_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - malloc
    linkageType: ''
    returnType: int
    signature: "int sepol_port_key_create(sepol_handle_t *handle, int low, int high,
      int proto,\n\t\t\t  sepol_port_key_t **key_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - key
    - low
    - high
    - proto
    argTypes:
    - sepol_port_key_t*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: sepol_port_key_unpack
    functionSourceFile: /src/selinux/libsepol/src/port_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void sepol_port_key_unpack(const sepol_port_key_t *key, int *low,
      int *high,\n\t\t\t   int *proto)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_key_create
      Src: /src/selinux/libsepol/src/port_record.c:59,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/port_record.c:61,1
    - Dst: sepol_port_get_proto_str
      Src: /src/selinux/libsepol/src/port_record.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - handle
    - port
    - key_ptr
    argTypes:
    - sepol_handle_t*
    - sepol_port_t*
    - sepol_port_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 69
    functionName: sepol_port_key_extract
    functionSourceFile: /src/selinux/libsepol/src/port_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_port_key_create
    - sepol_port_get_proto_str
    linkageType: ''
    returnType: int
    signature: "int sepol_port_key_extract(sepol_handle_t *handle, const sepol_port_t
      *port,\n\t\t\t   sepol_port_key_t **key_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/port_record.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - sepol_port_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: sepol_port_key_free
    functionSourceFile: /src/selinux/libsepol/src/port_record.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void sepol_port_key_free(sepol_port_key_t *key)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 2
    argNames:
    - port
    - key
    argTypes:
    - sepol_port_t*
    - sepol_port_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 99
    functionName: sepol_port_compare
    functionSourceFile: /src/selinux/libsepol/src/port_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sepol_port_compare(const sepol_port_t *port, const sepol_port_key_t
      *key)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 2
    argNames:
    - port
    - port2
    argTypes:
    - sepol_port_t*
    - sepol_port_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 124
    functionName: sepol_port_compare2
    functionSourceFile: /src/selinux/libsepol/src/port_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sepol_port_compare2(const sepol_port_t *port, const sepol_port_t
      *port2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - sepol_port_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: sepol_port_get_low
    functionSourceFile: /src/selinux/libsepol/src/port_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sepol_port_get_low(const sepol_port_t *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - sepol_port_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    functionName: sepol_port_get_high
    functionSourceFile: /src/selinux/libsepol/src/port_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sepol_port_get_high(const sepol_port_t *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - port
    - port_num
    argTypes:
    - sepol_port_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: sepol_port_set_port
    functionSourceFile: /src/selinux/libsepol/src/port_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sepol_port_set_port(sepol_port_t *port, int port_num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - port
    - low
    - high
    argTypes:
    - sepol_port_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: sepol_port_set_range
    functionSourceFile: /src/selinux/libsepol/src/port_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sepol_port_set_range(sepol_port_t *port, int low, int high)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - sepol_port_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: sepol_port_get_proto
    functionSourceFile: /src/selinux/libsepol/src/port_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sepol_port_get_proto(const sepol_port_t *port)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - proto
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 169
    functionName: sepol_port_get_proto_str
    functionSourceFile: /src/selinux/libsepol/src/port_record.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *sepol_port_get_proto_str(int proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - port
    - proto
    argTypes:
    - sepol_port_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: sepol_port_set_proto
    functionSourceFile: /src/selinux/libsepol/src/port_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sepol_port_set_proto(sepol_port_t *port, int proto)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/port_record.c:179,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/port_record.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - handle
    - port
    argTypes:
    - sepol_handle_t*
    - sepol_port_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 194
    functionName: sepol_port_create
    functionSourceFile: /src/selinux/libsepol/src/port_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - malloc
    linkageType: ''
    returnType: int
    signature: int sepol_port_create(sepol_handle_t *handle, sepol_port_t **port)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_create
      Src: /src/selinux/libsepol/src/port_record.c:201,1
    - Dst: sepol_context_clone
      Src: /src/selinux/libsepol/src/port_record.c:209,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/port_record.c:216,1
    - Dst: sepol_port_free
      Src: /src/selinux/libsepol/src/port_record.c:217,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - handle
    - port
    - port_ptr
    argTypes:
    - sepol_handle_t*
    - sepol_port_t*
    - sepol_port_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 219
    functionName: sepol_port_clone
    functionSourceFile: /src/selinux/libsepol/src/port_record.c
    functionUses: 0
    functionsReached:
    - sepol_port_create
    - ERR
    - sepol_context_clone
    - sepol_port_free
    linkageType: ''
    returnType: int
    signature: "int sepol_port_clone(sepol_handle_t *handle, const sepol_port_t *port,\n\t\t
      \    sepol_port_t **port_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/port_record.c:227,1
    - Dst: free
      Src: /src/selinux/libsepol/src/port_record.c:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - port
    argTypes:
    - sepol_port_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 229
    functionName: sepol_port_free
    functionSourceFile: /src/selinux/libsepol/src/port_record.c
    functionUses: 1
    functionsReached:
    - free
    - sepol_context_free
    linkageType: ''
    returnType: void
    signature: void sepol_port_free(sepol_port_t *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - sepol_port_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: sepol_port_get_con
    functionSourceFile: /src/selinux/libsepol/src/port_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sepol_context_t
    signature: sepol_context_t *sepol_port_get_con(const sepol_port_t *port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_clone
      Src: /src/selinux/libsepol/src/port_record.c:242,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/port_record.c:243,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/port_record.c:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - port
    - con
    argTypes:
    - sepol_handle_t*
    - sepol_port_t*
    - sepol_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 250
    functionName: sepol_port_set_con
    functionSourceFile: /src/selinux/libsepol/src/port_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_context_clone
    - sepol_context_free
    linkageType: ''
    returnType: int
    signature: "int sepol_port_set_con(sepol_handle_t *handle, sepol_port_t *port,\n\t\t
      \      sepol_context_t *con)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/ebitmap.c:23,1
    - Dst: malloc::malloc
      Src: /src/selinux/libsepol/src/ebitmap.c:29,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/ebitmap.c:31,1
    - Dst: next::next
      Src: /src/selinux/libsepol/src/ebitmap.c:52,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - dst
    - e1
    - e2
    argTypes:
    - ebitmap_t*
    - ebitmap_t*
    - ebitmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 57
    functionName: ebitmap_or
    functionSourceFile: /src/selinux/libsepol/src/ebitmap.c
    functionUses: 3
    functionsReached:
    - ebitmap_init
    - next::next
    - ebitmap_destroy
    - malloc::malloc
    linkageType: ''
    returnType: int
    signature: int ebitmap_or(ebitmap_t *dst, const ebitmap_t *e1, const ebitmap_t
      *e2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_or
      Src: /src/selinux/libsepol/src/ebitmap.c:63,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/ebitmap.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - dst
    - e1
    argTypes:
    - ebitmap_t*
    - ebitmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: ebitmap_union
    functionSourceFile: /src/selinux/libsepol/src/ebitmap.c
    functionUses: 1
    functionsReached:
    - ebitmap_or
    - ebitmap_destroy
    linkageType: ''
    returnType: int
    signature: int ebitmap_union(ebitmap_t *dst, const ebitmap_t *e1)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/ebitmap.c:77,1
    - Dst: malloc::malloc
      Src: /src/selinux/libsepol/src/ebitmap.c:85,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/ebitmap.c:87,1
    - Dst: next::next
      Src: /src/selinux/libsepol/src/ebitmap.c:95,1
    - Dst: dst::dst
      Src: /src/selinux/libsepol/src/ebitmap.c:107,1
    - Dst: startbit::startbit
      Src: /src/selinux/libsepol/src/ebitmap.c:108,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - dst
    - e1
    - e2
    argTypes:
    - ebitmap_t*
    - ebitmap_t*
    - ebitmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 111
    functionName: ebitmap_and
    functionSourceFile: /src/selinux/libsepol/src/ebitmap.c
    functionUses: 3
    functionsReached:
    - ebitmap_init
    - dst::dst
    - ebitmap_destroy
    - malloc::malloc
    - startbit::startbit
    - next::next
    linkageType: ''
    returnType: int
    signature: int ebitmap_and(ebitmap_t *dst, const ebitmap_t *e1, const ebitmap_t
      *e2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/ebitmap.c:120,1
    - Dst: malloc::malloc
      Src: /src/selinux/libsepol/src/ebitmap.c:142,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/ebitmap.c:144,1
    - Dst: next::next
      Src: /src/selinux/libsepol/src/ebitmap.c:152,1
    - Dst: dst::dst
      Src: /src/selinux/libsepol/src/ebitmap.c:156,1
    - Dst: startbit::startbit
      Src: /src/selinux/libsepol/src/ebitmap.c:157,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 3
    argNames:
    - dst
    - e1
    - e2
    argTypes:
    - ebitmap_t*
    - ebitmap_t*
    - ebitmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 160
    functionName: ebitmap_xor
    functionSourceFile: /src/selinux/libsepol/src/ebitmap.c
    functionUses: 2
    functionsReached:
    - ebitmap_init
    - dst::dst
    - ebitmap_destroy
    - malloc::malloc
    - startbit::startbit
    - next::next
    linkageType: ''
    returnType: int
    signature: int ebitmap_xor(ebitmap_t *dst, const ebitmap_t *e1, const ebitmap_t
      *e2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/ebitmap.c:169,1
    - Dst: malloc::malloc
      Src: /src/selinux/libsepol/src/ebitmap.c:188,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/ebitmap.c:190,1
    - Dst: next::next
      Src: /src/selinux/libsepol/src/ebitmap.c:199,1
    - Dst: dst::dst
      Src: /src/selinux/libsepol/src/ebitmap.c:203,1
    - Dst: startbit::startbit
      Src: /src/selinux/libsepol/src/ebitmap.c:204,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - dst
    - e1
    - maxbit
    argTypes:
    - ebitmap_t*
    - ebitmap_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 207
    functionName: ebitmap_not
    functionSourceFile: /src/selinux/libsepol/src/ebitmap.c
    functionUses: 2
    functionsReached:
    - ebitmap_init
    - dst::dst
    - ebitmap_destroy
    - malloc::malloc
    - startbit::startbit
    - next::next
    linkageType: ''
    returnType: int
    signature: int ebitmap_not(ebitmap_t *dst, const ebitmap_t *e1, unsigned int maxbit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/ebitmap.c:214,1
    - Dst: ebitmap_not
      Src: /src/selinux/libsepol/src/ebitmap.c:215,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/src/ebitmap.c:218,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/ebitmap.c:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - dst
    - e1
    - e2
    - maxbit
    argTypes:
    - ebitmap_t*
    - ebitmap_t*
    - ebitmap_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 223
    functionName: ebitmap_andnot
    functionSourceFile: /src/selinux/libsepol/src/ebitmap.c
    functionUses: 2
    functionsReached:
    - ebitmap_not
    - ebitmap_init
    - ebitmap_destroy
    - ebitmap_and
    linkageType: ''
    returnType: int
    signature: "int ebitmap_andnot(ebitmap_t *dst, const ebitmap_t *e1, const ebitmap_t
      *e2,\n\t\t   unsigned int maxbit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_popcountll
      Src: /src/selinux/libsepol/src/ebitmap.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - e1
    argTypes:
    - ebitmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 234
    functionName: ebitmap_cardinality
    functionSourceFile: /src/selinux/libsepol/src/ebitmap.c
    functionUses: 5
    functionsReached:
    - __builtin_popcountll
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ebitmap_cardinality(const ebitmap_t *e1)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/src/ebitmap.c:241,1
    - Dst: ebitmap_xor
      Src: /src/selinux/libsepol/src/ebitmap.c:243,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/src/ebitmap.c:246,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/ebitmap.c:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - e1
    - e2
    argTypes:
    - ebitmap_t*
    - ebitmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 249
    functionName: ebitmap_hamming_distance
    functionSourceFile: /src/selinux/libsepol/src/ebitmap.c
    functionUses: 0
    functionsReached:
    - ebitmap_cardinality
    - ebitmap_destroy
    - ebitmap_xor
    - ebitmap_cmp
    linkageType: ''
    returnType: int
    signature: int ebitmap_hamming_distance(const ebitmap_t *e1, const ebitmap_t *e2)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - e1
    - e2
    argTypes:
    - ebitmap_t*
    - ebitmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 270
    functionName: ebitmap_cmp
    functionSourceFile: /src/selinux/libsepol/src/ebitmap.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ebitmap_cmp(const ebitmap_t *e1, const ebitmap_t *e2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/ebitmap.c:277,1
    - Dst: malloc::malloc
      Src: /src/selinux/libsepol/src/ebitmap.c:281,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/ebitmap.c:283,1
    - Dst: next::next
      Src: /src/selinux/libsepol/src/ebitmap.c:291,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - ebitmap_t*
    - ebitmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 298
    functionName: ebitmap_cpy
    functionSourceFile: /src/selinux/libsepol/src/ebitmap.c
    functionUses: 3
    functionsReached:
    - ebitmap_init
    - next::next
    - ebitmap_destroy
    - malloc::malloc
    linkageType: ''
    returnType: int
    signature: int ebitmap_cpy(ebitmap_t *dst, const ebitmap_t *src)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - e1
    - e2
    argTypes:
    - ebitmap_t*
    - ebitmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 325
    functionName: ebitmap_contains
    functionSourceFile: /src/selinux/libsepol/src/ebitmap.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ebitmap_contains(const ebitmap_t *e1, const ebitmap_t *e2)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - e1
    - e2
    argTypes:
    - ebitmap_t*
    - ebitmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 347
    functionName: ebitmap_match_any
    functionSourceFile: /src/selinux/libsepol/src/ebitmap.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ebitmap_match_any(const ebitmap_t *e1, const ebitmap_t *e2)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - e
    - bit
    argTypes:
    - ebitmap_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 368
    functionName: ebitmap_get_bit
    functionSourceFile: /src/selinux/libsepol/src/ebitmap.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ebitmap_get_bit(const ebitmap_t *e, unsigned int bit)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ebitmap.c:377,1
    - Dst: free
      Src: /src/selinux/libsepol/src/ebitmap.c:409,1
    - Dst: malloc::malloc
      Src: /src/selinux/libsepol/src/ebitmap.c:421,1
    - Dst: startbit::startbit
      Src: /src/selinux/libsepol/src/ebitmap.c:426,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 3
    argNames:
    - e
    - bit
    - value
    argTypes:
    - ebitmap_t*
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 442
    functionName: ebitmap_set_bit
    functionSourceFile: /src/selinux/libsepol/src/ebitmap.c
    functionUses: 14
    functionsReached:
    - ERR
    - startbit::startbit
    - free
    - malloc::malloc
    linkageType: ''
    returnType: int
    signature: int ebitmap_set_bit(ebitmap_t *e, unsigned int bit, int value)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/ebitmap.c:454,1
    - Dst: malloc::malloc
      Src: /src/selinux/libsepol/src/ebitmap.c:466,1
    - Dst: next::next
      Src: /src/selinux/libsepol/src/ebitmap.c:487,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - e
    - minbit
    - maxbit
    argTypes:
    - ebitmap_t*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 493
    functionName: ebitmap_init_range
    functionSourceFile: /src/selinux/libsepol/src/ebitmap.c
    functionUses: 1
    functionsReached:
    - ebitmap_init
    - next::next
    - malloc::malloc
    linkageType: ''
    returnType: int
    signature: int ebitmap_init_range(ebitmap_t *e, unsigned int minbit, unsigned
      int maxbit)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - e
    argTypes:
    - ebitmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 513
    functionName: ebitmap_highest_set_bit
    functionSourceFile: /src/selinux/libsepol/src/ebitmap.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ebitmap_highest_set_bit(const ebitmap_t *e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/ebitmap.c:526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - e
    argTypes:
    - ebitmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 532
    functionName: ebitmap_destroy
    functionSourceFile: /src/selinux/libsepol/src/ebitmap.c
    functionUses: 35
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ebitmap_destroy(ebitmap_t *e)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/ebitmap.c:541,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/ebitmap.c:543,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/ebitmap.c:547,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/ebitmap.c:548,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/ebitmap.c:549,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ebitmap.c:552,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ebitmap.c:562,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/ebitmap.c:573,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ebitmap.c:575,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/ebitmap.c:578,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ebitmap.c:580,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/ebitmap.c:584,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/ebitmap.c:586,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ebitmap.c:589,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ebitmap.c:595,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/ebitmap.c:600,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ebitmap.c:602,1
    - Dst: le64_to_cpu
      Src: /src/selinux/libsepol/src/ebitmap.c:605,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ebitmap.c:608,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ebitmap.c:615,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ebitmap.c:627,1
    - Dst: free
      Src: /src/selinux/libsepol/src/ebitmap.c:638,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/ebitmap.c:642,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 98
    argCount: 2
    argNames:
    - e
    - fp
    argTypes:
    - ebitmap_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 644
    functionName: ebitmap_read
    functionSourceFile: /src/selinux/libsepol/src/ebitmap.c
    functionUses: 13
    functionsReached:
    - ebitmap_init
    - ERR
    - ebitmap_destroy
    - le32_to_cpu
    - malloc
    - free
    - memset
    - le64_to_cpu
    - next_entry
    linkageType: ''
    returnType: int
    signature: int ebitmap_read(ebitmap_t *e, void *fp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_get_low
      Src: /src/selinux/libsepol/src/ibpkeys.c:23,1
    - Dst: sepol_ibpkey_get_high
      Src: /src/selinux/libsepol/src/ibpkeys.c:24,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/ibpkeys.c:26,1
    - Dst: sepol_ibpkey_get_subnet_prefix_bytes
      Src: /src/selinux/libsepol/src/ibpkeys.c:31,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibpkeys.c:37,1
    - Dst: context_from_record
      Src: /src/selinux/libsepol/src/ibpkeys.c:44,1
    - Dst: sepol_ibpkey_get_con
      Src: /src/selinux/libsepol/src/ibpkeys.c:45,1
    - Dst: context_cpy
      Src: /src/selinux/libsepol/src/ibpkeys.c:47,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/ibpkeys.c:48,1
    - Dst: free
      Src: /src/selinux/libsepol/src/ibpkeys.c:49,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibpkeys.c:56,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/ibpkeys.c:60,1
    - Dst: free
      Src: /src/selinux/libsepol/src/ibpkeys.c:61,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/ibpkeys.c:63,1
    - Dst: free
      Src: /src/selinux/libsepol/src/ibpkeys.c:64,1
    - Dst: free
      Src: /src/selinux/libsepol/src/ibpkeys.c:65,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibpkeys.c:66,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 4
    argNames:
    - handle
    - policydb
    - ibpkey
    - data
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - ocontext_t**
    - sepol_ibpkey_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 68
    functionName: ibpkey_from_record
    functionSourceFile: /src/selinux/libsepol/src/ibpkeys.c
    functionUses: 0
    functionsReached:
    - ERR
    - context_cpy
    - context_destroy
    - sepol_ibpkey_get_con
    - context_from_record
    - sepol_ibpkey_get_low
    - free
    - calloc
    - sepol_ibpkey_get_subnet_prefix_bytes
    - sepol_ibpkey_get_high
    linkageType: ''
    returnType: int
    signature: "int ibpkey_from_record(sepol_handle_t *handle,\n\t\t\t      const
      policydb_t *policydb, ocontext_t **ibpkey,\n\t\t\t      const sepol_ibpkey_t
      *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_create
      Src: /src/selinux/libsepol/src/ibpkeys.c:77,1
    - Dst: sepol_ibpkey_set_subnet_prefix_bytes
      Src: /src/selinux/libsepol/src/ibpkeys.c:80,1
    - Dst: sepol_ibpkey_set_range
      Src: /src/selinux/libsepol/src/ibpkeys.c:83,1
    - Dst: context_to_record
      Src: /src/selinux/libsepol/src/ibpkeys.c:86,1
    - Dst: sepol_ibpkey_set_con
      Src: /src/selinux/libsepol/src/ibpkeys.c:89,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/ibpkeys.c:92,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibpkeys.c:97,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/ibpkeys.c:98,1
    - Dst: sepol_ibpkey_free
      Src: /src/selinux/libsepol/src/ibpkeys.c:99,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - handle
    - policydb
    - ibpkey
    - record
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - ocontext_t*
    - sepol_ibpkey_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 101
    functionName: ibpkey_to_record
    functionSourceFile: /src/selinux/libsepol/src/ibpkeys.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_ibpkey_set_range
    - sepol_ibpkey_set_subnet_prefix_bytes
    - sepol_context_free
    - sepol_ibpkey_set_con
    - context_to_record
    - sepol_ibpkey_free
    - sepol_ibpkey_create
    linkageType: ''
    returnType: int
    signature: "int ibpkey_to_record(sepol_handle_t *handle, const policydb_t *policydb,\n\t\t\t
      \   ocontext_t *ibpkey, sepol_ibpkey_t **record)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - handle
    - p
    - response
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 118
    functionName: sepol_ibpkey_count
    functionSourceFile: /src/selinux/libsepol/src/ibpkeys.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sepol_ibpkey_count(sepol_handle_t *handle __attribute__((unused)),\n\t\t\t
      \     const sepol_policydb_t *p, unsigned int *response)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_key_unpack
      Src: /src/selinux/libsepol/src/ibpkeys.c:130,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - handle
    - p
    - key
    - response
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - sepol_ibpkey_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 147
    functionName: sepol_ibpkey_exists
    functionSourceFile: /src/selinux/libsepol/src/ibpkeys.c
    functionUses: 0
    functionsReached:
    - sepol_ibpkey_key_unpack
    linkageType: ''
    returnType: int
    signature: "int sepol_ibpkey_exists(sepol_handle_t *handle __attribute__((unused)),\n\t\t\tconst
      sepol_policydb_t *p,\n\t\t\tconst sepol_ibpkey_key_t *key, int *response)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_key_unpack
      Src: /src/selinux/libsepol/src/ibpkeys.c:158,1
    - Dst: ibpkey_to_record
      Src: /src/selinux/libsepol/src/ibpkeys.c:168,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibpkeys.c:178,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - handle
    - p
    - key
    - response
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - sepol_ibpkey_key_t*
    - sepol_ibpkey_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 183
    functionName: sepol_ibpkey_query
    functionSourceFile: /src/selinux/libsepol/src/ibpkeys.c
    functionUses: 0
    functionsReached:
    - ERR
    - ibpkey_to_record
    - sepol_ibpkey_key_unpack
    linkageType: ''
    returnType: int
    signature: "int sepol_ibpkey_query(sepol_handle_t *handle, const sepol_policydb_t
      *p,\n\t\t       const sepol_ibpkey_key_t *key, sepol_ibpkey_t **response)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_key_unpack
      Src: /src/selinux/libsepol/src/ibpkeys.c:195,1
    - Dst: ibpkey_from_record
      Src: /src/selinux/libsepol/src/ibpkeys.c:197,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibpkeys.c:207,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/ibpkeys.c:212,1
    - Dst: free
      Src: /src/selinux/libsepol/src/ibpkeys.c:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - handle
    - p
    - key
    - data
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - sepol_ibpkey_key_t*
    - sepol_ibpkey_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 216
    functionName: sepol_ibpkey_modify
    functionSourceFile: /src/selinux/libsepol/src/ibpkeys.c
    functionUses: 0
    functionsReached:
    - ERR
    - context_destroy
    - sepol_ibpkey_key_unpack
    - free
    - ibpkey_from_record
    linkageType: ''
    returnType: int
    signature: "int sepol_ibpkey_modify(sepol_handle_t *handle, sepol_policydb_t *p,\n\t\t\tconst
      sepol_ibpkey_key_t *key,\n\t\t\tconst sepol_ibpkey_t *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ibpkey_to_record
      Src: /src/selinux/libsepol/src/ibpkeys.c:230,1
    - Dst: fn
      Src: /src/selinux/libsepol/src/ibpkeys.c:234,1
    - Dst: sepol_ibpkey_free
      Src: /src/selinux/libsepol/src/ibpkeys.c:238,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibpkeys.c:249,1
    - Dst: sepol_ibpkey_free
      Src: /src/selinux/libsepol/src/ibpkeys.c:250,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - handle
    - p
    - arg
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 252
    functionName: sepol_ibpkey_iterate
    functionSourceFile: /src/selinux/libsepol/src/ibpkeys.c
    functionUses: 0
    functionsReached:
    - ERR
    - fn
    - sepol_ibpkey_free
    - ibpkey_to_record
    linkageType: ''
    returnType: int
    signature: "int sepol_ibpkey_iterate(sepol_handle_t *handle, const sepol_policydb_t
      *p,\n\t\t\t int (*fn)(const sepol_ibpkey_t *ibpkey, void *fn_arg),\n\t\t\t void
      *arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/selinux/libsepol/src/polcaps.c:33,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 37
    functionName: sepol_polcap_getnum
    functionSourceFile: /src/selinux/libsepol/src/polcaps.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: int sepol_polcap_getnum(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - capnum
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: sepol_polcap_getname
    functionSourceFile: /src/selinux/libsepol/src/polcaps.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *sepol_polcap_getname(unsigned int capnum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/ibendport_record.c:34,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibendport_record.c:42,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibendport_record.c:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - handle
    - ibdev_name
    argTypes:
    - sepol_handle_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 45
    functionName: sepol_ibendport_alloc_ibdev_name
    functionSourceFile: /src/selinux/libsepol/src/ibendport_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - calloc
    linkageType: ''
    returnType: int
    signature: int sepol_ibendport_alloc_ibdev_name(sepol_handle_t *handle, char **ibdev_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/ibendport_record.c:52,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibendport_record.c:55,1
    - Dst: sepol_ibendport_alloc_ibdev_name
      Src: /src/selinux/libsepol/src/ibendport_record.c:59,1
    - Dst: strncpy
      Src: /src/selinux/libsepol/src/ibendport_record.c:62,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibendport_record.c:69,1
    - Dst: sepol_ibendport_key_free
      Src: /src/selinux/libsepol/src/ibendport_record.c:72,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibendport_record.c:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - handle
    - ibdev_name
    - port
    - key_ptr
    argTypes:
    - sepol_handle_t*
    - char*
    - int
    - sepol_ibendport_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 76
    functionName: sepol_ibendport_key_create
    functionSourceFile: /src/selinux/libsepol/src/ibendport_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_ibendport_key_free
    - malloc
    - sepol_ibendport_alloc_ibdev_name
    - strncpy
    linkageType: ''
    returnType: int
    signature: "int sepol_ibendport_key_create(sepol_handle_t *handle, const char
      *ibdev_name,\n\t\t\t       int port, sepol_ibendport_key_t **key_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - ibdev_name
    - port
    argTypes:
    - sepol_ibendport_key_t*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: sepol_ibendport_key_unpack
    functionSourceFile: /src/selinux/libsepol/src/ibendport_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void sepol_ibendport_key_unpack(const sepol_ibendport_key_t *key,\n\t\t\t\tconst
      char **ibdev_name, int *port)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibendport_key_create
      Src: /src/selinux/libsepol/src/ibendport_record.c:89,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibendport_record.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - handle
    - ibendport
    - key_ptr
    argTypes:
    - sepol_handle_t*
    - sepol_ibendport_t*
    - sepol_ibendport_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 99
    functionName: sepol_ibendport_key_extract
    functionSourceFile: /src/selinux/libsepol/src/ibendport_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_ibendport_key_create
    linkageType: ''
    returnType: int
    signature: "int sepol_ibendport_key_extract(sepol_handle_t *handle,\n\t\t\t\tconst
      sepol_ibendport_t *ibendport,\n\t\t\t\tsepol_ibendport_key_t **key_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/ibendport_record.c:105,1
    - Dst: free
      Src: /src/selinux/libsepol/src/ibendport_record.c:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - sepol_ibendport_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: sepol_ibendport_key_free
    functionSourceFile: /src/selinux/libsepol/src/ibendport_record.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void sepol_ibendport_key_free(sepol_ibendport_key_t *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/ibendport_record.c:114,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ibendport
    - key
    argTypes:
    - sepol_ibendport_t*
    - sepol_ibendport_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 125
    functionName: sepol_ibendport_compare
    functionSourceFile: /src/selinux/libsepol/src/ibendport_record.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int sepol_ibendport_compare(const sepol_ibendport_t *ibendport,\n\t\t\t
      \   const sepol_ibendport_key_t *key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/ibendport_record.c:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ibendport
    - ibendport2
    argTypes:
    - sepol_ibendport_t*
    - sepol_ibendport_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 143
    functionName: sepol_ibendport_compare2
    functionSourceFile: /src/selinux/libsepol/src/ibendport_record.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int sepol_ibendport_compare2(const sepol_ibendport_t *ibendport,\n\t\t\t
      \    const sepol_ibendport_t *ibendport2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ibendport
    argTypes:
    - sepol_ibendport_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: sepol_ibendport_get_port
    functionSourceFile: /src/selinux/libsepol/src/ibendport_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sepol_ibendport_get_port(const sepol_ibendport_t *ibendport)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ibendport
    - port
    argTypes:
    - sepol_ibendport_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: sepol_ibendport_set_port
    functionSourceFile: /src/selinux/libsepol/src/ibendport_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sepol_ibendport_set_port(sepol_ibendport_t *ibendport, int port)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibendport_alloc_ibdev_name
      Src: /src/selinux/libsepol/src/ibendport_record.c:161,1
    - Dst: strncpy
      Src: /src/selinux/libsepol/src/ibendport_record.c:164,1
    - Dst: free
      Src: /src/selinux/libsepol/src/ibendport_record.c:169,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibendport_record.c:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - handle
    - ibendport
    - ibdev_name
    argTypes:
    - sepol_handle_t*
    - sepol_ibendport_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 172
    functionName: sepol_ibendport_get_ibdev_name
    functionSourceFile: /src/selinux/libsepol/src/ibendport_record.c
    functionUses: 0
    functionsReached:
    - free
    - sepol_ibendport_alloc_ibdev_name
    - ERR
    - strncpy
    linkageType: ''
    returnType: int
    signature: "int sepol_ibendport_get_ibdev_name(sepol_handle_t *handle,\n\t\t\t\t
      \  const sepol_ibendport_t *ibendport,\n\t\t\t\t   char **ibdev_name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibendport_alloc_ibdev_name
      Src: /src/selinux/libsepol/src/ibendport_record.c:180,1
    - Dst: strncpy
      Src: /src/selinux/libsepol/src/ibendport_record.c:183,1
    - Dst: free
      Src: /src/selinux/libsepol/src/ibendport_record.c:184,1
    - Dst: free
      Src: /src/selinux/libsepol/src/ibendport_record.c:189,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibendport_record.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - handle
    - ibendport
    - ibdev_name
    argTypes:
    - sepol_handle_t*
    - sepol_ibendport_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 192
    functionName: sepol_ibendport_set_ibdev_name
    functionSourceFile: /src/selinux/libsepol/src/ibendport_record.c
    functionUses: 0
    functionsReached:
    - free
    - sepol_ibendport_alloc_ibdev_name
    - ERR
    - strncpy
    linkageType: ''
    returnType: int
    signature: "int sepol_ibendport_set_ibdev_name(sepol_handle_t *handle,\n\t\t\t\t
      \  sepol_ibendport_t *ibendport,\n\t\t\t\t   const char *ibdev_name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/ibendport_record.c:199,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibendport_record.c:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - handle
    - ibendport
    argTypes:
    - sepol_handle_t*
    - sepol_ibendport_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 212
    functionName: sepol_ibendport_create
    functionSourceFile: /src/selinux/libsepol/src/ibendport_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - malloc
    linkageType: ''
    returnType: int
    signature: "int sepol_ibendport_create(sepol_handle_t *handle,\n\t\t\t   sepol_ibendport_t
      **ibendport)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibendport_create
      Src: /src/selinux/libsepol/src/ibendport_record.c:221,1
    - Dst: sepol_ibendport_alloc_ibdev_name
      Src: /src/selinux/libsepol/src/ibendport_record.c:224,1
    - Dst: strncpy
      Src: /src/selinux/libsepol/src/ibendport_record.c:228,1
    - Dst: sepol_context_clone
      Src: /src/selinux/libsepol/src/ibendport_record.c:232,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibendport_record.c:240,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibendport_record.c:243,1
    - Dst: sepol_ibendport_free
      Src: /src/selinux/libsepol/src/ibendport_record.c:244,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - handle
    - ibendport
    - ibendport_ptr
    argTypes:
    - sepol_handle_t*
    - sepol_ibendport_t*
    - sepol_ibendport_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 246
    functionName: sepol_ibendport_clone
    functionSourceFile: /src/selinux/libsepol/src/ibendport_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_context_clone
    - sepol_ibendport_free
    - sepol_ibendport_alloc_ibdev_name
    - strncpy
    - sepol_ibendport_create
    linkageType: ''
    returnType: int
    signature: "int sepol_ibendport_clone(sepol_handle_t *handle,\n\t\t\t  const sepol_ibendport_t
      *ibendport,\n\t\t\t  sepol_ibendport_t **ibendport_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/ibendport_record.c:254,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/ibendport_record.c:255,1
    - Dst: free
      Src: /src/selinux/libsepol/src/ibendport_record.c:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ibendport
    argTypes:
    - sepol_ibendport_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 257
    functionName: sepol_ibendport_free
    functionSourceFile: /src/selinux/libsepol/src/ibendport_record.c
    functionUses: 1
    functionsReached:
    - free
    - sepol_context_free
    linkageType: ''
    returnType: void
    signature: void sepol_ibendport_free(sepol_ibendport_t *ibendport)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ibendport
    argTypes:
    - sepol_ibendport_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: sepol_ibendport_get_con
    functionSourceFile: /src/selinux/libsepol/src/ibendport_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sepol_context_t
    signature: sepol_context_t *sepol_ibendport_get_con(const sepol_ibendport_t *ibendport)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_clone
      Src: /src/selinux/libsepol/src/ibendport_record.c:270,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibendport_record.c:271,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/ibendport_record.c:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - ibendport
    - con
    argTypes:
    - sepol_handle_t*
    - sepol_ibendport_t*
    - sepol_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 278
    functionName: sepol_ibendport_set_con
    functionSourceFile: /src/selinux/libsepol/src/ibendport_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_context_clone
    - sepol_context_free
    linkageType: ''
    returnType: int
    signature: "int sepol_ibendport_set_con(sepol_handle_t *handle,\n\t\t\t    sepol_ibendport_t
      *ibendport, sepol_context_t *con)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - 'on'
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: sepol_debug
    functionSourceFile: /src/selinux/libsepol/src/debug.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sepol_debug(int on)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - sepol_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: sepol_msg_get_level
    functionSourceFile: /src/selinux/libsepol/src/debug.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sepol_msg_get_level(sepol_handle_t *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - sepol_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: sepol_msg_get_channel
    functionSourceFile: /src/selinux/libsepol/src/debug.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *sepol_msg_get_channel(sepol_handle_t *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - sepol_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: sepol_msg_get_fname
    functionSourceFile: /src/selinux/libsepol/src/debug.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *sepol_msg_get_fname(sepol_handle_t *handle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/selinux/libsepol/src/debug.c:37,1
    - Dst: sepol_msg_get_level
      Src: /src/selinux/libsepol/src/debug.c:45,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/src/debug.c:56,1
    - Dst: sepol_msg_get_channel
      Src: /src/selinux/libsepol/src/debug.c:56,1
    - Dst: sepol_msg_get_fname
      Src: /src/selinux/libsepol/src/debug.c:57,1
    - Dst: va_start
      Src: /src/selinux/libsepol/src/debug.c:59,1
    - Dst: vfprintf
      Src: /src/selinux/libsepol/src/debug.c:60,1
    - Dst: va_end
      Src: /src/selinux/libsepol/src/debug.c:61,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/src/debug.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - varg
    - handle
    - fmt
    argTypes:
    - void*
    - sepol_handle_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 64
    functionName: sepol_msg_default_handler
    functionSourceFile: /src/selinux/libsepol/src/debug.c
    functionUses: 0
    functionsReached:
    - va_end
    - sepol_msg_get_level
    - format
    - vfprintf
    - sepol_msg_get_fname
    - va_start
    - fprintf
    - sepol_msg_get_channel
    linkageType: ''
    returnType: void
    signature: "void sepol_msg_default_handler(void *varg __attribute__((unused)),\n\t\t\t
      \      sepol_handle_t *handle, const char *fmt, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/selinux/libsepol/src/debug.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - handle
    - msg_callback_arg
    argTypes:
    - sepol_handle_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 77
    functionName: sepol_msg_set_callback
    functionSourceFile: /src/selinux/libsepol/src/debug.c
    functionUses: 7
    functionsReached:
    - format
    linkageType: ''
    returnType: void
    signature: "void sepol_msg_set_callback(sepol_handle_t *handle,\n#ifdef __GNUC__\n\t\t\t\t
      \  __attribute__((format(printf, 3, 4)))\n#endif\n\t\t\t\t   void (*msg_callback)(void
      *varg,\n\t\t\t\t\t\t\tsepol_handle_t *handle,\n\t\t\t\t\t\t\tconst char *fmt,
      ...),\n\t\t\t\t   void *msg_callback_arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ports.c:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - handle
    - proto
    argTypes:
    - sepol_handle_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 32
    functionName: sepol2ipproto
    functionSourceFile: /src/selinux/libsepol/src/ports.c
    functionUses: 0
    functionsReached:
    - ERR
    linkageType: ''
    returnType: int
    signature: int sepol2ipproto(sepol_handle_t *handle, int proto)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ports.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - handle
    - proto
    argTypes:
    - sepol_handle_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 52
    functionName: ipproto2sepol
    functionSourceFile: /src/selinux/libsepol/src/ports.c
    functionUses: 0
    functionsReached:
    - ERR
    linkageType: ''
    returnType: int
    signature: int ipproto2sepol(sepol_handle_t *handle, int proto)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_get_low
      Src: /src/selinux/libsepol/src/ports.c:63,1
    - Dst: sepol_port_get_high
      Src: /src/selinux/libsepol/src/ports.c:64,1
    - Dst: sepol_port_get_proto
      Src: /src/selinux/libsepol/src/ports.c:65,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/ports.c:67,1
    - Dst: sepol2ipproto
      Src: /src/selinux/libsepol/src/ports.c:72,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ports.c:81,1
    - Dst: context_from_record
      Src: /src/selinux/libsepol/src/ports.c:87,1
    - Dst: sepol_port_get_con
      Src: /src/selinux/libsepol/src/ports.c:88,1
    - Dst: context_cpy
      Src: /src/selinux/libsepol/src/ports.c:90,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/ports.c:91,1
    - Dst: free
      Src: /src/selinux/libsepol/src/ports.c:92,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ports.c:99,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/ports.c:103,1
    - Dst: free
      Src: /src/selinux/libsepol/src/ports.c:104,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/ports.c:106,1
    - Dst: free
      Src: /src/selinux/libsepol/src/ports.c:107,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ports.c:108,1
    - Dst: sepol_port_get_proto_str
      Src: /src/selinux/libsepol/src/ports.c:109,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 4
    argNames:
    - handle
    - policydb
    - port
    - data
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - ocontext_t**
    - sepol_port_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 111
    functionName: port_from_record
    functionSourceFile: /src/selinux/libsepol/src/ports.c
    functionUses: 0
    functionsReached:
    - sepol_port_get_high
    - ERR
    - context_cpy
    - context_destroy
    - sepol2ipproto
    - sepol_port_get_proto
    - sepol_port_get_proto_str
    - context_from_record
    - free
    - calloc
    - sepol_port_get_low
    - sepol_port_get_con
    linkageType: ''
    returnType: int
    signature: "int port_from_record(sepol_handle_t *handle, const policydb_t *policydb,\n\t\t\t
      \   ocontext_t **port, const sepol_port_t *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_create
      Src: /src/selinux/libsepol/src/ports.c:125,1
    - Dst: ipproto2sepol
      Src: /src/selinux/libsepol/src/ports.c:128,1
    - Dst: sepol_port_set_proto
      Src: /src/selinux/libsepol/src/ports.c:132,1
    - Dst: sepol_port_set_range
      Src: /src/selinux/libsepol/src/ports.c:133,1
    - Dst: context_to_record
      Src: /src/selinux/libsepol/src/ports.c:135,1
    - Dst: sepol_port_set_con
      Src: /src/selinux/libsepol/src/ports.c:138,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/ports.c:141,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ports.c:146,1
    - Dst: sepol_port_get_proto_str
      Src: /src/selinux/libsepol/src/ports.c:149,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/ports.c:150,1
    - Dst: sepol_port_free
      Src: /src/selinux/libsepol/src/ports.c:151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - handle
    - policydb
    - port
    - record
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - ocontext_t*
    - sepol_port_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 153
    functionName: port_to_record
    functionSourceFile: /src/selinux/libsepol/src/ports.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_context_free
    - sepol_port_set_range
    - sepol_port_create
    - context_to_record
    - sepol_port_set_con
    - sepol_port_get_proto_str
    - sepol_port_free
    - ipproto2sepol
    - sepol_port_set_proto
    linkageType: ''
    returnType: int
    signature: "int port_to_record(sepol_handle_t *handle, const policydb_t *policydb,\n\t\t\t
      \ ocontext_t *port, sepol_port_t **record)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - handle
    - p
    - response
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 170
    functionName: sepol_port_count
    functionSourceFile: /src/selinux/libsepol/src/ports.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sepol_port_count(sepol_handle_t *handle __attribute__((unused)),\n\t\t\t
      \   const sepol_policydb_t *p, unsigned int *response)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_key_unpack
      Src: /src/selinux/libsepol/src/ports.c:181,1
    - Dst: sepol_port_get_proto_str
      Src: /src/selinux/libsepol/src/ports.c:182,1
    - Dst: sepol2ipproto
      Src: /src/selinux/libsepol/src/ports.c:183,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ports.c:203,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - handle
    - p
    - key
    - response
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - sepol_port_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 206
    functionName: sepol_port_exists
    functionSourceFile: /src/selinux/libsepol/src/ports.c
    functionUses: 0
    functionsReached:
    - sepol_port_key_unpack
    - ERR
    - sepol_port_get_proto_str
    - sepol2ipproto
    linkageType: ''
    returnType: int
    signature: "int sepol_port_exists(sepol_handle_t *handle, const sepol_policydb_t
      *p,\n\t\t      const sepol_port_key_t *key, int *response)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_key_unpack
      Src: /src/selinux/libsepol/src/ports.c:217,1
    - Dst: sepol_port_get_proto_str
      Src: /src/selinux/libsepol/src/ports.c:218,1
    - Dst: sepol2ipproto
      Src: /src/selinux/libsepol/src/ports.c:219,1
    - Dst: port_to_record
      Src: /src/selinux/libsepol/src/ports.c:230,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ports.c:240,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - handle
    - p
    - key
    - response
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - sepol_port_key_t*
    - sepol_port_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 243
    functionName: sepol_port_query
    functionSourceFile: /src/selinux/libsepol/src/ports.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol2ipproto
    - sepol_port_get_proto_str
    - port_to_record
    - sepol_port_key_unpack
    linkageType: ''
    returnType: int
    signature: "int sepol_port_query(sepol_handle_t *handle, const sepol_policydb_t
      *p,\n\t\t     const sepol_port_key_t *key, sepol_port_t **response)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_key_unpack
      Src: /src/selinux/libsepol/src/ports.c:255,1
    - Dst: sepol_port_get_proto_str
      Src: /src/selinux/libsepol/src/ports.c:256,1
    - Dst: sepol2ipproto
      Src: /src/selinux/libsepol/src/ports.c:257,1
    - Dst: port_from_record
      Src: /src/selinux/libsepol/src/ports.c:261,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ports.c:271,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/ports.c:274,1
    - Dst: free
      Src: /src/selinux/libsepol/src/ports.c:275,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - handle
    - p
    - key
    - data
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - sepol_port_key_t*
    - sepol_port_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 278
    functionName: sepol_port_modify
    functionSourceFile: /src/selinux/libsepol/src/ports.c
    functionUses: 0
    functionsReached:
    - port_from_record
    - ERR
    - context_destroy
    - sepol2ipproto
    - sepol_port_get_proto_str
    - free
    - sepol_port_key_unpack
    linkageType: ''
    returnType: int
    signature: "int sepol_port_modify(sepol_handle_t *handle, sepol_policydb_t *p,\n\t\t
      \     const sepol_port_key_t *key, const sepol_port_t *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: port_to_record
      Src: /src/selinux/libsepol/src/ports.c:292,1
    - Dst: fn
      Src: /src/selinux/libsepol/src/ports.c:296,1
    - Dst: sepol_port_free
      Src: /src/selinux/libsepol/src/ports.c:300,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ports.c:311,1
    - Dst: sepol_port_free
      Src: /src/selinux/libsepol/src/ports.c:312,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - handle
    - p
    - arg
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 314
    functionName: sepol_port_iterate
    functionSourceFile: /src/selinux/libsepol/src/ports.c
    functionUses: 0
    functionsReached:
    - ERR
    - fn
    - port_to_record
    - sepol_port_free
    linkageType: ''
    returnType: int
    signature: "int sepol_port_iterate(sepol_handle_t *handle, const sepol_policydb_t
      *p,\n\t\t       int (*fn)(const sepol_port_t *port, void *fn_arg),\n\t\t       void
      *arg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibendport_get_port
      Src: /src/selinux/libsepol/src/ibendports.c:22,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/ibendports.c:24,1
    - Dst: sepol_ibendport_alloc_ibdev_name
      Src: /src/selinux/libsepol/src/ibendports.c:28,1
    - Dst: sepol_ibendport_get_ibdev_name
      Src: /src/selinux/libsepol/src/ibendports.c:32,1
    - Dst: strncpy
      Src: /src/selinux/libsepol/src/ibendports.c:35,1
    - Dst: free
      Src: /src/selinux/libsepol/src/ibendports.c:38,1
    - Dst: context_from_record
      Src: /src/selinux/libsepol/src/ibendports.c:44,1
    - Dst: sepol_ibendport_get_con
      Src: /src/selinux/libsepol/src/ibendports.c:45,1
    - Dst: context_cpy
      Src: /src/selinux/libsepol/src/ibendports.c:47,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/ibendports.c:48,1
    - Dst: free
      Src: /src/selinux/libsepol/src/ibendports.c:49,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibendports.c:56,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/ibendports.c:60,1
    - Dst: free
      Src: /src/selinux/libsepol/src/ibendports.c:61,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/ibendports.c:63,1
    - Dst: free
      Src: /src/selinux/libsepol/src/ibendports.c:64,1
    - Dst: free
      Src: /src/selinux/libsepol/src/ibendports.c:65,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibendports.c:66,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 4
    argNames:
    - handle
    - policydb
    - ibendport
    - data
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - ocontext_t**
    - sepol_ibendport_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 14
    functionDepth: 2
    functionLinenumber: 14
    functionLinenumberEnd: 68
    functionName: ibendport_from_record
    functionSourceFile: /src/selinux/libsepol/src/ibendports.c
    functionUses: 0
    functionsReached:
    - ERR
    - context_destroy
    - sepol_ibendport_get_port
    - context_from_record
    - sepol_ibendport_alloc_ibdev_name
    - strncpy
    - calloc
    - free
    - sepol_ibendport_get_con
    - sepol_ibendport_get_ibdev_name
    - context_cpy
    linkageType: ''
    returnType: int
    signature: "int ibendport_from_record(sepol_handle_t *handle,\n\t\t\t\t const
      policydb_t *policydb,\n\t\t\t\t ocontext_t **ibendport,\n\t\t\t\t const sepol_ibendport_t
      *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibendport_create
      Src: /src/selinux/libsepol/src/ibendports.c:81,1
    - Dst: sepol_ibendport_set_ibdev_name
      Src: /src/selinux/libsepol/src/ibendports.c:84,1
    - Dst: sepol_ibendport_set_port
      Src: /src/selinux/libsepol/src/ibendports.c:88,1
    - Dst: context_to_record
      Src: /src/selinux/libsepol/src/ibendports.c:90,1
    - Dst: sepol_ibendport_set_con
      Src: /src/selinux/libsepol/src/ibendports.c:93,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/ibendports.c:96,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibendports.c:101,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/ibendports.c:102,1
    - Dst: sepol_ibendport_free
      Src: /src/selinux/libsepol/src/ibendports.c:103,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - handle
    - policydb
    - ibendport
    - record
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - ocontext_t*
    - sepol_ibendport_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 105
    functionName: ibendport_to_record
    functionSourceFile: /src/selinux/libsepol/src/ibendports.c
    functionUses: 0
    functionsReached:
    - sepol_ibendport_set_con
    - ERR
    - sepol_ibendport_set_port
    - sepol_context_free
    - context_to_record
    - sepol_ibendport_free
    - sepol_ibendport_create
    - sepol_ibendport_set_ibdev_name
    linkageType: ''
    returnType: int
    signature: "int ibendport_to_record(sepol_handle_t *handle,\n\t\t\t       const
      policydb_t *policydb,\n\t\t\t       ocontext_t *ibendport,\n\t\t\t       sepol_ibendport_t
      **record)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - handle
    - p
    - response
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 123
    functionName: sepol_ibendport_count
    functionSourceFile: /src/selinux/libsepol/src/ibendports.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sepol_ibendport_count(sepol_handle_t *handle __attribute__((unused)),\n\t\t\t\t
      const sepol_policydb_t *p,\n\t\t\t\t unsigned int *response)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibendport_key_unpack
      Src: /src/selinux/libsepol/src/ibendports.c:135,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/ibendports.c:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - handle
    - p
    - key
    - response
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - sepol_ibendport_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 150
    functionName: sepol_ibendport_exists
    functionSourceFile: /src/selinux/libsepol/src/ibendports.c
    functionUses: 0
    functionsReached:
    - sepol_ibendport_key_unpack
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int sepol_ibendport_exists(sepol_handle_t *handle __attribute__((unused)),\n\t\t\t
      \  const sepol_policydb_t *p,\n\t\t\t   const sepol_ibendport_key_t *key, int
      *response)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibendport_key_unpack
      Src: /src/selinux/libsepol/src/ibendports.c:161,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/ibendports.c:168,1
    - Dst: ibendport_to_record
      Src: /src/selinux/libsepol/src/ibendports.c:169,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibendports.c:180,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - handle
    - p
    - key
    - response
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - sepol_ibendport_key_t*
    - sepol_ibendport_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 183
    functionName: sepol_ibendport_query
    functionSourceFile: /src/selinux/libsepol/src/ibendports.c
    functionUses: 0
    functionsReached:
    - ibendport_to_record
    - sepol_ibendport_key_unpack
    - ERR
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int sepol_ibendport_query(sepol_handle_t *handle, const sepol_policydb_t
      *p,\n\t\t\t  const sepol_ibendport_key_t *key,\n\t\t\t  sepol_ibendport_t **response)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibendport_key_unpack
      Src: /src/selinux/libsepol/src/ibendports.c:195,1
    - Dst: ibendport_from_record
      Src: /src/selinux/libsepol/src/ibendports.c:197,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibendports.c:207,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/ibendports.c:209,1
    - Dst: free
      Src: /src/selinux/libsepol/src/ibendports.c:210,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - handle
    - p
    - key
    - data
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - sepol_ibendport_key_t*
    - sepol_ibendport_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 213
    functionName: sepol_ibendport_modify
    functionSourceFile: /src/selinux/libsepol/src/ibendports.c
    functionUses: 0
    functionsReached:
    - ERR
    - context_destroy
    - sepol_ibendport_key_unpack
    - ibendport_from_record
    - free
    linkageType: ''
    returnType: int
    signature: "int sepol_ibendport_modify(sepol_handle_t *handle, sepol_policydb_t
      *p,\n\t\t\t   const sepol_ibendport_key_t *key,\n\t\t\t   const sepol_ibendport_t
      *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ibendport_to_record
      Src: /src/selinux/libsepol/src/ibendports.c:228,1
    - Dst: fn
      Src: /src/selinux/libsepol/src/ibendports.c:232,1
    - Dst: sepol_ibendport_free
      Src: /src/selinux/libsepol/src/ibendports.c:236,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibendports.c:247,1
    - Dst: sepol_ibendport_free
      Src: /src/selinux/libsepol/src/ibendports.c:248,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - handle
    - p
    - arg
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 250
    functionName: sepol_ibendport_iterate
    functionSourceFile: /src/selinux/libsepol/src/ibendports.c
    functionUses: 0
    functionsReached:
    - ibendport_to_record
    - fn
    - sepol_ibendport_free
    - ERR
    linkageType: ''
    returnType: int
    signature: "int sepol_ibendport_iterate(sepol_handle_t *handle, const sepol_policydb_t
      *p,\n\t\t\t    int (*fn)(const sepol_ibendport_t *ibendport,\n\t\t\t\t      void
      *fn_arg),\n\t\t\t    void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/constraint.c:30,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/constraint.c:31,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/constraint.c:32,1
    - Dst: type_set_init
      Src: /src/selinux/libsepol/src/constraint.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - expr
    argTypes:
    - constraint_expr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: constraint_expr_init
    functionSourceFile: /src/selinux/libsepol/src/constraint.c
    functionUses: 1
    functionsReached:
    - ebitmap_init
    - type_set_init
    - malloc
    - memset
    linkageType: ''
    returnType: int
    signature: int constraint_expr_init(constraint_expr_t *expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/constraint.c:45,1
    - Dst: type_set_destroy
      Src: /src/selinux/libsepol/src/constraint.c:46,1
    - Dst: free
      Src: /src/selinux/libsepol/src/constraint.c:47,1
    - Dst: free
      Src: /src/selinux/libsepol/src/constraint.c:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - expr
    argTypes:
    - constraint_expr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 51
    functionName: constraint_expr_destroy
    functionSourceFile: /src/selinux/libsepol/src/constraint.c
    functionUses: 1
    functionsReached:
    - free
    - ebitmap_destroy
    - type_set_destroy
    linkageType: ''
    returnType: void
    signature: void constraint_expr_destroy(constraint_expr_t *expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: min
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(a, b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:96,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:100,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:102,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:103,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:104,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - mod
    argTypes:
    - policy_module_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 106
    functionName: policy_module_destroy
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void policy_module_destroy(policy_module_t *mod)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/link.c:138,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/link.c:140,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/link.c:149,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:151,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/link.c:156,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:158,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/link.c:162,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:166,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:174,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/link.c:188,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:190,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/link.c:194,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:197,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:205,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:206,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 208
    functionName: permission_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_search
    - hashtab_insert
    - free
    - calloc
    - memcpy
    - strdup
    linkageType: ''
    returnType: int
    signature: "int permission_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t\t
      \   void *data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:217,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:226,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:235,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:244,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - state
    - olddatum
    - newdatum
    argTypes:
    - link_state_t*
    - class_datum_t*
    - class_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 251
    functionName: class_copy_default_new_object
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    linkageType: ''
    returnType: int
    signature: "int class_copy_default_new_object(link_state_t *state,\n\t\t\t\t\t
      class_datum_t *olddatum,\n\t\t\t\t\t class_datum_t *newdatum)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/link.c:265,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/link.c:272,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:280,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/link.c:296,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:299,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/src/link.c:303,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/link.c:308,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:310,1
    - Dst: symtab_destroy
      Src: /src/selinux/libsepol/src/link.c:311,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/link.c:315,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:319,1
    - Dst: symtab_destroy
      Src: /src/selinux/libsepol/src/link.c:321,1
    - Dst: class_copy_default_new_object
      Src: /src/selinux/libsepol/src/link.c:337,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/link.c:341,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:349,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:350,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 65
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 352
    functionName: class_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_map
    - hashtab_search
    - symtab_init
    - hashtab_insert
    - class_copy_default_new_object
    - symtab_destroy
    - calloc
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int class_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \      void *data)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/link.c:364,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:372,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:378,1
    - Dst: INFO
      Src: /src/selinux/libsepol/src/link.c:385,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/link.c:387,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/link.c:391,1
    - Dst: role_datum_init
      Src: /src/selinux/libsepol/src/link.c:395,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/link.c:402,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/link.c:414,1
    - Dst: role_datum_init
      Src: /src/selinux/libsepol/src/link.c:417,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/link.c:420,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/link.c:423,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:434,1
    - Dst: role_datum_destroy
      Src: /src/selinux/libsepol/src/link.c:435,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:436,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:437,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 62
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 354
    functionDepth: 3
    functionLinenumber: 354
    functionLinenumberEnd: 439
    functionName: role_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_search
    - role_datum_destroy
    - malloc
    - hashtab_insert
    - free
    - INFO
    - role_datum_init
    - strdup
    linkageType: ''
    returnType: int
    signature: "int role_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \     void *data)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/link.c:459,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:467,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:473,1
    - Dst: INFO
      Src: /src/selinux/libsepol/src/link.c:482,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/link.c:484,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/link.c:488,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/link.c:500,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/link.c:512,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/link.c:519,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/link.c:522,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:533,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:534,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:535,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 67
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 537
    functionName: type_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_search
    - hashtab_insert
    - free
    - calloc
    - INFO
    - strdup
    linkageType: ''
    returnType: int
    signature: "int type_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \     void *data)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/link.c:549,1
    - Dst: INFO
      Src: /src/selinux/libsepol/src/link.c:552,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/link.c:554,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/link.c:558,1
    - Dst: user_datum_init
      Src: /src/selinux/libsepol/src/link.c:562,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/link.c:568,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/link.c:580,1
    - Dst: user_datum_init
      Src: /src/selinux/libsepol/src/link.c:583,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/link.c:585,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/link.c:588,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:599,1
    - Dst: user_datum_destroy
      Src: /src/selinux/libsepol/src/link.c:600,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:601,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:602,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 539
    functionDepth: 3
    functionLinenumber: 539
    functionLinenumberEnd: 604
    functionName: user_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_search
    - malloc
    - hashtab_insert
    - user_datum_destroy
    - free
    - user_datum_init
    - INFO
    - strdup
    linkageType: ''
    returnType: int
    signature: "int user_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \     void *data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/link.c:617,1
    - Dst: INFO
      Src: /src/selinux/libsepol/src/link.c:620,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/link.c:622,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/link.c:626,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/link.c:632,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:649,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/link.c:658,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:671,1
    - Dst: cond_destroy_bool
      Src: /src/selinux/libsepol/src/link.c:672,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 43
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 674
    functionName: bool_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_search
    - malloc
    - hashtab_insert
    - cond_destroy_bool
    - INFO
    - strdup
    linkageType: ''
    returnType: int
    signature: "int bool_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \     void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/link.c:686,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/link.c:688,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:694,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:700,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:705,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 715
    functionName: sens_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: "int sens_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \     void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/link.c:727,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/link.c:729,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:735,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:741,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:747,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 756
    functionName: cat_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: "int cat_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \    void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/link.c:792,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:794,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:798,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 804
    functionName: type_bounds_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: "int type_bounds_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t\t
      \    void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/link.c:825,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:827,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:831,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 837
    functionName: role_bounds_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: "int role_bounds_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t\t
      \    void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/link.c:858,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:860,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:864,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 870
    functionName: user_bounds_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: "int user_bounds_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t\t
      \    void *data)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/link.c:904,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:906,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/link.c:911,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:912,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/link.c:919,1
    - Dst: INFO
      Src: /src/selinux/libsepol/src/link.c:922,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/link.c:924,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/link.c:933,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/link.c:936,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/link.c:948,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/link.c:949,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/link.c:951,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:957,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:973,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:974,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:975,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 64
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts:
    - condition: (base_type->primary == target_type->s.value)
      pos:
        line_end: 947
        line_start: 947
        source_file: /src/selinux/libsepol/src/link.c
    - condition: "(mod->map[SYM_TYPES][type->s.value - 1] ==\n\t\t\t       base_type->primary)"
      pos:
        line_end: 951
        line_start: 950
        source_file: /src/selinux/libsepol/src/link.c
    - condition: "(base_type->primary ==\n\t\t\t       mod->map[SYM_TYPES][primval
        - 1])"
      pos:
        line_end: 949
        line_start: 948
        source_file: /src/selinux/libsepol/src/link.c
    constantsTouched: []
    func_position:
      end: 977
      start: 878
    functionDepth: 0
    functionLinenumber: 878
    functionLinenumberEnd: 977
    functionName: alias_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_search
    - strcmp
    - hashtab_insert
    - assert
    - free
    - calloc
    - INFO
    - strdup
    linkageType: ''
    returnType: int
    signature: "int alias_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \      void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsepol/src/link.c:987,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/link.c:988,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - src
    - dst
    - map
    argTypes:
    - ebitmap_t*
    - ebitmap_t*
    - uint32_t*
    assertStmts:
    - condition: (map[bit])
      pos:
        line_end: 986
        line_start: 986
        source_file: /src/selinux/libsepol/src/link.c
    constantsTouched: []
    func_position:
      end: 993
      start: 981
    functionDepth: 1
    functionLinenumber: 981
    functionLinenumberEnd: 993
    functionName: ebitmap_convert
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ebitmap_set_bit
    - assert
    linkageType: ''
    returnType: int
    signature: "int ebitmap_convert(const ebitmap_t *src, ebitmap_t *dst,\n\t\t\t
      \  const uint32_t *map)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsepol/src/link.c:987,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/link.c:988,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (map[bit])
      pos:
        line_end: 986
        line_start: 986
        source_file: /src/selinux/libsepol/src/link.c
    constantsTouched: []
    func_position:
      end: 990
      start: 986
    functionDepth: 1
    functionLinenumber: 986
    functionLinenumberEnd: 990
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 20
    functionsReached:
    - ebitmap_set_bit
    - assert
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(src, node, bit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_convert
      Src: /src/selinux/libsepol/src/link.c:998,1
    - Dst: ebitmap_convert
      Src: /src/selinux/libsepol/src/link.c:1001,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - types
    - dst
    - mod
    argTypes:
    - type_set_t*
    - type_set_t*
    - policy_module_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 995
    functionDepth: 2
    functionLinenumber: 995
    functionLinenumberEnd: 1009
    functionName: type_set_convert
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ebitmap_convert
    linkageType: ''
    returnType: int
    signature: "int type_set_convert(const type_set_t *types, type_set_t *dst,\n\t\t\t
      \   const policy_module_t *mod)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: type_set_init
      Src: /src/selinux/libsepol/src/link.c:1019,1
    - Dst: type_set_convert
      Src: /src/selinux/libsepol/src/link.c:1020,1
    - Dst: type_set_or_eq
      Src: /src/selinux/libsepol/src/link.c:1023,1
    - Dst: type_set_destroy
      Src: /src/selinux/libsepol/src/link.c:1026,1
    - Dst: type_set_destroy
      Src: /src/selinux/libsepol/src/link.c:1030,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - types
    - dst
    - mod
    argTypes:
    - type_set_t*
    - type_set_t*
    - policy_module_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1014
    functionDepth: 4
    functionLinenumber: 1014
    functionLinenumberEnd: 1032
    functionName: type_set_or_convert
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - type_set_or_eq
    - type_set_convert
    - type_set_destroy
    - type_set_init
    linkageType: ''
    returnType: int
    signature: "int type_set_or_convert(const type_set_t *types, type_set_t *dst,\n\t\t\t
      \      const policy_module_t *mod)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/link.c:1039,1
    - Dst: ebitmap_convert
      Src: /src/selinux/libsepol/src/link.c:1040,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/src/link.c:1042,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/link.c:1046,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:1049,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/link.c:1050,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - roles
    - dst
    - mod
    - state
    argTypes:
    - role_set_t*
    - role_set_t*
    - policy_module_t*
    - link_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1034
    functionDepth: 3
    functionLinenumber: 1034
    functionLinenumberEnd: 1052
    functionName: role_set_or_convert
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ERR
    - ebitmap_convert
    - ebitmap_destroy
    - ebitmap_union
    linkageType: ''
    returnType: int
    signature: "int role_set_or_convert(role_set_t *roles, role_set_t *dst,\n\t\t\t
      \      policy_module_t *mod, link_state_t *state)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsepol/src/link.c:1067,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/link.c:1071,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:1074,1
    - Dst: mls_semantic_cat_init
      Src: /src/selinux/libsepol/src/link.c:1077,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/link.c:1082,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/link.c:1084,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - src
    - dst
    - mod
    - state
    argTypes:
    - mls_semantic_level_t*
    - mls_semantic_level_t*
    - policy_module_t*
    - link_state_t*
    assertStmts:
    - condition: (mod->map[SYM_LEVELS][src->sens - 1])
      pos:
        line_end: 1066
        line_start: 1066
        source_file: /src/selinux/libsepol/src/link.c
    - condition: (mod->map[SYM_CATS][src_cat->low - 1])
      pos:
        line_end: 1081
        line_start: 1081
        source_file: /src/selinux/libsepol/src/link.c
    - condition: (mod->map[SYM_CATS][src_cat->high - 1])
      pos:
        line_end: 1083
        line_start: 1083
        source_file: /src/selinux/libsepol/src/link.c
    constantsTouched: []
    func_position:
      end: 1089
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1089
    functionName: mls_level_convert
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - mls_semantic_cat_init
    - ERR
    - malloc
    - assert
    linkageType: ''
    returnType: int
    signature: "int mls_level_convert(mls_semantic_level_t *src,\n\t\t\t     mls_semantic_level_t
      *dst, policy_module_t *mod,\n\t\t\t     link_state_t *state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mls_level_convert
      Src: /src/selinux/libsepol/src/link.c:1096,1
    - Dst: mls_level_convert
      Src: /src/selinux/libsepol/src/link.c:1099,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - src
    - dst
    - mod
    - state
    argTypes:
    - mls_semantic_range_t*
    - mls_semantic_range_t*
    - policy_module_t*
    - link_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1091
    functionDepth: 2
    functionLinenumber: 1091
    functionLinenumberEnd: 1103
    functionName: mls_range_convert
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - mls_level_convert
    linkageType: ''
    returnType: int
    signature: "int mls_range_convert(mls_semantic_range_t *src,\n\t\t\t     mls_semantic_range_t
      *dst, policy_module_t *mod,\n\t\t\t     link_state_t *state)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/link.c:1121,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/link.c:1122,1
    - Dst: INFO
      Src: /src/selinux/libsepol/src/link.c:1125,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/link.c:1128,1
    - Dst: ebitmap_convert
      Src: /src/selinux/libsepol/src/link.c:1129,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/src/link.c:1131,1
    - Dst: type_set_or_convert
      Src: /src/selinux/libsepol/src/link.c:1134,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/link.c:1137,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/link.c:1140,1
    - Dst: ebitmap_convert
      Src: /src/selinux/libsepol/src/link.c:1141,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/src/link.c:1143,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/link.c:1146,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:1152,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/link.c:1153,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts:
    - condition: (dest_role != NULL)
      pos:
        line_end: 1121
        line_start: 1121
        source_file: /src/selinux/libsepol/src/link.c
    constantsTouched: []
    func_position:
      end: 1155
      start: 1105
    functionDepth: 5
    functionLinenumber: 1105
    functionLinenumberEnd: 1155
    functionName: role_fix_callback
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ERR
    - ebitmap_convert
    - type_set_or_convert
    - ebitmap_destroy
    - hashtab_search
    - assert
    - INFO
    - ebitmap_union
    linkageType: ''
    returnType: int
    signature: "int role_fix_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \    void *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/link.c:1179,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/link.c:1180,1
    - Dst: INFO
      Src: /src/selinux/libsepol/src/link.c:1183,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/link.c:1186,1
    - Dst: ebitmap_convert
      Src: /src/selinux/libsepol/src/link.c:1187,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/src/link.c:1189,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/link.c:1192,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:1196,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/link.c:1197,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts:
    - condition: (new_type != NULL && new_type->flavor == TYPE_ATTRIB)
      pos:
        line_end: 1179
        line_start: 1179
        source_file: /src/selinux/libsepol/src/link.c
    constantsTouched: []
    func_position:
      end: 1199
      start: 1157
    functionDepth: 3
    functionLinenumber: 1157
    functionLinenumberEnd: 1199
    functionName: type_fix_callback
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ERR
    - ebitmap_convert
    - ebitmap_destroy
    - hashtab_search
    - assert
    - INFO
    - ebitmap_union
    linkageType: ''
    returnType: int
    signature: "int type_fix_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \    void *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/link.c:1217,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/link.c:1218,1
    - Dst: INFO
      Src: /src/selinux/libsepol/src/link.c:1221,1
    - Dst: role_set_or_convert
      Src: /src/selinux/libsepol/src/link.c:1224,1
    - Dst: mls_range_convert
      Src: /src/selinux/libsepol/src/link.c:1228,1
    - Dst: mls_level_convert
      Src: /src/selinux/libsepol/src/link.c:1231,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:1238,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts:
    - condition: (new_user != NULL)
      pos:
        line_end: 1217
        line_start: 1217
        source_file: /src/selinux/libsepol/src/link.c
    constantsTouched: []
    func_position:
      end: 1240
      start: 1201
    functionDepth: 4
    functionLinenumber: 1201
    functionLinenumberEnd: 1240
    functionName: user_fix_callback
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_search
    - role_set_or_convert
    - mls_range_convert
    - mls_level_convert
    - assert
    - INFO
    linkageType: ''
    returnType: int
    signature: "int user_fix_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \    void *data)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/link.c:1269,1
    - Dst: avrule_init
      Src: /src/selinux/libsepol/src/link.c:1272,1
    - Dst: type_set_convert
      Src: /src/selinux/libsepol/src/link.c:1276,1
    - Dst: type_set_convert
      Src: /src/selinux/libsepol/src/link.c:1278,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/link.c:1286,1
    - Dst: class_perm_node_init
      Src: /src/selinux/libsepol/src/link.c:1290,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/link.c:1294,1
    - Dst: UINT32_C
      Src: /src/selinux/libsepol/src/link.c:1302,1
    - Dst: UINT32_C
      Src: /src/selinux/libsepol/src/link.c:1305,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/link.c:1320,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/link.c:1328,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/link.c:1331,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/link.c:1339,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:1356,1
    - Dst: avrule_destroy
      Src: /src/selinux/libsepol/src/link.c:1357,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:1358,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 76
    argCount: 4
    argNames:
    - list
    - dst
    - module
    - state
    argTypes:
    - avrule_t*
    - avrule_t**
    - policy_module_t*
    - link_state_t*
    assertStmts:
    - condition: (new_perm->tclass)
      pos:
        line_end: 1293
        line_start: 1293
        source_file: /src/selinux/libsepol/src/link.c
    - condition: (tail_perm)
      pos:
        line_end: 1319
        line_start: 1319
        source_file: /src/selinux/libsepol/src/link.c
    constantsTouched: []
    func_position:
      end: 1360
      start: 1255
    functionDepth: 3
    functionLinenumber: 1255
    functionLinenumberEnd: 1360
    functionName: copy_avrule_list
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - malloc
    - assert
    - UINT32_C
    - avrule_init
    - calloc
    - memcpy
    - free
    - avrule_destroy
    - type_set_convert
    - class_perm_node_init
    - strdup
    linkageType: ''
    returnType: int
    signature: "int copy_avrule_list(avrule_t *list, avrule_t **dst,\n\t\t\t    policy_module_t
      *module, link_state_t *state)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/link.c:1374,1
    - Dst: role_trans_rule_init
      Src: /src/selinux/libsepol/src/link.c:1378,1
    - Dst: role_set_or_convert
      Src: /src/selinux/libsepol/src/link.c:1380,1
    - Dst: type_set_or_convert
      Src: /src/selinux/libsepol/src/link.c:1382,1
    - Dst: ebitmap_convert
      Src: /src/selinux/libsepol/src/link.c:1387,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:1403,1
    - Dst: role_trans_rule_list_destroy
      Src: /src/selinux/libsepol/src/link.c:1404,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 4
    argNames:
    - list
    - dst
    - module
    - state
    argTypes:
    - role_trans_rule_t*
    - role_trans_rule_t**
    - policy_module_t*
    - link_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1362
    functionDepth: 5
    functionLinenumber: 1362
    functionLinenumberEnd: 1406
    functionName: copy_role_trans_list
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - ebitmap_convert
    - type_set_or_convert
    - role_set_or_convert
    - malloc
    - role_trans_rule_list_destroy
    - role_trans_rule_init
    linkageType: ''
    returnType: int
    signature: "int copy_role_trans_list(role_trans_rule_t *list,\n\t\t\t\trole_trans_rule_t
      **dst,\n\t\t\t\tpolicy_module_t *module, link_state_t *state)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/link.c:1421,1
    - Dst: role_allow_rule_init
      Src: /src/selinux/libsepol/src/link.c:1425,1
    - Dst: role_set_or_convert
      Src: /src/selinux/libsepol/src/link.c:1427,1
    - Dst: role_set_or_convert
      Src: /src/selinux/libsepol/src/link.c:1429,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:1443,1
    - Dst: role_allow_rule_list_destroy
      Src: /src/selinux/libsepol/src/link.c:1444,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - list
    - dst
    - module
    - state
    argTypes:
    - role_allow_rule_t*
    - role_allow_rule_t**
    - policy_module_t*
    - link_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1408
    functionDepth: 4
    functionLinenumber: 1408
    functionLinenumberEnd: 1446
    functionName: copy_role_allow_list
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - role_set_or_convert
    - malloc
    - role_allow_rule_list_destroy
    - role_allow_rule_init
    linkageType: ''
    returnType: int
    signature: "int copy_role_allow_list(role_allow_rule_t *list,\n\t\t\t\trole_allow_rule_t
      **dst,\n\t\t\t\tpolicy_module_t *module, link_state_t *state)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/link.c:1461,1
    - Dst: filename_trans_rule_init
      Src: /src/selinux/libsepol/src/link.c:1465,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/link.c:1473,1
    - Dst: type_set_or_convert
      Src: /src/selinux/libsepol/src/link.c:1477,1
    - Dst: type_set_or_convert
      Src: /src/selinux/libsepol/src/link.c:1479,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:1491,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 4
    argNames:
    - list
    - dst
    - module
    - state
    argTypes:
    - filename_trans_rule_t*
    - filename_trans_rule_t**
    - policy_module_t*
    - link_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1448
    functionDepth: 5
    functionLinenumber: 1448
    functionLinenumberEnd: 1493
    functionName: copy_filename_trans_list
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - type_set_or_convert
    - malloc
    - filename_trans_rule_init
    - strdup
    linkageType: ''
    returnType: int
    signature: "int copy_filename_trans_list(filename_trans_rule_t *list,\n\t\t\t\t
      \   filename_trans_rule_t **dst,\n\t\t\t\t    policy_module_t *module,\n\t\t\t\t
      \   link_state_t *state)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/link.c:1503,1
    - Dst: range_trans_rule_init
      Src: /src/selinux/libsepol/src/link.c:1508,1
    - Dst: type_set_convert
      Src: /src/selinux/libsepol/src/link.c:1513,1
    - Dst: type_set_convert
      Src: /src/selinux/libsepol/src/link.c:1516,1
    - Dst: ebitmap_convert
      Src: /src/selinux/libsepol/src/link.c:1519,1
    - Dst: mls_range_convert
      Src: /src/selinux/libsepol/src/link.c:1523,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:1530,1
    - Dst: range_trans_rule_list_destroy
      Src: /src/selinux/libsepol/src/link.c:1531,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - rules
    - dst
    - mod
    - state
    argTypes:
    - range_trans_rule_t*
    - range_trans_rule_t**
    - policy_module_t*
    - link_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1495
    functionDepth: 4
    functionLinenumber: 1495
    functionLinenumberEnd: 1534
    functionName: copy_range_trans_list
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - range_trans_rule_list_destroy
    - ebitmap_convert
    - mls_range_convert
    - malloc
    - range_trans_rule_init
    - type_set_convert
    linkageType: ''
    returnType: int
    signature: "int copy_range_trans_list(range_trans_rule_t *rules,\n\t\t\t\t range_trans_rule_t
      **dst, policy_module_t *mod,\n\t\t\t\t link_state_t *state)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/link.c:1548,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/link.c:1552,1
    - Dst: cond_copy_expr
      Src: /src/selinux/libsepol/src/link.c:1555,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/link.c:1564,1
    - Dst: min
      Src: /src/selinux/libsepol/src/link.c:1571,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/link.c:1574,1
    - Dst: copy_avrule_list
      Src: /src/selinux/libsepol/src/link.c:1579,1
    - Dst: copy_avrule_list
      Src: /src/selinux/libsepol/src/link.c:1581,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:1596,1
    - Dst: cond_node_destroy
      Src: /src/selinux/libsepol/src/link.c:1597,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:1598,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 4
    argNames:
    - list
    - dst
    - module
    - state
    argTypes:
    - cond_node_t*
    - cond_node_t**
    - policy_module_t*
    - link_state_t*
    assertStmts:
    - condition: "(module->map[SYM_BOOLS][cur_expr->boolean - 1] !=\n\t\t\t       0)"
      pos:
        line_end: 1564
        line_start: 1563
        source_file: /src/selinux/libsepol/src/link.c
    - condition: (remapped_id != 0)
      pos:
        line_end: 1573
        line_start: 1573
        source_file: /src/selinux/libsepol/src/link.c
    constantsTouched: []
    func_position:
      end: 1600
      start: 1536
    functionDepth: 5
    functionLinenumber: 1536
    functionLinenumberEnd: 1600
    functionName: copy_cond_list
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - cond_copy_expr
    - cond_node_destroy
    - malloc
    - assert
    - copy_avrule_list
    - free
    - memset
    - min
    linkageType: ''
    returnType: int
    signature: "int copy_cond_list(cond_node_t *list, cond_node_t **dst,\n\t\t\t  policy_module_t
      *module, link_state_t *state)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/link.c:1612,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/link.c:1620,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/link.c:1624,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/link.c:1628,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/link.c:1632,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/link.c:1639,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - state
    - src_symtab
    - dest_decl
    argTypes:
    - link_state_t*
    - symtab_t*
    - avrule_decl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1604
    functionDepth: 0
    functionLinenumber: 1604
    functionLinenumberEnd: 1645
    functionName: copy_identifiers
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - hashtab_map
    linkageType: ''
    returnType: int
    signature: "int copy_identifiers(link_state_t *state, symtab_t *src_symtab,\n\t\t\t
      \   avrule_decl_t *dest_decl)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsepol/src/link.c:1662,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/link.c:1663,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/link.c:1683,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/link.c:1692,1
    - Dst: ebitmap_convert
      Src: /src/selinux/libsepol/src/link.c:1698,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:1705,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 41
    argCount: 4
    argNames:
    - src
    - dest
    - module
    - state
    argTypes:
    - scope_index_t*
    - scope_index_t*
    - policy_module_t*
    - link_state_t*
    assertStmts:
    - condition: (module->map[i][j] != 0)
      pos:
        line_end: 1661
        line_start: 1661
        source_file: /src/selinux/libsepol/src/link.c
    constantsTouched: []
    func_position:
      end: 1707
      start: 1647
    functionDepth: 2
    functionLinenumber: 1647
    functionLinenumberEnd: 1707
    functionName: copy_scope_index
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - ebitmap_convert
    - assert
    - ebitmap_is_empty
    - ebitmap_set_bit
    - calloc
    linkageType: ''
    returnType: int
    signature: "int copy_scope_index(scope_index_t *src, scope_index_t *dest,\n\t\t\t
      \   policy_module_t *module, link_state_t *state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsepol/src/link.c:1662,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/link.c:1663,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (module->map[i][j] != 0)
      pos:
        line_end: 1661
        line_start: 1661
        source_file: /src/selinux/libsepol/src/link.c
    constantsTouched: []
    func_position:
      end: 1673
      start: 1661
    functionDepth: 1
    functionLinenumber: 1661
    functionLinenumberEnd: 1673
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 20
    functionsReached:
    - ebitmap_set_bit
    - assert
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(srcmap, node, j)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: copy_avrule_list
      Src: /src/selinux/libsepol/src/link.c:1715,1
    - Dst: copy_role_trans_list
      Src: /src/selinux/libsepol/src/link.c:1717,1
    - Dst: copy_role_allow_list
      Src: /src/selinux/libsepol/src/link.c:1720,1
    - Dst: copy_cond_list
      Src: /src/selinux/libsepol/src/link.c:1723,1
    - Dst: copy_filename_trans_list
      Src: /src/selinux/libsepol/src/link.c:1728,1
    - Dst: copy_range_trans_list
      Src: /src/selinux/libsepol/src/link.c:1733,1
    - Dst: copy_identifiers
      Src: /src/selinux/libsepol/src/link.c:1738,1
    - Dst: copy_scope_index
      Src: /src/selinux/libsepol/src/link.c:1744,1
    - Dst: copy_scope_index
      Src: /src/selinux/libsepol/src/link.c:1746,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 4
    argNames:
    - state
    - module
    - src_decl
    - dest_decl
    argTypes:
    - link_state_t*
    - policy_module_t*
    - avrule_decl_t*
    - avrule_decl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1709
    functionDepth: 6
    functionLinenumber: 1709
    functionLinenumberEnd: 1752
    functionName: copy_avrule_decl
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - copy_cond_list
    - copy_scope_index
    - copy_identifiers
    - copy_avrule_list
    - copy_role_trans_list
    - copy_role_allow_list
    - copy_range_trans_list
    - copy_filename_trans_list
    linkageType: ''
    returnType: int
    signature: "int copy_avrule_decl(link_state_t *state, policy_module_t *module,\n\t\t\t
      \   avrule_decl_t *src_decl, avrule_decl_t *dest_decl)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: avrule_block_create
      Src: /src/selinux/libsepol/src/link.c:1757,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:1762,1
    - Dst: avrule_decl_create
      Src: /src/selinux/libsepol/src/link.c:1771,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:1773,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/link.c:1779,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:1781,1
    - Dst: avrule_decl_destroy
      Src: /src/selinux/libsepol/src/link.c:1782,1
    - Dst: copy_avrule_decl
      Src: /src/selinux/libsepol/src/link.c:1794,1
    - Dst: avrule_decl_destroy
      Src: /src/selinux/libsepol/src/link.c:1796,1
    - Dst: avrule_block_list_destroy
      Src: /src/selinux/libsepol/src/link.c:1814,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 3
    argNames:
    - state
    - module
    - block
    argTypes:
    - link_state_t*
    - policy_module_t*
    - avrule_block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1754
    functionDepth: 7
    functionLinenumber: 1754
    functionLinenumberEnd: 1816
    functionName: copy_avrule_block
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - avrule_block_create
    - ERR
    - copy_avrule_decl
    - avrule_decl_destroy
    - avrule_block_list_destroy
    - avrule_decl_create
    - strdup
    linkageType: ''
    returnType: int
    signature: "int copy_avrule_block(link_state_t *state, policy_module_t *module,\n\t\t\t
      \    avrule_block_t *block)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/link.c:1832,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/link.c:1835,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/link.c:1839,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:1841,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/link.c:1844,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:1848,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:1849,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:1859,1
    - Dst: add_i_to_a
      Src: /src/selinux/libsepol/src/link.c:1863,1
    - Dst: add_i_to_a
      Src: /src/selinux/libsepol/src/link.c:1877,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:1888,1
    - Dst: add_i_to_a
      Src: /src/selinux/libsepol/src/link.c:1895,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:1905,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 61
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1818
    functionDepth: 1
    functionLinenumber: 1818
    functionLinenumberEnd: 1907
    functionName: scope_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_search
    - add_i_to_a
    - hashtab_insert
    - free
    - calloc
    - strdup
    linkageType: ''
    returnType: int
    signature: "int scope_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \      void *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: copy_identifiers
      Src: /src/selinux/libsepol/src/link.c:1920,1
    - Dst: copy_avrule_block
      Src: /src/selinux/libsepol/src/link.c:1927,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/link.c:1936,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - state
    - module
    argTypes:
    - link_state_t*
    - policy_module_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1943
      start: 1912
    functionDepth: 8
    functionLinenumber: 1912
    functionLinenumberEnd: 1943
    functionName: copy_module
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - hashtab_map
    - copy_avrule_block
    - copy_identifiers
    linkageType: ''
    returnType: int
    signature: int copy_module(link_state_t *state, policy_module_t *module)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - key
    - datum
    - varg
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1965
      start: 1954
    functionDepth: 0
    functionLinenumber: 1954
    functionLinenumberEnd: 1965
    functionName: find_perm
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int find_perm(hashtab_key_t key, hashtab_datum_t datum, void *varg)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: is_id_enabled
      Src: /src/selinux/libsepol/src/link.c:1998,1
    - Dst: is_id_enabled
      Src: /src/selinux/libsepol/src/link.c:2016,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/link.c:2023,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2025,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/link.c:2039,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/link.c:2042,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/link.c:2045,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/link.c:2049,1
    - Dst: is_perm_existent
      Src: /src/selinux/libsepol/src/link.c:2050,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 3
    argNames:
    - state
    - decl
    - req
    argTypes:
    - link_state_t*
    - avrule_decl_t*
    - struct missing_requirement*
    assertStmts:
    - condition: (rc == 1)
      pos:
        line_end: 2044
        line_start: 2044
        source_file: /src/selinux/libsepol/src/link.c
    - condition: (perm_id != NULL)
      pos:
        line_end: 2048
        line_start: 2048
        source_file: /src/selinux/libsepol/src/link.c
    constantsTouched: []
    func_position:
      end: 2063
      start: 1974
    functionDepth: 1
    functionLinenumber: 1974
    functionLinenumberEnd: 2063
    functionName: is_decl_requires_met
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_map
    - hashtab_search
    - assert
    - is_id_enabled
    - is_perm_existent
    linkageType: ''
    returnType: int
    signature: "int is_decl_requires_met(link_state_t *state, const avrule_decl_t
      *decl,\n\t\t\t\tstruct missing_requirement *req)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_id_enabled
      Src: /src/selinux/libsepol/src/link.c:1998,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2006
      start: 1995
    functionDepth: 1
    functionLinenumber: 1995
    functionLinenumberEnd: 2006
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 20
    functionsReached:
    - is_id_enabled
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(bitmap, node, j)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/link.c:2039,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/link.c:2042,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/link.c:2045,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/link.c:2049,1
    - Dst: is_perm_existent
      Src: /src/selinux/libsepol/src/link.c:2050,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (perm_id != NULL)
      pos:
        line_end: 2048
        line_start: 2048
        source_file: /src/selinux/libsepol/src/link.c
    - condition: (rc == 1)
      pos:
        line_end: 2044
        line_start: 2044
        source_file: /src/selinux/libsepol/src/link.c
    constantsTouched: []
    func_position:
      end: 2058
      start: 2031
    functionDepth: 1
    functionLinenumber: 2031
    functionLinenumberEnd: 2058
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 20
    functionsReached:
    - is_perm_existent
    - hashtab_map
    - assert
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(bitmap, node, j)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/link.c:2070,1
    - Dst: is_decl_requires_met
      Src: /src/selinux/libsepol/src/link.c:2076,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/link.c:2094,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2098,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2105,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2114,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2122,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - state
    - p
    argTypes:
    - link_state_t*
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2065
    functionDepth: 2
    functionLinenumber: 2065
    functionLinenumberEnd: 2134
    functionName: debug_requirements
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - is_decl_requires_met
    - hashtab_map
    - memset
    linkageType: ''
    returnType: int
    signature: int debug_requirements(link_state_t *state, policydb_t *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2150,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/link.c:2157,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2160,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - state
    - cur
    - req
    argTypes:
    - link_state_t*
    - avrule_block_t*
    - missing_requirement_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2172
      start: 2136
    functionDepth: 0
    functionLinenumber: 2136
    functionLinenumberEnd: 2172
    functionName: print_missing_requirements
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_map
    linkageType: ''
    returnType: void
    signature: "void print_missing_requirements(link_state_t *state, avrule_block_t
      *cur,\n\t\t\t\t       missing_requirement_t *req)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/selinux/libsepol/src/link.c:2198,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2205,1
    - Dst: INFO
      Src: /src/selinux/libsepol/src/link.c:2227,1
    - Dst: is_decl_requires_met
      Src: /src/selinux/libsepol/src/link.c:2230,1
    - Dst: print_missing_requirements
      Src: /src/selinux/libsepol/src/link.c:2239,1
    - Dst: debug_requirements
      Src: /src/selinux/libsepol/src/link.c:2268,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 2
    argNames:
    - state
    - pol
    argTypes:
    - link_state_t*
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2271
      start: 2189
    functionDepth: 3
    functionLinenumber: 2189
    functionLinenumberEnd: 2271
    functionName: enable_avrules
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - debug_requirements
    - print_missing_requirements
    - INFO
    - is_decl_requires_met
    linkageType: ''
    returnType: int
    signature: int enable_avrules(link_state_t *state, policydb_t *pol)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cond_normalize_expr
      Src: /src/selinux/libsepol/src/link.c:2286,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - p
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2293
      start: 2277
    functionDepth: 2
    functionLinenumber: 2277
    functionLinenumberEnd: 2293
    functionName: cond_normalize
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - cond_normalize_expr
    linkageType: ''
    returnType: int
    signature: int cond_normalize(policydb_t *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/link.c:2305,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2307,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/link.c:2315,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2316,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/link.c:2319,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2321,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/link.c:2335,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2337,1
    - Dst: cond_normalize
      Src: /src/selinux/libsepol/src/link.c:2343,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2344,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - state
    - module
    argTypes:
    - link_state_t*
    - policy_module_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2350
      start: 2296
    functionDepth: 3
    functionLinenumber: 2296
    functionLinenumberEnd: 2350
    functionName: prepare_module
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - cond_normalize
    - ERR
    - calloc
    linkageType: ''
    returnType: int
    signature: int prepare_module(link_state_t *state, policy_module_t *module)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsepol/src/link.c:2355,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:2375,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/link.c:2376,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2379,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/link.c:2383,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2386,1
    - Dst: cond_normalize
      Src: /src/selinux/libsepol/src/link.c:2402,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2403,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - state
    - num_mod_decls
    argTypes:
    - link_state_t*
    - uint32_t
    assertStmts:
    - condition: (cur != NULL)
      pos:
        line_end: 2354
        line_start: 2354
        source_file: /src/selinux/libsepol/src/link.c
    constantsTouched: []
    func_position:
      end: 2408
      start: 2352
    functionDepth: 3
    functionLinenumber: 2352
    functionLinenumberEnd: 2408
    functionName: prepare_base
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 0
    functionsReached:
    - ERR
    - assert
    - free
    - calloc
    - cond_normalize
    linkageType: ''
    returnType: int
    signature: int prepare_base(link_state_t *state, uint32_t num_mod_decls)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/link.c:2423,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2429,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/link.c:2436,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2438,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2443,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2450,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2453,1
    - Dst: WARN
      Src: /src/selinux/libsepol/src/link.c:2459,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/link.c:2465,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2467,1
    - Dst: prepare_module
      Src: /src/selinux/libsepol/src/link.c:2471,1
    - Dst: prepare_base
      Src: /src/selinux/libsepol/src/link.c:2476,1
    - Dst: copy_module
      Src: /src/selinux/libsepol/src/link.c:2483,1
    - Dst: policydb_index_classes
      Src: /src/selinux/libsepol/src/link.c:2491,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2492,1
    - Dst: policydb_index_others
      Src: /src/selinux/libsepol/src/link.c:2495,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/link.c:2496,1
    - Dst: enable_avrules
      Src: /src/selinux/libsepol/src/link.c:2500,1
    - Dst: policy_module_destroy
      Src: /src/selinux/libsepol/src/link.c:2508,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:2510,1
    - Dst: free
      Src: /src/selinux/libsepol/src/link.c:2511,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 79
    argCount: 5
    argNames:
    - handle
    - b
    - mods
    - len
    - verbose
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - policydb_t**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2513
      start: 2415
    functionDepth: 9
    functionLinenumber: 2415
    functionLinenumberEnd: 2513
    functionName: link_modules
    functionSourceFile: /src/selinux/libsepol/src/link.c
    functionUses: 9
    functionsReached:
    - copy_module
    - ERR
    - policydb_index_classes
    - enable_avrules
    - policy_module_destroy
    - WARN
    - prepare_module
    - prepare_base
    - policydb_index_others
    - free
    - calloc
    - memset
    linkageType: ''
    returnType: int
    signature: "int link_modules(sepol_handle_t *handle, policydb_t *b, policydb_t
      **mods,\n\t\t int len, int verbose)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - handle_arg
    - ','
    - level_arg
    - ','
    - channel_arg
    - ','
    - func_arg
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: msg_write
    functionSourceFile: /src/selinux/libsepol/src/debug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: msg_write(handle_arg, level_arg, channel_arg, func_arg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - handle
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: ERR
    functionSourceFile: /src/selinux/libsepol/src/debug.h
    functionUses: 153
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR(handle, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - handle
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: INFO
    functionSourceFile: /src/selinux/libsepol/src/debug.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INFO(handle, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - handle
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: WARN
    functionSourceFile: /src/selinux/libsepol/src/debug.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WARN(handle, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context_is_valid
      Src: /src/selinux/libsepol/src/context.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - c
    argTypes:
    - policydb_t*
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: policydb_context_isvalid
    functionSourceFile: /src/selinux/libsepol/src/context.c
    functionUses: 3
    functionsReached:
    - context_is_valid
    linkageType: ''
    returnType: int
    signature: int policydb_context_isvalid(const policydb_t *p, const context_struct_t
      *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_to_sid
      Src: /src/selinux/libsepol/src/context.c:23,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/context.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: sepol_check_context
    functionSourceFile: /src/selinux/libsepol/src/context.c
    functionUses: 0
    functionsReached:
    - sepol_context_to_sid
    - strlen
    linkageType: ''
    returnType: int
    signature: int sepol_check_context(const char *context)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/context.c:38,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/context.c:39,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/context.c:54,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/context.c:65,1
    - Dst: mls_context_isvalid
      Src: /src/selinux/libsepol/src/context.c:70,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 2
    argNames:
    - p
    - c
    argTypes:
    - policydb_t*
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 74
    functionName: context_is_valid
    functionSourceFile: /src/selinux/libsepol/src/context.c
    functionUses: 1
    functionsReached:
    - ebitmap_init
    - mls_context_isvalid
    - ebitmap_get_bit
    linkageType: ''
    returnType: int
    signature: int context_is_valid(const policydb_t *p, const context_struct_t *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsepol/src/context.c:93,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/context.c:95,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/context.c:96,1
    - Dst: mls_compute_context_len
      Src: /src/selinux/libsepol/src/context.c:97,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/context.c:103,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/src/context.c:112,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/context.c:117,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/context.c:118,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/context.c:119,1
    - Dst: mls_sid_to_context
      Src: /src/selinux/libsepol/src/context.c:121,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context.c:128,1
    - Dst: free
      Src: /src/selinux/libsepol/src/context.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 5
    argNames:
    - handle
    - policydb
    - context
    - result
    - result_len
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - context_struct_t*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 132
    functionName: context_to_string
    functionSourceFile: /src/selinux/libsepol/src/context.c
    functionUses: 4
    functionsReached:
    - ERR
    - mls_sid_to_context
    - mls_compute_context_len
    - malloc
    - sprintf
    - free
    - strlen
    linkageType: ''
    returnType: int
    signature: "int context_to_string(sepol_handle_t *handle, const policydb_t *policydb,\n\t\t
      \     const context_struct_t *context, char **result,\n\t\t      size_t *result_len)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libsepol/src/context.c:146,1
    - Dst: sepol_context_get_user
      Src: /src/selinux/libsepol/src/context.c:146,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/context.c:147,1
    - Dst: sepol_context_get_role
      Src: /src/selinux/libsepol/src/context.c:147,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/context.c:148,1
    - Dst: sepol_context_get_type
      Src: /src/selinux/libsepol/src/context.c:148,1
    - Dst: sepol_context_get_mls
      Src: /src/selinux/libsepol/src/context.c:149,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/context.c:151,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context.c:153,1
    - Dst: context_init
      Src: /src/selinux/libsepol/src/context.c:156,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/context.c:159,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context.c:162,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/context.c:168,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context.c:171,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/context.c:177,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context.c:180,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context.c:187,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context.c:191,1
    - Dst: mls_from_string
      Src: /src/selinux/libsepol/src/context.c:194,1
    - Dst: context_is_valid
      Src: /src/selinux/libsepol/src/context.c:198,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context.c:200,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context.c:203,1
    - Dst: free
      Src: /src/selinux/libsepol/src/context.c:210,1
    - Dst: free
      Src: /src/selinux/libsepol/src/context.c:211,1
    - Dst: free
      Src: /src/selinux/libsepol/src/context.c:212,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/context.c:217,1
    - Dst: free
      Src: /src/selinux/libsepol/src/context.c:220,1
    - Dst: free
      Src: /src/selinux/libsepol/src/context.c:221,1
    - Dst: free
      Src: /src/selinux/libsepol/src/context.c:222,1
    - Dst: free
      Src: /src/selinux/libsepol/src/context.c:223,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context.c:224,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 68
    argCount: 4
    argNames:
    - handle
    - policydb
    - cptr
    - record
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - context_struct_t**
    - sepol_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 226
    functionName: context_from_record
    functionSourceFile: /src/selinux/libsepol/src/context.c
    functionUses: 3
    functionsReached:
    - mls_from_string
    - ERR
    - context_init
    - sepol_context_get_role
    - sepol_context_get_type
    - sepol_context_get_mls
    - hashtab_search
    - context_destroy
    - malloc
    - free
    - context_is_valid
    - sepol_context_get_user
    - strdup
    linkageType: ''
    returnType: int
    signature: "int context_from_record(sepol_handle_t *handle, const policydb_t *policydb,\n\t\t\tcontext_struct_t
      **cptr, const sepol_context_t *record)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_create
      Src: /src/selinux/libsepol/src/context.c:237,1
    - Dst: sepol_context_set_user
      Src: /src/selinux/libsepol/src/context.c:240,1
    - Dst: sepol_context_set_role
      Src: /src/selinux/libsepol/src/context.c:245,1
    - Dst: sepol_context_set_type
      Src: /src/selinux/libsepol/src/context.c:250,1
    - Dst: mls_to_string
      Src: /src/selinux/libsepol/src/context.c:256,1
    - Dst: sepol_context_set_mls
      Src: /src/selinux/libsepol/src/context.c:259,1
    - Dst: free
      Src: /src/selinux/libsepol/src/context.c:263,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context.c:268,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/context.c:269,1
    - Dst: free
      Src: /src/selinux/libsepol/src/context.c:270,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 30
    argCount: 4
    argNames:
    - handle
    - policydb
    - context
    - record
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - context_struct_t*
    - sepol_context_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 272
    functionName: context_to_record
    functionSourceFile: /src/selinux/libsepol/src/context.c
    functionUses: 3
    functionsReached:
    - sepol_context_set_type
    - ERR
    - sepol_context_free
    - sepol_context_set_user
    - sepol_context_set_role
    - free
    - mls_to_string
    - sepol_context_set_mls
    - sepol_context_create
    linkageType: ''
    returnType: int
    signature: "int context_to_record(sepol_handle_t *handle, const policydb_t *policydb,\n\t\t
      \     const context_struct_t *context, sepol_context_t **record)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: zero_or_saturated
      Src: /src/selinux/libsepol/src/context.c:284,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context.c:285,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/context.c:290,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context.c:292,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/context.c:296,1
    - Dst: sepol_context_from_string
      Src: /src/selinux/libsepol/src/context.c:299,1
    - Dst: context_from_record
      Src: /src/selinux/libsepol/src/context.c:303,1
    - Dst: free
      Src: /src/selinux/libsepol/src/context.c:306,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/context.c:307,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context.c:311,1
    - Dst: free
      Src: /src/selinux/libsepol/src/context.c:312,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/context.c:313,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 5
    argNames:
    - handle
    - policydb
    - cptr
    - con_str
    - con_str_len
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - context_struct_t**
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 277
    functionDepth: 3
    functionLinenumber: 277
    functionLinenumberEnd: 315
    functionName: context_from_string
    functionSourceFile: /src/selinux/libsepol/src/context.c
    functionUses: 2
    functionsReached:
    - ERR
    - sepol_context_from_string
    - sepol_context_free
    - zero_or_saturated
    - malloc
    - context_from_record
    - free
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int context_from_string(sepol_handle_t *handle, const policydb_t *policydb,\n\t\t\tcontext_struct_t
      **cptr, const char *con_str,\n\t\t\tsize_t con_str_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context_from_record
      Src: /src/selinux/libsepol/src/context.c:322,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/context.c:323,1
    - Dst: free
      Src: /src/selinux/libsepol/src/context.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - handle
    - policydb
    - context
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - sepol_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 317
    functionDepth: 3
    functionLinenumber: 317
    functionLinenumberEnd: 326
    functionName: sepol_context_check
    functionSourceFile: /src/selinux/libsepol/src/context.c
    functionUses: 0
    functionsReached:
    - context_from_record
    - free
    - context_destroy
    linkageType: ''
    returnType: int
    signature: "int sepol_context_check(sepol_handle_t *handle,\n\t\t\tconst sepol_policydb_t
      *policydb,\n\t\t\tconst sepol_context_t *context)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reallocarray::reallocarray
      Src: /src/selinux/libsepol/src/util.c:55,1
    - Dst: malloc::malloc
      Src: /src/selinux/libsepol/src/util.c:59,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - i
    - cnt
    - a
    argTypes:
    - uint32_t
    - uint32_t*
    - uint32_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 68
    functionName: add_i_to_a
    functionSourceFile: /src/selinux/libsepol/src/util.c
    functionUses: 2
    functionsReached:
    - reallocarray::reallocarray
    - malloc::malloc
    linkageType: ''
    returnType: int
    signature: int add_i_to_a(uint32_t i, uint32_t *cnt, uint32_t **a)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 83
    functionName: perm_name
    functionSourceFile: /src/selinux/libsepol/src/util.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int perm_name(hashtab_key_t key, hashtab_datum_t datum, void *data)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_mul_overflow
      Src: /src/selinux/libsepol/src/util.c:99,1
    - Dst: realloc
      Src: /src/selinux/libsepol/src/util.c:101,1
    - Dst: UINT32_C
      Src: /src/selinux/libsepol/src/util.c:109,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/util.c:111,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/util.c:114,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/util.c:119,1
    - Dst: free
      Src: /src/selinux/libsepol/src/util.c:133,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - policydbp
    - tclass
    - av
    argTypes:
    - policydb_t*
    - sepol_security_class_t
    - sepol_access_vector_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 135
    functionName: sepol_av_to_string
    functionSourceFile: /src/selinux/libsepol/src/util.c
    functionUses: 4
    functionsReached:
    - hashtab_map
    - snprintf
    - __builtin_mul_overflow
    - UINT32_C
    - realloc
    - free
    linkageType: ''
    returnType: char
    signature: "char *sepol_av_to_string(const policydb_t *policydbp,\n\t\t\t sepol_security_class_t
      tclass,\n\t\t\t sepol_access_vector_t av)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: next_bit_in_range
    functionSourceFile: /src/selinux/libsepol/src/util.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: next_bit_in_range(i, p)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_mul_overflow
      Src: /src/selinux/libsepol/src/util.c:157,1
    - Dst: realloc
      Src: /src/selinux/libsepol/src/util.c:159,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/util.c:167,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/util.c:169,1
    - Dst: xperm_test
      Src: /src/selinux/libsepol/src/util.c:178,1
    - Dst: next_bit_in_range
      Src: /src/selinux/libsepol/src/util.c:181,1
    - Dst: next_bit_in_range
      Src: /src/selinux/libsepol/src/util.c:184,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/util.c:196,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/util.c:199,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/util.c:205,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/util.c:209,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/util.c:225,1
    - Dst: free
      Src: /src/selinux/libsepol/src/util.c:234,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 77
    argCount: 1
    argNames:
    - xperms
    argTypes:
    - avtab_extended_perms_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 236
    functionName: sepol_extended_perms_to_string
    functionSourceFile: /src/selinux/libsepol/src/util.c
    functionUses: 0
    functionsReached:
    - snprintf
    - __builtin_mul_overflow
    - realloc
    - free
    - next_bit_in_range
    - xperm_test
    linkageType: ''
    returnType: char
    signature: char *sepol_extended_perms_to_string(const avtab_extended_perms_t *xperms)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/selinux/libsepol/src/util.c:251,1
    - Dst: isspace
      Src: /src/selinux/libsepol/src/util.c:252,1
    - Dst: isspace
      Src: /src/selinux/libsepol/src/util.c:255,1
    - Dst: strndup
      Src: /src/selinux/libsepol/src/util.c:271,1
    - Dst: isspace
      Src: /src/selinux/libsepol/src/util.c:277,1
    - Dst: isspace
      Src: /src/selinux/libsepol/src/util.c:278,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 4
    argNames:
    - delim
    - str
    - ptr
    - len
    argTypes:
    - char
    - char**
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 283
    functionName: tokenize_str
    functionSourceFile: /src/selinux/libsepol/src/util.c
    functionUses: 0
    functionsReached:
    - isspace
    - strndup
    linkageType: ''
    returnType: int
    signature: "int tokenize_str(char delim, char **str, const char **ptr,\n\t\t\t
      \      size_t *len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/selinux/libsepol/src/util.c:310,1
    - Dst: va_arg
      Src: /src/selinux/libsepol/src/util.c:313,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/util.c:317,1
    - Dst: tokenize_str
      Src: /src/selinux/libsepol/src/util.c:325,1
    - Dst: va_end
      Src: /src/selinux/libsepol/src/util.c:332,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - line_buf
    - delim
    - num_args
    argTypes:
    - char*
    - char
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 334
    functionName: tokenize
    functionSourceFile: /src/selinux/libsepol/src/util.c
    functionUses: 5
    functionsReached:
    - va_end
    - va_arg
    - tokenize_str
    - va_start
    - strdup
    linkageType: ''
    returnType: int
    signature: int tokenize(const char *line_buf, char delim, int num_args, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/iface_record.c:29,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/iface_record.c:32,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/iface_record.c:36,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/iface_record.c:38,1
    - Dst: free
      Src: /src/selinux/libsepol/src/iface_record.c:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - handle
    - name
    - key_ptr
    argTypes:
    - sepol_handle_t*
    - char*
    - sepol_iface_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 45
    functionName: sepol_iface_key_create
    functionSourceFile: /src/selinux/libsepol/src/iface_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - free
    - malloc
    - strdup
    linkageType: ''
    returnType: int
    signature: "int sepol_iface_key_create(sepol_handle_t *handle, const char *name,\n\t\t\t
      \  sepol_iface_key_t **key_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - name
    argTypes:
    - sepol_iface_key_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: sepol_iface_key_unpack
    functionSourceFile: /src/selinux/libsepol/src/iface_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sepol_iface_key_unpack(const sepol_iface_key_t *key, const char
      **name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_iface_key_create
      Src: /src/selinux/libsepol/src/iface_record.c:55,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/iface_record.c:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - handle
    - iface
    - key_ptr
    argTypes:
    - sepol_handle_t*
    - sepol_iface_t*
    - sepol_iface_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 64
    functionName: sepol_iface_key_extract
    functionSourceFile: /src/selinux/libsepol/src/iface_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_iface_key_create
    linkageType: ''
    returnType: int
    signature: "int sepol_iface_key_extract(sepol_handle_t *handle, const sepol_iface_t
      *iface,\n\t\t\t    sepol_iface_key_t **key_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/iface_record.c:70,1
    - Dst: free
      Src: /src/selinux/libsepol/src/iface_record.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - sepol_iface_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: sepol_iface_key_free
    functionSourceFile: /src/selinux/libsepol/src/iface_record.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void sepol_iface_key_free(sepol_iface_key_t *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/iface_record.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - iface
    - key
    argTypes:
    - sepol_iface_t*
    - sepol_iface_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: sepol_iface_compare
    functionSourceFile: /src/selinux/libsepol/src/iface_record.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int sepol_iface_compare(const sepol_iface_t *iface,\n\t\t\tconst sepol_iface_key_t
      *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/iface_record.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - iface
    - iface2
    argTypes:
    - sepol_iface_t*
    - sepol_iface_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: sepol_iface_compare2
    functionSourceFile: /src/selinux/libsepol/src/iface_record.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int sepol_iface_compare2(const sepol_iface_t *iface,\n\t\t\t const
      sepol_iface_t *iface2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/iface_record.c:90,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/iface_record.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - handle
    - iface
    argTypes:
    - sepol_handle_t*
    - sepol_iface_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: sepol_iface_create
    functionSourceFile: /src/selinux/libsepol/src/iface_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - malloc
    linkageType: ''
    returnType: int
    signature: int sepol_iface_create(sepol_handle_t *handle, sepol_iface_t **iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iface
    argTypes:
    - sepol_iface_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: sepol_iface_get_name
    functionSourceFile: /src/selinux/libsepol/src/iface_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *sepol_iface_get_name(const sepol_iface_t *iface)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libsepol/src/iface_record.c:115,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/iface_record.c:117,1
    - Dst: free
      Src: /src/selinux/libsepol/src/iface_record.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - iface
    - name
    argTypes:
    - sepol_handle_t*
    - sepol_iface_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 124
    functionName: sepol_iface_set_name
    functionSourceFile: /src/selinux/libsepol/src/iface_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int sepol_iface_set_name(sepol_handle_t *handle, sepol_iface_t *iface,\n\t\t\t
      const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iface
    argTypes:
    - sepol_iface_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: sepol_iface_get_ifcon
    functionSourceFile: /src/selinux/libsepol/src/iface_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sepol_context_t
    signature: sepol_context_t *sepol_iface_get_ifcon(const sepol_iface_t *iface)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_clone
      Src: /src/selinux/libsepol/src/iface_record.c:137,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/iface_record.c:138,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/iface_record.c:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - iface
    - con
    argTypes:
    - sepol_handle_t*
    - sepol_iface_t*
    - sepol_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 145
    functionName: sepol_iface_set_ifcon
    functionSourceFile: /src/selinux/libsepol/src/iface_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_context_clone
    - sepol_context_free
    linkageType: ''
    returnType: int
    signature: "int sepol_iface_set_ifcon(sepol_handle_t *handle, sepol_iface_t *iface,\n\t\t\t
      \ sepol_context_t *con)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iface
    argTypes:
    - sepol_iface_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: sepol_iface_get_msgcon
    functionSourceFile: /src/selinux/libsepol/src/iface_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sepol_context_t
    signature: sepol_context_t *sepol_iface_get_msgcon(const sepol_iface_t *iface)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_clone
      Src: /src/selinux/libsepol/src/iface_record.c:157,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/iface_record.c:158,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/iface_record.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - iface
    - con
    argTypes:
    - sepol_handle_t*
    - sepol_iface_t*
    - sepol_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 165
    functionName: sepol_iface_set_msgcon
    functionSourceFile: /src/selinux/libsepol/src/iface_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_context_clone
    - sepol_context_free
    linkageType: ''
    returnType: int
    signature: "int sepol_iface_set_msgcon(sepol_handle_t *handle, sepol_iface_t *iface,\n\t\t\t
      \  sepol_context_t *con)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sepol_iface_create
      Src: /src/selinux/libsepol/src/iface_record.c:172,1
    - Dst: sepol_iface_set_name
      Src: /src/selinux/libsepol/src/iface_record.c:175,1
    - Dst: sepol_context_clone
      Src: /src/selinux/libsepol/src/iface_record.c:179,1
    - Dst: sepol_context_clone
      Src: /src/selinux/libsepol/src/iface_record.c:184,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/iface_record.c:192,1
    - Dst: sepol_iface_free
      Src: /src/selinux/libsepol/src/iface_record.c:193,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 3
    argNames:
    - handle
    - iface
    - iface_ptr
    argTypes:
    - sepol_handle_t*
    - sepol_iface_t*
    - sepol_iface_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 195
    functionName: sepol_iface_clone
    functionSourceFile: /src/selinux/libsepol/src/iface_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_iface_free
    - sepol_context_clone
    - sepol_iface_set_name
    - sepol_iface_create
    linkageType: ''
    returnType: int
    signature: "int sepol_iface_clone(sepol_handle_t *handle, const sepol_iface_t
      *iface,\n\t\t      sepol_iface_t **iface_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/iface_record.c:203,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/iface_record.c:204,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/iface_record.c:205,1
    - Dst: free
      Src: /src/selinux/libsepol/src/iface_record.c:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - iface
    argTypes:
    - sepol_iface_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 207
    functionName: sepol_iface_free
    functionSourceFile: /src/selinux/libsepol/src/iface_record.c
    functionUses: 1
    functionsReached:
    - free
    - sepol_context_free
    linkageType: ''
    returnType: void
    signature: void sepol_iface_free(sepol_iface_t *iface)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fseek
      Src: /src/selinux/libsepol/src/module.c:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - fp
    - offset
    argTypes:
    - struct policy_file*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 61
    functionName: policy_file_seek
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 0
    functionsReached:
    - fseek
    linkageType: ''
    returnType: int
    signature: int policy_file_seek(struct policy_file *fp, size_t offset)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ftell
      Src: /src/selinux/libsepol/src/module.c:69,1
    - Dst: fseek
      Src: /src/selinux/libsepol/src/module.c:72,1
    - Dst: ftell
      Src: /src/selinux/libsepol/src/module.c:75,1
    - Dst: fseek
      Src: /src/selinux/libsepol/src/module.c:78,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - fp
    - out
    argTypes:
    - struct policy_file*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 91
    functionName: policy_file_length
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 0
    functionsReached:
    - fseek
    - ftell
    linkageType: ''
    returnType: int
    signature: int policy_file_length(struct policy_file *fp, size_t *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/module.c:95,1
    - Dst: sepol_policydb_create
      Src: /src/selinux/libsepol/src/module.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - sepol_module_package_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: module_package_init
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 0
    functionsReached:
    - sepol_policydb_create
    - memset
    linkageType: ''
    returnType: int
    signature: int module_package_init(sepol_module_package_t *p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/module.c:106,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/module.c:110,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/module.c:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - field
    - data
    - len
    argTypes:
    - char**
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 116
    functionName: set_char
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: int set_char(char **field, char *data, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/module.c:122,1
    - Dst: module_package_init
      Src: /src/selinux/libsepol/src/module.c:126,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - p
    argTypes:
    - sepol_module_package_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 133
    functionName: sepol_module_package_create
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 1
    functionsReached:
    - module_package_init
    - free
    - calloc
    linkageType: ''
    returnType: int
    signature: int sepol_module_package_create(sepol_module_package_t **p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_policydb_free
      Src: /src/selinux/libsepol/src/module.c:143,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module.c:144,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module.c:145,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module.c:146,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module.c:147,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module.c:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - p
    argTypes:
    - sepol_module_package_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 149
    functionName: sepol_module_package_free
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 1
    functionsReached:
    - free
    - sepol_policydb_free
    linkageType: ''
    returnType: void
    signature: void sepol_module_package_free(sepol_module_package_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sepol_module_package_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: sepol_module_package_get_file_contexts
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *sepol_module_package_get_file_contexts(sepol_module_package_t
      *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sepol_module_package_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    functionName: sepol_module_package_get_file_contexts_len
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t sepol_module_package_get_file_contexts_len(sepol_module_package_t
      *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sepol_module_package_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: sepol_module_package_get_seusers
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *sepol_module_package_get_seusers(sepol_module_package_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sepol_module_package_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 169
    functionName: sepol_module_package_get_seusers_len
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t sepol_module_package_get_seusers_len(sepol_module_package_t
      *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sepol_module_package_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: sepol_module_package_get_user_extra
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *sepol_module_package_get_user_extra(sepol_module_package_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sepol_module_package_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 179
    functionName: sepol_module_package_get_user_extra_len
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t sepol_module_package_get_user_extra_len(sepol_module_package_t
      *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sepol_module_package_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: sepol_module_package_get_netfilter_contexts
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *sepol_module_package_get_netfilter_contexts(sepol_module_package_t
      *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sepol_module_package_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 190
    functionName: sepol_module_package_get_netfilter_contexts_len
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t sepol_module_package_get_netfilter_contexts_len(sepol_module_package_t
      *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_char
      Src: /src/selinux/libsepol/src/module.c:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - data
    - len
    argTypes:
    - sepol_module_package_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 200
    functionName: sepol_module_package_set_file_contexts
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 0
    functionsReached:
    - set_char
    linkageType: ''
    returnType: int
    signature: "int sepol_module_package_set_file_contexts(sepol_module_package_t
      *p,\n\t\t\t\t\t   char *data, size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_char
      Src: /src/selinux/libsepol/src/module.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - data
    - len
    argTypes:
    - sepol_module_package_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 210
    functionName: sepol_module_package_set_seusers
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 0
    functionsReached:
    - set_char
    linkageType: ''
    returnType: int
    signature: "int sepol_module_package_set_seusers(sepol_module_package_t *p, char
      *data,\n\t\t\t\t     size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_char
      Src: /src/selinux/libsepol/src/module.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - data
    - len
    argTypes:
    - sepol_module_package_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 220
    functionName: sepol_module_package_set_user_extra
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 0
    functionsReached:
    - set_char
    linkageType: ''
    returnType: int
    signature: "int sepol_module_package_set_user_extra(sepol_module_package_t *p,
      char *data,\n\t\t\t\t\tsize_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_char
      Src: /src/selinux/libsepol/src/module.c:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - p
    - data
    - len
    argTypes:
    - sepol_module_package_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 230
    functionName: sepol_module_package_set_netfilter_contexts
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 0
    functionsReached:
    - set_char
    linkageType: ''
    returnType: int
    signature: "int sepol_module_package_set_netfilter_contexts(sepol_module_package_t
      *p,\n\t\t\t\t\t\tchar *data, size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sepol_module_package_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: sepol_module_package_get_policy
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: sepol_policydb_t
    signature: sepol_policydb_t *sepol_module_package_get_policy(sepol_module_package_t
      *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_add_overflow
      Src: /src/selinux/libsepol/src/module.c:252,1
    - Dst: realloc
      Src: /src/selinux/libsepol/src/module.c:257,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/module.c:262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - base
    - modules
    - num_modules
    argTypes:
    - sepol_module_package_t*
    - sepol_module_package_t**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 268
    functionName: link_file_contexts
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 0
    functionsReached:
    - __builtin_add_overflow
    - memcpy
    - realloc
    linkageType: ''
    returnType: int
    signature: "int link_file_contexts(sepol_module_package_t *base,\n\t\t\t      sepol_module_package_t
      **modules, int num_modules)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_add_overflow
      Src: /src/selinux/libsepol/src/module.c:286,1
    - Dst: realloc
      Src: /src/selinux/libsepol/src/module.c:292,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/module.c:299,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - base
    - modules
    - num_modules
    argTypes:
    - sepol_module_package_t*
    - sepol_module_package_t**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 308
    functionName: link_netfilter_contexts
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 0
    functionsReached:
    - __builtin_add_overflow
    - memcpy
    - realloc
    linkageType: ''
    returnType: int
    signature: "int link_netfilter_contexts(sepol_module_package_t *base,\n\t\t\t\t
      \  sepol_module_package_t **modules,\n\t\t\t\t   int num_modules)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/module.c:319,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:320,1
    - Dst: link_modules
      Src: /src/selinux/libsepol/src/module.c:327,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module.c:329,1
    - Dst: link_file_contexts
      Src: /src/selinux/libsepol/src/module.c:336,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:337,1
    - Dst: link_netfilter_contexts
      Src: /src/selinux/libsepol/src/module.c:341,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:342,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - handle
    - base
    - modules
    - num_modules
    - verbose
    argTypes:
    - sepol_handle_t*
    - sepol_module_package_t*
    - sepol_module_package_t**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 312
    functionDepth: 10
    functionLinenumber: 312
    functionLinenumberEnd: 347
    functionName: sepol_link_packages
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 0
    functionsReached:
    - ERR
    - link_file_contexts
    - link_netfilter_contexts
    - free
    - calloc
    - link_modules
    linkageType: ''
    returnType: int
    signature: "int sepol_link_packages(sepol_handle_t *handle, sepol_module_package_t
      *base,\n\t\t\tsepol_module_package_t **modules, int num_modules,\n\t\t\tint
      verbose)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/module.c:364,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - buf
    - file
    - bytes
    argTypes:
    - char*
    - struct policy_file*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 371
    functionName: read_helper
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 0
    functionsReached:
    - next_entry
    linkageType: ''
    returnType: int
    signature: int read_helper(char *buf, struct policy_file *file, uint32_t bytes)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/module.c:386,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:388,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/module.c:392,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:394,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/module.c:397,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:398,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/module.c:400,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/module.c:404,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/module.c:405,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:408,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/module.c:413,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:415,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module.c:419,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/module.c:420,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:422,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/module.c:425,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:427,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/module.c:432,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:434,1
    - Dst: policy_file_length
      Src: /src/selinux/libsepol/src/module.c:442,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:447,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module.c:454,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module.c:458,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module.c:459,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 69
    argCount: 4
    argNames:
    - mod
    - file
    - offsets
    - sections
    argTypes:
    - sepol_module_package_t*
    - struct policy_file*
    - size_t**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 461
    functionName: module_package_read_offsets
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 0
    functionsReached:
    - ERR
    - le32_to_cpu
    - malloc
    - free
    - calloc
    - policy_file_length
    - next_entry
    linkageType: ''
    returnType: int
    signature: "int module_package_read_offsets(sepol_module_package_t *mod,\n\t\t\t\t
      \      struct policy_file *file,\n\t\t\t\t       size_t **offsets, uint32_t
      *sections)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: module_package_read_offsets
      Src: /src/selinux/libsepol/src/module.c:479,1
    - Dst: policy_file_seek
      Src: /src/selinux/libsepol/src/module.c:485,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:486,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:496,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/module.c:504,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:506,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/module.c:512,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:515,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/module.c:523,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:525,1
    - Dst: read_helper
      Src: /src/selinux/libsepol/src/module.c:528,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:530,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module.c:533,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:541,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/module.c:548,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:550,1
    - Dst: read_helper
      Src: /src/selinux/libsepol/src/module.c:553,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:554,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module.c:556,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:564,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/module.c:571,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:573,1
    - Dst: read_helper
      Src: /src/selinux/libsepol/src/module.c:576,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:578,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module.c:581,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:589,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/module.c:597,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:599,1
    - Dst: read_helper
      Src: /src/selinux/libsepol/src/module.c:602,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:604,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module.c:607,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:615,1
    - Dst: policy_file_seek
      Src: /src/selinux/libsepol/src/module.c:622,1
    - Dst: policydb_read
      Src: /src/selinux/libsepol/src/module.c:625,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:627,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:636,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/module.c:638,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:644,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module.c:648,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module.c:652,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 143
    argCount: 3
    argNames:
    - mod
    - spf
    - verbose
    argTypes:
    - sepol_module_package_t*
    - struct sepol_policy_file*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 470
    functionDepth: 8
    functionLinenumber: 470
    functionLinenumberEnd: 654
    functionName: sepol_module_package_read
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 1
    functionsReached:
    - policydb_read
    - ERR
    - read_helper
    - le32_to_cpu
    - malloc
    - module_package_read_offsets
    - policy_file_seek
    - free
    - next_entry
    linkageType: ''
    returnType: int
    signature: "int sepol_module_package_read(sepol_module_package_t *mod,\n\t\t\t
      \     struct sepol_policy_file *spf, int verbose)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: sepol_module_package_create
      Src: /src/selinux/libsepol/src/module.c:667,1
    - Dst: module_package_read_offsets
      Src: /src/selinux/libsepol/src/module.c:670,1
    - Dst: policy_file_seek
      Src: /src/selinux/libsepol/src/module.c:675,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:676,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:686,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/module.c:693,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:695,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/module.c:701,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:705,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:715,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:725,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:735,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:744,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/module.c:749,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/module.c:750,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:751,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/module.c:758,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:760,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/module.c:764,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module.c:765,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:767,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/module.c:773,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:775,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/module.c:781,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:789,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/module.c:796,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:798,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/module.c:804,1
    - Dst: str_read
      Src: /src/selinux/libsepol/src/module.c:805,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:806,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/module.c:812,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:814,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/module.c:819,1
    - Dst: str_read
      Src: /src/selinux/libsepol/src/module.c:820,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:821,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:834,1
    - Dst: sepol_module_package_free
      Src: /src/selinux/libsepol/src/module.c:838,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module.c:839,1
    - Dst: sepol_module_package_free
      Src: /src/selinux/libsepol/src/module.c:843,1
    - Dst: free
      Src: /src/selinux/libsepol/src/module.c:844,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 144
    argCount: 4
    argNames:
    - spf
    - type
    - name
    - version
    argTypes:
    - struct sepol_policy_file*
    - int*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 656
    functionDepth: 3
    functionLinenumber: 656
    functionLinenumberEnd: 846
    functionName: sepol_module_package_info
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 0
    functionsReached:
    - ERR
    - le32_to_cpu
    - malloc
    - module_package_read_offsets
    - sepol_module_package_create
    - policy_file_seek
    - str_read
    - free
    - sepol_module_package_free
    - next_entry
    - strlen
    linkageType: ''
    returnType: int
    signature: "int sepol_module_package_info(struct sepol_policy_file *spf, int *type,\n\t\t\t
      \     char **name, char **version)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/module.c:859,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - data
    - len
    - file
    argTypes:
    - char*
    - size_t
    - struct policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 866
    functionName: write_helper
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 0
    functionsReached:
    - put_entry
    linkageType: ''
    returnType: int
    signature: int write_helper(char *data, size_t len, struct policy_file *file)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: policy_file_init
      Src: /src/selinux/libsepol/src/module.c:878,1
    - Dst: policydb_write
      Src: /src/selinux/libsepol/src/module.c:881,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/module.c:896,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/module.c:913,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/module.c:914,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/module.c:915,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/module.c:916,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/module.c:921,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/module.c:926,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/module.c:933,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/module.c:939,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/module.c:945,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/module.c:949,1
    - Dst: policydb_write
      Src: /src/selinux/libsepol/src/module.c:954,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/module.c:958,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/module.c:959,1
    - Dst: write_helper
      Src: /src/selinux/libsepol/src/module.c:961,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/module.c:965,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/module.c:966,1
    - Dst: write_helper
      Src: /src/selinux/libsepol/src/module.c:968,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/module.c:972,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/module.c:973,1
    - Dst: write_helper
      Src: /src/selinux/libsepol/src/module.c:975,1
    - Dst: cpu_to_le32
      Src: /src/selinux/libsepol/src/module.c:979,1
    - Dst: put_entry
      Src: /src/selinux/libsepol/src/module.c:980,1
    - Dst: write_helper
      Src: /src/selinux/libsepol/src/module.c:982,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 91
    argCount: 2
    argNames:
    - p
    - spf
    argTypes:
    - sepol_module_package_t*
    - struct sepol_policy_file*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 868
    functionDepth: 8
    functionLinenumber: 868
    functionLinenumberEnd: 987
    functionName: sepol_module_package_write
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 0
    functionsReached:
    - ERR
    - policy_file_init
    - policydb_write
    - write_helper
    - put_entry
    - cpu_to_le32
    linkageType: ''
    returnType: int
    signature: "int sepol_module_package_write(sepol_module_package_t *p,\n\t\t\t
      \      struct sepol_policy_file *spf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: link_modules
      Src: /src/selinux/libsepol/src/module.c:992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - handle
    - base
    - modules
    - len
    - verbose
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - sepol_policydb_t**
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 989
    functionDepth: 10
    functionLinenumber: 989
    functionLinenumberEnd: 994
    functionName: sepol_link_modules
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 0
    functionsReached:
    - link_modules
    linkageType: ''
    returnType: int
    signature: "int sepol_link_modules(sepol_handle_t *handle, sepol_policydb_t *base,\n\t\t
      \      sepol_policydb_t **modules, size_t len, int verbose)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expand_module
      Src: /src/selinux/libsepol/src/module.c:999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - handle
    - base
    - out
    - verbose
    - check
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - sepol_policydb_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1000
    functionName: sepol_expand_module
    functionSourceFile: /src/selinux/libsepol/src/module.c
    functionUses: 0
    functionsReached:
    - expand_module
    linkageType: ''
    returnType: int
    signature: "int sepol_expand_module(sepol_handle_t *handle, sepol_policydb_t *base,\n\t\t\tsepol_policydb_t
      *out, int verbose, int check)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: avtab_insert
      Src: /src/selinux/libsepol/src/hierarchy.c:45,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/hierarchy.c:48,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/hierarchy.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - handle
    - avtab
    - avtab_key
    - datum
    argTypes:
    - sepol_handle_t*
    - avtab_t*
    - avtab_key_t*
    - avtab_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 53
    functionName: bounds_insert_helper
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached:
    - ERR
    - avtab_insert
    linkageType: ''
    returnType: int
    signature: "int bounds_insert_helper(sepol_handle_t *handle, avtab_t *avtab,\n\t\t\t\tavtab_key_t
      *avtab_key, avtab_datum_t *datum)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: avtab_search
      Src: /src/selinux/libsepol/src/hierarchy.c:60,1
    - Dst: bounds_insert_helper
      Src: /src/selinux/libsepol/src/hierarchy.c:63,1
    - Dst: avtab_search
      Src: /src/selinux/libsepol/src/hierarchy.c:75,1
    - Dst: avtab_search
      Src: /src/selinux/libsepol/src/hierarchy.c:79,1
    - Dst: bounds_insert_helper
      Src: /src/selinux/libsepol/src/hierarchy.c:83,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 6
    argNames:
    - handle
    - avtab
    - global
    - other
    - avtab_key
    - datum
    argTypes:
    - sepol_handle_t*
    - avtab_t*
    - avtab_t*
    - avtab_t*
    - avtab_key_t*
    - avtab_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 96
    functionName: bounds_insert_rule
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached:
    - bounds_insert_helper
    - avtab_search
    linkageType: ''
    returnType: int
    signature: "int bounds_insert_rule(sepol_handle_t *handle, avtab_t *avtab,\n\t\t\t
      \     avtab_t *global, avtab_t *other,\n\t\t\t      avtab_key_t *avtab_key,
      avtab_datum_t *datum)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/hierarchy.c:113,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/hierarchy.c:115,1
    - Dst: bounds_insert_rule
      Src: /src/selinux/libsepol/src/hierarchy.c:118,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 10
    argNames:
    - handle
    - p
    - avtab
    - global
    - other
    - parent
    - src
    - tgt
    - class
    - data
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - avtab_t*
    - avtab_t*
    - avtab_t*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 127
    functionName: bounds_expand_rule
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached:
    - ebitmap_for_each_positive_bit
    - bounds_insert_rule
    - ebitmap_get_bit
    linkageType: ''
    returnType: int
    signature: "int bounds_expand_rule(sepol_handle_t *handle, policydb_t *p,\n\t\t\t
      \     avtab_t *avtab, avtab_t *global, avtab_t *other,\n\t\t\t      uint32_t
      parent, uint32_t src, uint32_t tgt,\n\t\t\t      uint32_t class, uint32_t data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bounds_expand_rule
      Src: /src/selinux/libsepol/src/hierarchy.c:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 7
    argNames:
    - handle
    - p
    - cur
    - avtab
    - global
    - other
    - parent
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - cond_av_list_t*
    - avtab_t*
    - avtab_t*
    - avtab_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 129
    functionDepth: 4
    functionLinenumber: 129
    functionLinenumberEnd: 147
    functionName: bounds_expand_cond_rules
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached:
    - bounds_expand_rule
    linkageType: ''
    returnType: int
    signature: "int bounds_expand_cond_rules(sepol_handle_t *handle, policydb_t *p,\n\t\t\t\t
      \   cond_av_list_t *cur, avtab_t *avtab,\n\t\t\t\t    avtab_t *global, avtab_t
      *other,\n\t\t\t\t    uint32_t parent)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bounds_expand_rule
      Src: /src/selinux/libsepol/src/hierarchy.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - avtab_key_t*
    - avtab_datum_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 156
    functionDepth: 4
    functionLinenumber: 156
    functionLinenumberEnd: 167
    functionName: bounds_expand_rule_callback
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached:
    - bounds_expand_rule
    linkageType: ''
    returnType: int
    signature: "int bounds_expand_rule_callback(avtab_key_t *k, avtab_datum_t *d,\n\t\t\t\t
      \      void *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avtab_destroy
      Src: /src/selinux/libsepol/src/hierarchy.c:182,1
    - Dst: avtab_destroy
      Src: /src/selinux/libsepol/src/hierarchy.c:183,1
    - Dst: free
      Src: /src/selinux/libsepol/src/hierarchy.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - cur
    argTypes:
    - struct bounds_cond_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 187
    functionName: bounds_destroy_cond_info
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached:
    - avtab_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void bounds_destroy_cond_info(struct bounds_cond_info *cur)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: avtab_init
      Src: /src/selinux/libsepol/src/hierarchy.c:198,1
    - Dst: avtab_alloc
      Src: /src/selinux/libsepol/src/hierarchy.c:199,1
    - Dst: avtab_map
      Src: /src/selinux/libsepol/src/hierarchy.c:207,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/hierarchy.c:214,1
    - Dst: avtab_init
      Src: /src/selinux/libsepol/src/hierarchy.c:217,1
    - Dst: avtab_init
      Src: /src/selinux/libsepol/src/hierarchy.c:218,1
    - Dst: avtab_alloc
      Src: /src/selinux/libsepol/src/hierarchy.c:223,1
    - Dst: bounds_expand_cond_rules
      Src: /src/selinux/libsepol/src/hierarchy.c:226,1
    - Dst: avtab_alloc
      Src: /src/selinux/libsepol/src/hierarchy.c:233,1
    - Dst: bounds_expand_cond_rules
      Src: /src/selinux/libsepol/src/hierarchy.c:236,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/hierarchy.c:247,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/hierarchy.c:250,1
    - Dst: avtab_destroy
      Src: /src/selinux/libsepol/src/hierarchy.c:251,1
    - Dst: bounds_destroy_cond_info
      Src: /src/selinux/libsepol/src/hierarchy.c:252,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 5
    argNames:
    - handle
    - p
    - global_avtab
    - cond_info
    - parent
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - avtab_t*
    - struct bounds_cond_info**
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 189
    functionDepth: 5
    functionLinenumber: 189
    functionLinenumberEnd: 255
    functionName: bounds_expand_parent_rules
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached:
    - ERR
    - avtab_init
    - avtab_destroy
    - avtab_map
    - malloc
    - bounds_expand_cond_rules
    - avtab_alloc
    - bounds_destroy_cond_info
    linkageType: ''
    returnType: int
    signature: "int bounds_expand_parent_rules(sepol_handle_t *handle, policydb_t
      *p,\n\t\t\t\t      avtab_t *global_avtab,\n\t\t\t\t      struct bounds_cond_info
      **cond_info,\n\t\t\t\t      uint32_t parent)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: avtab_search
      Src: /src/selinux/libsepol/src/hierarchy.c:260,1
    - Dst: avtab_search
      Src: /src/selinux/libsepol/src/hierarchy.c:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - global_avtab
    - cur_avtab
    - avtab_key
    - data
    argTypes:
    - avtab_t*
    - avtab_t*
    - avtab_key_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 270
    functionName: bounds_not_covered
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached:
    - avtab_search
    linkageType: ''
    returnType: int
    signature: "int bounds_not_covered(avtab_t *global_avtab, avtab_t *cur_avtab,\n\t\t\t
      \     avtab_key_t *avtab_key, uint32_t data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/hierarchy.c:275,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/hierarchy.c:277,1
    - Dst: key::key
      Src: /src/selinux/libsepol/src/hierarchy.c:281,1
    - Dst: key::key
      Src: /src/selinux/libsepol/src/hierarchy.c:282,1
    - Dst: key::key
      Src: /src/selinux/libsepol/src/hierarchy.c:283,1
    - Dst: datum::datum
      Src: /src/selinux/libsepol/src/hierarchy.c:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 6
    argNames:
    - handle
    - src
    - tgt
    - class
    - data
    - bad
    argTypes:
    - sepol_handle_t*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - avtab_ptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 289
    functionName: bounds_add_bad
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached:
    - key::key
    - ERR
    - datum::datum
    - malloc
    linkageType: ''
    returnType: int
    signature: "int bounds_add_bad(sepol_handle_t *handle, uint32_t src, uint32_t
      tgt,\n\t\t\t  uint32_t class, uint32_t data, avtab_ptr_t *bad)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/hierarchy.c:307,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/hierarchy.c:309,1
    - Dst: bounds_not_covered
      Src: /src/selinux/libsepol/src/hierarchy.c:314,1
    - Dst: bounds_not_covered
      Src: /src/selinux/libsepol/src/hierarchy.c:318,1
    - Dst: bounds_add_bad
      Src: /src/selinux/libsepol/src/hierarchy.c:323,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 12
    argNames:
    - handle
    - p
    - global_avtab
    - cur_avtab
    - child
    - parent
    - src
    - tgt
    - class
    - data
    - bad
    - numbad
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - avtab_t*
    - avtab_t*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - avtab_ptr_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 333
    functionName: bounds_check_rule
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached:
    - ebitmap_for_each_positive_bit
    - bounds_add_bad
    - bounds_not_covered
    - ebitmap_get_bit
    linkageType: ''
    returnType: int
    signature: "int bounds_check_rule(sepol_handle_t *handle, policydb_t *p,\n\t\t\t
      \    avtab_t *global_avtab, avtab_t *cur_avtab,\n\t\t\t     uint32_t child,
      uint32_t parent, uint32_t src,\n\t\t\t     uint32_t tgt, uint32_t class, uint32_t
      data,\n\t\t\t     avtab_ptr_t *bad, int *numbad)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bounds_check_rule
      Src: /src/selinux/libsepol/src/hierarchy.c:350,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 9
    argNames:
    - handle
    - p
    - global_avtab
    - cond_avtab
    - rules
    - child
    - parent
    - bad
    - numbad
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - avtab_t*
    - avtab_t*
    - cond_av_list_t*
    - uint32_t
    - uint32_t
    - avtab_ptr_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 335
    functionDepth: 3
    functionLinenumber: 335
    functionLinenumberEnd: 360
    functionName: bounds_check_cond_rules
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached:
    - bounds_check_rule
    linkageType: ''
    returnType: int
    signature: "int bounds_check_cond_rules(sepol_handle_t *handle, policydb_t *p,\n\t\t\t\t
      \  avtab_t *global_avtab, avtab_t *cond_avtab,\n\t\t\t\t   cond_av_list_t *rules,
      uint32_t child,\n\t\t\t\t   uint32_t parent, avtab_ptr_t *bad,\n\t\t\t\t   int
      *numbad)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bounds_check_rule
      Src: /src/selinux/libsepol/src/hierarchy.c:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - avtab_key_t*
    - avtab_datum_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 383
    functionName: bounds_check_rule_callback
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached:
    - bounds_check_rule
    linkageType: ''
    returnType: int
    signature: "int bounds_check_rule_callback(avtab_key_t *k, avtab_datum_t *d,\n\t\t\t\t
      \     void *args)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: avtab_map
      Src: /src/selinux/libsepol/src/hierarchy.c:402,1
    - Dst: bounds_check_cond_rules
      Src: /src/selinux/libsepol/src/hierarchy.c:408,1
    - Dst: bounds_check_cond_rules
      Src: /src/selinux/libsepol/src/hierarchy.c:415,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 8
    argNames:
    - handle
    - p
    - global_avtab
    - cond_info
    - child
    - parent
    - bad
    - numbad
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - avtab_t*
    - struct bounds_cond_info*
    - uint32_t
    - uint32_t
    - avtab_ptr_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 385
    functionDepth: 4
    functionLinenumber: 385
    functionLinenumberEnd: 428
    functionName: bounds_check_child_rules
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached:
    - bounds_check_cond_rules
    - avtab_map
    linkageType: ''
    returnType: int
    signature: "int bounds_check_child_rules(sepol_handle_t *handle, policydb_t *p,\n\t\t\t\t
      \   avtab_t *global_avtab,\n\t\t\t\t    struct bounds_cond_info *cond_info,\n\t\t\t\t
      \   uint32_t child, uint32_t parent,\n\t\t\t\t    avtab_ptr_t *bad, int *numbad)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bounds_expand_parent_rules
      Src: /src/selinux/libsepol/src/hierarchy.c:437,1
    - Dst: bounds_check_child_rules
      Src: /src/selinux/libsepol/src/hierarchy.c:442,1
    - Dst: bounds_destroy_cond_info
      Src: /src/selinux/libsepol/src/hierarchy.c:445,1
    - Dst: avtab_destroy
      Src: /src/selinux/libsepol/src/hierarchy.c:446,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - handle
    - p
    - child
    - parent
    - bad
    - numbad
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - uint32_t
    - uint32_t
    - avtab_ptr_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 430
    functionDepth: 6
    functionLinenumber: 430
    functionLinenumberEnd: 450
    functionName: bounds_check_type
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached:
    - avtab_destroy
    - bounds_check_child_rules
    - bounds_expand_parent_rules
    - bounds_destroy_cond_info
    linkageType: ''
    returnType: int
    signature: "int bounds_check_type(sepol_handle_t *handle, policydb_t *p, uint32_t
      child,\n\t\t      uint32_t parent, avtab_ptr_t *bad, int *numbad)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/hierarchy.c:461,1
    - Dst: sepol_av_to_string
      Src: /src/selinux/libsepol/src/hierarchy.c:466,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/hierarchy.c:469,1
    - Dst: free
      Src: /src/selinux/libsepol/src/hierarchy.c:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - handle
    - p
    - child
    - parent
    - cur
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - uint32_t
    - uint32_t
    - avtab_ptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 477
    functionName: bounds_report
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached:
    - ERR
    - free
    - sepol_av_to_string
    linkageType: ''
    returnType: void
    signature: "void bounds_report(sepol_handle_t *handle, policydb_t *p, uint32_t
      child,\n\t\t\t  uint32_t parent, avtab_ptr_t cur)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/hierarchy.c:486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cur
    argTypes:
    - avtab_ptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 488
    functionName: bounds_destroy_bad
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void bounds_destroy_bad(avtab_ptr_t cur)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: bounds_check_type
      Src: /src/selinux/libsepol/src/hierarchy.c:499,1
    - Dst: bounds_report
      Src: /src/selinux/libsepol/src/hierarchy.c:502,1
    - Dst: bounds_destroy_bad
      Src: /src/selinux/libsepol/src/hierarchy.c:504,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 490
    functionDepth: 7
    functionLinenumber: 490
    functionLinenumberEnd: 509
    functionName: bounds_check_type_callback
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached:
    - bounds_report
    - bounds_destroy_bad
    - bounds_check_type
    linkageType: ''
    returnType: int
    signature: "int bounds_check_type_callback(hashtab_key_t k __attribute__((unused)),\n\t\t\t\t
      \     hashtab_datum_t d, void *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/hierarchy.c:520,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/hierarchy.c:525,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - handle
    - p
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 532
    functionName: bounds_check_types
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_map
    linkageType: ''
    returnType: int
    signature: int bounds_check_types(sepol_handle_t *handle, policydb_t *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_contains
      Src: /src/selinux/libsepol/src/hierarchy.c:549,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/hierarchy.c:550,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 556
    functionName: bounds_check_role_callback
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached:
    - ebitmap_contains
    - ERR
    linkageType: ''
    returnType: int
    signature: "int bounds_check_role_callback(hashtab_key_t k, hashtab_datum_t d,\n\t\t\t\t
      \     void *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/hierarchy.c:566,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/hierarchy.c:569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - handle
    - p
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 575
    functionName: bounds_check_roles
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_map
    linkageType: ''
    returnType: int
    signature: int bounds_check_roles(sepol_handle_t *handle, policydb_t *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_contains
      Src: /src/selinux/libsepol/src/hierarchy.c:592,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/hierarchy.c:593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 599
    functionName: bounds_check_user_callback
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached:
    - ebitmap_contains
    - ERR
    linkageType: ''
    returnType: int
    signature: "int bounds_check_user_callback(hashtab_key_t k, hashtab_datum_t d,\n\t\t\t\t
      \     void *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/hierarchy.c:609,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/hierarchy.c:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - handle
    - p
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 618
    functionName: bounds_check_users
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_map
    linkageType: ''
    returnType: int
    signature: int bounds_check_users(sepol_handle_t *handle, policydb_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - prefix
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 640
    functionName: add_hierarchy_callback_template
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: add_hierarchy_callback_template(prefix)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/hierarchy.c:683,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/hierarchy.c:687,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/hierarchy.c:691,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/hierarchy.c:696,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - handle
    - p
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 703
    functionName: hierarchy_add_bounds
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_map
    linkageType: ''
    returnType: int
    signature: int hierarchy_add_bounds(sepol_handle_t *handle, policydb_t *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: hierarchy_add_bounds
      Src: /src/selinux/libsepol/src/hierarchy.c:710,1
    - Dst: bounds_check_users
      Src: /src/selinux/libsepol/src/hierarchy.c:714,1
    - Dst: bounds_check_roles
      Src: /src/selinux/libsepol/src/hierarchy.c:718,1
    - Dst: bounds_check_types
      Src: /src/selinux/libsepol/src/hierarchy.c:722,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - handle
    - p
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 735
    functionName: hierarchy_check_constraints
    functionSourceFile: /src/selinux/libsepol/src/hierarchy.c
    functionUses: 0
    functionsReached:
    - bounds_check_types
    - bounds_check_users
    - hierarchy_add_bounds
    - bounds_check_roles
    linkageType: ''
    returnType: int
    signature: int hierarchy_check_constraints(sepol_handle_t *handle, policydb_t
      *p)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/interfaces.c:18,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/interfaces.c:23,1
    - Dst: sepol_iface_get_name
      Src: /src/selinux/libsepol/src/interfaces.c:23,1
    - Dst: context_from_record
      Src: /src/selinux/libsepol/src/interfaces.c:28,1
    - Dst: sepol_iface_get_ifcon
      Src: /src/selinux/libsepol/src/interfaces.c:29,1
    - Dst: context_cpy
      Src: /src/selinux/libsepol/src/interfaces.c:31,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/interfaces.c:32,1
    - Dst: free
      Src: /src/selinux/libsepol/src/interfaces.c:33,1
    - Dst: context_from_record
      Src: /src/selinux/libsepol/src/interfaces.c:37,1
    - Dst: sepol_iface_get_msgcon
      Src: /src/selinux/libsepol/src/interfaces.c:38,1
    - Dst: context_cpy
      Src: /src/selinux/libsepol/src/interfaces.c:40,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/interfaces.c:41,1
    - Dst: free
      Src: /src/selinux/libsepol/src/interfaces.c:42,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/interfaces.c:49,1
    - Dst: free
      Src: /src/selinux/libsepol/src/interfaces.c:53,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/interfaces.c:54,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/interfaces.c:55,1
    - Dst: free
      Src: /src/selinux/libsepol/src/interfaces.c:56,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/interfaces.c:58,1
    - Dst: free
      Src: /src/selinux/libsepol/src/interfaces.c:59,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/interfaces.c:60,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 4
    argNames:
    - handle
    - policydb
    - iface
    - record
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - ocontext_t**
    - sepol_iface_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 12
    functionDepth: 3
    functionLinenumber: 12
    functionLinenumberEnd: 62
    functionName: iface_from_record
    functionSourceFile: /src/selinux/libsepol/src/interfaces.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_iface_get_msgcon
    - context_destroy
    - context_from_record
    - free
    - calloc
    - sepol_iface_get_name
    - context_cpy
    - sepol_iface_get_ifcon
    - strdup
    linkageType: ''
    returnType: int
    signature: "int iface_from_record(sepol_handle_t *handle, const policydb_t *policydb,\n\t\t\t
      \    ocontext_t **iface, const sepol_iface_t *record)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sepol_iface_create
      Src: /src/selinux/libsepol/src/interfaces.c:74,1
    - Dst: sepol_iface_set_name
      Src: /src/selinux/libsepol/src/interfaces.c:77,1
    - Dst: context_to_record
      Src: /src/selinux/libsepol/src/interfaces.c:80,1
    - Dst: sepol_iface_set_ifcon
      Src: /src/selinux/libsepol/src/interfaces.c:82,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/interfaces.c:84,1
    - Dst: context_to_record
      Src: /src/selinux/libsepol/src/interfaces.c:87,1
    - Dst: sepol_iface_set_msgcon
      Src: /src/selinux/libsepol/src/interfaces.c:89,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/interfaces.c:91,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/interfaces.c:98,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/interfaces.c:99,1
    - Dst: sepol_iface_free
      Src: /src/selinux/libsepol/src/interfaces.c:100,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 4
    argNames:
    - handle
    - policydb
    - iface
    - record
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - ocontext_t*
    - sepol_iface_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 102
    functionName: iface_to_record
    functionSourceFile: /src/selinux/libsepol/src/interfaces.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_iface_free
    - sepol_iface_set_ifcon
    - sepol_context_free
    - context_to_record
    - sepol_iface_set_name
    - sepol_iface_set_msgcon
    - sepol_iface_create
    linkageType: ''
    returnType: int
    signature: "int iface_to_record(sepol_handle_t *handle, const policydb_t *policydb,\n\t\t\t
      \  ocontext_t *iface, sepol_iface_t **record)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_iface_key_unpack
      Src: /src/selinux/libsepol/src/interfaces.c:113,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/interfaces.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - handle
    - p
    - key
    - response
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - sepol_iface_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 125
    functionName: sepol_iface_exists
    functionSourceFile: /src/selinux/libsepol/src/interfaces.c
    functionUses: 0
    functionsReached:
    - strcmp
    - sepol_iface_key_unpack
    linkageType: ''
    returnType: int
    signature: "int sepol_iface_exists(sepol_handle_t *handle __attribute__((unused)),\n\t\t
      \      const sepol_policydb_t *p, const sepol_iface_key_t *key,\n\t\t       int
      *response)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sepol_iface_key_unpack
      Src: /src/selinux/libsepol/src/interfaces.c:135,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/interfaces.c:139,1
    - Dst: iface_to_record
      Src: /src/selinux/libsepol/src/interfaces.c:140,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/interfaces.c:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - handle
    - p
    - key
    - response
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - sepol_iface_key_t*
    - sepol_iface_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 153
    functionName: sepol_iface_query
    functionSourceFile: /src/selinux/libsepol/src/interfaces.c
    functionUses: 0
    functionsReached:
    - ERR
    - iface_to_record
    - strcmp
    - sepol_iface_key_unpack
    linkageType: ''
    returnType: int
    signature: "int sepol_iface_query(sepol_handle_t *handle, const sepol_policydb_t
      *p,\n\t\t      const sepol_iface_key_t *key, sepol_iface_t **response)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sepol_iface_key_unpack
      Src: /src/selinux/libsepol/src/interfaces.c:163,1
    - Dst: iface_from_record
      Src: /src/selinux/libsepol/src/interfaces.c:165,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/interfaces.c:171,1
    - Dst: free
      Src: /src/selinux/libsepol/src/interfaces.c:178,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/interfaces.c:179,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/interfaces.c:180,1
    - Dst: free
      Src: /src/selinux/libsepol/src/interfaces.c:181,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/interfaces.c:194,1
    - Dst: free
      Src: /src/selinux/libsepol/src/interfaces.c:197,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/interfaces.c:198,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/interfaces.c:199,1
    - Dst: free
      Src: /src/selinux/libsepol/src/interfaces.c:200,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 34
    argCount: 4
    argNames:
    - handle
    - p
    - key
    - data
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - sepol_iface_key_t*
    - sepol_iface_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 156
    functionDepth: 4
    functionLinenumber: 156
    functionLinenumberEnd: 203
    functionName: sepol_iface_modify
    functionSourceFile: /src/selinux/libsepol/src/interfaces.c
    functionUses: 0
    functionsReached:
    - ERR
    - context_destroy
    - strcmp
    - free
    - iface_from_record
    - sepol_iface_key_unpack
    linkageType: ''
    returnType: int
    signature: "int sepol_iface_modify(sepol_handle_t *handle, sepol_policydb_t *p,\n\t\t
      \      const sepol_iface_key_t *key, const sepol_iface_t *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - handle
    - p
    - response
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 220
    functionName: sepol_iface_count
    functionSourceFile: /src/selinux/libsepol/src/interfaces.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sepol_iface_count(sepol_handle_t *handle __attribute__((unused)),\n\t\t\t
      \    const sepol_policydb_t *p, unsigned int *response)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: iface_to_record
      Src: /src/selinux/libsepol/src/interfaces.c:234,1
    - Dst: fn
      Src: /src/selinux/libsepol/src/interfaces.c:238,1
    - Dst: sepol_iface_free
      Src: /src/selinux/libsepol/src/interfaces.c:242,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/interfaces.c:253,1
    - Dst: sepol_iface_free
      Src: /src/selinux/libsepol/src/interfaces.c:254,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - handle
    - p
    - arg
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 256
    functionName: sepol_iface_iterate
    functionSourceFile: /src/selinux/libsepol/src/interfaces.c
    functionUses: 0
    functionsReached:
    - ERR
    - fn
    - iface_to_record
    - sepol_iface_free
    linkageType: ''
    returnType: int
    signature: "int sepol_iface_iterate(sepol_handle_t *handle, const sepol_policydb_t
      *p,\n\t\t\tint (*fn)(const sepol_iface_t *iface, void *fn_arg),\n\t\t\tvoid
      *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: policy_file_init
      Src: /src/selinux/libsepol/src/policydb_convert.c:15,1
    - Dst: policydb_read
      Src: /src/selinux/libsepol/src/policydb_convert.c:21,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/src/policydb_convert.c:22,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_convert.c:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 4
    argNames:
    - handle
    - data
    - len
    - policydb
    argTypes:
    - sepol_handle_t*
    - void*
    - size_t
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 10
    functionDepth: 8
    functionLinenumber: 10
    functionLinenumberEnd: 29
    functionName: policydb_from_image
    functionSourceFile: /src/selinux/libsepol/src/policydb_convert.c
    functionUses: 0
    functionsReached:
    - policydb_read
    - ERR
    - policy_file_init
    - policydb_destroy
    linkageType: ''
    returnType: int
    signature: "int policydb_from_image(sepol_handle_t *handle, void *data, size_t
      len,\n\t\t\tpolicydb_t *policydb)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: policy_file_init
      Src: /src/selinux/libsepol/src/policydb_convert.c:42,1
    - Dst: policydb_write
      Src: /src/selinux/libsepol/src/policydb_convert.c:45,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_convert.c:46,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/policydb_convert.c:53,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_convert.c:55,1
    - Dst: policydb_write
      Src: /src/selinux/libsepol/src/policydb_convert.c:64,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_convert.c:65,1
    - Dst: policydb_init
      Src: /src/selinux/libsepol/src/policydb_convert.c:74,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_convert.c:75,1
    - Dst: policydb_read
      Src: /src/selinux/libsepol/src/policydb_convert.c:79,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_convert.c:80,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/src/policydb_convert.c:84,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_convert.c:94,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb_convert.c:97,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 4
    argNames:
    - handle
    - policydb
    - newdata
    - newlen
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 33
    functionDepth: 8
    functionLinenumber: 33
    functionLinenumberEnd: 99
    functionName: policydb_to_image
    functionSourceFile: /src/selinux/libsepol/src/policydb_convert.c
    functionUses: 0
    functionsReached:
    - policydb_read
    - ERR
    - policy_file_init
    - malloc
    - policydb_init
    - policydb_write
    - policydb_destroy
    - free
    linkageType: ''
    returnType: int
    signature: "int policydb_to_image(sepol_handle_t *handle, policydb_t *policydb,\n\t\t
      \     void **newdata, size_t *newlen)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/user_record.c:35,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/user_record.c:38,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/user_record.c:43,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/user_record.c:45,1
    - Dst: free
      Src: /src/selinux/libsepol/src/user_record.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - handle
    - name
    - key_ptr
    argTypes:
    - sepol_handle_t*
    - char*
    - sepol_user_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 52
    functionName: sepol_user_key_create
    functionSourceFile: /src/selinux/libsepol/src/user_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - free
    - malloc
    - strdup
    linkageType: ''
    returnType: int
    signature: "int sepol_user_key_create(sepol_handle_t *handle, const char *name,\n\t\t\t
      \ sepol_user_key_t **key_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - name
    argTypes:
    - sepol_user_key_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: sepol_user_key_unpack
    functionSourceFile: /src/selinux/libsepol/src/user_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sepol_user_key_unpack(const sepol_user_key_t *key, const char
      **name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_key_create
      Src: /src/selinux/libsepol/src/user_record.c:62,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/user_record.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - handle
    - user
    - key_ptr
    argTypes:
    - sepol_handle_t*
    - sepol_user_t*
    - sepol_user_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: sepol_user_key_extract
    functionSourceFile: /src/selinux/libsepol/src/user_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_user_key_create
    linkageType: ''
    returnType: int
    signature: "int sepol_user_key_extract(sepol_handle_t *handle, const sepol_user_t
      *user,\n\t\t\t   sepol_user_key_t **key_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/user_record.c:74,1
    - Dst: free
      Src: /src/selinux/libsepol/src/user_record.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - sepol_user_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: sepol_user_key_free
    functionSourceFile: /src/selinux/libsepol/src/user_record.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void sepol_user_key_free(sepol_user_key_t *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/user_record.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - user
    - key
    argTypes:
    - sepol_user_t*
    - sepol_user_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: sepol_user_compare
    functionSourceFile: /src/selinux/libsepol/src/user_record.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int sepol_user_compare(const sepol_user_t *user, const sepol_user_key_t
      *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/user_record.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - user
    - user2
    argTypes:
    - sepol_user_t*
    - sepol_user_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: sepol_user_compare2
    functionSourceFile: /src/selinux/libsepol/src/user_record.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int sepol_user_compare2(const sepol_user_t *user, const sepol_user_t
      *user2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user
    argTypes:
    - sepol_user_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: sepol_user_get_name
    functionSourceFile: /src/selinux/libsepol/src/user_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *sepol_user_get_name(const sepol_user_t *user)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libsepol/src/user_record.c:97,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/user_record.c:99,1
    - Dst: free
      Src: /src/selinux/libsepol/src/user_record.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - user
    - name
    argTypes:
    - sepol_handle_t*
    - sepol_user_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 105
    functionName: sepol_user_set_name
    functionSourceFile: /src/selinux/libsepol/src/user_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int sepol_user_set_name(sepol_handle_t *handle, sepol_user_t *user,\n\t\t\tconst
      char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user
    argTypes:
    - sepol_user_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: sepol_user_get_mlslevel
    functionSourceFile: /src/selinux/libsepol/src/user_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *sepol_user_get_mlslevel(const sepol_user_t *user)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libsepol/src/user_record.c:116,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/user_record.c:118,1
    - Dst: free
      Src: /src/selinux/libsepol/src/user_record.c:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - user
    - mls_level
    argTypes:
    - sepol_handle_t*
    - sepol_user_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 125
    functionName: sepol_user_set_mlslevel
    functionSourceFile: /src/selinux/libsepol/src/user_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int sepol_user_set_mlslevel(sepol_handle_t *handle, sepol_user_t *user,\n\t\t\t
      \   const char *mls_level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user
    argTypes:
    - sepol_user_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: sepol_user_get_mlsrange
    functionSourceFile: /src/selinux/libsepol/src/user_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *sepol_user_get_mlsrange(const sepol_user_t *user)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libsepol/src/user_record.c:135,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/user_record.c:137,1
    - Dst: free
      Src: /src/selinux/libsepol/src/user_record.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - user
    - mls_range
    argTypes:
    - sepol_handle_t*
    - sepol_user_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 144
    functionName: sepol_user_set_mlsrange
    functionSourceFile: /src/selinux/libsepol/src/user_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int sepol_user_set_mlsrange(sepol_handle_t *handle, sepol_user_t *user,\n\t\t\t
      \   const char *mls_range)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user
    argTypes:
    - sepol_user_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: sepol_user_get_num_roles
    functionSourceFile: /src/selinux/libsepol/src/user_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sepol_user_get_num_roles(const sepol_user_t *user)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_has_role
      Src: /src/selinux/libsepol/src/user_record.c:158,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/user_record.c:161,1
    - Dst: reallocarray
      Src: /src/selinux/libsepol/src/user_record.c:166,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/user_record.c:177,1
    - Dst: free
      Src: /src/selinux/libsepol/src/user_record.c:178,1
    - Dst: free
      Src: /src/selinux/libsepol/src/user_record.c:179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - handle
    - user
    - role
    argTypes:
    - sepol_handle_t*
    - sepol_user_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 181
    functionName: sepol_user_add_role
    functionSourceFile: /src/selinux/libsepol/src/user_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - reallocarray
    - sepol_user_has_role
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int sepol_user_add_role(sepol_handle_t *handle, sepol_user_t *user,\n\t\t\tconst
      char *role)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/user_record.c:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - user
    - role
    argTypes:
    - sepol_user_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 191
    functionName: sepol_user_has_role
    functionSourceFile: /src/selinux/libsepol/src/user_record.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int sepol_user_has_role(const sepol_user_t *user, const char *role)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/user_record.c:201,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/user_record.c:206,1
    - Dst: free
      Src: /src/selinux/libsepol/src/user_record.c:214,1
    - Dst: free
      Src: /src/selinux/libsepol/src/user_record.c:215,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/user_record.c:221,1
    - Dst: free
      Src: /src/selinux/libsepol/src/user_record.c:230,1
    - Dst: free
      Src: /src/selinux/libsepol/src/user_record.c:233,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - handle
    - user
    - roles_arr
    - num_roles
    argTypes:
    - sepol_handle_t*
    - sepol_user_t*
    - char**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 235
    functionName: sepol_user_set_roles
    functionSourceFile: /src/selinux/libsepol/src/user_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - free
    - calloc
    - strdup
    linkageType: ''
    returnType: int
    signature: "int sepol_user_set_roles(sepol_handle_t *handle, sepol_user_t *user,\n\t\t\t
      const char **roles_arr, unsigned int num_roles)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/user_record.c:242,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/user_record.c:254,1
    - Dst: free
      Src: /src/selinux/libsepol/src/user_record.c:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - handle
    - user
    - roles_arr
    - num_roles
    argTypes:
    - sepol_handle_t*
    - sepol_user_t*
    - char***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 260
    functionName: sepol_user_get_roles
    functionSourceFile: /src/selinux/libsepol/src/user_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - free
    - calloc
    linkageType: ''
    returnType: int
    signature: "int sepol_user_get_roles(sepol_handle_t *handle, const sepol_user_t
      *user,\n\t\t\t const char ***roles_arr, unsigned int *num_roles)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/user_record.c:266,1
    - Dst: free
      Src: /src/selinux/libsepol/src/user_record.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - user
    - role
    argTypes:
    - sepol_user_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 273
    functionName: sepol_user_del_role
    functionSourceFile: /src/selinux/libsepol/src/user_record.c
    functionUses: 0
    functionsReached:
    - free
    - strcmp
    linkageType: ''
    returnType: void
    signature: void sepol_user_del_role(sepol_user_t *user, const char *role)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/user_record.c:278,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/user_record.c:281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - handle
    - user_ptr
    argTypes:
    - sepol_handle_t*
    - sepol_user_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 294
    functionName: sepol_user_create
    functionSourceFile: /src/selinux/libsepol/src/user_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - malloc
    linkageType: ''
    returnType: int
    signature: int sepol_user_create(sepol_handle_t *handle, sepol_user_t **user_ptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_create
      Src: /src/selinux/libsepol/src/user_record.c:303,1
    - Dst: sepol_user_set_name
      Src: /src/selinux/libsepol/src/user_record.c:306,1
    - Dst: sepol_user_add_role
      Src: /src/selinux/libsepol/src/user_record.c:310,1
    - Dst: sepol_user_set_mlslevel
      Src: /src/selinux/libsepol/src/user_record.c:315,1
    - Dst: sepol_user_set_mlsrange
      Src: /src/selinux/libsepol/src/user_record.c:319,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/user_record.c:326,1
    - Dst: sepol_user_free
      Src: /src/selinux/libsepol/src/user_record.c:327,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 3
    argNames:
    - handle
    - user
    - user_ptr
    argTypes:
    - sepol_handle_t*
    - sepol_user_t*
    - sepol_user_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 329
    functionName: sepol_user_clone
    functionSourceFile: /src/selinux/libsepol/src/user_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_user_set_mlslevel
    - sepol_user_add_role
    - sepol_user_create
    - sepol_user_free
    - sepol_user_set_mlsrange
    - sepol_user_set_name
    linkageType: ''
    returnType: int
    signature: "int sepol_user_clone(sepol_handle_t *handle, const sepol_user_t *user,\n\t\t
      \    sepol_user_t **user_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/user_record.c:339,1
    - Dst: free
      Src: /src/selinux/libsepol/src/user_record.c:341,1
    - Dst: free
      Src: /src/selinux/libsepol/src/user_record.c:342,1
    - Dst: free
      Src: /src/selinux/libsepol/src/user_record.c:343,1
    - Dst: free
      Src: /src/selinux/libsepol/src/user_record.c:344,1
    - Dst: free
      Src: /src/selinux/libsepol/src/user_record.c:345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - user
    argTypes:
    - sepol_user_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 346
    functionName: sepol_user_free
    functionSourceFile: /src/selinux/libsepol/src/user_record.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void sepol_user_free(sepol_user_t *user)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/nodes.c:23,1
    - Dst: sepol_node_get_addr_bytes
      Src: /src/selinux/libsepol/src/nodes.c:28,1
    - Dst: sepol_node_get_mask_bytes
      Src: /src/selinux/libsepol/src/nodes.c:30,1
    - Dst: sepol_node_get_proto
      Src: /src/selinux/libsepol/src/nodes.c:33,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/nodes.c:38,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/nodes.c:42,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/nodes.c:45,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/nodes.c:46,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/nodes.c:50,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/nodes.c:54,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/nodes.c:57,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/nodes.c:58,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/nodes.c:61,1
    - Dst: free
      Src: /src/selinux/libsepol/src/nodes.c:64,1
    - Dst: free
      Src: /src/selinux/libsepol/src/nodes.c:65,1
    - Dst: context_from_record
      Src: /src/selinux/libsepol/src/nodes.c:70,1
    - Dst: sepol_node_get_con
      Src: /src/selinux/libsepol/src/nodes.c:71,1
    - Dst: context_cpy
      Src: /src/selinux/libsepol/src/nodes.c:73,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/nodes.c:74,1
    - Dst: free
      Src: /src/selinux/libsepol/src/nodes.c:75,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/nodes.c:82,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/nodes.c:86,1
    - Dst: free
      Src: /src/selinux/libsepol/src/nodes.c:87,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/nodes.c:89,1
    - Dst: free
      Src: /src/selinux/libsepol/src/nodes.c:90,1
    - Dst: free
      Src: /src/selinux/libsepol/src/nodes.c:91,1
    - Dst: free
      Src: /src/selinux/libsepol/src/nodes.c:92,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/nodes.c:93,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 74
    argCount: 4
    argNames:
    - handle
    - policydb
    - node
    - data
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - ocontext_t**
    - sepol_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 14
    functionDepth: 3
    functionLinenumber: 14
    functionLinenumberEnd: 95
    functionName: node_from_record
    functionSourceFile: /src/selinux/libsepol/src/nodes.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_node_get_addr_bytes
    - context_destroy
    - sepol_node_get_mask_bytes
    - context_from_record
    - free
    - calloc
    - memcpy
    - sepol_node_get_proto
    - context_cpy
    - sepol_node_get_con
    linkageType: ''
    returnType: int
    signature: "int node_from_record(sepol_handle_t *handle, const policydb_t *policydb,\n\t\t\t
      \   ocontext_t **node, const sepol_node_t *data)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_create
      Src: /src/selinux/libsepol/src/nodes.c:105,1
    - Dst: sepol_node_set_proto
      Src: /src/selinux/libsepol/src/nodes.c:108,1
    - Dst: sepol_node_set_addr_bytes
      Src: /src/selinux/libsepol/src/nodes.c:112,1
    - Dst: sepol_node_set_mask_bytes
      Src: /src/selinux/libsepol/src/nodes.c:117,1
    - Dst: sepol_node_set_addr_bytes
      Src: /src/selinux/libsepol/src/nodes.c:124,1
    - Dst: sepol_node_set_mask_bytes
      Src: /src/selinux/libsepol/src/nodes.c:129,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/nodes.c:136,1
    - Dst: context_to_record
      Src: /src/selinux/libsepol/src/nodes.c:140,1
    - Dst: sepol_node_set_con
      Src: /src/selinux/libsepol/src/nodes.c:143,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/nodes.c:146,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/nodes.c:151,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/nodes.c:152,1
    - Dst: sepol_node_free
      Src: /src/selinux/libsepol/src/nodes.c:153,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 5
    argNames:
    - handle
    - policydb
    - node
    - proto
    - record
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - ocontext_t*
    - int
    - sepol_node_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 155
    functionName: node_to_record
    functionSourceFile: /src/selinux/libsepol/src/nodes.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_node_set_mask_bytes
    - sepol_context_free
    - context_to_record
    - sepol_node_create
    - sepol_node_set_addr_bytes
    - sepol_node_free
    - sepol_node_set_proto
    - sepol_node_set_con
    linkageType: ''
    returnType: int
    signature: "int node_to_record(sepol_handle_t *handle, const policydb_t *policydb,\n\t\t\t
      \ ocontext_t *node, int proto, sepol_node_t **record)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - handle
    - p
    - response
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 176
    functionName: sepol_node_count
    functionSourceFile: /src/selinux/libsepol/src/nodes.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sepol_node_count(sepol_handle_t *handle __attribute__((unused)),\n\t\t\t
      \   const sepol_policydb_t *p, unsigned int *response)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_key_unpack
      Src: /src/selinux/libsepol/src/nodes.c:187,1
    - Dst: memcmp
      Src: /src/selinux/libsepol/src/nodes.c:196,1
    - Dst: memcmp
      Src: /src/selinux/libsepol/src/nodes.c:197,1
    - Dst: memcmp
      Src: /src/selinux/libsepol/src/nodes.c:210,1
    - Dst: memcmp
      Src: /src/selinux/libsepol/src/nodes.c:211,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/nodes.c:219,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/nodes.c:227,1
    - Dst: sepol_node_get_proto_str
      Src: /src/selinux/libsepol/src/nodes.c:228,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 4
    argNames:
    - handle
    - p
    - key
    - response
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - sepol_node_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 230
    functionName: sepol_node_exists
    functionSourceFile: /src/selinux/libsepol/src/nodes.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_node_key_unpack
    - memcmp
    - sepol_node_get_proto_str
    linkageType: ''
    returnType: int
    signature: "int sepol_node_exists(sepol_handle_t *handle, const sepol_policydb_t
      *p,\n\t\t      const sepol_node_key_t *key, int *response)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_key_unpack
      Src: /src/selinux/libsepol/src/nodes.c:241,1
    - Dst: memcmp
      Src: /src/selinux/libsepol/src/nodes.c:250,1
    - Dst: memcmp
      Src: /src/selinux/libsepol/src/nodes.c:251,1
    - Dst: node_to_record
      Src: /src/selinux/libsepol/src/nodes.c:252,1
    - Dst: memcmp
      Src: /src/selinux/libsepol/src/nodes.c:267,1
    - Dst: memcmp
      Src: /src/selinux/libsepol/src/nodes.c:268,1
    - Dst: node_to_record
      Src: /src/selinux/libsepol/src/nodes.c:269,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/nodes.c:279,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/nodes.c:286,1
    - Dst: sepol_node_get_proto_str
      Src: /src/selinux/libsepol/src/nodes.c:287,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 4
    argNames:
    - handle
    - p
    - key
    - response
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - sepol_node_key_t*
    - sepol_node_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 289
    functionName: sepol_node_query
    functionSourceFile: /src/selinux/libsepol/src/nodes.c
    functionUses: 0
    functionsReached:
    - node_to_record
    - ERR
    - sepol_node_key_unpack
    - memcmp
    - sepol_node_get_proto_str
    linkageType: ''
    returnType: int
    signature: "int sepol_node_query(sepol_handle_t *handle, const sepol_policydb_t
      *p,\n\t\t     const sepol_node_key_t *key, sepol_node_t **response)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_key_unpack
      Src: /src/selinux/libsepol/src/nodes.c:301,1
    - Dst: node_from_record
      Src: /src/selinux/libsepol/src/nodes.c:303,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/nodes.c:320,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/nodes.c:327,1
    - Dst: sepol_node_get_proto_str
      Src: /src/selinux/libsepol/src/nodes.c:328,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/nodes.c:330,1
    - Dst: free
      Src: /src/selinux/libsepol/src/nodes.c:331,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - handle
    - p
    - key
    - data
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - sepol_node_key_t*
    - sepol_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 292
    functionDepth: 4
    functionLinenumber: 292
    functionLinenumberEnd: 334
    functionName: sepol_node_modify
    functionSourceFile: /src/selinux/libsepol/src/nodes.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_node_key_unpack
    - context_destroy
    - free
    - node_from_record
    - sepol_node_get_proto_str
    linkageType: ''
    returnType: int
    signature: "int sepol_node_modify(sepol_handle_t *handle, sepol_policydb_t *p,\n\t\t
      \     const sepol_node_key_t *key, const sepol_node_t *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: node_to_record
      Src: /src/selinux/libsepol/src/nodes.c:347,1
    - Dst: fn
      Src: /src/selinux/libsepol/src/nodes.c:352,1
    - Dst: sepol_node_free
      Src: /src/selinux/libsepol/src/nodes.c:356,1
    - Dst: node_to_record
      Src: /src/selinux/libsepol/src/nodes.c:366,1
    - Dst: fn
      Src: /src/selinux/libsepol/src/nodes.c:371,1
    - Dst: sepol_node_free
      Src: /src/selinux/libsepol/src/nodes.c:375,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/nodes.c:386,1
    - Dst: sepol_node_free
      Src: /src/selinux/libsepol/src/nodes.c:387,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 3
    argNames:
    - handle
    - p
    - arg
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 336
    functionDepth: 3
    functionLinenumber: 336
    functionLinenumberEnd: 389
    functionName: sepol_node_iterate
    functionSourceFile: /src/selinux/libsepol/src/nodes.c
    functionUses: 0
    functionsReached:
    - node_to_record
    - ERR
    - fn
    - sepol_node_free
    linkageType: ''
    returnType: int
    signature: "int sepol_node_iterate(sepol_handle_t *handle, const sepol_policydb_t
      *p,\n\t\t       int (*fn)(const sepol_node_t *node, void *fn_arg),\n\t\t       void
      *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: cpu_to_le16
    functionSourceFile: /src/selinux/libsepol/src/private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_le16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: le16_to_cpu
    functionSourceFile: /src/selinux/libsepol/src/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le16_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: cpu_to_le32
    functionSourceFile: /src/selinux/libsepol/src/private.h
    functionUses: 44
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_le32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: le32_to_cpu
    functionSourceFile: /src/selinux/libsepol/src/private.h
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le32_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: cpu_to_le64
    functionSourceFile: /src/selinux/libsepol/src/private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_le64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: le64_to_cpu
    functionSourceFile: /src/selinux/libsepol/src/private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le64_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: cpu_to_le16
    functionSourceFile: /src/selinux/libsepol/src/private.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_le16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: le16_to_cpu
    functionSourceFile: /src/selinux/libsepol/src/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le16_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: cpu_to_le32
    functionSourceFile: /src/selinux/libsepol/src/private.h
    functionUses: 44
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_le32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: le32_to_cpu
    functionSourceFile: /src/selinux/libsepol/src/private.h
    functionUses: 43
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le32_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: cpu_to_le64
    functionSourceFile: /src/selinux/libsepol/src/private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cpu_to_le64(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: le64_to_cpu
    functionSourceFile: /src/selinux/libsepol/src/private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le64_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: min
    functionSourceFile: /src/selinux/libsepol/src/private.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: min(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: max
    functionSourceFile: /src/selinux/libsepol/src/private.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: ARRAY_SIZE
    functionSourceFile: /src/selinux/libsepol/src/private.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_mul_overflow
      Src: /src/selinux/libsepol/src/private.h:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - fp
    - x
    - req_elem_size
    argTypes:
    - struct policy_file*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 59
    functionName: exceeds_available_bytes
    functionSourceFile: /src/selinux/libsepol/src/private.h
    functionUses: 4
    functionsReached:
    - __builtin_mul_overflow
    linkageType: ''
    returnType: int
    signature: "int exceeds_available_bytes(const struct policy_file *fp,\n\t\t\t\t\t
      \ size_t x, size_t req_elem_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: is_saturated
    functionSourceFile: /src/selinux/libsepol/src/private.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: is_saturated(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: zero_or_saturated
    functionSourceFile: /src/selinux/libsepol/src/private.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: zero_or_saturated(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: spaceship_cmp
    functionSourceFile: /src/selinux/libsepol/src/private.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spaceship_cmp(a, b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/selinux/libsepol/src/private.h:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ptr
    - nmemb
    - size
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 109
    functionName: reallocarray
    functionSourceFile: /src/selinux/libsepol/src/private.h
    functionUses: 6
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: void *reallocarray(void *ptr, size_t nmemb, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/hashtab.c:44,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/hashtab.c:53,1
    - Dst: free
      Src: /src/selinux/libsepol/src/hashtab.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - size
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 62
    functionName: hashtab_create
    functionSourceFile: /src/selinux/libsepol/src/hashtab.c
    functionUses: 1
    functionsReached:
    - free
    - calloc
    - malloc
    linkageType: ''
    returnType: hashtab_t
    signature: "hashtab_t hashtab_create(unsigned int (*hash_value)(hashtab_t h,\n\t\t\t\t\t\t
      \   const_hashtab_key_t key),\n\t\t\t int (*keycmp)(hashtab_t h, const_hashtab_key_t
      key1,\n\t\t\t\t       const_hashtab_key_t key2),\n\t\t\t unsigned int size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/hashtab.c:75,1
    - Dst: hashtab_t::hash_value
      Src: /src/selinux/libsepol/src/hashtab.c:86,1
    - Dst: hashtab_t::keycmp
      Src: /src/selinux/libsepol/src/hashtab.c:88,1
    - Dst: free
      Src: /src/selinux/libsepol/src/hashtab.c:99,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - h
    argTypes:
    - hashtab_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 101
    functionName: hashtab_check_resize
    functionSourceFile: /src/selinux/libsepol/src/hashtab.c
    functionUses: 0
    functionsReached:
    - hashtab_t::hash_value
    - free
    - calloc
    - hashtab_t::keycmp
    linkageType: ''
    returnType: void
    signature: void hashtab_check_resize(hashtab_t h)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_check_resize
      Src: /src/selinux/libsepol/src/hashtab.c:111,1
    - Dst: hashtab_t::hash_value
      Src: /src/selinux/libsepol/src/hashtab.c:113,1
    - Dst: hashtab_t::keycmp
      Src: /src/selinux/libsepol/src/hashtab.c:119,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/hashtab.c:127,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - h
    - key
    - datum
    argTypes:
    - hashtab_t
    - hashtab_key_t
    - hashtab_datum_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 144
    functionName: hashtab_insert
    functionSourceFile: /src/selinux/libsepol/src/hashtab.c
    functionUses: 22
    functionsReached:
    - hashtab_t::hash_value
    - hashtab_check_resize
    - hashtab_t::keycmp
    - malloc
    linkageType: ''
    returnType: int
    signature: int hashtab_insert(hashtab_t h, hashtab_key_t key, hashtab_datum_t
      datum)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_t::hash_value
      Src: /src/selinux/libsepol/src/hashtab.c:157,1
    - Dst: hashtab_t::keycmp
      Src: /src/selinux/libsepol/src/hashtab.c:163,1
    - Dst: destroy
      Src: /src/selinux/libsepol/src/hashtab.c:180,1
    - Dst: free
      Src: /src/selinux/libsepol/src/hashtab.c:181,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - h
    - key
    - args
    argTypes:
    - hashtab_t
    - hashtab_key_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 184
    functionName: hashtab_remove
    functionSourceFile: /src/selinux/libsepol/src/hashtab.c
    functionUses: 0
    functionsReached:
    - hashtab_t::hash_value
    - free
    - hashtab_t::keycmp
    - destroy
    linkageType: ''
    returnType: int
    signature: "int hashtab_remove(hashtab_t h, hashtab_key_t key,\n\t\t   void (*destroy)(hashtab_key_t
      k, hashtab_datum_t d,\n\t\t\t\t   void *args),\n\t\t   void *args)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_t::hash_value
      Src: /src/selinux/libsepol/src/hashtab.c:194,1
    - Dst: hashtab_t::keycmp
      Src: /src/selinux/libsepol/src/hashtab.c:198,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - h
    - key
    argTypes:
    - hashtab_t
    - const_hashtab_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 207
    functionName: hashtab_search
    functionSourceFile: /src/selinux/libsepol/src/hashtab.c
    functionUses: 44
    functionsReached:
    - hashtab_t::hash_value
    - hashtab_t::keycmp
    linkageType: ''
    returnType: hashtab_datum_t
    signature: hashtab_datum_t hashtab_search(hashtab_t h, const_hashtab_key_t key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/hashtab.c:222,1
    - Dst: free
      Src: /src/selinux/libsepol/src/hashtab.c:227,1
    - Dst: free
      Src: /src/selinux/libsepol/src/hashtab.c:228,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - h
    argTypes:
    - hashtab_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 229
    functionName: hashtab_destroy
    functionSourceFile: /src/selinux/libsepol/src/hashtab.c
    functionUses: 5
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void hashtab_destroy(hashtab_t h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apply
      Src: /src/selinux/libsepol/src/hashtab.c:245,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - h
    - args
    argTypes:
    - hashtab_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 252
    functionName: hashtab_map
    functionSourceFile: /src/selinux/libsepol/src/hashtab.c
    functionUses: 34
    functionsReached:
    - apply
    linkageType: ''
    returnType: int
    signature: "int hashtab_map(hashtab_t h,\n\t\tint (*apply)(hashtab_key_t k, hashtab_datum_t
      d, void *args),\n\t\tvoid *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/libsepol/src/hashtab.c:279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - h
    - tag
    argTypes:
    - hashtab_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 282
    functionName: hashtab_hash_eval
    functionSourceFile: /src/selinux/libsepol/src/hashtab.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void hashtab_hash_eval(hashtab_t h, const char *tag)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_create
      Src: /src/selinux/libsepol/src/users.c:31,1
    - Dst: sepol_user_set_name
      Src: /src/selinux/libsepol/src/users.c:34,1
    - Dst: sepol_user_add_role
      Src: /src/selinux/libsepol/src/users.c:40,1
    - Dst: context_init
      Src: /src/selinux/libsepol/src/users.c:49,1
    - Dst: mls_level_cpy
      Src: /src/selinux/libsepol/src/users.c:50,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/users.c:52,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/users.c:53,1
    - Dst: mls_level_cpy
      Src: /src/selinux/libsepol/src/users.c:56,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/users.c:58,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/users.c:59,1
    - Dst: mls_to_string
      Src: /src/selinux/libsepol/src/users.c:62,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/users.c:63,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/users.c:66,1
    - Dst: sepol_user_set_mlslevel
      Src: /src/selinux/libsepol/src/users.c:68,1
    - Dst: free
      Src: /src/selinux/libsepol/src/users.c:69,1
    - Dst: free
      Src: /src/selinux/libsepol/src/users.c:72,1
    - Dst: context_init
      Src: /src/selinux/libsepol/src/users.c:74,1
    - Dst: mls_range_cpy
      Src: /src/selinux/libsepol/src/users.c:75,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/users.c:76,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/users.c:77,1
    - Dst: mls_to_string
      Src: /src/selinux/libsepol/src/users.c:80,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/users.c:81,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/users.c:84,1
    - Dst: sepol_user_set_mlsrange
      Src: /src/selinux/libsepol/src/users.c:86,1
    - Dst: free
      Src: /src/selinux/libsepol/src/users.c:87,1
    - Dst: free
      Src: /src/selinux/libsepol/src/users.c:90,1
    - Dst: sepol_user_free
      Src: /src/selinux/libsepol/src/users.c:98,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 67
    argCount: 4
    argNames:
    - handle
    - policydb
    - user_idx
    - record
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - int
    - sepol_user_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 15
    functionDepth: 2
    functionLinenumber: 15
    functionLinenumberEnd: 100
    functionName: user_to_record
    functionSourceFile: /src/selinux/libsepol/src/users.c
    functionUses: 0
    functionsReached:
    - context_init
    - ERR
    - context_destroy
    - sepol_user_set_mlslevel
    - sepol_user_add_role
    - sepol_user_create
    - mls_range_cpy
    - mls_level_cpy
    - free
    - sepol_user_free
    - mls_to_string
    - sepol_user_set_mlsrange
    - sepol_user_set_name
    linkageType: ''
    returnType: int
    signature: "int user_to_record(sepol_handle_t *handle, const policydb_t *policydb,\n\t\t\t
      \ int user_idx, sepol_user_t **record)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_add_role
      Src: /src/selinux/libsepol/src/users.c:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/users.c
    functionUses: 22
    functionsReached:
    - sepol_user_add_role
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(roles, rnode, bit)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_key_unpack
      Src: /src/selinux/libsepol/src/users.c:126,1
    - Dst: sepol_user_get_mlslevel
      Src: /src/selinux/libsepol/src/users.c:128,1
    - Dst: sepol_user_get_mlsrange
      Src: /src/selinux/libsepol/src/users.c:129,1
    - Dst: sepol_user_get_roles
      Src: /src/selinux/libsepol/src/users.c:132,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/users.c:136,1
    - Dst: user_datum_destroy
      Src: /src/selinux/libsepol/src/users.c:141,1
    - Dst: user_datum_init
      Src: /src/selinux/libsepol/src/users.c:142,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/users.c:147,1
    - Dst: user_datum_init
      Src: /src/selinux/libsepol/src/users.c:150,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/users.c:157,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/users.c:159,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/users.c:165,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/users.c:167,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/users.c:176,1
    - Dst: context_init
      Src: /src/selinux/libsepol/src/users.c:183,1
    - Dst: mls_from_string
      Src: /src/selinux/libsepol/src/users.c:184,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/users.c:186,1
    - Dst: mls_level_cpy
      Src: /src/selinux/libsepol/src/users.c:189,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/users.c:191,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/users.c:192,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/users.c:195,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/users.c:199,1
    - Dst: context_init
      Src: /src/selinux/libsepol/src/users.c:206,1
    - Dst: mls_from_string
      Src: /src/selinux/libsepol/src/users.c:207,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/users.c:209,1
    - Dst: mls_range_cpy
      Src: /src/selinux/libsepol/src/users.c:212,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/users.c:213,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/users.c:214,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/users.c:217,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/users.c:219,1
    - Dst: reallocarray
      Src: /src/selinux/libsepol/src/users.c:231,1
    - Dst: reallocarray
      Src: /src/selinux/libsepol/src/users.c:239,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/users.c:248,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/users.c:254,1
    - Dst: role_set_expand
      Src: /src/selinux/libsepol/src/users.c:264,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/users.c:266,1
    - Dst: free
      Src: /src/selinux/libsepol/src/users.c:271,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/users.c:275,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/users.c:278,1
    - Dst: free
      Src: /src/selinux/libsepol/src/users.c:280,1
    - Dst: free
      Src: /src/selinux/libsepol/src/users.c:281,1
    - Dst: usrdatum::usrdatum
      Src: /src/selinux/libsepol/src/users.c:282,1
    - Dst: role_set_destroy
      Src: /src/selinux/libsepol/src/users.c:283,1
    - Dst: free
      Src: /src/selinux/libsepol/src/users.c:284,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 121
    argCount: 4
    argNames:
    - handle
    - p
    - key
    - user
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - sepol_user_key_t*
    - sepol_user_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 102
    functionDepth: 3
    functionLinenumber: 102
    functionLinenumberEnd: 287
    functionName: sepol_user_modify
    functionSourceFile: /src/selinux/libsepol/src/users.c
    functionUses: 0
    functionsReached:
    - mls_from_string
    - ebitmap_for_each_positive_bit
    - role_set_destroy
    - usrdatum::usrdatum
    - sepol_user_get_mlslevel
    - user_datum_destroy
    - sepol_user_get_mlsrange
    - user_datum_init
    - role_set_expand
    - reallocarray
    - malloc
    - free
    - sepol_user_key_unpack
    - ERR
    - context_init
    - context_destroy
    - hashtab_search
    - hashtab_insert
    - mls_range_cpy
    - strdup
    - sepol_user_get_roles
    - ebitmap_set_bit
    - mls_level_cpy
    linkageType: ''
    returnType: int
    signature: "int sepol_user_modify(sepol_handle_t *handle, sepol_policydb_t *p,\n\t\t
      \     const sepol_user_key_t *key, const sepol_user_t *user)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_key_unpack
      Src: /src/selinux/libsepol/src/users.c:296,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/users.c:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - handle
    - p
    - key
    - response
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - sepol_user_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 301
    functionName: sepol_user_exists
    functionSourceFile: /src/selinux/libsepol/src/users.c
    functionUses: 0
    functionsReached:
    - sepol_user_key_unpack
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: "int sepol_user_exists(sepol_handle_t *handle __attribute__((unused)),\n\t\t
      \     const sepol_policydb_t *p, const sepol_user_key_t *key,\n\t\t      int
      *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - handle
    - p
    - response
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 310
    functionName: sepol_user_count
    functionSourceFile: /src/selinux/libsepol/src/users.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sepol_user_count(sepol_handle_t *handle __attribute__((unused)),\n\t\t
      \    const sepol_policydb_t *p, unsigned int *response)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_key_unpack
      Src: /src/selinux/libsepol/src/users.c:319,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/users.c:321,1
    - Dst: user_to_record
      Src: /src/selinux/libsepol/src/users.c:328,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/users.c:335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - handle
    - p
    - key
    - response
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - sepol_user_key_t*
    - sepol_user_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 337
    functionName: sepol_user_query
    functionSourceFile: /src/selinux/libsepol/src/users.c
    functionUses: 0
    functionsReached:
    - sepol_user_key_unpack
    - ERR
    - user_to_record
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: "int sepol_user_query(sepol_handle_t *handle, const sepol_policydb_t
      *p,\n\t\t     const sepol_user_key_t *key, sepol_user_t **response)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: user_to_record
      Src: /src/selinux/libsepol/src/users.c:352,1
    - Dst: fn
      Src: /src/selinux/libsepol/src/users.c:356,1
    - Dst: sepol_user_free
      Src: /src/selinux/libsepol/src/users.c:360,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/users.c:371,1
    - Dst: sepol_user_free
      Src: /src/selinux/libsepol/src/users.c:372,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - handle
    - p
    - arg
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 339
    functionDepth: 3
    functionLinenumber: 339
    functionLinenumberEnd: 374
    functionName: sepol_user_iterate
    functionSourceFile: /src/selinux/libsepol/src/users.c
    functionUses: 0
    functionsReached:
    - ERR
    - fn
    - sepol_user_free
    - user_to_record
    linkageType: ''
    returnType: int
    signature: "int sepol_user_iterate(sepol_handle_t *handle, const sepol_policydb_t
      *p,\n\t\t       int (*fn)(const sepol_user_t *user, void *fn_arg),\n\t\t       void
      *arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: policy_name
    functionSourceFile: /src/selinux/libsepol/src/assertion.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *policy_name(const policydb_t *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sepol_av_to_string
      Src: /src/selinux/libsepol/src/assertion.c:50,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/assertion.c:53,1
    - Dst: policy_name
      Src: /src/selinux/libsepol/src/assertion.c:56,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/assertion.c:61,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/assertion.c:68,1
    - Dst: free
      Src: /src/selinux/libsepol/src/assertion.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - handle
    - p
    - narule
    - stype
    - ttype
    - curperm
    - perms
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - avrule_t*
    - unsigned int
    - unsigned int
    - class_perm_node_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 75
    functionName: report_failure
    functionSourceFile: /src/selinux/libsepol/src/assertion.c
    functionUses: 0
    functionsReached:
    - ERR
    - free
    - policy_name
    - sepol_av_to_string
    linkageType: ''
    returnType: void
    signature: "void report_failure(sepol_handle_t *handle, const policydb_t *p,\n\t\t\t
      \  const avrule_t *narule, unsigned int stype,\n\t\t\t   unsigned int ttype,
      const class_perm_node_t *curperm,\n\t\t\t   uint32_t perms)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - cp
    - class
    - data
    argTypes:
    - class_perm_node_t*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: match_any_class_permissions
    functionSourceFile: /src/selinux/libsepol/src/assertion.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool match_any_class_permissions(const class_perm_node_t *cp,\n\t\t\t\t\tuint32_t
      class, uint32_t data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - perms1
    - perms2
    argTypes:
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: extended_permissions_and
    functionSourceFile: /src/selinux/libsepol/src/assertion.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool extended_permissions_and(const uint32_t *perms1,\n\t\t\t\t     const
      uint32_t *perms2)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: extended_permissions_and
      Src: /src/selinux/libsepol/src/assertion.c:107,1
    - Dst: xperm_test
      Src: /src/selinux/libsepol/src/assertion.c:111,1
    - Dst: xperm_test
      Src: /src/selinux/libsepol/src/assertion.c:114,1
    - Dst: extended_permissions_and
      Src: /src/selinux/libsepol/src/assertion.c:117,1
    - Dst: extended_permissions_and
      Src: /src/selinux/libsepol/src/assertion.c:121,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 2
    argNames:
    - neverallow
    - allow
    argTypes:
    - av_extended_perms_t*
    - avtab_extended_perms_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 126
    functionName: check_extended_permissions
    functionSourceFile: /src/selinux/libsepol/src/assertion.c
    functionUses: 0
    functionsReached:
    - xperm_test
    - extended_permissions_and
    linkageType: ''
    returnType: bool
    signature: "bool check_extended_permissions(const av_extended_perms_t *neverallow,\n\t\t\t\t
      \      const avtab_extended_perms_t *allow)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/assertion.c:145,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/assertion.c:150,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 3
    argNames:
    - result
    - neverallow
    - allow
    argTypes:
    - avtab_extended_perms_t*
    - av_extended_perms_t*
    - avtab_extended_perms_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 165
    functionName: extended_permissions_violated
    functionSourceFile: /src/selinux/libsepol/src/assertion.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void extended_permissions_violated(avtab_extended_perms_t *result,\n\t\t\t\t\t
      \ const av_extended_perms_t *neverallow,\n\t\t\t\t\t  const avtab_extended_perms_t
      *allow)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - node
    - key
    argTypes:
    - struct avtab_node*
    - avtab_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: match_node_key
    functionSourceFile: /src/selinux/libsepol/src/assertion.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool match_node_key(const struct avtab_node *node,\n\t\t\t   const
      avtab_key_t *key)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/assertion.c:193,1
    - Dst: avtab_search_node
      Src: /src/selinux/libsepol/src/assertion.c:200,1
    - Dst: avtab_search_node_next
      Src: /src/selinux/libsepol/src/assertion.c:201,1
    - Dst: check_extended_permissions
      Src: /src/selinux/libsepol/src/assertion.c:212,1
    - Dst: extended_permissions_violated
      Src: /src/selinux/libsepol/src/assertion.c:216,1
    - Dst: sepol_extended_perms_to_string
      Src: /src/selinux/libsepol/src/assertion.c:219,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/assertion.c:222,1
    - Dst: policy_name
      Src: /src/selinux/libsepol/src/assertion.c:227,1
    - Dst: free
      Src: /src/selinux/libsepol/src/assertion.c:234,1
    - Dst: match_node_key
      Src: /src/selinux/libsepol/src/assertion.c:252,1
    - Dst: match_any_class_permissions
      Src: /src/selinux/libsepol/src/assertion.c:255,1
    - Dst: check_extended_permissions
      Src: /src/selinux/libsepol/src/assertion.c:277,1
    - Dst: extended_permissions_violated
      Src: /src/selinux/libsepol/src/assertion.c:281,1
    - Dst: sepol_extended_perms_to_string
      Src: /src/selinux/libsepol/src/assertion.c:285,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/assertion.c:288,1
    - Dst: policy_name
      Src: /src/selinux/libsepol/src/assertion.c:294,1
    - Dst: free
      Src: /src/selinux/libsepol/src/assertion.c:303,1
    - Dst: match_node_key
      Src: /src/selinux/libsepol/src/assertion.c:314,1
    - Dst: match_any_class_permissions
      Src: /src/selinux/libsepol/src/assertion.c:317,1
    - Dst: check_extended_permissions
      Src: /src/selinux/libsepol/src/assertion.c:339,1
    - Dst: extended_permissions_violated
      Src: /src/selinux/libsepol/src/assertion.c:343,1
    - Dst: sepol_extended_perms_to_string
      Src: /src/selinux/libsepol/src/assertion.c:347,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/assertion.c:350,1
    - Dst: policy_name
      Src: /src/selinux/libsepol/src/assertion.c:356,1
    - Dst: free
      Src: /src/selinux/libsepol/src/assertion.c:365,1
    - Dst: sepol_av_to_string
      Src: /src/selinux/libsepol/src/assertion.c:383,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/assertion.c:385,1
    - Dst: policy_name
      Src: /src/selinux/libsepol/src/assertion.c:389,1
    - Dst: free
      Src: /src/selinux/libsepol/src/assertion.c:394,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 80
    argCount: 9
    argNames:
    - handle
    - p
    - narule
    - stype
    - ttype
    - curperm
    - perms
    - k
    - conditional
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - avrule_t*
    - unsigned int
    - unsigned int
    - class_perm_node_t*
    - uint32_t
    - avtab_key_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 399
    functionName: report_assertion_extended_permissions
    functionSourceFile: /src/selinux/libsepol/src/assertion.c
    functionUses: 0
    functionsReached:
    - avtab_search_node
    - check_extended_permissions
    - ERR
    - policy_name
    - match_any_class_permissions
    - sepol_av_to_string
    - avtab_search_node_next
    - free
    - memcpy
    - match_node_key
    - sepol_extended_perms_to_string
    - extended_permissions_violated
    linkageType: ''
    returnType: int
    signature: "int report_assertion_extended_permissions(\n\tsepol_handle_t *handle,
      policydb_t *p, const avrule_t *narule,\n\tunsigned int stype, unsigned int ttype,\n\tconst
      class_perm_node_t *curperm, uint32_t perms, const avtab_key_t *k,\n\tbool conditional)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: avtab_search_node
      Src: /src/selinux/libsepol/src/assertion.c:200,1
    - Dst: avtab_search_node_next
      Src: /src/selinux/libsepol/src/assertion.c:201,1
    - Dst: check_extended_permissions
      Src: /src/selinux/libsepol/src/assertion.c:212,1
    - Dst: extended_permissions_violated
      Src: /src/selinux/libsepol/src/assertion.c:216,1
    - Dst: sepol_extended_perms_to_string
      Src: /src/selinux/libsepol/src/assertion.c:219,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/assertion.c:222,1
    - Dst: policy_name
      Src: /src/selinux/libsepol/src/assertion.c:227,1
    - Dst: free
      Src: /src/selinux/libsepol/src/assertion.c:234,1
    - Dst: match_node_key
      Src: /src/selinux/libsepol/src/assertion.c:252,1
    - Dst: match_any_class_permissions
      Src: /src/selinux/libsepol/src/assertion.c:255,1
    - Dst: check_extended_permissions
      Src: /src/selinux/libsepol/src/assertion.c:277,1
    - Dst: extended_permissions_violated
      Src: /src/selinux/libsepol/src/assertion.c:281,1
    - Dst: sepol_extended_perms_to_string
      Src: /src/selinux/libsepol/src/assertion.c:285,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/assertion.c:288,1
    - Dst: policy_name
      Src: /src/selinux/libsepol/src/assertion.c:294,1
    - Dst: free
      Src: /src/selinux/libsepol/src/assertion.c:303,1
    - Dst: match_node_key
      Src: /src/selinux/libsepol/src/assertion.c:314,1
    - Dst: match_any_class_permissions
      Src: /src/selinux/libsepol/src/assertion.c:317,1
    - Dst: check_extended_permissions
      Src: /src/selinux/libsepol/src/assertion.c:339,1
    - Dst: extended_permissions_violated
      Src: /src/selinux/libsepol/src/assertion.c:343,1
    - Dst: sepol_extended_perms_to_string
      Src: /src/selinux/libsepol/src/assertion.c:347,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/assertion.c:350,1
    - Dst: policy_name
      Src: /src/selinux/libsepol/src/assertion.c:356,1
    - Dst: free
      Src: /src/selinux/libsepol/src/assertion.c:365,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 379
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/assertion.c
    functionUses: 23
    functionsReached:
    - avtab_search_node
    - check_extended_permissions
    - ERR
    - policy_name
    - match_any_class_permissions
    - avtab_search_node_next
    - free
    - match_node_key
    - sepol_extended_perms_to_string
    - extended_permissions_violated
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(sattr, snode, i)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: avtab_search_node
      Src: /src/selinux/libsepol/src/assertion.c:200,1
    - Dst: avtab_search_node_next
      Src: /src/selinux/libsepol/src/assertion.c:201,1
    - Dst: check_extended_permissions
      Src: /src/selinux/libsepol/src/assertion.c:212,1
    - Dst: extended_permissions_violated
      Src: /src/selinux/libsepol/src/assertion.c:216,1
    - Dst: sepol_extended_perms_to_string
      Src: /src/selinux/libsepol/src/assertion.c:219,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/assertion.c:222,1
    - Dst: policy_name
      Src: /src/selinux/libsepol/src/assertion.c:227,1
    - Dst: free
      Src: /src/selinux/libsepol/src/assertion.c:234,1
    - Dst: match_node_key
      Src: /src/selinux/libsepol/src/assertion.c:252,1
    - Dst: match_any_class_permissions
      Src: /src/selinux/libsepol/src/assertion.c:255,1
    - Dst: check_extended_permissions
      Src: /src/selinux/libsepol/src/assertion.c:277,1
    - Dst: extended_permissions_violated
      Src: /src/selinux/libsepol/src/assertion.c:281,1
    - Dst: sepol_extended_perms_to_string
      Src: /src/selinux/libsepol/src/assertion.c:285,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/assertion.c:288,1
    - Dst: policy_name
      Src: /src/selinux/libsepol/src/assertion.c:294,1
    - Dst: free
      Src: /src/selinux/libsepol/src/assertion.c:303,1
    - Dst: match_node_key
      Src: /src/selinux/libsepol/src/assertion.c:314,1
    - Dst: match_any_class_permissions
      Src: /src/selinux/libsepol/src/assertion.c:317,1
    - Dst: check_extended_permissions
      Src: /src/selinux/libsepol/src/assertion.c:339,1
    - Dst: extended_permissions_violated
      Src: /src/selinux/libsepol/src/assertion.c:343,1
    - Dst: sepol_extended_perms_to_string
      Src: /src/selinux/libsepol/src/assertion.c:347,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/assertion.c:350,1
    - Dst: policy_name
      Src: /src/selinux/libsepol/src/assertion.c:356,1
    - Dst: free
      Src: /src/selinux/libsepol/src/assertion.c:365,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 378
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/assertion.c
    functionUses: 23
    functionsReached:
    - avtab_search_node
    - check_extended_permissions
    - ERR
    - policy_name
    - match_any_class_permissions
    - avtab_search_node_next
    - free
    - match_node_key
    - sepol_extended_perms_to_string
    - extended_permissions_violated
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(tattr, tnode, j)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: match_any_class_permissions
      Src: /src/selinux/libsepol/src/assertion.c:420,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/assertion.c:424,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/assertion.c:425,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/assertion.c:426,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/src/assertion.c:428,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/assertion.c:433,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/assertion.c:437,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/src/assertion.c:439,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/src/assertion.c:443,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/src/assertion.c:449,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/src/assertion.c:455,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/assertion.c:460,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/src/assertion.c:461,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/assertion.c:468,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/assertion.c:477,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/assertion.c:478,1
    - Dst: report_assertion_extended_permissions
      Src: /src/selinux/libsepol/src/assertion.c:486,1
    - Dst: report_failure
      Src: /src/selinux/libsepol/src/assertion.c:492,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/assertion.c:501,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/assertion.c:502,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/assertion.c:503,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 73
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - avtab_key_t*
    - avtab_datum_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 401
    functionDepth: 3
    functionLinenumber: 401
    functionLinenumberEnd: 505
    functionName: report_assertion_avtab_matches
    functionSourceFile: /src/selinux/libsepol/src/assertion.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - match_any_class_permissions
    - ebitmap_destroy
    - ebitmap_for_each_positive_bit
    - ebitmap_and
    - ebitmap_is_empty
    - report_failure
    - report_assertion_extended_permissions
    - ebitmap_union
    - ebitmap_cpy
    linkageType: ''
    returnType: int
    signature: "int report_assertion_avtab_matches(avtab_key_t *k, avtab_datum_t *d,\n\t\t\t\t\t
      \ void *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: avtab_map
      Src: /src/selinux/libsepol/src/assertion.c:519,1
    - Dst: avtab_map
      Src: /src/selinux/libsepol/src/assertion.c:524,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - handle
    - p
    - narule
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - avrule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 533
    functionName: report_assertion_failures
    functionSourceFile: /src/selinux/libsepol/src/assertion.c
    functionUses: 0
    functionsReached:
    - avtab_map
    linkageType: ''
    returnType: int
    signature: "int report_assertion_failures(sepol_handle_t *handle, policydb_t *p,\n\t\t\t\t
      \    const avrule_t *narule)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/assertion.c:553,1
    - Dst: avtab_search_node
      Src: /src/selinux/libsepol/src/assertion.c:560,1
    - Dst: avtab_search_node_next
      Src: /src/selinux/libsepol/src/assertion.c:561,1
    - Dst: check_extended_permissions
      Src: /src/selinux/libsepol/src/assertion.c:572,1
    - Dst: match_node_key
      Src: /src/selinux/libsepol/src/assertion.c:590,1
    - Dst: match_any_class_permissions
      Src: /src/selinux/libsepol/src/assertion.c:595,1
    - Dst: check_extended_permissions
      Src: /src/selinux/libsepol/src/assertion.c:617,1
    - Dst: match_node_key
      Src: /src/selinux/libsepol/src/assertion.c:628,1
    - Dst: match_any_class_permissions
      Src: /src/selinux/libsepol/src/assertion.c:633,1
    - Dst: check_extended_permissions
      Src: /src/selinux/libsepol/src/assertion.c:655,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 60
    argCount: 6
    argNames:
    - narule
    - stype
    - ttype
    - k
    - p
    - conditional
    argTypes:
    - avrule_t*
    - unsigned int
    - unsigned int
    - avtab_key_t*
    - policydb_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 539
    functionDepth: 2
    functionLinenumber: 539
    functionLinenumberEnd: 672
    functionName: check_assertion_extended_permissions_avtab
    functionSourceFile: /src/selinux/libsepol/src/assertion.c
    functionUses: 0
    functionsReached:
    - avtab_search_node
    - check_extended_permissions
    - match_any_class_permissions
    - avtab_search_node_next
    - memcpy
    - match_node_key
    linkageType: ''
    returnType: bool
    signature: "bool check_assertion_extended_permissions_avtab(\n\tconst avrule_t
      *narule, unsigned int stype, unsigned int ttype,\n\tconst avtab_key_t *k, policydb_t
      *p, bool conditional)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: avtab_search_node
      Src: /src/selinux/libsepol/src/assertion.c:560,1
    - Dst: avtab_search_node_next
      Src: /src/selinux/libsepol/src/assertion.c:561,1
    - Dst: check_extended_permissions
      Src: /src/selinux/libsepol/src/assertion.c:572,1
    - Dst: match_node_key
      Src: /src/selinux/libsepol/src/assertion.c:590,1
    - Dst: match_any_class_permissions
      Src: /src/selinux/libsepol/src/assertion.c:595,1
    - Dst: check_extended_permissions
      Src: /src/selinux/libsepol/src/assertion.c:617,1
    - Dst: match_node_key
      Src: /src/selinux/libsepol/src/assertion.c:628,1
    - Dst: match_any_class_permissions
      Src: /src/selinux/libsepol/src/assertion.c:633,1
    - Dst: check_extended_permissions
      Src: /src/selinux/libsepol/src/assertion.c:655,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 669
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/assertion.c
    functionUses: 24
    functionsReached:
    - avtab_search_node
    - check_extended_permissions
    - match_any_class_permissions
    - avtab_search_node_next
    - match_node_key
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(sattr, snode, i)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: avtab_search_node
      Src: /src/selinux/libsepol/src/assertion.c:560,1
    - Dst: avtab_search_node_next
      Src: /src/selinux/libsepol/src/assertion.c:561,1
    - Dst: check_extended_permissions
      Src: /src/selinux/libsepol/src/assertion.c:572,1
    - Dst: match_node_key
      Src: /src/selinux/libsepol/src/assertion.c:590,1
    - Dst: match_any_class_permissions
      Src: /src/selinux/libsepol/src/assertion.c:595,1
    - Dst: check_extended_permissions
      Src: /src/selinux/libsepol/src/assertion.c:617,1
    - Dst: match_node_key
      Src: /src/selinux/libsepol/src/assertion.c:628,1
    - Dst: match_any_class_permissions
      Src: /src/selinux/libsepol/src/assertion.c:633,1
    - Dst: check_extended_permissions
      Src: /src/selinux/libsepol/src/assertion.c:655,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 668
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/assertion.c
    functionUses: 24
    functionsReached:
    - avtab_search_node
    - check_extended_permissions
    - match_any_class_permissions
    - avtab_search_node_next
    - match_node_key
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(tattr, tnode, j)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/assertion.c:701,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/assertion.c:702,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/assertion.c:703,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/src/assertion.c:705,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/assertion.c:710,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/assertion.c:716,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/src/assertion.c:718,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/src/assertion.c:722,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/src/assertion.c:728,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/src/assertion.c:734,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/assertion.c:739,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/src/assertion.c:740,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/assertion.c:747,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/assertion.c:752,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/assertion.c:753,1
    - Dst: check_assertion_extended_permissions_avtab
      Src: /src/selinux/libsepol/src/assertion.c:758,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/assertion.c:770,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/assertion.c:771,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/assertion.c:772,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 67
    argCount: 4
    argNames:
    - narule
    - k
    - p
    - conditional
    argTypes:
    - avrule_t*
    - avtab_key_t*
    - policydb_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 690
    functionDepth: 3
    functionLinenumber: 690
    functionLinenumberEnd: 774
    functionName: check_assertion_extended_permissions
    functionSourceFile: /src/selinux/libsepol/src/assertion.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - ebitmap_for_each_positive_bit
    - ebitmap_and
    - ebitmap_is_empty
    - check_assertion_extended_permissions_avtab
    - ebitmap_union
    - ebitmap_cpy
    linkageType: ''
    returnType: int
    signature: "int check_assertion_extended_permissions(const avrule_t *narule,\n\t\t\t\t\t\tconst
      avtab_key_t *k,\n\t\t\t\t\t\tpolicydb_t *p, bool conditional)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/assertion.c:783,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/assertion.c:784,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/src/assertion.c:786,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/assertion.c:791,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/src/assertion.c:793,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/src/assertion.c:797,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/src/assertion.c:803,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/src/assertion.c:804,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/src/assertion.c:812,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/assertion.c:814,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/src/assertion.c:817,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/assertion.c:818,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/assertion.c:830,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/assertion.c:831,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 3
    argNames:
    - k
    - narule
    - p
    argTypes:
    - avtab_key_t*
    - avrule_t*
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 776
    functionDepth: 2
    functionLinenumber: 776
    functionLinenumberEnd: 833
    functionName: check_assertion_notself_match
    functionSourceFile: /src/selinux/libsepol/src/assertion.c
    functionUses: 0
    functionsReached:
    - ebitmap_cardinality
    - ebitmap_init
    - ebitmap_destroy
    - ebitmap_and
    - ebitmap_is_empty
    - ebitmap_cpy
    linkageType: ''
    returnType: int
    signature: "int check_assertion_notself_match(const avtab_key_t *k,\n\t\t\t\t\t
      const avrule_t *narule, policydb_t *p)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/src/assertion.c:845,1
    - Dst: ebitmap_match_any
      Src: /src/selinux/libsepol/src/assertion.c:850,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/assertion.c:860,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - k
    - narule
    - p
    argTypes:
    - avtab_key_t*
    - avrule_t*
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 835
    functionDepth: 2
    functionLinenumber: 835
    functionLinenumberEnd: 862
    functionName: check_assertion_self_match
    functionSourceFile: /src/selinux/libsepol/src/assertion.c
    functionUses: 0
    functionsReached:
    - ebitmap_destroy
    - ebitmap_and
    - ebitmap_match_any
    linkageType: ''
    returnType: int
    signature: "int check_assertion_self_match(const avtab_key_t *k,\n\t\t\t\t      const
      avrule_t *narule, policydb_t *p)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: match_any_class_permissions
      Src: /src/selinux/libsepol/src/assertion.c:875,1
    - Dst: ebitmap_match_any
      Src: /src/selinux/libsepol/src/assertion.c:879,1
    - Dst: check_assertion_notself_match
      Src: /src/selinux/libsepol/src/assertion.c:884,1
    - Dst: ebitmap_match_any
      Src: /src/selinux/libsepol/src/assertion.c:891,1
    - Dst: check_assertion_self_match
      Src: /src/selinux/libsepol/src/assertion.c:894,1
    - Dst: check_assertion_extended_permissions
      Src: /src/selinux/libsepol/src/assertion.c:906,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 50
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - avtab_key_t*
    - avtab_datum_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 864
    functionDepth: 4
    functionLinenumber: 864
    functionLinenumberEnd: 920
    functionName: check_assertion_avtab_match
    functionSourceFile: /src/selinux/libsepol/src/assertion.c
    functionUses: 0
    functionsReached:
    - match_any_class_permissions
    - check_assertion_extended_permissions
    - check_assertion_self_match
    - check_assertion_notself_match
    - ebitmap_match_any
    linkageType: ''
    returnType: int
    signature: "int check_assertion_avtab_match(avtab_key_t *k, avtab_datum_t *d,\n\t\t\t\t
      \      void *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avtab_map
      Src: /src/selinux/libsepol/src/assertion.c:933,1
    - Dst: avtab_map
      Src: /src/selinux/libsepol/src/assertion.c:937,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - narule
    argTypes:
    - policydb_t*
    - avrule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 922
    functionDepth: 1
    functionLinenumber: 922
    functionLinenumberEnd: 942
    functionName: check_assertion
    functionSourceFile: /src/selinux/libsepol/src/assertion.c
    functionUses: 0
    functionsReached:
    - avtab_map
    linkageType: ''
    returnType: int
    signature: int check_assertion(policydb_t *p, const avrule_t *narule)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: check_assertion
      Src: /src/selinux/libsepol/src/assertion.c:955,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/assertion.c:957,1
    - Dst: report_assertion_failures
      Src: /src/selinux/libsepol/src/assertion.c:962,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/assertion.c:964,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/assertion.c:973,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - handle
    - p
    - narules
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - avrule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 944
    functionDepth: 2
    functionLinenumber: 944
    functionLinenumberEnd: 976
    functionName: check_assertions
    functionSourceFile: /src/selinux/libsepol/src/assertion.c
    functionUses: 4
    functionsReached:
    - ERR
    - check_assertion
    - report_assertion_failures
    linkageType: ''
    returnType: int
    signature: "int check_assertions(sepol_handle_t *handle, policydb_t *p,\n\t\t
      \    const avrule_t *narules)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/boolean_record.c:25,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/boolean_record.c:28,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/boolean_record.c:33,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/boolean_record.c:35,1
    - Dst: free
      Src: /src/selinux/libsepol/src/boolean_record.c:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - handle
    - name
    - key_ptr
    argTypes:
    - sepol_handle_t*
    - char*
    - sepol_bool_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 43
    functionName: sepol_bool_key_create
    functionSourceFile: /src/selinux/libsepol/src/boolean_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - free
    - malloc
    - strdup
    linkageType: ''
    returnType: int
    signature: "int sepol_bool_key_create(sepol_handle_t *handle, const char *name,\n\t\t\t
      \ sepol_bool_key_t **key_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - name
    argTypes:
    - sepol_bool_key_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: sepol_bool_key_unpack
    functionSourceFile: /src/selinux/libsepol/src/boolean_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sepol_bool_key_unpack(const sepol_bool_key_t *key, const char
      **name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_bool_key_create
      Src: /src/selinux/libsepol/src/boolean_record.c:53,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/boolean_record.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - handle
    - boolean
    - key_ptr
    argTypes:
    - sepol_handle_t*
    - sepol_bool_t*
    - sepol_bool_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: sepol_bool_key_extract
    functionSourceFile: /src/selinux/libsepol/src/boolean_record.c
    functionUses: 0
    functionsReached:
    - sepol_bool_key_create
    - ERR
    linkageType: ''
    returnType: int
    signature: "int sepol_bool_key_extract(sepol_handle_t *handle, const sepol_bool_t
      *boolean,\n\t\t\t   sepol_bool_key_t **key_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/boolean_record.c:66,1
    - Dst: free
      Src: /src/selinux/libsepol/src/boolean_record.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - sepol_bool_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: sepol_bool_key_free
    functionSourceFile: /src/selinux/libsepol/src/boolean_record.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void sepol_bool_key_free(sepol_bool_key_t *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/boolean_record.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - boolean
    - key
    argTypes:
    - sepol_bool_t*
    - sepol_bool_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: sepol_bool_compare
    functionSourceFile: /src/selinux/libsepol/src/boolean_record.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int sepol_bool_compare(const sepol_bool_t *boolean, const sepol_bool_key_t
      *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/boolean_record.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - boolean
    - boolean2
    argTypes:
    - sepol_bool_t*
    - sepol_bool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: sepol_bool_compare2
    functionSourceFile: /src/selinux/libsepol/src/boolean_record.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int sepol_bool_compare2(const sepol_bool_t *boolean,\n\t\t\tconst
      sepol_bool_t *boolean2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - boolean
    argTypes:
    - sepol_bool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: sepol_bool_get_name
    functionSourceFile: /src/selinux/libsepol/src/boolean_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *sepol_bool_get_name(const sepol_bool_t *boolean)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libsepol/src/boolean_record.c:90,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/boolean_record.c:92,1
    - Dst: free
      Src: /src/selinux/libsepol/src/boolean_record.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - boolean
    - name
    argTypes:
    - sepol_handle_t*
    - sepol_bool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 98
    functionName: sepol_bool_set_name
    functionSourceFile: /src/selinux/libsepol/src/boolean_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int sepol_bool_set_name(sepol_handle_t *handle, sepol_bool_t *boolean,\n\t\t\tconst
      char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - boolean
    argTypes:
    - sepol_bool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: sepol_bool_get_value
    functionSourceFile: /src/selinux/libsepol/src/boolean_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sepol_bool_get_value(const sepol_bool_t *boolean)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - boolean
    - value
    argTypes:
    - sepol_bool_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: sepol_bool_set_value
    functionSourceFile: /src/selinux/libsepol/src/boolean_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sepol_bool_set_value(sepol_bool_t *boolean, int value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/boolean_record.c:114,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/boolean_record.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - handle
    - bool_ptr
    argTypes:
    - sepol_handle_t*
    - sepol_bool_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 127
    functionName: sepol_bool_create
    functionSourceFile: /src/selinux/libsepol/src/boolean_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - malloc
    linkageType: ''
    returnType: int
    signature: int sepol_bool_create(sepol_handle_t *handle, sepol_bool_t **bool_ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sepol_bool_create
      Src: /src/selinux/libsepol/src/boolean_record.c:135,1
    - Dst: sepol_bool_set_name
      Src: /src/selinux/libsepol/src/boolean_record.c:138,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/boolean_record.c:147,1
    - Dst: sepol_bool_free
      Src: /src/selinux/libsepol/src/boolean_record.c:148,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - handle
    - boolean
    - bool_ptr
    argTypes:
    - sepol_handle_t*
    - sepol_bool_t*
    - sepol_bool_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 150
    functionName: sepol_bool_clone
    functionSourceFile: /src/selinux/libsepol/src/boolean_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_bool_create
    - sepol_bool_free
    - sepol_bool_set_name
    linkageType: ''
    returnType: int
    signature: "int sepol_bool_clone(sepol_handle_t *handle, const sepol_bool_t *boolean,\n\t\t
      \    sepol_bool_t **bool_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/boolean_record.c:158,1
    - Dst: free
      Src: /src/selinux/libsepol/src/boolean_record.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - boolean
    argTypes:
    - sepol_bool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: sepol_bool_free
    functionSourceFile: /src/selinux/libsepol/src/boolean_record.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void sepol_bool_free(sepol_bool_t *boolean)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: inet_pton
      Src: /src/selinux/libsepol/src/node_record.c:49,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:50,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/node_record.c:57,1
    - Dst: inet_pton
      Src: /src/selinux/libsepol/src/node_record.c:63,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:64,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/node_record.c:71,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:75,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - handle
    - addr_str
    - proto
    - addr_bytes
    argTypes:
    - sepol_handle_t*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 83
    functionName: node_parse_addr
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 0
    functionsReached:
    - inet_pton
    - ERR
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int node_parse_addr(sepol_handle_t *handle, const char *addr_str,\n\t\t\t
      \  int proto, char *addr_bytes)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/node_record.c:97,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/node_record.c:104,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:110,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:119,1
    - Dst: free
      Src: /src/selinux/libsepol/src/node_record.c:122,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:123,1
    - Dst: sepol_node_get_proto_str
      Src: /src/selinux/libsepol/src/node_record.c:124,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 4
    argNames:
    - handle
    - proto
    - addr
    - addr_sz
    argTypes:
    - sepol_handle_t*
    - int
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 126
    functionName: node_alloc_addr
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - free
    - malloc
    - sepol_node_get_proto_str
    linkageType: ''
    returnType: int
    signature: "int node_alloc_addr(sepol_handle_t *handle, int proto, char **addr,\n\t\t\t
      \  size_t *addr_sz)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/node_record.c:138,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/node_record.c:139,1
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/src/node_record.c:141,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:143,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/node_record.c:152,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/node_record.c:153,1
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/src/node_record.c:154,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:156,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:164,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - handle
    - addr_bytes
    - proto
    - addr_str
    argTypes:
    - sepol_handle_t*
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 172
    functionName: node_expand_addr
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 0
    functionsReached:
    - memcpy
    - inet_ntop
    - ERR
    - memset
    linkageType: ''
    returnType: int
    signature: "int node_expand_addr(sepol_handle_t *handle, char *addr_bytes, int
      proto,\n\t\t\t    char *addr_str)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/node_record.c:184,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/node_record.c:190,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:196,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:204,1
    - Dst: free
      Src: /src/selinux/libsepol/src/node_record.c:207,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:208,1
    - Dst: sepol_node_get_proto_str
      Src: /src/selinux/libsepol/src/node_record.c:211,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - handle
    - proto
    - addr
    argTypes:
    - sepol_handle_t*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 213
    functionName: node_alloc_addr_string
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - free
    - malloc
    - sepol_node_get_proto_str
    linkageType: ''
    returnType: int
    signature: "int node_alloc_addr_string(sepol_handle_t *handle, int proto,\n\t\t\t\t
      \ char **addr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/node_record.c:221,1
    - Dst: node_alloc_addr
      Src: /src/selinux/libsepol/src/node_record.c:225,1
    - Dst: node_parse_addr
      Src: /src/selinux/libsepol/src/node_record.c:228,1
    - Dst: node_alloc_addr
      Src: /src/selinux/libsepol/src/node_record.c:231,1
    - Dst: node_parse_addr
      Src: /src/selinux/libsepol/src/node_record.c:234,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:243,1
    - Dst: sepol_node_key_free
      Src: /src/selinux/libsepol/src/node_record.c:246,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:247,1
    - Dst: sepol_node_get_proto_str
      Src: /src/selinux/libsepol/src/node_record.c:248,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 5
    argNames:
    - handle
    - addr
    - mask
    - proto
    - key_ptr
    argTypes:
    - sepol_handle_t*
    - char*
    - char*
    - int
    - sepol_node_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 250
    functionName: sepol_node_key_create
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - node_parse_addr
    - sepol_node_key_free
    - node_alloc_addr
    - calloc
    - sepol_node_get_proto_str
    linkageType: ''
    returnType: int
    signature: "int sepol_node_key_create(sepol_handle_t *handle, const char *addr,\n\t\t\t
      \ const char *mask, int proto,\n\t\t\t  sepol_node_key_t **key_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - key
    - addr
    - mask
    - proto
    argTypes:
    - sepol_node_key_t*
    - char**
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: sepol_node_key_unpack
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void sepol_node_key_unpack(const sepol_node_key_t *key, const char
      **addr,\n\t\t\t   const char **mask, int *proto)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/node_record.c:264,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/node_record.c:268,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/node_record.c:269,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/node_record.c:274,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/node_record.c:275,1
    - Dst: sepol_node_key_free
      Src: /src/selinux/libsepol/src/node_record.c:284,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:285,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - handle
    - node
    - key_ptr
    argTypes:
    - sepol_handle_t*
    - sepol_node_t*
    - sepol_node_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 287
    functionName: sepol_node_key_extract
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_node_key_free
    - malloc
    - calloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int sepol_node_key_extract(sepol_handle_t *handle, const sepol_node_t
      *node,\n\t\t\t   sepol_node_key_t **key_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/node_record.c:294,1
    - Dst: free
      Src: /src/selinux/libsepol/src/node_record.c:295,1
    - Dst: free
      Src: /src/selinux/libsepol/src/node_record.c:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - sepol_node_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 297
    functionName: sepol_node_key_free
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void sepol_node_key_free(sepol_node_key_t *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/selinux/libsepol/src/node_record.c:310,1
    - Dst: memcmp
      Src: /src/selinux/libsepol/src/node_record.c:311,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - node
    - key
    argTypes:
    - sepol_node_t*
    - sepol_node_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 314
    functionName: sepol_node_compare
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int sepol_node_compare(const sepol_node_t *node, const sepol_node_key_t
      *key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/selinux/libsepol/src/node_record.c:328,1
    - Dst: memcmp
      Src: /src/selinux/libsepol/src/node_record.c:329,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - node
    - node2
    argTypes:
    - sepol_node_t*
    - sepol_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 332
    functionName: sepol_node_compare2
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int sepol_node_compare2(const sepol_node_t *node, const sepol_node_t
      *node2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: node_alloc_addr_string
      Src: /src/selinux/libsepol/src/node_record.c:340,1
    - Dst: node_expand_addr
      Src: /src/selinux/libsepol/src/node_record.c:343,1
    - Dst: free
      Src: /src/selinux/libsepol/src/node_record.c:350,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:351,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - handle
    - node
    - addr
    argTypes:
    - sepol_handle_t*
    - sepol_node_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 353
    functionName: sepol_node_get_addr
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - node_alloc_addr_string
    - free
    - node_expand_addr
    linkageType: ''
    returnType: int
    signature: "int sepol_node_get_addr(sepol_handle_t *handle, const sepol_node_t
      *node,\n\t\t\tchar **addr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/node_record.c:358,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:360,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/node_record.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - handle
    - node
    - buffer
    - bsize
    argTypes:
    - sepol_handle_t*
    - sepol_node_t*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 368
    functionName: sepol_node_get_addr_bytes
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 1
    functionsReached:
    - ERR
    - malloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int sepol_node_get_addr_bytes(sepol_handle_t *handle, const sepol_node_t
      *node,\n\t\t\t      char **buffer, size_t *bsize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: node_alloc_addr
      Src: /src/selinux/libsepol/src/node_record.c:376,1
    - Dst: node_parse_addr
      Src: /src/selinux/libsepol/src/node_record.c:379,1
    - Dst: free
      Src: /src/selinux/libsepol/src/node_record.c:382,1
    - Dst: free
      Src: /src/selinux/libsepol/src/node_record.c:388,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:389,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - handle
    - node
    - proto
    - addr
    argTypes:
    - sepol_handle_t*
    - sepol_node_t*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 391
    functionName: sepol_node_set_addr
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - node_parse_addr
    - free
    - node_alloc_addr
    linkageType: ''
    returnType: int
    signature: "int sepol_node_set_addr(sepol_handle_t *handle, sepol_node_t *node,
      int proto,\n\t\t\tconst char *addr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/node_record.c:396,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:398,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/node_record.c:403,1
    - Dst: free
      Src: /src/selinux/libsepol/src/node_record.c:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - handle
    - node
    - addr
    - addr_sz
    argTypes:
    - sepol_handle_t*
    - sepol_node_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 408
    functionName: sepol_node_set_addr_bytes
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 1
    functionsReached:
    - ERR
    - free
    - malloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int sepol_node_set_addr_bytes(sepol_handle_t *handle, sepol_node_t
      *node,\n\t\t\t      const char *addr, size_t addr_sz)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: node_alloc_addr_string
      Src: /src/selinux/libsepol/src/node_record.c:416,1
    - Dst: node_expand_addr
      Src: /src/selinux/libsepol/src/node_record.c:419,1
    - Dst: free
      Src: /src/selinux/libsepol/src/node_record.c:426,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:427,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - handle
    - node
    - mask
    argTypes:
    - sepol_handle_t*
    - sepol_node_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 429
    functionName: sepol_node_get_mask
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - node_alloc_addr_string
    - free
    - node_expand_addr
    linkageType: ''
    returnType: int
    signature: "int sepol_node_get_mask(sepol_handle_t *handle, const sepol_node_t
      *node,\n\t\t\tchar **mask)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/node_record.c:434,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:436,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/node_record.c:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - handle
    - node
    - buffer
    - bsize
    argTypes:
    - sepol_handle_t*
    - sepol_node_t*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 444
    functionName: sepol_node_get_mask_bytes
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 1
    functionsReached:
    - ERR
    - malloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int sepol_node_get_mask_bytes(sepol_handle_t *handle, const sepol_node_t
      *node,\n\t\t\t      char **buffer, size_t *bsize)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: node_alloc_addr
      Src: /src/selinux/libsepol/src/node_record.c:452,1
    - Dst: node_parse_addr
      Src: /src/selinux/libsepol/src/node_record.c:455,1
    - Dst: free
      Src: /src/selinux/libsepol/src/node_record.c:458,1
    - Dst: free
      Src: /src/selinux/libsepol/src/node_record.c:464,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:465,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - handle
    - node
    - proto
    - mask
    argTypes:
    - sepol_handle_t*
    - sepol_node_t*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 467
    functionName: sepol_node_set_mask
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - node_parse_addr
    - free
    - node_alloc_addr
    linkageType: ''
    returnType: int
    signature: "int sepol_node_set_mask(sepol_handle_t *handle, sepol_node_t *node,
      int proto,\n\t\t\tconst char *mask)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/node_record.c:472,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:474,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/node_record.c:478,1
    - Dst: free
      Src: /src/selinux/libsepol/src/node_record.c:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - handle
    - node
    - mask
    - mask_sz
    argTypes:
    - sepol_handle_t*
    - sepol_node_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 483
    functionName: sepol_node_set_mask_bytes
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 1
    functionsReached:
    - ERR
    - free
    - malloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int sepol_node_set_mask_bytes(sepol_handle_t *handle, sepol_node_t
      *node,\n\t\t\t      const char *mask, size_t mask_sz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - sepol_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 489
    functionName: sepol_node_get_proto
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sepol_node_get_proto(const sepol_node_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - proto
    argTypes:
    - sepol_node_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 494
    functionName: sepol_node_set_proto
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sepol_node_set_proto(sepol_node_t *node, int proto)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - proto
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 506
    functionName: sepol_node_get_proto_str
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *sepol_node_get_proto_str(int proto)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/node_record.c:511,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:514,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - handle
    - node
    argTypes:
    - sepol_handle_t*
    - sepol_node_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 528
    functionName: sepol_node_create
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 1
    functionsReached:
    - ERR
    - malloc
    linkageType: ''
    returnType: int
    signature: int sepol_node_create(sepol_handle_t *handle, sepol_node_t **node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_create
      Src: /src/selinux/libsepol/src/node_record.c:535,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/node_record.c:539,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/node_record.c:540,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/node_record.c:544,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/node_record.c:545,1
    - Dst: sepol_context_clone
      Src: /src/selinux/libsepol/src/node_record.c:552,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:559,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:562,1
    - Dst: sepol_node_free
      Src: /src/selinux/libsepol/src/node_record.c:563,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - handle
    - node
    - node_ptr
    argTypes:
    - sepol_handle_t*
    - sepol_node_t*
    - sepol_node_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 565
    functionName: sepol_node_clone
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_context_clone
    - malloc
    - sepol_node_create
    - memcpy
    - sepol_node_free
    linkageType: ''
    returnType: int
    signature: "int sepol_node_clone(sepol_handle_t *handle, const sepol_node_t *node,\n\t\t
      \    sepol_node_t **node_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/node_record.c:573,1
    - Dst: free
      Src: /src/selinux/libsepol/src/node_record.c:574,1
    - Dst: free
      Src: /src/selinux/libsepol/src/node_record.c:575,1
    - Dst: free
      Src: /src/selinux/libsepol/src/node_record.c:576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - node
    argTypes:
    - sepol_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 577
    functionName: sepol_node_free
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 3
    functionsReached:
    - free
    - sepol_context_free
    linkageType: ''
    returnType: void
    signature: void sepol_node_free(sepol_node_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - sepol_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 583
    functionName: sepol_node_get_con
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: sepol_context_t
    signature: sepol_context_t *sepol_node_get_con(const sepol_node_t *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_clone
      Src: /src/selinux/libsepol/src/node_record.c:590,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/node_record.c:591,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/node_record.c:595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - node
    - con
    argTypes:
    - sepol_handle_t*
    - sepol_node_t*
    - sepol_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 598
    functionName: sepol_node_set_con
    functionSourceFile: /src/selinux/libsepol/src/node_record.c
    functionUses: 1
    functionsReached:
    - ERR
    - sepol_context_clone
    - sepol_context_free
    linkageType: ''
    returnType: int
    signature: "int sepol_node_set_con(sepol_handle_t *handle, sepol_node_t *node,\n\t\t
      \      sepol_context_t *con)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sepol_bool_key_unpack
      Src: /src/selinux/libsepol/src/booleans.c:22,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/booleans.c:23,1
    - Dst: sepol_bool_get_value
      Src: /src/selinux/libsepol/src/booleans.c:24,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/booleans.c:29,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/booleans.c:31,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/booleans.c:35,1
    - Dst: free
      Src: /src/selinux/libsepol/src/booleans.c:39,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/booleans.c:44,1
    - Dst: free
      Src: /src/selinux/libsepol/src/booleans.c:47,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/booleans.c:48,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - handle
    - policydb
    - key
    - data
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - sepol_bool_key_t*
    - sepol_bool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 50
    functionName: bool_update
    functionSourceFile: /src/selinux/libsepol/src/booleans.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_search
    - sepol_bool_get_value
    - free
    - sepol_bool_key_unpack
    - strdup
    linkageType: ''
    returnType: int
    signature: "int bool_update(sepol_handle_t *handle, policydb_t *policydb,\n\t\t
      \      const sepol_bool_key_t *key, const sepol_bool_t *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sepol_bool_create
      Src: /src/selinux/libsepol/src/booleans.c:61,1
    - Dst: sepol_bool_set_name
      Src: /src/selinux/libsepol/src/booleans.c:64,1
    - Dst: sepol_bool_set_value
      Src: /src/selinux/libsepol/src/booleans.c:67,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/booleans.c:73,1
    - Dst: sepol_bool_free
      Src: /src/selinux/libsepol/src/booleans.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - handle
    - policydb
    - bool_idx
    - record
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - int
    - sepol_bool_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 76
    functionName: bool_to_record
    functionSourceFile: /src/selinux/libsepol/src/booleans.c
    functionUses: 0
    functionsReached:
    - sepol_bool_set_value
    - ERR
    - sepol_bool_set_name
    - sepol_bool_create
    - sepol_bool_free
    linkageType: ''
    returnType: int
    signature: "int bool_to_record(sepol_handle_t *handle, const policydb_t *policydb,\n\t\t\t
      \ int bool_idx, sepol_bool_t **record)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sepol_bool_key_unpack
      Src: /src/selinux/libsepol/src/booleans.c:83,1
    - Dst: bool_update
      Src: /src/selinux/libsepol/src/booleans.c:85,1
    - Dst: evaluate_conds
      Src: /src/selinux/libsepol/src/booleans.c:88,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/booleans.c:89,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/booleans.c:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - handle
    - p
    - key
    - data
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - sepol_bool_key_t*
    - sepol_bool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 98
    functionName: sepol_bool_set
    functionSourceFile: /src/selinux/libsepol/src/booleans.c
    functionUses: 0
    functionsReached:
    - evaluate_conds
    - ERR
    - bool_update
    - sepol_bool_key_unpack
    linkageType: ''
    returnType: int
    signature: "int sepol_bool_set(sepol_handle_t *handle, sepol_policydb_t *p,\n\t\t
      \  const sepol_bool_key_t *key, const sepol_bool_t *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - handle
    - p
    - response
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: sepol_bool_count
    functionSourceFile: /src/selinux/libsepol/src/booleans.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sepol_bool_count(sepol_handle_t *handle __attribute__((unused)),\n\t\t
      \    const sepol_policydb_t *p, unsigned int *response)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_bool_key_unpack
      Src: /src/selinux/libsepol/src/booleans.c:116,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/booleans.c:117,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/booleans.c:120,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/booleans.c:127,1
    - Dst: free
      Src: /src/selinux/libsepol/src/booleans.c:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - handle
    - p
    - key
    - response
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - sepol_bool_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 130
    functionName: sepol_bool_exists
    functionSourceFile: /src/selinux/libsepol/src/booleans.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_search
    - free
    - sepol_bool_key_unpack
    - strdup
    linkageType: ''
    returnType: int
    signature: "int sepol_bool_exists(sepol_handle_t *handle, const sepol_policydb_t
      *p,\n\t\t      const sepol_bool_key_t *key, int *response)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sepol_bool_key_unpack
      Src: /src/selinux/libsepol/src/booleans.c:140,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/booleans.c:141,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/booleans.c:146,1
    - Dst: free
      Src: /src/selinux/libsepol/src/booleans.c:149,1
    - Dst: bool_to_record
      Src: /src/selinux/libsepol/src/booleans.c:153,1
    - Dst: free
      Src: /src/selinux/libsepol/src/booleans.c:157,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/booleans.c:161,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/booleans.c:164,1
    - Dst: free
      Src: /src/selinux/libsepol/src/booleans.c:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - handle
    - p
    - key
    - response
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - sepol_bool_key_t*
    - sepol_bool_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 167
    functionName: sepol_bool_query
    functionSourceFile: /src/selinux/libsepol/src/booleans.c
    functionUses: 0
    functionsReached:
    - bool_to_record
    - ERR
    - hashtab_search
    - free
    - sepol_bool_key_unpack
    - strdup
    linkageType: ''
    returnType: int
    signature: "int sepol_bool_query(sepol_handle_t *handle, const sepol_policydb_t
      *p,\n\t\t     const sepol_bool_key_t *key, sepol_bool_t **response)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: bool_to_record
      Src: /src/selinux/libsepol/src/booleans.c:182,1
    - Dst: fn
      Src: /src/selinux/libsepol/src/booleans.c:186,1
    - Dst: sepol_bool_free
      Src: /src/selinux/libsepol/src/booleans.c:190,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/booleans.c:201,1
    - Dst: sepol_bool_free
      Src: /src/selinux/libsepol/src/booleans.c:202,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - handle
    - p
    - arg
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 204
    functionName: sepol_bool_iterate
    functionSourceFile: /src/selinux/libsepol/src/booleans.c
    functionUses: 0
    functionsReached:
    - bool_to_record
    - ERR
    - fn
    - sepol_bool_free
    linkageType: ''
    returnType: int
    signature: "int sepol_bool_iterate(sepol_handle_t *handle, const sepol_policydb_t
      *p,\n\t\t       int (*fn)(const sepol_bool_t *boolean, void *fn_arg),\n\t\t
      \      void *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/policydb_public.c:11,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pf
    argTypes:
    - sepol_policy_file_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 15
    functionName: sepol_policy_file_create
    functionSourceFile: /src/selinux/libsepol/src/policydb_public.c
    functionUses: 1
    functionsReached:
    - calloc
    linkageType: ''
    returnType: int
    signature: int sepol_policy_file_create(sepol_policy_file_t **pf)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - spf
    - data
    - len
    argTypes:
    - sepol_policy_file_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 29
    functionName: sepol_policy_file_set_mem
    functionSourceFile: /src/selinux/libsepol/src/policydb_public.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sepol_policy_file_set_mem(sepol_policy_file_t *spf, char *data,
      size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - spf
    - fp
    argTypes:
    - sepol_policy_file_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: sepol_policy_file_set_fp
    functionSourceFile: /src/selinux/libsepol/src/policydb_public.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sepol_policy_file_set_fp(sepol_policy_file_t *spf, FILE *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - spf
    - len
    argTypes:
    - sepol_policy_file_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: sepol_policy_file_get_len
    functionSourceFile: /src/selinux/libsepol/src/policydb_public.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sepol_policy_file_get_len(sepol_policy_file_t *spf, size_t *len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pf
    - handle
    argTypes:
    - sepol_policy_file_t*
    - sepol_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: sepol_policy_file_set_handle
    functionSourceFile: /src/selinux/libsepol/src/policydb_public.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void sepol_policy_file_set_handle(sepol_policy_file_t *pf,\n\t\t\t\t
      \ sepol_handle_t *handle)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb_public.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pf
    argTypes:
    - sepol_policy_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: sepol_policy_file_free
    functionSourceFile: /src/selinux/libsepol/src/policydb_public.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void sepol_policy_file_free(sepol_policy_file_t *pf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/policydb_public.c:64,1
    - Dst: policydb_init
      Src: /src/selinux/libsepol/src/policydb_public.c:68,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb_public.c:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - sp
    argTypes:
    - sepol_policydb_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 74
    functionName: sepol_policydb_create
    functionSourceFile: /src/selinux/libsepol/src/policydb_public.c
    functionUses: 1
    functionsReached:
    - policydb_init
    - free
    - malloc
    linkageType: ''
    returnType: int
    signature: int sepol_policydb_create(sepol_policydb_t **sp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/src/policydb_public.c:80,1
    - Dst: free
      Src: /src/selinux/libsepol/src/policydb_public.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - p
    argTypes:
    - sepol_policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: sepol_policydb_free
    functionSourceFile: /src/selinux/libsepol/src/policydb_public.c
    functionUses: 1
    functionsReached:
    - free
    - policydb_destroy
    linkageType: ''
    returnType: void
    signature: void sepol_policydb_free(sepol_policydb_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: sepol_policy_kern_vers_min
    functionSourceFile: /src/selinux/libsepol/src/policydb_public.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sepol_policy_kern_vers_min(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: sepol_policy_kern_vers_max
    functionSourceFile: /src/selinux/libsepol/src/policydb_public.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sepol_policy_kern_vers_max(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - sp
    - type
    argTypes:
    - sepol_policydb_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 110
    functionName: sepol_policydb_set_typevers
    functionSourceFile: /src/selinux/libsepol/src/policydb_public.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sepol_policydb_set_typevers(sepol_policydb_t *sp, unsigned int
      type)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - sp
    - vers
    argTypes:
    - sepol_policydb_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 131
    functionName: sepol_policydb_set_vers
    functionSourceFile: /src/selinux/libsepol/src/policydb_public.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sepol_policydb_set_vers(sepol_policydb_t *sp, unsigned int vers)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - sp
    - handle_unknown
    argTypes:
    - sepol_policydb_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 149
    functionName: sepol_policydb_set_handle_unknown
    functionSourceFile: /src/selinux/libsepol/src/policydb_public.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sepol_policydb_set_handle_unknown(sepol_policydb_t *sp,\n\t\t\t\t
      \     unsigned int handle_unknown)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - sp
    - target_platform
    argTypes:
    - sepol_policydb_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 166
    functionName: sepol_policydb_set_target_platform
    functionSourceFile: /src/selinux/libsepol/src/policydb_public.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sepol_policydb_set_target_platform(sepol_policydb_t *sp,\n\t\t\t\t
      \      int target_platform)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: policydb_optimize
      Src: /src/selinux/libsepol/src/policydb_public.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sepol_policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 6
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: sepol_policydb_optimize
    functionSourceFile: /src/selinux/libsepol/src/policydb_public.c
    functionUses: 0
    functionsReached:
    - policydb_optimize
    linkageType: ''
    returnType: int
    signature: int sepol_policydb_optimize(sepol_policydb_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: policydb_read
      Src: /src/selinux/libsepol/src/policydb_public.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - pf
    argTypes:
    - sepol_policydb_t*
    - sepol_policy_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 8
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: sepol_policydb_read
    functionSourceFile: /src/selinux/libsepol/src/policydb_public.c
    functionUses: 0
    functionsReached:
    - policydb_read
    linkageType: ''
    returnType: int
    signature: int sepol_policydb_read(sepol_policydb_t *p, sepol_policy_file_t *pf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: policydb_write
      Src: /src/selinux/libsepol/src/policydb_public.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p
    - pf
    argTypes:
    - sepol_policydb_t*
    - sepol_policy_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 8
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: sepol_policydb_write
    functionSourceFile: /src/selinux/libsepol/src/policydb_public.c
    functionUses: 0
    functionsReached:
    - policydb_write
    linkageType: ''
    returnType: int
    signature: int sepol_policydb_write(sepol_policydb_t *p, sepol_policy_file_t *pf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: policydb_from_image
      Src: /src/selinux/libsepol/src/policydb_public.c:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - data
    - len
    - p
    argTypes:
    - sepol_handle_t*
    - void*
    - size_t
    - sepol_policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 9
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: sepol_policydb_from_image
    functionSourceFile: /src/selinux/libsepol/src/policydb_public.c
    functionUses: 0
    functionsReached:
    - policydb_from_image
    linkageType: ''
    returnType: int
    signature: "int sepol_policydb_from_image(sepol_handle_t *handle, void *data,
      size_t len,\n\t\t\t      sepol_policydb_t *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: policydb_to_image
      Src: /src/selinux/libsepol/src/policydb_public.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - p
    - newdata
    - newlen
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - void**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 9
    functionLinenumber: 189
    functionLinenumberEnd: 193
    functionName: sepol_policydb_to_image
    functionSourceFile: /src/selinux/libsepol/src/policydb_public.c
    functionUses: 0
    functionsReached:
    - policydb_to_image
    linkageType: ''
    returnType: int
    signature: "int sepol_policydb_to_image(sepol_handle_t *handle, sepol_policydb_t
      *p,\n\t\t\t    void **newdata, size_t *newlen)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sepol_policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: sepol_policydb_mls_enabled
    functionSourceFile: /src/selinux/libsepol/src/policydb_public.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sepol_policydb_mls_enabled(const sepol_policydb_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/policydb_public.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - sepol_policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: sepol_policydb_compat_net
    functionSourceFile: /src/selinux/libsepol/src/policydb_public.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: int sepol_policydb_compat_net(const sepol_policydb_t *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/avrule_block.c:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: avrule_block_create
    functionSourceFile: /src/selinux/libsepol/src/avrule_block.c
    functionUses: 2
    functionsReached:
    - calloc
    linkageType: ''
    returnType: avrule_block_t
    signature: avrule_block_t *avrule_block_create(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/avrule_block.c:50,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/src/avrule_block.c:55,1
    - Dst: avrule_decl_destroy
      Src: /src/selinux/libsepol/src/avrule_block.c:56,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/avrule_block.c:62,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/avrule_block.c:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - decl_id
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 66
    functionName: avrule_decl_create
    functionSourceFile: /src/selinux/libsepol/src/avrule_block.c
    functionUses: 3
    functionsReached:
    - symtab_init
    - ebitmap_init
    - calloc
    - avrule_decl_destroy
    linkageType: ''
    returnType: avrule_decl_t
    signature: avrule_decl_t *avrule_decl_create(uint32_t decl_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/avrule_block.c:77,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/avrule_block.c:81,1
    - Dst: free
      Src: /src/selinux/libsepol/src/avrule_block.c:84,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - scope
    argTypes:
    - scope_index_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 85
    functionName: scope_index_destroy
    functionSourceFile: /src/selinux/libsepol/src/avrule_block.c
    functionUses: 0
    functionsReached:
    - free
    - ebitmap_destroy
    linkageType: ''
    returnType: void
    signature: void scope_index_destroy(scope_index_t *scope)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cond_list_destroy
      Src: /src/selinux/libsepol/src/avrule_block.c:92,1
    - Dst: avrule_list_destroy
      Src: /src/selinux/libsepol/src/avrule_block.c:93,1
    - Dst: role_trans_rule_list_destroy
      Src: /src/selinux/libsepol/src/avrule_block.c:94,1
    - Dst: filename_trans_rule_list_destroy
      Src: /src/selinux/libsepol/src/avrule_block.c:95,1
    - Dst: role_allow_rule_list_destroy
      Src: /src/selinux/libsepol/src/avrule_block.c:96,1
    - Dst: range_trans_rule_list_destroy
      Src: /src/selinux/libsepol/src/avrule_block.c:97,1
    - Dst: scope_index_destroy
      Src: /src/selinux/libsepol/src/avrule_block.c:98,1
    - Dst: scope_index_destroy
      Src: /src/selinux/libsepol/src/avrule_block.c:99,1
    - Dst: symtabs_destroy
      Src: /src/selinux/libsepol/src/avrule_block.c:100,1
    - Dst: free
      Src: /src/selinux/libsepol/src/avrule_block.c:101,1
    - Dst: free
      Src: /src/selinux/libsepol/src/avrule_block.c:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - x
    argTypes:
    - avrule_decl_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 87
    functionDepth: 6
    functionLinenumber: 87
    functionLinenumberEnd: 103
    functionName: avrule_decl_destroy
    functionSourceFile: /src/selinux/libsepol/src/avrule_block.c
    functionUses: 3
    functionsReached:
    - range_trans_rule_list_destroy
    - scope_index_destroy
    - cond_list_destroy
    - symtabs_destroy
    - avrule_list_destroy
    - role_trans_rule_list_destroy
    - free
    - filename_trans_rule_list_destroy
    - role_allow_rule_list_destroy
    linkageType: ''
    returnType: void
    signature: void avrule_decl_destroy(avrule_decl_t *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avrule_decl_destroy
      Src: /src/selinux/libsepol/src/avrule_block.c:114,1
    - Dst: free
      Src: /src/selinux/libsepol/src/avrule_block.c:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - avrule_block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 105
    functionDepth: 7
    functionLinenumber: 105
    functionLinenumberEnd: 118
    functionName: avrule_block_destroy
    functionSourceFile: /src/selinux/libsepol/src/avrule_block.c
    functionUses: 2
    functionsReached:
    - free
    - avrule_decl_destroy
    linkageType: ''
    returnType: void
    signature: void avrule_block_destroy(avrule_block_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avrule_block_destroy
      Src: /src/selinux/libsepol/src/avrule_block.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - avrule_block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 8
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: avrule_block_list_destroy
    functionSourceFile: /src/selinux/libsepol/src/avrule_block.c
    functionUses: 3
    functionsReached:
    - avrule_block_destroy
    linkageType: ''
    returnType: void
    signature: void avrule_block_list_destroy(avrule_block_t *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cond_node_find
      Src: /src/selinux/libsepol/src/avrule_block.c:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - p
    - decl
    - cond
    argTypes:
    - policydb_t*
    - avrule_decl_t*
    - cond_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 131
    functionDepth: 4
    functionLinenumber: 131
    functionLinenumberEnd: 142
    functionName: get_decl_cond_list
    functionSourceFile: /src/selinux/libsepol/src/avrule_block.c
    functionUses: 0
    functionsReached:
    - cond_node_find
    linkageType: ''
    returnType: cond_list_t
    signature: "cond_list_t *get_decl_cond_list(policydb_t *p, avrule_decl_t *decl,\n\t\t\t\tcond_list_t
      *cond)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/avrule_block.c:150,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - id
    - p
    - symbol_table
    argTypes:
    - char*
    - policydb_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 183
    functionName: is_id_enabled
    functionSourceFile: /src/selinux/libsepol/src/avrule_block.c
    functionUses: 2
    functionsReached:
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: int is_id_enabled(const char *id, const policydb_t *p, int symbol_table)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/avrule_block.c:192,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/avrule_block.c:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - cladatum
    - perm_id
    argTypes:
    - class_datum_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 203
    functionName: is_perm_existent
    functionSourceFile: /src/selinux/libsepol/src/avrule_block.c
    functionUses: 2
    functionsReached:
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: int is_perm_existent(const class_datum_t *cladatum, const char *perm_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/src/kernel_to_common.c:27,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_common.c:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - out
    - indent
    argTypes:
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: sepol_indent
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - ERR
    - fprintf
    linkageType: ''
    returnType: void
    signature: void sepol_indent(FILE *out, int indent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/selinux/libsepol/src/kernel_to_common.c:35,1
    - Dst: vfprintf
      Src: /src/selinux/libsepol/src/kernel_to_common.c:36,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_common.c:37,1
    - Dst: va_end
      Src: /src/selinux/libsepol/src/kernel_to_common.c:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - out
    - fmt
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: sepol_printf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - ERR
    - va_start
    - va_end
    - vfprintf
    linkageType: ''
    returnType: void
    signature: void sepol_printf(FILE *out, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/selinux/libsepol/src/kernel_to_common.c:48,1
    - Dst: vasprintf
      Src: /src/selinux/libsepol/src/kernel_to_common.c:49,1
    - Dst: va_end
      Src: /src/selinux/libsepol/src/kernel_to_common.c:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 56
    functionName: create_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_end
    - vasprintf
    linkageType: ''
    returnType: char
    signature: char *create_str(const char *fmt, ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc::malloc
      Src: /src/selinux/libsepol/src/kernel_to_common.c:68,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_common.c:70,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/kernel_to_common.c:74,1
    - Dst: list::list
      Src: /src/selinux/libsepol/src/kernel_to_common.c:75,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_common.c:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - strs
    - size
    argTypes:
    - struct strs**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 87
    functionName: strs_init
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - ERR
    - calloc
    - malloc::malloc
    - list::list
    linkageType: ''
    returnType: int
    signature: int strs_init(struct strs **strs, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_common.c:95,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_common.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - strs
    argTypes:
    - struct strs**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: strs_destroy
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void strs_destroy(struct strs **strs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_common.c:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - strs
    argTypes:
    - struct strs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 113
    functionName: strs_free_all
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void strs_free_all(struct strs *strs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_mul_overflow
      Src: /src/selinux/libsepol/src/kernel_to_common.c:121,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_common.c:122,1
    - Dst: reallocarray::reallocarray
      Src: /src/selinux/libsepol/src/kernel_to_common.c:125,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_common.c:127,1
    - Dst: strs::strs
      Src: /src/selinux/libsepol/src/kernel_to_common.c:130,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/kernel_to_common.c:132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - strs
    - s
    argTypes:
    - struct strs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 139
    functionName: strs_add
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - ERR
    - strs::strs
    - __builtin_mul_overflow
    - memset
    - reallocarray::reallocarray
    linkageType: ''
    returnType: int
    signature: int strs_add(struct strs *strs, char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/selinux/libsepol/src/kernel_to_common.c:147,1
    - Dst: vasprintf
      Src: /src/selinux/libsepol/src/kernel_to_common.c:148,1
    - Dst: va_end
      Src: /src/selinux/libsepol/src/kernel_to_common.c:149,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_common.c:154,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_common.c:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - strs
    - fmt
    argTypes:
    - struct strs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 164
    functionName: strs_create_and_add
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - va_end
    - strs_add
    - free
    - vasprintf
    - va_start
    linkageType: ''
    returnType: int
    signature: int strs_create_and_add(struct strs *strs, const char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - strs
    argTypes:
    - struct strs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 173
    functionName: strs_remove_last
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *strs_remove_last(struct strs *strs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_mul_overflow
      Src: /src/selinux/libsepol/src/kernel_to_common.c:182,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_common.c:183,1
    - Dst: reallocarray::reallocarray
      Src: /src/selinux/libsepol/src/kernel_to_common.c:187,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_common.c:189,1
    - Dst: strs::strs
      Src: /src/selinux/libsepol/src/kernel_to_common.c:192,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/kernel_to_common.c:194,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - strs
    - s
    - index
    argTypes:
    - struct strs*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 203
    functionName: strs_add_at_index
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - ERR
    - strs::strs
    - __builtin_mul_overflow
    - memset
    - reallocarray::reallocarray
    linkageType: ''
    returnType: int
    signature: int strs_add_at_index(struct strs *strs, char *s, size_t index)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - strs
    - index
    argTypes:
    - struct strs*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 212
    functionName: strs_read_at_index
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *strs_read_at_index(struct strs *strs, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_common.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: strs_cmp
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int strs_cmp(const void *a, const void *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qsort
      Src: /src/selinux/libsepol/src/kernel_to_common.c:226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - strs
    argTypes:
    - struct strs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 227
    functionName: strs_sort
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - qsort
    linkageType: ''
    returnType: void
    signature: void strs_sort(struct strs *strs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - strs
    argTypes:
    - struct strs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: strs_num_items
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned strs_num_items(const struct strs *strs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_add_overflow
      Src: /src/selinux/libsepol/src/kernel_to_common.c:242,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_common.c:242,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - strs
    argTypes:
    - struct strs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 248
    functionName: strs_len_items
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - __builtin_add_overflow
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t strs_len_items(const struct strs *strs)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_add_overflow
      Src: /src/selinux/libsepol/src/kernel_to_common.c:263,1
    - Dst: strs_len_items
      Src: /src/selinux/libsepol/src/kernel_to_common.c:263,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_common.c:264,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/kernel_to_common.c:267,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_common.c:269,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_common.c:277,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_common.c:278,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_common.c:280,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 1
    argNames:
    - strs
    argTypes:
    - struct strs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 294
    functionName: strs_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - ERR
    - snprintf
    - malloc
    - free
    - __builtin_add_overflow
    - strs_len_items
    - strlen
    linkageType: ''
    returnType: char
    signature: char *strs_to_str(const struct strs *strs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_common.c:304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - strs
    - out
    argTypes:
    - struct strs*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 306
    functionName: strs_write_each
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - sepol_printf
    linkageType: ''
    returnType: void
    signature: void strs_write_each(const struct strs *strs, FILE *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_indent
      Src: /src/selinux/libsepol/src/kernel_to_common.c:316,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_common.c:317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - strs
    - out
    - indent
    argTypes:
    - struct strs*
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 319
    functionName: strs_write_each_indented
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - sepol_printf
    - sepol_indent
    linkageType: ''
    returnType: void
    signature: void strs_write_each_indented(const struct strs *strs, FILE *out, int
      indent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strs_add_at_index
      Src: /src/selinux/libsepol/src/kernel_to_common.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - data
    - args
    argTypes:
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 327
    functionName: hashtab_ordered_to_strs
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - strs_add_at_index
    linkageType: ''
    returnType: int
    signature: int hashtab_ordered_to_strs(char *key, void *data, void *args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_common.c:340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - map
    - strs
    - val_to_name
    argTypes:
    - struct ebitmap*
    - struct strs*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 347
    functionName: ebitmap_to_strs
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - strs_add
    linkageType: ''
    returnType: int
    signature: "int ebitmap_to_strs(const struct ebitmap *map, struct strs *strs,\n\t\t
      \   char **val_to_name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_common.c:340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 344
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 25
    functionsReached:
    - strs_add
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(map, node, i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_common.c:355,1
    - Dst: ebitmap_to_strs
      Src: /src/selinux/libsepol/src/kernel_to_common.c:360,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_common.c:366,1
    - Dst: strs_to_str
      Src: /src/selinux/libsepol/src/kernel_to_common.c:369,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_common.c:372,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - map
    - val_to_name
    - sort
    argTypes:
    - struct ebitmap*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 375
    functionName: ebitmap_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - strs_to_str
    - strs_sort
    - strs_init
    - ebitmap_to_strs
    - strs_destroy
    linkageType: ''
    returnType: char
    signature: char *ebitmap_to_str(const struct ebitmap *map, char **val_to_name,
      int sort)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_common.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct strs**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 380
    functionName: strs_stack_init
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - strs_init
    linkageType: ''
    returnType: int
    signature: int strs_stack_init(struct strs **stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_common.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct strs**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 385
    functionName: strs_stack_destroy
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - strs_destroy
    linkageType: ''
    returnType: void
    signature: void strs_stack_destroy(struct strs **stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_common.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stack
    - s
    argTypes:
    - struct strs*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 390
    functionName: strs_stack_push
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - strs_add
    linkageType: ''
    returnType: int
    signature: int strs_stack_push(struct strs *stack, char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strs_remove_last
      Src: /src/selinux/libsepol/src/kernel_to_common.c:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct strs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 395
    functionName: strs_stack_pop
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - strs_remove_last
    linkageType: ''
    returnType: char
    signature: char *strs_stack_pop(struct strs *stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_common.c:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct strs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 400
    functionName: strs_stack_empty
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - strs_num_items
    linkageType: ''
    returnType: int
    signature: int strs_stack_empty(const struct strs *stack)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_common.c:412,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/kernel_to_common.c:427,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_common.c:429,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/kernel_to_common.c:430,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_common.c:433,1
    - Dst: strs_add_at_index
      Src: /src/selinux/libsepol/src/kernel_to_common.c:436,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_common.c:438,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_common.c:446,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_common.c:447,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 3
    argNames:
    - sid_to_str
    - num_sids
    - isids
    argTypes:
    - char**
    - unsigned
    - struct ocontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 449
    functionName: isids_to_strs
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 1
    functionsReached:
    - ERR
    - strs_add_at_index
    - snprintf
    - strs_init
    - free
    - strs_destroy
    - strs_free_all
    - strdup
    linkageType: ''
    returnType: struct strs
    signature: "struct strs *isids_to_strs(const char *const *sid_to_str, unsigned
      num_sids,\n\t\t\t   struct ocontext *isids)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - l1
    - h1
    - l2
    - h2
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 471
    functionName: compare_ranges
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compare_ranges(uint64_t l1, uint64_t h1, uint64_t l2, uint64_t
      h2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_common.c:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 487
    functionName: fsuse_data_cmp
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int fsuse_data_cmp(const void *a, const void *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: compare_ranges
      Src: /src/selinux/libsepol/src/kernel_to_common.c:495,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 506
    functionName: portcon_data_cmp
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - compare_ranges
    linkageType: ''
    returnType: int
    signature: int portcon_data_cmp(const void *a, const void *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcspn
      Src: /src/selinux/libsepol/src/kernel_to_common.c:515,1
    - Dst: strcspn
      Src: /src/selinux/libsepol/src/kernel_to_common.c:516,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_common.c:517,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_common.c:518,1
    - Dst: spaceship_cmp
      Src: /src/selinux/libsepol/src/kernel_to_common.c:524,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_common.c:530,1
    - Dst: spaceship_cmp
      Src: /src/selinux/libsepol/src/kernel_to_common.c:533,1
    - Dst: spaceship_cmp
      Src: /src/selinux/libsepol/src/kernel_to_common.c:538,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_common.c:543,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 544
    functionName: netif_data_cmp
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strcspn
    - strlen
    - spaceship_cmp
    linkageType: ''
    returnType: int
    signature: int netif_data_cmp(const void *a, const void *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/selinux/libsepol/src/kernel_to_common.c:552,1
    - Dst: memcmp
      Src: /src/selinux/libsepol/src/kernel_to_common.c:560,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 562
    functionName: node_data_cmp
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int node_data_cmp(const void *a, const void *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/selinux/libsepol/src/kernel_to_common.c:570,1
    - Dst: memcmp
      Src: /src/selinux/libsepol/src/kernel_to_common.c:578,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 580
    functionName: node6_data_cmp
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int node6_data_cmp(const void *a, const void *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: compare_ranges
      Src: /src/selinux/libsepol/src/kernel_to_common.c:592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 596
    functionName: ibpkey_data_cmp
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - compare_ranges
    linkageType: ''
    returnType: int
    signature: int ibpkey_data_cmp(const void *a, const void *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_common.c:604,1
    - Dst: spaceship_cmp
      Src: /src/selinux/libsepol/src/kernel_to_common.c:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 609
    functionName: ibendport_data_cmp
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - strcmp
    - spaceship_cmp
    linkageType: ''
    returnType: int
    signature: int ibendport_data_cmp(const void *a, const void *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 623
    functionName: pirq_data_cmp
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pirq_data_cmp(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compare_ranges
      Src: /src/selinux/libsepol/src/kernel_to_common.c:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 634
    functionName: ioport_data_cmp
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - compare_ranges
    linkageType: ''
    returnType: int
    signature: int ioport_data_cmp(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compare_ranges
      Src: /src/selinux/libsepol/src/kernel_to_common.c:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 645
    functionName: iomem_data_cmp
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - compare_ranges
    linkageType: ''
    returnType: int
    signature: int iomem_data_cmp(const void *a, const void *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 659
    functionName: pcid_data_cmp
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int pcid_data_cmp(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_common.c:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 667
    functionName: dtree_data_cmp
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int dtree_data_cmp(const void *a, const void *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/kernel_to_common.c:685,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_common.c:687,1
    - Dst: qsort
      Src: /src/selinux/libsepol/src/kernel_to_common.c:697,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_common.c:705,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - ocons
    argTypes:
    - struct ocontext**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 708
    functionName: sort_ocontext_data
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - ERR
    - qsort
    - free
    - calloc
    linkageType: ''
    returnType: int
    signature: "int sort_ocontext_data(struct ocontext **ocons,\n\t\t\t      int (*cmp)(const
      void *, const void *))"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: sort_ocontext_data
      Src: /src/selinux/libsepol/src/kernel_to_common.c:715,1
    - Dst: sort_ocontext_data
      Src: /src/selinux/libsepol/src/kernel_to_common.c:720,1
    - Dst: sort_ocontext_data
      Src: /src/selinux/libsepol/src/kernel_to_common.c:725,1
    - Dst: sort_ocontext_data
      Src: /src/selinux/libsepol/src/kernel_to_common.c:730,1
    - Dst: sort_ocontext_data
      Src: /src/selinux/libsepol/src/kernel_to_common.c:735,1
    - Dst: sort_ocontext_data
      Src: /src/selinux/libsepol/src/kernel_to_common.c:740,1
    - Dst: sort_ocontext_data
      Src: /src/selinux/libsepol/src/kernel_to_common.c:746,1
    - Dst: sort_ocontext_data
      Src: /src/selinux/libsepol/src/kernel_to_common.c:752,1
    - Dst: sort_ocontext_data
      Src: /src/selinux/libsepol/src/kernel_to_common.c:757,1
    - Dst: sort_ocontext_data
      Src: /src/selinux/libsepol/src/kernel_to_common.c:762,1
    - Dst: sort_ocontext_data
      Src: /src/selinux/libsepol/src/kernel_to_common.c:767,1
    - Dst: sort_ocontext_data
      Src: /src/selinux/libsepol/src/kernel_to_common.c:772,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_common.c:780,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 71
    argCount: 1
    argNames:
    - pdb
    argTypes:
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 784
    functionName: sort_ocontexts
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 1
    functionsReached:
    - sort_ocontext_data
    - ERR
    linkageType: ''
    returnType: int
    signature: int sort_ocontexts(struct policydb *pdb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_common.c:789,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_common.c:794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pdb
    argTypes:
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 799
    functionName: check_for_supported_policy
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_common.c
    functionUses: 0
    functionsReached:
    - ERR
    linkageType: ''
    returnType: int
    signature: int check_for_supported_policy(struct policydb *pdb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mls_compute_context_len
      Src: /src/selinux/libsepol/src/mls.c:48,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/mls.c:50,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/mls.c:56,1
    - Dst: mls_sid_to_context
      Src: /src/selinux/libsepol/src/mls.c:60,1
    - Dst: strcpy
      Src: /src/selinux/libsepol/src/mls.c:62,1
    - Dst: free
      Src: /src/selinux/libsepol/src/mls.c:64,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/mls.c:69,1
    - Dst: free
      Src: /src/selinux/libsepol/src/mls.c:71,1
    - Dst: free
      Src: /src/selinux/libsepol/src/mls.c:72,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - handle
    - policydb
    - mls
    - str
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - context_struct_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 74
    functionName: mls_to_string
    functionSourceFile: /src/selinux/libsepol/src/mls.c
    functionUses: 2
    functionsReached:
    - ERR
    - mls_sid_to_context
    - mls_compute_context_len
    - malloc
    - strcpy
    - free
    linkageType: ''
    returnType: int
    signature: "int mls_to_string(sepol_handle_t *handle, const policydb_t *policydb,\n\t\t
      \ const context_struct_t *mls, char **str)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libsepol/src/mls.c:79,1
    - Dst: mls_context_to_sid
      Src: /src/selinux/libsepol/src/mls.c:84,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/mls.c:85,1
    - Dst: free
      Src: /src/selinux/libsepol/src/mls.c:86,1
    - Dst: free
      Src: /src/selinux/libsepol/src/mls.c:90,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/mls.c:94,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/mls.c:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - handle
    - policydb
    - str
    - mls
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - char*
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 99
    functionName: mls_from_string
    functionSourceFile: /src/selinux/libsepol/src/mls.c
    functionUses: 2
    functionsReached:
    - ERR
    - mls_context_to_sid
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int mls_from_string(sepol_handle_t *handle, const policydb_t *policydb,\n\t\t
      \   const char *str, context_struct_t *mls)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsepol/src/mls.c:117,1
    - Dst: ebitmap_for_each_bit
      Src: /src/selinux/libsepol/src/mls.c:120,1
    - Dst: ebitmap_node_get_bit
      Src: /src/selinux/libsepol/src/mls.c:121,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/mls.c:127,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/mls.c:132,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/mls.c:140,1
    - Dst: mls_level_eq
      Src: /src/selinux/libsepol/src/mls.c:143,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - policydb
    - context
    argTypes:
    - policydb_t*
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 152
    functionName: mls_compute_context_len
    functionSourceFile: /src/selinux/libsepol/src/mls.c
    functionUses: 2
    functionsReached:
    - mls_level_eq
    - ebitmap_for_each_bit
    - strlen
    - ebitmap_node_get_bit
    linkageType: ''
    returnType: int
    signature: "int mls_compute_context_len(const policydb_t *policydb,\n\t\t\t    const
      context_struct_t *context)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/selinux/libsepol/src/mls.c:177,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/mls.c:180,1
    - Dst: ebitmap_for_each_bit
      Src: /src/selinux/libsepol/src/mls.c:183,1
    - Dst: ebitmap_node_get_bit
      Src: /src/selinux/libsepol/src/mls.c:184,1
    - Dst: strcpy
      Src: /src/selinux/libsepol/src/mls.c:195,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/mls.c:198,1
    - Dst: strcpy
      Src: /src/selinux/libsepol/src/mls.c:207,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/mls.c:210,1
    - Dst: strcpy
      Src: /src/selinux/libsepol/src/mls.c:224,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/mls.c:225,1
    - Dst: mls_level_eq
      Src: /src/selinux/libsepol/src/mls.c:229,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 3
    argNames:
    - policydb
    - context
    - scontext
    argTypes:
    - policydb_t*
    - context_struct_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 241
    functionName: mls_sid_to_context
    functionSourceFile: /src/selinux/libsepol/src/mls.c
    functionUses: 2
    functionsReached:
    - mls_level_eq
    - ebitmap_for_each_bit
    - strcpy
    - strlen
    - ebitmap_node_get_bit
    linkageType: ''
    returnType: void
    signature: "void mls_sid_to_context(const policydb_t *policydb,\n\t\t\tconst context_struct_t
      *context, char **scontext)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mls_level_dom
      Src: /src/selinux/libsepol/src/mls.c:263,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/mls.c:277,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/mls.c:281,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/mls.c:285,1
    - Dst: mls_range_contains
      Src: /src/selinux/libsepol/src/mls.c:303,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 2
    argNames:
    - p
    - c
    argTypes:
    - policydb_t*
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 307
    functionName: mls_context_isvalid
    functionSourceFile: /src/selinux/libsepol/src/mls.c
    functionUses: 1
    functionsReached:
    - mls_level_dom
    - mls_range_contains
    - hashtab_search
    - ebitmap_for_each_positive_bit
    - ebitmap_get_bit
    linkageType: ''
    returnType: int
    signature: int mls_context_isvalid(const policydb_t *p, const context_struct_t
      *c)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/mls.c:345,1
    - Dst: strchr
      Src: /src/selinux/libsepol/src/mls.c:364,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/mls.c:369,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/mls.c:375,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/mls.c:384,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/mls.c:396,1
    - Dst: mls_level_cpy
      Src: /src/selinux/libsepol/src/mls.c:424,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 74
    argCount: 4
    argNames:
    - policydb
    - oldc
    - scontext
    - context
    argTypes:
    - policydb_t*
    - char
    - char**
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 434
    functionName: mls_context_to_sid
    functionSourceFile: /src/selinux/libsepol/src/mls.c
    functionUses: 1
    functionsReached:
    - ebitmap_set_bit
    - mls_level_cpy
    - strchr
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: "int mls_context_to_sid(const policydb_t *policydb, char oldc, char
      **scontext,\n\t\t       context_struct_t *context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/src/mls.c:447,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - context_struct_t*
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 454
    functionName: mls_copy_context
    functionSourceFile: /src/selinux/libsepol/src/mls.c
    functionUses: 0
    functionsReached:
    - ebitmap_cpy
    linkageType: ''
    returnType: int
    signature: "int mls_copy_context(context_struct_t *dst,\n\t\t\t\t   const context_struct_t
      *src)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/src/mls.c:467,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - context_struct_t*
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 474
    functionName: mls_scopy_context
    functionSourceFile: /src/selinux/libsepol/src/mls.c
    functionUses: 0
    functionsReached:
    - ebitmap_cpy
    linkageType: ''
    returnType: int
    signature: "int mls_scopy_context(context_struct_t *dst,\n\t\t\t\t    const context_struct_t
      *src)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/src/mls.c:487,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - context
    - range
    argTypes:
    - context_struct_t*
    - mls_range_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 479
    functionDepth: 2
    functionLinenumber: 479
    functionLinenumberEnd: 494
    functionName: mls_range_set
    functionSourceFile: /src/selinux/libsepol/src/mls.c
    functionUses: 0
    functionsReached:
    - ebitmap_cpy
    linkageType: ''
    returnType: int
    signature: "int mls_range_set(context_struct_t *context,\n\t\t\t\tconst mls_range_t
      *range)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mls_level_between
      Src: /src/selinux/libsepol/src/mls.c:509,1
    - Dst: mls_level_between
      Src: /src/selinux/libsepol/src/mls.c:511,1
    - Dst: mls_level_between
      Src: /src/selinux/libsepol/src/mls.c:513,1
    - Dst: mls_level_dom
      Src: /src/selinux/libsepol/src/mls.c:523,1
    - Dst: mls_level_dom
      Src: /src/selinux/libsepol/src/mls.c:525,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - fromcon
    - user
    - usercon
    - mls
    argTypes:
    - context_struct_t*
    - user_datum_t*
    - context_struct_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 532
    functionName: mls_setup_user_range
    functionSourceFile: /src/selinux/libsepol/src/mls.c
    functionUses: 1
    functionsReached:
    - mls_level_between
    - mls_level_dom
    linkageType: ''
    returnType: int
    signature: "int mls_setup_user_range(context_struct_t *fromcon, user_datum_t *user,\n\t\t\t
      context_struct_t *usercon, int mls)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/mls.c:551,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/mls.c:559,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/mls.c:560,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/mls.c:564,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/mls.c:568,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/mls.c:572,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - oldp
    - newp
    - c
    argTypes:
    - policydb_t*
    - policydb_t*
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 577
    functionName: mls_convert_context
    functionSourceFile: /src/selinux/libsepol/src/mls.c
    functionUses: 1
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - hashtab_search
    - ebitmap_for_each_positive_bit
    - ebitmap_set_bit
    linkageType: ''
    returnType: int
    signature: int mls_convert_context(policydb_t *oldp, policydb_t *newp, context_struct_t
      *c)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/mls.c:598,1
    - Dst: mls_range_set
      Src: /src/selinux/libsepol/src/mls.c:600,1
    - Dst: mls_context_cpy_low
      Src: /src/selinux/libsepol/src/mls.c:610,1
    - Dst: mls_context_cpy_high
      Src: /src/selinux/libsepol/src/mls.c:612,1
    - Dst: mls_context_cpy
      Src: /src/selinux/libsepol/src/mls.c:614,1
    - Dst: mls_context_cpy_low
      Src: /src/selinux/libsepol/src/mls.c:616,1
    - Dst: mls_context_cpy_high
      Src: /src/selinux/libsepol/src/mls.c:618,1
    - Dst: mls_context_cpy
      Src: /src/selinux/libsepol/src/mls.c:620,1
    - Dst: mls_context_glblub
      Src: /src/selinux/libsepol/src/mls.c:622,1
    - Dst: mls_copy_context
      Src: /src/selinux/libsepol/src/mls.c:630,1
    - Dst: mls_scopy_context
      Src: /src/selinux/libsepol/src/mls.c:633,1
    - Dst: mls_context_cpy_low
      Src: /src/selinux/libsepol/src/mls.c:636,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 6
    argNames:
    - policydb
    - scontext
    - tcontext
    - tclass
    - specified
    - newcontext
    argTypes:
    - policydb_t*
    - context_struct_t*
    - context_struct_t*
    - sepol_security_class_t
    - uint32_t
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 579
    functionDepth: 3
    functionLinenumber: 579
    functionLinenumberEnd: 641
    functionName: mls_compute_sid
    functionSourceFile: /src/selinux/libsepol/src/mls.c
    functionUses: 1
    functionsReached:
    - mls_context_cpy
    - mls_scopy_context
    - mls_copy_context
    - mls_context_glblub
    - hashtab_search
    - mls_range_set
    - mls_context_cpy_high
    - mls_context_cpy_low
    linkageType: ''
    returnType: int
    signature: "int mls_compute_sid(policydb_t *policydb, const context_struct_t *scontext,\n\t\t
      \   const context_struct_t *tcontext,\n\t\t    sepol_security_class_t tclass,
      uint32_t specified,\n\t\t    context_struct_t *newcontext)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/mls.c:647,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/mls.c:648,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/mls.c:650,1
    - Dst: context_init
      Src: /src/selinux/libsepol/src/mls.c:653,1
    - Dst: context_init
      Src: /src/selinux/libsepol/src/mls.c:654,1
    - Dst: mls_from_string
      Src: /src/selinux/libsepol/src/mls.c:656,1
    - Dst: mls_from_string
      Src: /src/selinux/libsepol/src/mls.c:659,1
    - Dst: mls_range_contains
      Src: /src/selinux/libsepol/src/mls.c:662,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/mls.c:663,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/mls.c:664,1
    - Dst: free
      Src: /src/selinux/libsepol/src/mls.c:665,1
    - Dst: free
      Src: /src/selinux/libsepol/src/mls.c:666,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/mls.c:670,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/mls.c:671,1
    - Dst: free
      Src: /src/selinux/libsepol/src/mls.c:673,1
    - Dst: free
      Src: /src/selinux/libsepol/src/mls.c:674,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/mls.c:675,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 5
    argNames:
    - handle
    - policydb
    - mls1
    - mls2
    - response
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - char*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 643
    functionDepth: 2
    functionLinenumber: 643
    functionLinenumberEnd: 678
    functionName: sepol_mls_contains
    functionSourceFile: /src/selinux/libsepol/src/mls.c
    functionUses: 0
    functionsReached:
    - mls_from_string
    - context_init
    - ERR
    - mls_range_contains
    - context_destroy
    - malloc
    - free
    linkageType: ''
    returnType: int
    signature: "int sepol_mls_contains(sepol_handle_t *handle, const sepol_policydb_t
      *policydb,\n\t\t       const char *mls1, const char *mls2, int *response)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/mls.c:684,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/mls.c:686,1
    - Dst: context_init
      Src: /src/selinux/libsepol/src/mls.c:692,1
    - Dst: mls_from_string
      Src: /src/selinux/libsepol/src/mls.c:694,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/mls.c:695,1
    - Dst: free
      Src: /src/selinux/libsepol/src/mls.c:696,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - handle
    - policydb
    - mls
    argTypes:
    - sepol_handle_t*
    - sepol_policydb_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 680
    functionDepth: 2
    functionLinenumber: 680
    functionLinenumberEnd: 698
    functionName: sepol_mls_check
    functionSourceFile: /src/selinux/libsepol/src/mls.c
    functionUses: 0
    functionsReached:
    - mls_from_string
    - context_init
    - ERR
    - context_destroy
    - malloc
    - free
    linkageType: ''
    returnType: int
    signature: "int sepol_mls_check(sepol_handle_t *handle, const sepol_policydb_t
      *policydb,\n\t\t    const char *mls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/mls.c:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - mls_semantic_cat_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 703
    functionName: mls_semantic_cat_init
    functionSourceFile: /src/selinux/libsepol/src/mls.c
    functionUses: 3
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void mls_semantic_cat_init(mls_semantic_cat_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - mls_semantic_cat_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 709
    functionName: mls_semantic_cat_destroy
    functionSourceFile: /src/selinux/libsepol/src/mls.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void mls_semantic_cat_destroy(mls_semantic_cat_t *c __attribute__((unused)))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/mls.c:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - mls_semantic_level_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 714
    functionName: mls_semantic_level_init
    functionSourceFile: /src/selinux/libsepol/src/mls.c
    functionUses: 3
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void mls_semantic_level_init(mls_semantic_level_t *l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mls_semantic_cat_destroy
      Src: /src/selinux/libsepol/src/mls.c:727,1
    - Dst: free
      Src: /src/selinux/libsepol/src/mls.c:728,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - l
    argTypes:
    - mls_semantic_level_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 730
    functionName: mls_semantic_level_destroy
    functionSourceFile: /src/selinux/libsepol/src/mls.c
    functionUses: 1
    functionsReached:
    - free
    - mls_semantic_cat_destroy
    linkageType: ''
    returnType: void
    signature: void mls_semantic_level_destroy(mls_semantic_level_t *l)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mls_semantic_level_init
      Src: /src/selinux/libsepol/src/mls.c:738,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/mls.c:742,1
    - Dst: mls_semantic_cat_init
      Src: /src/selinux/libsepol/src/mls.c:747,1
    - Dst: mls_semantic_level_destroy
      Src: /src/selinux/libsepol/src/mls.c:762,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - mls_semantic_level_t*
    - mls_semantic_level_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 732
    functionDepth: 2
    functionLinenumber: 732
    functionLinenumberEnd: 764
    functionName: mls_semantic_level_cpy
    functionSourceFile: /src/selinux/libsepol/src/mls.c
    functionUses: 0
    functionsReached:
    - mls_semantic_cat_init
    - mls_semantic_level_init
    - mls_semantic_level_destroy
    - malloc
    linkageType: ''
    returnType: int
    signature: "int mls_semantic_level_cpy(mls_semantic_level_t *dst,\n\t\t\t   const
      mls_semantic_level_t *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mls_semantic_level_init
      Src: /src/selinux/libsepol/src/mls.c:768,1
    - Dst: mls_semantic_level_init
      Src: /src/selinux/libsepol/src/mls.c:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - mls_semantic_range_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 770
    functionName: mls_semantic_range_init
    functionSourceFile: /src/selinux/libsepol/src/mls.c
    functionUses: 2
    functionsReached:
    - mls_semantic_level_init
    linkageType: ''
    returnType: void
    signature: void mls_semantic_range_init(mls_semantic_range_t *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mls_semantic_level_destroy
      Src: /src/selinux/libsepol/src/mls.c:774,1
    - Dst: mls_semantic_level_destroy
      Src: /src/selinux/libsepol/src/mls.c:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - mls_semantic_range_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 772
    functionDepth: 2
    functionLinenumber: 772
    functionLinenumberEnd: 776
    functionName: mls_semantic_range_destroy
    functionSourceFile: /src/selinux/libsepol/src/mls.c
    functionUses: 2
    functionsReached:
    - mls_semantic_level_destroy
    linkageType: ''
    returnType: void
    signature: void mls_semantic_range_destroy(mls_semantic_range_t *r)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mls_semantic_level_cpy
      Src: /src/selinux/libsepol/src/mls.c:781,1
    - Dst: mls_semantic_level_cpy
      Src: /src/selinux/libsepol/src/mls.c:784,1
    - Dst: mls_semantic_level_destroy
      Src: /src/selinux/libsepol/src/mls.c:785,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - mls_semantic_range_t*
    - mls_semantic_range_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 778
    functionDepth: 3
    functionLinenumber: 778
    functionLinenumberEnd: 790
    functionName: mls_semantic_range_cpy
    functionSourceFile: /src/selinux/libsepol/src/mls.c
    functionUses: 0
    functionsReached:
    - mls_semantic_level_cpy
    - mls_semantic_level_destroy
    linkageType: ''
    returnType: int
    signature: "int mls_semantic_range_cpy(mls_semantic_range_t *dst,\n\t\t\t   const
      mls_semantic_range_t *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - con
    argTypes:
    - sepol_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: sepol_context_get_user
    functionSourceFile: /src/selinux/libsepol/src/context_record.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *sepol_context_get_user(const sepol_context_t *con)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libsepol/src/context_record.c:33,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context_record.c:35,1
    - Dst: free
      Src: /src/selinux/libsepol/src/context_record.c:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - con
    - user
    argTypes:
    - sepol_handle_t*
    - sepol_context_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: sepol_context_set_user
    functionSourceFile: /src/selinux/libsepol/src/context_record.c
    functionUses: 1
    functionsReached:
    - ERR
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int sepol_context_set_user(sepol_handle_t *handle, sepol_context_t
      *con,\n\t\t\t   const char *user)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - con
    argTypes:
    - sepol_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: sepol_context_get_role
    functionSourceFile: /src/selinux/libsepol/src/context_record.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *sepol_context_get_role(const sepol_context_t *con)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libsepol/src/context_record.c:56,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context_record.c:58,1
    - Dst: free
      Src: /src/selinux/libsepol/src/context_record.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - con
    - role
    argTypes:
    - sepol_handle_t*
    - sepol_context_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: sepol_context_set_role
    functionSourceFile: /src/selinux/libsepol/src/context_record.c
    functionUses: 1
    functionsReached:
    - ERR
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int sepol_context_set_role(sepol_handle_t *handle, sepol_context_t
      *con,\n\t\t\t   const char *role)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - con
    argTypes:
    - sepol_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: sepol_context_get_type
    functionSourceFile: /src/selinux/libsepol/src/context_record.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *sepol_context_get_type(const sepol_context_t *con)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libsepol/src/context_record.c:78,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context_record.c:80,1
    - Dst: free
      Src: /src/selinux/libsepol/src/context_record.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - con
    - type
    argTypes:
    - sepol_handle_t*
    - sepol_context_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 89
    functionName: sepol_context_set_type
    functionSourceFile: /src/selinux/libsepol/src/context_record.c
    functionUses: 1
    functionsReached:
    - ERR
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int sepol_context_set_type(sepol_handle_t *handle, sepol_context_t
      *con,\n\t\t\t   const char *type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - con
    argTypes:
    - sepol_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: sepol_context_get_mls
    functionSourceFile: /src/selinux/libsepol/src/context_record.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *sepol_context_get_mls(const sepol_context_t *con)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libsepol/src/context_record.c:100,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context_record.c:102,1
    - Dst: free
      Src: /src/selinux/libsepol/src/context_record.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - con
    - mls
    argTypes:
    - sepol_handle_t*
    - sepol_context_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 111
    functionName: sepol_context_set_mls
    functionSourceFile: /src/selinux/libsepol/src/context_record.c
    functionUses: 1
    functionsReached:
    - ERR
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int sepol_context_set_mls(sepol_handle_t *handle, sepol_context_t
      *con,\n\t\t\t  const char *mls)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/context_record.c:117,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context_record.c:120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - handle
    - con_ptr
    argTypes:
    - sepol_handle_t*
    - sepol_context_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 130
    functionName: sepol_context_create
    functionSourceFile: /src/selinux/libsepol/src/context_record.c
    functionUses: 1
    functionsReached:
    - ERR
    - malloc
    linkageType: ''
    returnType: int
    signature: int sepol_context_create(sepol_handle_t *handle, sepol_context_t **con_ptr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_create
      Src: /src/selinux/libsepol/src/context_record.c:143,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/context_record.c:146,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/context_record.c:149,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/context_record.c:152,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/context_record.c:155,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context_record.c:162,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context_record.c:165,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/context_record.c:166,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - handle
    - con
    - con_ptr
    argTypes:
    - sepol_handle_t*
    - sepol_context_t*
    - sepol_context_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 168
    functionName: sepol_context_clone
    functionSourceFile: /src/selinux/libsepol/src/context_record.c
    functionUses: 9
    functionsReached:
    - ERR
    - sepol_context_create
    - sepol_context_free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int sepol_context_clone(sepol_handle_t *handle, const sepol_context_t
      *con,\n\t\t\tsepol_context_t **con_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/context_record.c:176,1
    - Dst: free
      Src: /src/selinux/libsepol/src/context_record.c:177,1
    - Dst: free
      Src: /src/selinux/libsepol/src/context_record.c:178,1
    - Dst: free
      Src: /src/selinux/libsepol/src/context_record.c:179,1
    - Dst: free
      Src: /src/selinux/libsepol/src/context_record.c:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - con
    argTypes:
    - sepol_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 181
    functionName: sepol_context_free
    functionSourceFile: /src/selinux/libsepol/src/context_record.c
    functionUses: 17
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void sepol_context_free(sepol_context_t *con)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/context_record.c:189,1
    - Dst: sepol_context_create
      Src: /src/selinux/libsepol/src/context_record.c:194,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/context_record.c:198,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context_record.c:200,1
    - Dst: strchr
      Src: /src/selinux/libsepol/src/context_record.c:208,1
    - Dst: sepol_context_set_user
      Src: /src/selinux/libsepol/src/context_record.c:212,1
    - Dst: strchr
      Src: /src/selinux/libsepol/src/context_record.c:217,1
    - Dst: sepol_context_set_role
      Src: /src/selinux/libsepol/src/context_record.c:221,1
    - Dst: strchr
      Src: /src/selinux/libsepol/src/context_record.c:226,1
    - Dst: sepol_context_set_type
      Src: /src/selinux/libsepol/src/context_record.c:227,1
    - Dst: sepol_context_set_type
      Src: /src/selinux/libsepol/src/context_record.c:231,1
    - Dst: sepol_context_set_mls
      Src: /src/selinux/libsepol/src/context_record.c:234,1
    - Dst: free
      Src: /src/selinux/libsepol/src/context_record.c:238,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context_record.c:245,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context_record.c:248,1
    - Dst: free
      Src: /src/selinux/libsepol/src/context_record.c:249,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/context_record.c:250,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 3
    argNames:
    - handle
    - str
    - con
    argTypes:
    - sepol_handle_t*
    - char*
    - sepol_context_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 252
    functionName: sepol_context_from_string
    functionSourceFile: /src/selinux/libsepol/src/context_record.c
    functionUses: 1
    functionsReached:
    - ERR
    - sepol_context_set_type
    - strchr
    - sepol_context_free
    - strcmp
    - sepol_context_set_user
    - sepol_context_set_role
    - free
    - sepol_context_set_mls
    - sepol_context_create
    - strdup
    linkageType: ''
    returnType: int
    signature: "int sepol_context_from_string(sepol_handle_t *handle, const char *str,\n\t\t\t
      \     sepol_context_t **con)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsepol/src/context_record.c:261,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/context_record.c:262,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/context_record.c:263,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/context_record.c:264,1
    - Dst: ARRAY_SIZE
      Src: /src/selinux/libsepol/src/context_record.c:268,1
    - Dst: __builtin_add_overflow
      Src: /src/selinux/libsepol/src/context_record.c:269,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context_record.c:270,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/context_record.c:276,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context_record.c:278,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/context_record.c:282,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/context_record.c:285,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context_record.c:294,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/context_record.c:302,1
    - Dst: free
      Src: /src/selinux/libsepol/src/context_record.c:303,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - handle
    - con
    - str_ptr
    argTypes:
    - sepol_handle_t*
    - sepol_context_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 305
    functionName: sepol_context_to_string
    functionSourceFile: /src/selinux/libsepol/src/context_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - snprintf
    - ARRAY_SIZE
    - malloc
    - free
    - __builtin_add_overflow
    - strlen
    linkageType: ''
    returnType: int
    signature: "int sepol_context_to_string(sepol_handle_t *handle, const sepol_context_t
      *con,\n\t\t\t    char **str_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - sid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: SIDTAB_HASH
    functionSourceFile: /src/selinux/libsepol/src/sidtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SIDTAB_HASH(sid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/sidtab.c:28,1
    - Dst: INIT_SIDTAB_LOCK
      Src: /src/selinux/libsepol/src/sidtab.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - sidtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: sepol_sidtab_init
    functionSourceFile: /src/selinux/libsepol/src/sidtab.c
    functionUses: 3
    functionsReached:
    - INIT_SIDTAB_LOCK
    - calloc
    linkageType: ''
    returnType: int
    signature: int sepol_sidtab_init(sidtab_t *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: SIDTAB_HASH
      Src: /src/selinux/libsepol/src/sidtab.c:47,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/sidtab.c:60,1
    - Dst: context_cpy
      Src: /src/selinux/libsepol/src/sidtab.c:64,1
    - Dst: free
      Src: /src/selinux/libsepol/src/sidtab.c:65,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - s
    - sid
    - context
    argTypes:
    - sidtab_t*
    - sepol_security_id_t
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 81
    functionName: sepol_sidtab_insert
    functionSourceFile: /src/selinux/libsepol/src/sidtab.c
    functionUses: 2
    functionsReached:
    - context_cpy
    - SIDTAB_HASH
    - free
    - malloc
    linkageType: ''
    returnType: int
    signature: "int sepol_sidtab_insert(sidtab_t *s, sepol_security_id_t sid,\n\t\t\tcontext_struct_t
      *context)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SIDTAB_HASH
      Src: /src/selinux/libsepol/src/sidtab.c:91,1
    - Dst: SIDTAB_HASH
      Src: /src/selinux/libsepol/src/sidtab.c:99,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 17
    argCount: 2
    argNames:
    - s
    - sid
    argTypes:
    - sidtab_t*
    - sepol_security_id_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 108
    functionName: sepol_sidtab_search
    functionSourceFile: /src/selinux/libsepol/src/sidtab.c
    functionUses: 6
    functionsReached:
    - SIDTAB_HASH
    linkageType: ''
    returnType: context_struct_t
    signature: context_struct_t *sepol_sidtab_search(sidtab_t *s, sepol_security_id_t
      sid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apply
      Src: /src/selinux/libsepol/src/sidtab.c:124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - s
    - args
    argTypes:
    - sidtab_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 131
    functionName: sepol_sidtab_map
    functionSourceFile: /src/selinux/libsepol/src/sidtab.c
    functionUses: 1
    functionsReached:
    - apply
    linkageType: ''
    returnType: int
    signature: "int sepol_sidtab_map(sidtab_t *s,\n\t\t     int (*apply)(sepol_security_id_t
      sid,\n\t\t\t\t  context_struct_t *context, void *args),\n\t\t     void *args)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: apply
      Src: /src/selinux/libsepol/src/sidtab.c:149,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/sidtab.c:159,1
    - Dst: free
      Src: /src/selinux/libsepol/src/sidtab.c:160,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - s
    - args
    argTypes:
    - sidtab_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 170
    functionName: sepol_sidtab_map_remove_on_error
    functionSourceFile: /src/selinux/libsepol/src/sidtab.c
    functionUses: 1
    functionsReached:
    - apply
    - free
    - context_destroy
    linkageType: ''
    returnType: void
    signature: "void sepol_sidtab_map_remove_on_error(sidtab_t *s,\n\t\t\t\t      int
      (*apply)(sepol_security_id_t sid,\n\t\t\t\t\t\t   context_struct_t *context,\n\t\t\t\t\t\t
      \  void *args),\n\t\t\t\t      void *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: context_cmp
      Src: /src/selinux/libsepol/src/sidtab.c:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - s
    - context
    argTypes:
    - sidtab_t*
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 187
    functionName: sepol_sidtab_search_context
    functionSourceFile: /src/selinux/libsepol/src/sidtab.c
    functionUses: 0
    functionsReached:
    - context_cmp
    linkageType: ''
    returnType: sepol_security_id_t
    signature: sepol_security_id_t sepol_sidtab_search_context(sidtab_t *s, context_struct_t
      *context)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sepol_sidtab_search_context
      Src: /src/selinux/libsepol/src/sidtab.c:197,1
    - Dst: SIDTAB_LOCK
      Src: /src/selinux/libsepol/src/sidtab.c:199,1
    - Dst: sepol_sidtab_search_context
      Src: /src/selinux/libsepol/src/sidtab.c:201,1
    - Dst: sepol_sidtab_insert
      Src: /src/selinux/libsepol/src/sidtab.c:210,1
    - Dst: SIDTAB_UNLOCK
      Src: /src/selinux/libsepol/src/sidtab.c:214,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - s
    - context
    - out_sid
    argTypes:
    - sidtab_t*
    - context_struct_t*
    - sepol_security_id_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 189
    functionDepth: 2
    functionLinenumber: 189
    functionLinenumberEnd: 222
    functionName: sepol_sidtab_context_to_sid
    functionSourceFile: /src/selinux/libsepol/src/sidtab.c
    functionUses: 11
    functionsReached:
    - SIDTAB_LOCK
    - SIDTAB_UNLOCK
    - sepol_sidtab_insert
    - sepol_sidtab_search_context
    linkageType: ''
    returnType: int
    signature: "int sepol_sidtab_context_to_sid(sidtab_t *s, context_struct_t *context,\n\t\t\t\tsepol_security_id_t
      *out_sid)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/libsepol/src/sidtab.c:246,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - h
    - tag
    argTypes:
    - sidtab_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 248
    functionName: sepol_sidtab_hash_eval
    functionSourceFile: /src/selinux/libsepol/src/sidtab.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void sepol_sidtab_hash_eval(sidtab_t *h, char *tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: context_destroy
      Src: /src/selinux/libsepol/src/sidtab.c:263,1
    - Dst: free
      Src: /src/selinux/libsepol/src/sidtab.c:264,1
    - Dst: free
      Src: /src/selinux/libsepol/src/sidtab.c:268,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - sidtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 272
    functionName: sepol_sidtab_destroy
    functionSourceFile: /src/selinux/libsepol/src/sidtab.c
    functionUses: 1
    functionsReached:
    - free
    - context_destroy
    linkageType: ''
    returnType: void
    signature: void sepol_sidtab_destroy(sidtab_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIDTAB_LOCK
      Src: /src/selinux/libsepol/src/sidtab.c:276,1
    - Dst: SIDTAB_UNLOCK
      Src: /src/selinux/libsepol/src/sidtab.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - sidtab_t*
    - sidtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 282
    functionName: sepol_sidtab_set
    functionSourceFile: /src/selinux/libsepol/src/sidtab.c
    functionUses: 1
    functionsReached:
    - SIDTAB_LOCK
    - SIDTAB_UNLOCK
    linkageType: ''
    returnType: void
    signature: void sepol_sidtab_set(sidtab_t *dst, sidtab_t *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIDTAB_LOCK
      Src: /src/selinux/libsepol/src/sidtab.c:286,1
    - Dst: SIDTAB_UNLOCK
      Src: /src/selinux/libsepol/src/sidtab.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - sidtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 289
    functionName: sepol_sidtab_shutdown
    functionSourceFile: /src/selinux/libsepol/src/sidtab.c
    functionUses: 1
    functionsReached:
    - SIDTAB_LOCK
    - SIDTAB_UNLOCK
    linkageType: ''
    returnType: void
    signature: void sepol_sidtab_shutdown(sidtab_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: bool_xor
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bool_xor(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: bool_xnor
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: bool_xnor(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nprim
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: PERMISSION_MASK
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERMISSION_MASK(nprim)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - av
    - ','
    - nprim
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: NO_VALID_PERMS
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NO_VALID_PERMS(av, nprim)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/policydb_validate.c:48,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/policydb_validate.c:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - val_to_name
    - nprim
    - gaps
    argTypes:
    - char**
    - uint32_t
    - ebitmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 58
    functionName: create_gap_ebitmap
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_set_bit
    linkageType: ''
    returnType: int
    signature: "int create_gap_ebitmap(char **val_to_name, uint32_t nprim,\n\t\t\t
      \     ebitmap_t *gaps)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_gap_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - flavor
    - val_to_name
    - nprim
    argTypes:
    - validate_t*
    - char**
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: validate_init
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached:
    - create_gap_ebitmap
    linkageType: ''
    returnType: int
    signature: int validate_init(validate_t *flavor, char **val_to_name, uint32_t
      nprim)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: validate_init
      Src: /src/selinux/libsepol/src/policydb_validate.c:71,1
    - Dst: validate_init
      Src: /src/selinux/libsepol/src/policydb_validate.c:74,1
    - Dst: validate_init
      Src: /src/selinux/libsepol/src/policydb_validate.c:77,1
    - Dst: validate_init
      Src: /src/selinux/libsepol/src/policydb_validate.c:80,1
    - Dst: validate_init
      Src: /src/selinux/libsepol/src/policydb_validate.c:83,1
    - Dst: validate_init
      Src: /src/selinux/libsepol/src/policydb_validate.c:86,1
    - Dst: validate_init
      Src: /src/selinux/libsepol/src/policydb_validate.c:89,1
    - Dst: validate_init
      Src: /src/selinux/libsepol/src/policydb_validate.c:92,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 29
    argCount: 2
    argNames:
    - p
    - flavors
    argTypes:
    - policydb_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 100
    functionName: validate_array_init
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached:
    - validate_init
    linkageType: ''
    returnType: int
    signature: int validate_array_init(const policydb_t *p, validate_t flavors[])
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - value
    - nprim
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 112
    functionName: value_isvalid
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int value_isvalid(uint32_t value, uint32_t nprim)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/policydb_validate.c:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - value
    - flavor
    argTypes:
    - uint32_t
    - validate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 125
    functionName: validate_value
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached:
    - ebitmap_get_bit
    linkageType: ''
    returnType: int
    signature: int validate_value(uint32_t value, const validate_t *flavor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iscntrl
      Src: /src/selinux/libsepol/src/policydb_validate.c:133,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 142
    functionName: validate_string_field
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached:
    - iscntrl
    linkageType: ''
    returnType: int
    signature: int validate_string_field(const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_length
      Src: /src/selinux/libsepol/src/policydb_validate.c:146,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/src/policydb_validate.c:147,1
    - Dst: ebitmap_match_any
      Src: /src/selinux/libsepol/src/policydb_validate.c:149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - map
    - flavor
    argTypes:
    - ebitmap_t*
    - validate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 156
    functionName: validate_ebitmap
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached:
    - ebitmap_highest_set_bit
    - ebitmap_length
    - ebitmap_match_any
    linkageType: ''
    returnType: int
    signature: int validate_ebitmap(const ebitmap_t *map, const validate_t *flavor)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:160,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:162,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - type_set
    - type
    argTypes:
    - type_set_t*
    - validate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 178
    functionName: validate_type_set
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached:
    - validate_ebitmap
    linkageType: ''
    returnType: int
    signature: int validate_type_set(const type_set_t *type_set, const validate_t
      *type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/policydb_validate.c:182,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/policydb_validate.c:184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - type_set
    argTypes:
    - type_set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 193
    functionName: validate_empty_type_set
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached:
    - ebitmap_is_empty
    linkageType: ''
    returnType: int
    signature: int validate_empty_type_set(const type_set_t *type_set)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:197,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - role_set
    - role
    argTypes:
    - role_set_t*
    - validate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 213
    functionName: validate_role_set
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached:
    - validate_ebitmap
    linkageType: ''
    returnType: int
    signature: int validate_role_set(const role_set_t *role_set, const validate_t
      *role)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: value_isvalid
      Src: /src/selinux/libsepol/src/policydb_validate.c:231,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 239
    functionName: validate_scope
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached:
    - value_isvalid
    linkageType: ''
    returnType: int
    signature: "int validate_scope(__attribute__((unused)) hashtab_key_t k,\n\t\t\t
      \ hashtab_datum_t d, void *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:255,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - handle
    - scopes
    - block
    argTypes:
    - sepol_handle_t*
    - symtab_t[]
    - avrule_block_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 264
    functionName: validate_scopes
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_map
    linkageType: ''
    returnType: int
    signature: "int validate_scopes(sepol_handle_t *handle, const symtab_t scopes[],\n\t\t\t
      \  const avrule_block_t *block)"
  - BBCount: 59
    BranchProfiles: []
    Callsites:
    - Dst: NO_VALID_PERMS
      Src: /src/selinux/libsepol/src/policydb_validate.c:281,1
    - Dst: validate_empty_type_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:299,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:316,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:324,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:332,1
    - Dst: validate_type_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:336,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/policydb_validate.c:349,1
    - Dst: validate_empty_type_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:351,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/policydb_validate.c:403,1
    - Dst: validate_empty_type_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:405,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:417,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 149
    argCount: 4
    argNames:
    - handle
    - nperms
    - cons
    - flavors
    argTypes:
    - sepol_handle_t*
    - uint32_t
    - constraint_node_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 266
    functionDepth: 3
    functionLinenumber: 266
    functionLinenumberEnd: 419
    functionName: validate_constraint_nodes
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached:
    - ERR
    - NO_VALID_PERMS
    - validate_type_set
    - validate_empty_type_set
    - validate_ebitmap
    - ebitmap_is_empty
    linkageType: ''
    returnType: int
    signature: "int validate_constraint_nodes(sepol_handle_t *handle, uint32_t nperms,\n\t\t\t\t
      \    const constraint_node_t *cons,\n\t\t\t\t     validate_t flavors[])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: value_isvalid
      Src: /src/selinux/libsepol/src/policydb_validate.c:427,1
    - Dst: value_isvalid
      Src: /src/selinux/libsepol/src/policydb_validate.c:431,1
    - Dst: UINT32_C
      Src: /src/selinux/libsepol/src/policydb_validate.c:434,1
    - Dst: UINT32_C
      Src: /src/selinux/libsepol/src/policydb_validate.c:437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 439
    functionName: perm_visit
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached:
    - value_isvalid
    - UINT32_C
    linkageType: ''
    returnType: int
    signature: "int perm_visit(__attribute__((__unused__)) hashtab_key_t k,\n\t\t
      \     hashtab_datum_t d, void *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:451,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - handle
    - permissions
    - inherited_nprim
    argTypes:
    - sepol_handle_t*
    - symtab_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 459
    functionName: validate_permission_symtab
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_map
    linkageType: ''
    returnType: int
    signature: "int validate_permission_symtab(sepol_handle_t *handle,\n\t\t\t\t      const
      symtab_t *permissions,\n\t\t\t\t      uint32_t inherited_nprim)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:465,1
    - Dst: validate_permission_symtab
      Src: /src/selinux/libsepol/src/policydb_validate.c:472,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:478,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 3
    argNames:
    - handle
    - common
    - flavors
    argTypes:
    - sepol_handle_t*
    - common_datum_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 480
    functionName: validate_common_datum
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached:
    - ERR
    - validate_value
    - validate_permission_symtab
    linkageType: ''
    returnType: int
    signature: "int validate_common_datum(sepol_handle_t *handle,\n\t\t\t\t const
      common_datum_t *common,\n\t\t\t\t validate_t flavors[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate_common_datum
      Src: /src/selinux/libsepol/src/policydb_validate.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 482
    functionDepth: 3
    functionLinenumber: 482
    functionLinenumberEnd: 489
    functionName: validate_common_datum_wrapper
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached:
    - validate_common_datum
    linkageType: ''
    returnType: int
    signature: "int validate_common_datum_wrapper(__attribute__((unused)) hashtab_key_t
      k,\n\t\t\t      hashtab_datum_t d, void *args)"
  - BBCount: 277
    BranchProfiles: []
    Callsites:
    - Dst: if
      Src: /src/selinux/libsepol/src/policydb_validate.c:498,1
    - Dst: validate_common_datum
      Src: /src/selinux/libsepol/src/policydb_validate.c:499,1
    - Dst: if
      Src: /src/selinux/libsepol/src/policydb_validate.c:505,1
    - Dst: validate_permission_symtab
      Src: /src/selinux/libsepol/src/policydb_validate.c:509,1
    - Dst: validate_constraint_nodes
      Src: /src/selinux/libsepol/src/policydb_validate.c:513,1
    - Dst: validate_constraint_nodes
      Src: /src/selinux/libsepol/src/policydb_validate.c:516,1
    - Dst: if
      Src: /src/selinux/libsepol/src/policydb_validate.c:579,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:579,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:581,1
    - Dst: validate_type_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:583,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:585,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:587,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:601,1
    - Dst: validate_role_datum
      Src: /src/selinux/libsepol/src/policydb_validate.c:610,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:618,1
    - Dst: bad
      Src: /src/selinux/libsepol/src/policydb_validate.c:623,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:641,1
    - Dst: bad
      Src: /src/selinux/libsepol/src/policydb_validate.c:642,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/policydb_validate.c:646,1
    - Dst: if
      Src: /src/selinux/libsepol/src/policydb_validate.c:647,1
    - Dst: validate_simpletype
      Src: /src/selinux/libsepol/src/policydb_validate.c:647,1
    - Dst: if
      Src: /src/selinux/libsepol/src/policydb_validate.c:661,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:661,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:663,1
    - Dst: if
      Src: /src/selinux/libsepol/src/policydb_validate.c:669,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/policydb_validate.c:669,1
    - Dst: validate_simpletype
      Src: /src/selinux/libsepol/src/policydb_validate.c:672,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/policydb_validate.c:677,1
    - Dst: if
      Src: /src/selinux/libsepol/src/policydb_validate.c:680,1
    - Dst: validate_types_in_attribute
      Src: /src/selinux/libsepol/src/policydb_validate.c:680,1
    - Dst: if
      Src: /src/selinux/libsepol/src/policydb_validate.c:684,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:707,1
    - Dst: validate_type_datum
      Src: /src/selinux/libsepol/src/policydb_validate.c:716,1
    - Dst: for
      Src: /src/selinux/libsepol/src/policydb_validate.c:723,1
    - Dst: if
      Src: /src/selinux/libsepol/src/policydb_validate.c:724,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:724,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:726,1
    - Dst: if
      Src: /src/selinux/libsepol/src/policydb_validate.c:742,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:744,1
    - Dst: validate_mls_semantic_cat
      Src: /src/selinux/libsepol/src/policydb_validate.c:746,1
    - Dst: if
      Src: /src/selinux/libsepol/src/policydb_validate.c:759,1
    - Dst: validate_mls_semantic_level
      Src: /src/selinux/libsepol/src/policydb_validate.c:759,1
    - Dst: validate_mls_semantic_level
      Src: /src/selinux/libsepol/src/policydb_validate.c:762,1
    - Dst: if
      Src: /src/selinux/libsepol/src/policydb_validate.c:775,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:777,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:779,1
    - Dst: if
      Src: /src/selinux/libsepol/src/policydb_validate.c:792,1
    - Dst: validate_mls_level
      Src: /src/selinux/libsepol/src/policydb_validate.c:798,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/policydb_validate.c:805,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/src/policydb_validate.c:810,1
    - Dst: validate_level_datum
      Src: /src/selinux/libsepol/src/policydb_validate.c:826,1
    - Dst: if
      Src: /src/selinux/libsepol/src/policydb_validate.c:833,1
    - Dst: validate_mls_level
      Src: /src/selinux/libsepol/src/policydb_validate.c:833,1
    - Dst: validate_mls_level
      Src: /src/selinux/libsepol/src/policydb_validate.c:835,1
    - Dst: if
      Src: /src/selinux/libsepol/src/policydb_validate.c:847,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:847,1
    - Dst: validate_role_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:849,1
    - Dst: validate_mls_semantic_range
      Src: /src/selinux/libsepol/src/policydb_validate.c:853,1
    - Dst: validate_mls_semantic_level
      Src: /src/selinux/libsepol/src/policydb_validate.c:857,1
    - Dst: validate_mls_range
      Src: /src/selinux/libsepol/src/policydb_validate.c:863,1
    - Dst: validate_mls_level
      Src: /src/selinux/libsepol/src/policydb_validate.c:866,1
    - Dst: if
      Src: /src/selinux/libsepol/src/policydb_validate.c:871,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:871,1
    - Dst: validate_user_datum
      Src: /src/selinux/libsepol/src/policydb_validate.c:886,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:894,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:916,1
    - Dst: validate_bool_datum
      Src: /src/selinux/libsepol/src/policydb_validate.c:925,1
    - Dst: bool_xnor
      Src: /src/selinux/libsepol/src/policydb_validate.c:934,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/policydb_validate.c:935,1
    - Dst: bool_xnor
      Src: /src/selinux/libsepol/src/policydb_validate.c:940,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/policydb_validate.c:941,1
    - Dst: bool_xnor
      Src: /src/selinux/libsepol/src/policydb_validate.c:946,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/policydb_validate.c:947,1
    - Dst: bool_xnor
      Src: /src/selinux/libsepol/src/policydb_validate.c:952,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/policydb_validate.c:953,1
    - Dst: bool_xnor
      Src: /src/selinux/libsepol/src/policydb_validate.c:958,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/policydb_validate.c:959,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:966,1
    - Dst: value_isvalid
      Src: /src/selinux/libsepol/src/policydb_validate.c:976,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:986,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:990,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:994,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:998,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:1002,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:1006,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:1010,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:1014,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1021,1
    - Dst: validate_simpletype
      Src: /src/selinux/libsepol/src/policydb_validate.c:1033,1
    - Dst: validate_simpletype
      Src: /src/selinux/libsepol/src/policydb_validate.c:1035,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1038,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1040,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1044,1
    - Dst: policydb_has_cond_xperms_feature
      Src: /src/selinux/libsepol/src/policydb_validate.c:1059,1
    - Dst: NO_VALID_PERMS
      Src: /src/selinux/libsepol/src/policydb_validate.c:1095,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1101,1
    - Dst: validate_avtab_key
      Src: /src/selinux/libsepol/src/policydb_validate.c:1110,1
    - Dst: validate_access_vector
      Src: /src/selinux/libsepol/src/policydb_validate.c:1120,1
    - Dst: validate_simpletype
      Src: /src/selinux/libsepol/src/policydb_validate.c:1126,1
    - Dst: validate_access_vector
      Src: /src/selinux/libsepol/src/policydb_validate.c:1134,1
    - Dst: validate_xperms
      Src: /src/selinux/libsepol/src/policydb_validate.c:1138,1
    - Dst: avtab_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:1150,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1151,1
    - Dst: validate_avtab_key_and_datum
      Src: /src/selinux/libsepol/src/policydb_validate.c:1168,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1175,1
    - Dst: validate_type_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:1186,1
    - Dst: validate_type_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:1188,1
    - Dst: policydb_has_cond_xperms_feature
      Src: /src/selinux/libsepol/src/policydb_validate.c:1205,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1215,1
    - Dst: NO_VALID_PERMS
      Src: /src/selinux/libsepol/src/policydb_validate.c:1221,1
    - Dst: validate_simpletype
      Src: /src/selinux/libsepol/src/policydb_validate.c:1227,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1277,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1292,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1299,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1315,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1349,1
    - Dst: validate_cond_expr
      Src: /src/selinux/libsepol/src/policydb_validate.c:1357,1
    - Dst: validate_cond_av_list
      Src: /src/selinux/libsepol/src/policydb_validate.c:1359,1
    - Dst: validate_cond_av_list
      Src: /src/selinux/libsepol/src/policydb_validate.c:1361,1
    - Dst: validate_avrules
      Src: /src/selinux/libsepol/src/policydb_validate.c:1363,1
    - Dst: validate_avrules
      Src: /src/selinux/libsepol/src/policydb_validate.c:1365,1
    - Dst: validate_bool_id_array
      Src: /src/selinux/libsepol/src/policydb_validate.c:1367,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1391,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1400,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1402,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1404,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1406,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1413,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1422,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1424,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1431,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1444,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1446,1
    - Dst: validate_string_field
      Src: /src/selinux/libsepol/src/policydb_validate.c:1448,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:1453,1
    - Dst: validate_simpletype
      Src: /src/selinux/libsepol/src/policydb_validate.c:1455,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:1471,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1472,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1482,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1484,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1486,1
    - Dst: validate_mls_range
      Src: /src/selinux/libsepol/src/policydb_validate.c:1488,1
    - Dst: validate_context
      Src: /src/selinux/libsepol/src/policydb_validate.c:1503,1
    - Dst: validate_context
      Src: /src/selinux/libsepol/src/policydb_validate.c:1516,1
    - Dst: validate_string_field
      Src: /src/selinux/libsepol/src/policydb_validate.c:1519,1
    - Dst: validate_string_field
      Src: /src/selinux/libsepol/src/policydb_validate.c:1536,1
    - Dst: validate_string_field
      Src: /src/selinux/libsepol/src/policydb_validate.c:1547,1
    - Dst: validate_string_field
      Src: /src/selinux/libsepol/src/policydb_validate.c:1575,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1586,1
    - Dst: validate_context
      Src: /src/selinux/libsepol/src/policydb_validate.c:1598,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1602,1
    - Dst: validate_string_field
      Src: /src/selinux/libsepol/src/policydb_validate.c:1605,1
    - Dst: validate_string_field
      Src: /src/selinux/libsepol/src/policydb_validate.c:1609,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1616,1
    - Dst: validate_role_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:1629,1
    - Dst: validate_type_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:1631,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:1633,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1636,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1643,1
    - Dst: validate_role_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:1652,1
    - Dst: validate_role_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:1654,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1662,1
    - Dst: validate_type_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:1671,1
    - Dst: validate_type_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:1674,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:1677,1
    - Dst: validate_mls_semantic_range
      Src: /src/selinux/libsepol/src/policydb_validate.c:1680,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1689,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/policydb_validate.c:1697,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:1699,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:1702,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:1704,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:1706,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:1708,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:1710,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:1712,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/src/policydb_validate.c:1719,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1727,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/policydb_validate.c:1732,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1755,1
    - Dst: validate_type_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:1765,1
    - Dst: validate_type_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:1768,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1771,1
    - Dst: validate_simpletype
      Src: /src/selinux/libsepol/src/policydb_validate.c:1774,1
    - Dst: validate_string_field
      Src: /src/selinux/libsepol/src/policydb_validate.c:1776,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1796,1
    - Dst: validate_cond_list
      Src: /src/selinux/libsepol/src/policydb_validate.c:1809,1
    - Dst: validate_avrules
      Src: /src/selinux/libsepol/src/policydb_validate.c:1812,1
    - Dst: validate_role_trans_rules
      Src: /src/selinux/libsepol/src/policydb_validate.c:1815,1
    - Dst: validate_role_allow_rules
      Src: /src/selinux/libsepol/src/policydb_validate.c:1818,1
    - Dst: validate_range_trans_rules
      Src: /src/selinux/libsepol/src/policydb_validate.c:1821,1
    - Dst: validate_scope_index
      Src: /src/selinux/libsepol/src/policydb_validate.c:1824,1
    - Dst: validate_scope_index
      Src: /src/selinux/libsepol/src/policydb_validate.c:1827,1
    - Dst: validate_filename_trans_rules
      Src: /src/selinux/libsepol/src/policydb_validate.c:1830,1
    - Dst: validate_datum_array_entries
      Src: /src/selinux/libsepol/src/policydb_validate.c:1834,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1851,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/policydb_validate.c:1861,1
    - Dst: validate_simpletype
      Src: /src/selinux/libsepol/src/policydb_validate.c:1862,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1869,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/policydb_validate.c:1879,1
    - Dst: validate_simpletype
      Src: /src/selinux/libsepol/src/policydb_validate.c:1880,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1887,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1899,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1901,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1903,1
    - Dst: validate_mls_range
      Src: /src/selinux/libsepol/src/policydb_validate.c:1905,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:1919,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1920,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:1935,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1944,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:1956,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1965,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:2017,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/policydb_validate.c:2026,1
    - Dst: sepol_polcap_getname
      Src: /src/selinux/libsepol/src/policydb_validate.c:2027,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:2034,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb_validate.c:2043,1
    - Dst: validate_array_init
      Src: /src/selinux/libsepol/src/policydb_validate.c:2054,1
    - Dst: validate_properties
      Src: /src/selinux/libsepol/src/policydb_validate.c:2057,1
    - Dst: validate_policycaps
      Src: /src/selinux/libsepol/src/policydb_validate.c:2060,1
    - Dst: validate_avtab
      Src: /src/selinux/libsepol/src/policydb_validate.c:2064,1
    - Dst: validate_cond_list
      Src: /src/selinux/libsepol/src/policydb_validate.c:2066,1
    - Dst: validate_role_transes
      Src: /src/selinux/libsepol/src/policydb_validate.c:2068,1
    - Dst: validate_role_allows
      Src: /src/selinux/libsepol/src/policydb_validate.c:2070,1
    - Dst: validate_filename_trans_hashtab
      Src: /src/selinux/libsepol/src/policydb_validate.c:2073,1
    - Dst: validate_avrule_blocks
      Src: /src/selinux/libsepol/src/policydb_validate.c:2076,1
    - Dst: validate_ocontexts
      Src: /src/selinux/libsepol/src/policydb_validate.c:2080,1
    - Dst: validate_genfs
      Src: /src/selinux/libsepol/src/policydb_validate.c:2083,1
    - Dst: validate_scopes
      Src: /src/selinux/libsepol/src/policydb_validate.c:2086,1
    - Dst: validate_datum_array_gaps
      Src: /src/selinux/libsepol/src/policydb_validate.c:2089,1
    - Dst: validate_datum_array_entries
      Src: /src/selinux/libsepol/src/policydb_validate.c:2092,1
    - Dst: validate_permissives
      Src: /src/selinux/libsepol/src/policydb_validate.c:2095,1
    - Dst: validate_neveraudit
      Src: /src/selinux/libsepol/src/policydb_validate.c:2098,1
    - Dst: validate_range_transitions
      Src: /src/selinux/libsepol/src/policydb_validate.c:2101,1
    - Dst: validate_typeattr_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:2104,1
    - Dst: validate_attrtype_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:2107,1
    - Dst: validate_array_destroy
      Src: /src/selinux/libsepol/src/policydb_validate.c:2110,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:2115,1
    - Dst: validate_array_destroy
      Src: /src/selinux/libsepol/src/policydb_validate.c:2116,1
    CyclomaticComplexity: 470
    EdgeCount: 470
    ICount: 1004
    argCount: 3
    argNames:
    - handle
    - class
    - flavors
    argTypes:
    - sepol_handle_t*
    - class_datum_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2118
      start: 491
    functionDepth: 4
    functionLinenumber: 491
    functionLinenumberEnd: 2118
    functionName: validate_class_datum
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached:
    - validate_role_allows
    - hashtab_map
    - validate_avrules
    - validate_role_allow_rules
    - ebitmap_destroy
    - ebitmap_for_each_positive_bit
    - validate_properties
    - validate_range_transitions
    - validate_types_in_attribute
    - validate_cond_expr
    - validate_policycaps
    - ebitmap_is_empty
    - ebitmap_highest_set_bit
    - validate_type_datum
    - validate_user_datum
    - validate_datum_array_gaps
    - validate_mls_range
    - validate_simpletype
    - validate_typeattr_map
    - if
    - validate_value
    - for
    - validate_role_set
    - validate_type_set
    - validate_mls_semantic_cat
    - ebitmap_cmp
    - validate_role_datum
    - validate_context
    - validate_scope_index
    - validate_avtab
    - validate_neveraudit
    - validate_array_init
    - validate_range_trans_rules
    - ERR
    - validate_mls_semantic_level
    - validate_attrtype_map
    - hashtab_search
    - avtab_map
    - validate_mls_semantic_range
    - bad
    - validate_bool_id_array
    - validate_string_field
    - validate_mls_level
    - bool_xnor
    - validate_filename_trans_rules
    - ebitmap_get_bit
    - validate_ocontexts
    - validate_array_destroy
    - validate_xperms
    - validate_access_vector
    - policydb_has_cond_xperms_feature
    - validate_avrule_blocks
    - validate_bool_datum
    - NO_VALID_PERMS
    - validate_permissives
    - validate_level_datum
    - validate_permission_symtab
    - validate_avtab_key_and_datum
    - validate_role_trans_rules
    - validate_common_datum
    - validate_ebitmap
    - value_isvalid
    - validate_datum_array_entries
    - sepol_polcap_getname
    - validate_filename_trans_hashtab
    - validate_genfs
    - validate_avtab_key
    - validate_scopes
    - validate_role_transes
    - validate_cond_list
    - validate_cond_av_list
    - validate_constraint_nodes
    linkageType: ''
    returnType: int
    signature: "int validate_class_datum(sepol_handle_t *handle,\n\t\t\t\tconst class_datum_t
      *class,\n\t\t\t\tvalidate_t flavors[])"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:894,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:916,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - handle
    - boolean
    - flavors
    argTypes:
    - sepol_handle_t*
    - cond_bool_datum_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 890
    functionDepth: 2
    functionLinenumber: 890
    functionLinenumberEnd: 918
    functionName: validate_bool_datum
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - ERR
    - validate_value
    linkageType: ''
    returnType: int
    signature: "int validate_bool_datum(sepol_handle_t *handle,\n\t\t\t       const
      cond_bool_datum_t *boolean,\n\t\t\t       validate_t flavors[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate_bool_datum
      Src: /src/selinux/libsepol/src/policydb_validate.c:925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 920
    functionDepth: 3
    functionLinenumber: 920
    functionLinenumberEnd: 926
    functionName: validate_bool_datum_wrapper
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached:
    - validate_bool_datum
    linkageType: ''
    returnType: int
    signature: "int validate_bool_datum_wrapper(__attribute__((unused)) hashtab_key_t
      k,\n\t\t\t\t       hashtab_datum_t d, void *args)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bool_xnor
      Src: /src/selinux/libsepol/src/policydb_validate.c:934,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/policydb_validate.c:935,1
    - Dst: bool_xnor
      Src: /src/selinux/libsepol/src/policydb_validate.c:940,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/policydb_validate.c:941,1
    - Dst: bool_xnor
      Src: /src/selinux/libsepol/src/policydb_validate.c:946,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/policydb_validate.c:947,1
    - Dst: bool_xnor
      Src: /src/selinux/libsepol/src/policydb_validate.c:952,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/policydb_validate.c:953,1
    - Dst: bool_xnor
      Src: /src/selinux/libsepol/src/policydb_validate.c:958,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/policydb_validate.c:959,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:966,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 3
    argNames:
    - handle
    - p
    - flavors
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 968
    functionName: validate_datum_array_gaps
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - ERR
    - bool_xnor
    - ebitmap_get_bit
    linkageType: ''
    returnType: int
    signature: "int validate_datum_array_gaps(sepol_handle_t *handle,\n\t\t\t\t     const
      policydb_t *p, validate_t flavors[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_isvalid
      Src: /src/selinux/libsepol/src/policydb_validate.c:976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 977
    functionName: validate_datum
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached:
    - value_isvalid
    linkageType: ''
    returnType: int
    signature: "int validate_datum(__attribute__((unused)) hashtab_key_t k,\n\t\t\t
      \ hashtab_datum_t d, void *args)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:986,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:990,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:994,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:998,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:1002,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:1006,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:1010,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:1014,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1021,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 30
    argCount: 4
    argNames:
    - handle
    - p
    - symtabs
    - flavors
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - symtab_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 1023
    functionName: validate_datum_array_entries
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - ERR
    - hashtab_map
    linkageType: ''
    returnType: int
    signature: "int validate_datum_array_entries(sepol_handle_t *handle,\n\t\t\t\t\tconst
      policydb_t *p,\n\t\t\t\t\tconst symtab_t *symtabs,\n\t\t\t\t\tvalidate_t flavors[])"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: validate_simpletype
      Src: /src/selinux/libsepol/src/policydb_validate.c:1033,1
    - Dst: validate_simpletype
      Src: /src/selinux/libsepol/src/policydb_validate.c:1035,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1038,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1040,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1044,1
    - Dst: policydb_has_cond_xperms_feature
      Src: /src/selinux/libsepol/src/policydb_validate.c:1059,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 45
    argCount: 4
    argNames:
    - key
    - conditional
    - p
    - flavors
    argTypes:
    - avtab_key_t*
    - int
    - policydb_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1029
    functionDepth: 2
    functionLinenumber: 1029
    functionLinenumberEnd: 1070
    functionName: validate_avtab_key
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - validate_value
    - policydb_has_cond_xperms_feature
    - validate_simpletype
    linkageType: ''
    returnType: int
    signature: "int validate_avtab_key(const avtab_key_t *key, int conditional,\n\t\t\t
      \     const policydb_t *p, validate_t flavors[])"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - xperms
    argTypes:
    - avtab_extended_perms_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1087
    functionName: validate_xperms
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int validate_xperms(const avtab_extended_perms_t *xperms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NO_VALID_PERMS
      Src: /src/selinux/libsepol/src/policydb_validate.c:1095,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - handle
    - p
    - tclass
    - av
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - sepol_security_class_t
    - sepol_access_vector_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1103
    functionName: validate_access_vector
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - ERR
    - NO_VALID_PERMS
    linkageType: ''
    returnType: int
    signature: "int validate_access_vector(sepol_handle_t *handle, const policydb_t
      *p,\n\t\t\t\t  sepol_security_class_t tclass,\n\t\t\t\t  sepol_access_vector_t
      av)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: validate_avtab_key
      Src: /src/selinux/libsepol/src/policydb_validate.c:1110,1
    - Dst: validate_access_vector
      Src: /src/selinux/libsepol/src/policydb_validate.c:1120,1
    - Dst: validate_simpletype
      Src: /src/selinux/libsepol/src/policydb_validate.c:1126,1
    - Dst: validate_access_vector
      Src: /src/selinux/libsepol/src/policydb_validate.c:1134,1
    - Dst: validate_xperms
      Src: /src/selinux/libsepol/src/policydb_validate.c:1138,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - avtab_key_t*
    - avtab_datum_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1105
    functionDepth: 3
    functionLinenumber: 1105
    functionLinenumberEnd: 1143
    functionName: validate_avtab_key_and_datum
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - validate_avtab_key
    - validate_xperms
    - validate_access_vector
    - validate_simpletype
    linkageType: ''
    returnType: int
    signature: "int validate_avtab_key_and_datum(avtab_key_t *k, avtab_datum_t *d,\n\t\t\t\t\tvoid
      *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avtab_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:1150,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - handle
    - avtab
    - p
    - flavors
    argTypes:
    - sepol_handle_t*
    - avtab_t*
    - policydb_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1145
    functionDepth: 1
    functionLinenumber: 1145
    functionLinenumberEnd: 1156
    functionName: validate_avtab
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - avtab_map
    - ERR
    linkageType: ''
    returnType: int
    signature: "int validate_avtab(sepol_handle_t *handle, const avtab_t *avtab,\n\t\t\t
      \ const policydb_t *p, validate_t flavors[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: validate_avtab_key_and_datum
      Src: /src/selinux/libsepol/src/policydb_validate.c:1168,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 4
    argNames:
    - handle
    - cond_av
    - p
    - flavors
    argTypes:
    - sepol_handle_t*
    - cond_av_list_t*
    - policydb_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1158
    functionDepth: 4
    functionLinenumber: 1158
    functionLinenumberEnd: 1177
    functionName: validate_cond_av_list
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - ERR
    - validate_avtab_key_and_datum
    linkageType: ''
    returnType: int
    signature: "int validate_cond_av_list(sepol_handle_t *handle,\n\t\t\t\t const
      cond_av_list_t *cond_av,\n\t\t\t\t const policydb_t *p, validate_t flavors[])"
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: validate_type_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:1186,1
    - Dst: validate_type_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:1188,1
    - Dst: policydb_has_cond_xperms_feature
      Src: /src/selinux/libsepol/src/policydb_validate.c:1205,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1215,1
    - Dst: NO_VALID_PERMS
      Src: /src/selinux/libsepol/src/policydb_validate.c:1221,1
    - Dst: validate_simpletype
      Src: /src/selinux/libsepol/src/policydb_validate.c:1227,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1277,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 96
    argCount: 5
    argNames:
    - handle
    - avrule
    - conditional
    - p
    - flavors
    argTypes:
    - sepol_handle_t*
    - avrule_t*
    - int
    - policydb_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1179
    functionDepth: 3
    functionLinenumber: 1179
    functionLinenumberEnd: 1279
    functionName: validate_avrules
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - ERR
    - policydb_has_cond_xperms_feature
    - NO_VALID_PERMS
    - validate_simpletype
    - validate_value
    - validate_type_set
    linkageType: ''
    returnType: int
    signature: "int validate_avrules(sepol_handle_t *handle, const avrule_t *avrule,\n\t\t\t
      \   int conditional, const policydb_t *p,\n\t\t\t    validate_t flavors[])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1292,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1299,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 4
    argNames:
    - handle
    - bool_ids
    - nbools
    - boolean
    argTypes:
    - sepol_handle_t*
    - uint32_t[]
    - unsigned int
    - validate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1301
      start: 1281
    functionDepth: 2
    functionLinenumber: 1281
    functionLinenumberEnd: 1301
    functionName: validate_bool_id_array
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - ERR
    - validate_value
    linkageType: ''
    returnType: int
    signature: "int validate_bool_id_array(sepol_handle_t *handle,\n\t\t\t\t  const
      uint32_t bool_ids[],\n\t\t\t\t  unsigned int nbools,\n\t\t\t\t  const validate_t
      *boolean)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1315,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1349,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 49
    argCount: 3
    argNames:
    - handle
    - expr
    - boolean
    argTypes:
    - sepol_handle_t*
    - struct cond_expr*
    - validate_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1303
    functionDepth: 2
    functionLinenumber: 1303
    functionLinenumberEnd: 1351
    functionName: validate_cond_expr
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - ERR
    - validate_value
    linkageType: ''
    returnType: int
    signature: "int validate_cond_expr(sepol_handle_t *handle,\n\t\t\t      const
      struct cond_expr *expr,\n\t\t\t      const validate_t *boolean)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: validate_cond_expr
      Src: /src/selinux/libsepol/src/policydb_validate.c:1357,1
    - Dst: validate_cond_av_list
      Src: /src/selinux/libsepol/src/policydb_validate.c:1359,1
    - Dst: validate_cond_av_list
      Src: /src/selinux/libsepol/src/policydb_validate.c:1361,1
    - Dst: validate_avrules
      Src: /src/selinux/libsepol/src/policydb_validate.c:1363,1
    - Dst: validate_avrules
      Src: /src/selinux/libsepol/src/policydb_validate.c:1365,1
    - Dst: validate_bool_id_array
      Src: /src/selinux/libsepol/src/policydb_validate.c:1367,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1391,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 4
    argNames:
    - handle
    - cond
    - p
    - flavors
    argTypes:
    - sepol_handle_t*
    - cond_list_t*
    - policydb_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1353
    functionDepth: 5
    functionLinenumber: 1353
    functionLinenumberEnd: 1393
    functionName: validate_cond_list
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - ERR
    - validate_avrules
    - validate_cond_expr
    - validate_bool_id_array
    - validate_cond_av_list
    linkageType: ''
    returnType: int
    signature: "int validate_cond_list(sepol_handle_t *handle, const cond_list_t *cond,\n\t\t\t
      \     const policydb_t *p, validate_t flavors[])"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1400,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1402,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1404,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1406,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1413,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - handle
    - role_trans
    - flavors
    argTypes:
    - sepol_handle_t*
    - role_trans_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1395
    functionDepth: 2
    functionLinenumber: 1395
    functionLinenumberEnd: 1415
    functionName: validate_role_transes
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - ERR
    - validate_value
    linkageType: ''
    returnType: int
    signature: "int validate_role_transes(sepol_handle_t *handle,\n\t\t\t\t const
      role_trans_t *role_trans,\n\t\t\t\t validate_t flavors[])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1422,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1424,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1431,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - handle
    - role_allow
    - flavors
    argTypes:
    - sepol_handle_t*
    - role_allow_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1433
      start: 1417
    functionDepth: 2
    functionLinenumber: 1417
    functionLinenumberEnd: 1433
    functionName: validate_role_allows
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - ERR
    - validate_value
    linkageType: ''
    returnType: int
    signature: "int validate_role_allows(sepol_handle_t *handle,\n\t\t\t\tconst role_allow_t
      *role_allow,\n\t\t\t\tvalidate_t flavors[])"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1444,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1446,1
    - Dst: validate_string_field
      Src: /src/selinux/libsepol/src/policydb_validate.c:1448,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:1453,1
    - Dst: validate_simpletype
      Src: /src/selinux/libsepol/src/policydb_validate.c:1455,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1435
    functionDepth: 2
    functionLinenumber: 1435
    functionLinenumberEnd: 1463
    functionName: validate_filename_trans
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached:
    - validate_string_field
    - validate_ebitmap
    - validate_value
    - validate_simpletype
    linkageType: ''
    returnType: int
    signature: "int validate_filename_trans(hashtab_key_t k, hashtab_datum_t d,\n\t\t\t\t
      \  void *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:1471,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - handle
    - p
    - flavors
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1465
    functionDepth: 0
    functionLinenumber: 1465
    functionLinenumberEnd: 1477
    functionName: validate_filename_trans_hashtab
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - ERR
    - hashtab_map
    linkageType: ''
    returnType: int
    signature: "int validate_filename_trans_hashtab(sepol_handle_t *handle,\n\t\t\t\t\t
      \  const policydb_t *p,\n\t\t\t\t\t   validate_t flavors[])"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1482,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1484,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1486,1
    - Dst: validate_mls_range
      Src: /src/selinux/libsepol/src/policydb_validate.c:1488,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - con
    - flavors
    - mls
    argTypes:
    - context_struct_t*
    - validate_t[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1479
    functionDepth: 2
    functionLinenumber: 1479
    functionLinenumberEnd: 1493
    functionName: validate_context
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - validate_value
    - validate_mls_range
    linkageType: ''
    returnType: int
    signature: "int validate_context(const context_struct_t *con, validate_t flavors[],\n\t\t\t
      \   int mls)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: validate_context
      Src: /src/selinux/libsepol/src/policydb_validate.c:1503,1
    - Dst: validate_context
      Src: /src/selinux/libsepol/src/policydb_validate.c:1516,1
    - Dst: validate_string_field
      Src: /src/selinux/libsepol/src/policydb_validate.c:1519,1
    - Dst: validate_string_field
      Src: /src/selinux/libsepol/src/policydb_validate.c:1536,1
    - Dst: validate_string_field
      Src: /src/selinux/libsepol/src/policydb_validate.c:1547,1
    - Dst: validate_string_field
      Src: /src/selinux/libsepol/src/policydb_validate.c:1575,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1586,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 90
    argCount: 3
    argNames:
    - handle
    - p
    - flavors
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1495
    functionDepth: 1
    functionLinenumber: 1495
    functionLinenumberEnd: 1588
    functionName: validate_ocontexts
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - validate_string_field
    - ERR
    - validate_context
    linkageType: ''
    returnType: int
    signature: "int validate_ocontexts(sepol_handle_t *handle, const policydb_t *p,\n\t\t\t
      \     validate_t flavors[])"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: validate_context
      Src: /src/selinux/libsepol/src/policydb_validate.c:1598,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1602,1
    - Dst: validate_string_field
      Src: /src/selinux/libsepol/src/policydb_validate.c:1605,1
    - Dst: validate_string_field
      Src: /src/selinux/libsepol/src/policydb_validate.c:1609,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1616,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 3
    argNames:
    - handle
    - p
    - flavors
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1590
    functionDepth: 2
    functionLinenumber: 1590
    functionLinenumberEnd: 1618
    functionName: validate_genfs
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - validate_string_field
    - ERR
    - validate_value
    - validate_context
    linkageType: ''
    returnType: int
    signature: "int validate_genfs(sepol_handle_t *handle, const policydb_t *p,\n\t\t\t
      \ validate_t flavors[])"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: validate_role_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:1629,1
    - Dst: validate_type_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:1631,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:1633,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1636,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1643,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - handle
    - role_trans
    - flavors
    argTypes:
    - sepol_handle_t*
    - role_trans_rule_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1624
    functionDepth: 3
    functionLinenumber: 1624
    functionLinenumberEnd: 1645
    functionName: validate_role_trans_rules
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - ERR
    - validate_value
    - validate_role_set
    - validate_type_set
    - validate_ebitmap
    linkageType: ''
    returnType: int
    signature: "int validate_role_trans_rules(sepol_handle_t *handle,\n\t\t\t\t     const
      role_trans_rule_t *role_trans,\n\t\t\t\t     validate_t flavors[])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: validate_role_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:1652,1
    - Dst: validate_role_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:1654,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1662,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - handle
    - role_allow
    - flavors
    argTypes:
    - sepol_handle_t*
    - role_allow_rule_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1647
    functionDepth: 3
    functionLinenumber: 1647
    functionLinenumberEnd: 1664
    functionName: validate_role_allow_rules
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - ERR
    - validate_role_set
    linkageType: ''
    returnType: int
    signature: "int validate_role_allow_rules(sepol_handle_t *handle,\n\t\t\t\t     const
      role_allow_rule_t *role_allow,\n\t\t\t\t     validate_t flavors[])"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: validate_type_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:1671,1
    - Dst: validate_type_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:1674,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:1677,1
    - Dst: validate_mls_semantic_range
      Src: /src/selinux/libsepol/src/policydb_validate.c:1680,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1689,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - handle
    - range_trans
    - flavors
    argTypes:
    - sepol_handle_t*
    - range_trans_rule_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1666
    functionDepth: 3
    functionLinenumber: 1666
    functionLinenumberEnd: 1691
    functionName: validate_range_trans_rules
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - validate_ebitmap
    - validate_mls_semantic_range
    - ERR
    - validate_type_set
    linkageType: ''
    returnType: int
    signature: "int validate_range_trans_rules(sepol_handle_t *handle,\n\t\t\t\t      const
      range_trans_rule_t *range_trans,\n\t\t\t\t      validate_t flavors[])"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/policydb_validate.c:1697,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:1699,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:1702,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:1704,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:1706,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:1708,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:1710,1
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:1712,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/src/policydb_validate.c:1719,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1727,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/policydb_validate.c:1732,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1755,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 56
    argCount: 4
    argNames:
    - handle
    - scope_index
    - p
    - flavors
    argTypes:
    - sepol_handle_t*
    - scope_index_t*
    - policydb_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1757
      start: 1693
    functionDepth: 2
    functionLinenumber: 1693
    functionLinenumberEnd: 1757
    functionName: validate_scope_index
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - ERR
    - validate_value
    - ebitmap_is_empty
    - validate_ebitmap
    - ebitmap_highest_set_bit
    linkageType: ''
    returnType: int
    signature: "int validate_scope_index(sepol_handle_t *handle,\n\t\t\t\tconst scope_index_t
      *scope_index,\n\t\t\t\tconst policydb_t *p, validate_t flavors[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1738
      start: 1735
    functionDepth: 0
    functionLinenumber: 1735
    functionLinenumberEnd: 1738
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(map, node, bit)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: validate_type_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:1765,1
    - Dst: validate_type_set
      Src: /src/selinux/libsepol/src/policydb_validate.c:1768,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1771,1
    - Dst: validate_simpletype
      Src: /src/selinux/libsepol/src/policydb_validate.c:1774,1
    - Dst: validate_string_field
      Src: /src/selinux/libsepol/src/policydb_validate.c:1776,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1796,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 35
    argCount: 4
    argNames:
    - handle
    - filename_trans
    - p
    - flavors
    argTypes:
    - sepol_handle_t*
    - filename_trans_rule_t*
    - policydb_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1759
    functionDepth: 3
    functionLinenumber: 1759
    functionLinenumberEnd: 1798
    functionName: validate_filename_trans_rules
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - ERR
    - validate_simpletype
    - validate_value
    - validate_type_set
    - validate_string_field
    linkageType: ''
    returnType: int
    signature: "int validate_filename_trans_rules(sepol_handle_t *handle,\n\t\t\t
      \     const filename_trans_rule_t *filename_trans,\n\t\t\t      const policydb_t
      *p, validate_t flavors[])"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: validate_cond_list
      Src: /src/selinux/libsepol/src/policydb_validate.c:1809,1
    - Dst: validate_avrules
      Src: /src/selinux/libsepol/src/policydb_validate.c:1812,1
    - Dst: validate_role_trans_rules
      Src: /src/selinux/libsepol/src/policydb_validate.c:1815,1
    - Dst: validate_role_allow_rules
      Src: /src/selinux/libsepol/src/policydb_validate.c:1818,1
    - Dst: validate_range_trans_rules
      Src: /src/selinux/libsepol/src/policydb_validate.c:1821,1
    - Dst: validate_scope_index
      Src: /src/selinux/libsepol/src/policydb_validate.c:1824,1
    - Dst: validate_scope_index
      Src: /src/selinux/libsepol/src/policydb_validate.c:1827,1
    - Dst: validate_filename_trans_rules
      Src: /src/selinux/libsepol/src/policydb_validate.c:1830,1
    - Dst: validate_datum_array_entries
      Src: /src/selinux/libsepol/src/policydb_validate.c:1834,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1851,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 45
    argCount: 4
    argNames:
    - handle
    - avrule_block
    - p
    - flavors
    argTypes:
    - sepol_handle_t*
    - avrule_block_t*
    - policydb_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1853
      start: 1800
    functionDepth: 6
    functionLinenumber: 1800
    functionLinenumberEnd: 1853
    functionName: validate_avrule_blocks
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - ERR
    - validate_avrules
    - validate_role_allow_rules
    - validate_scope_index
    - validate_role_trans_rules
    - validate_datum_array_entries
    - validate_filename_trans_rules
    - validate_range_trans_rules
    - validate_cond_list
    linkageType: ''
    returnType: int
    signature: "int validate_avrule_blocks(sepol_handle_t *handle,\n\t\t\t\t  const
      avrule_block_t *avrule_block,\n\t\t\t\t  const policydb_t *p, validate_t flavors[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/policydb_validate.c:1861,1
    - Dst: validate_simpletype
      Src: /src/selinux/libsepol/src/policydb_validate.c:1862,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1869,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - handle
    - p
    - flavors
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1871
      start: 1855
    functionDepth: 0
    functionLinenumber: 1855
    functionLinenumberEnd: 1871
    functionName: validate_permissives
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - ebitmap_for_each_positive_bit
    - ERR
    - validate_simpletype
    linkageType: ''
    returnType: int
    signature: "int validate_permissives(sepol_handle_t *handle, const policydb_t
      *p,\n\t\t\t\tvalidate_t flavors[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/policydb_validate.c:1879,1
    - Dst: validate_simpletype
      Src: /src/selinux/libsepol/src/policydb_validate.c:1880,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1887,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - handle
    - p
    - flavors
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1873
    functionDepth: 0
    functionLinenumber: 1873
    functionLinenumberEnd: 1889
    functionName: validate_neveraudit
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - ebitmap_for_each_positive_bit
    - ERR
    - validate_simpletype
    linkageType: ''
    returnType: int
    signature: "int validate_neveraudit(sepol_handle_t *handle, const policydb_t *p,\n\t\t\t
      \      validate_t flavors[])"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1899,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1901,1
    - Dst: validate_value
      Src: /src/selinux/libsepol/src/policydb_validate.c:1903,1
    - Dst: validate_mls_range
      Src: /src/selinux/libsepol/src/policydb_validate.c:1905,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - key
    - data
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1891
    functionDepth: 2
    functionLinenumber: 1891
    functionLinenumberEnd: 1912
    functionName: validate_range_transition
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 0
    functionsReached:
    - validate_value
    - validate_mls_range
    linkageType: ''
    returnType: int
    signature: "int validate_range_transition(hashtab_key_t key, hashtab_datum_t data,\n\t\t\t\t
      \    void *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:1919,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1920,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - handle
    - p
    - flavors
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1914
    functionDepth: 0
    functionLinenumber: 1914
    functionLinenumberEnd: 1925
    functionName: validate_range_transitions
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - ERR
    - hashtab_map
    linkageType: ''
    returnType: int
    signature: "int validate_range_transitions(sepol_handle_t *handle,\n\t\t\t\t      const
      policydb_t *p, validate_t flavors[])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:1935,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1944,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - handle
    - p
    - flavors
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1927
    functionDepth: 2
    functionLinenumber: 1927
    functionLinenumberEnd: 1946
    functionName: validate_typeattr_map
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - validate_ebitmap
    - ERR
    linkageType: ''
    returnType: int
    signature: "int validate_typeattr_map(sepol_handle_t *handle, const policydb_t
      *p,\n\t\t\t\t validate_t flavors[])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: validate_ebitmap
      Src: /src/selinux/libsepol/src/policydb_validate.c:1956,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:1965,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - handle
    - p
    - flavors
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1967
      start: 1948
    functionDepth: 2
    functionLinenumber: 1948
    functionLinenumberEnd: 1967
    functionName: validate_attrtype_map
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - validate_ebitmap
    - ERR
    linkageType: ''
    returnType: int
    signature: "int validate_attrtype_map(sepol_handle_t *handle, const policydb_t
      *p,\n\t\t\t\t validate_t flavors[])"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:2017,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 50
    argCount: 2
    argNames:
    - handle
    - p
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2019
      start: 1969
    functionDepth: 0
    functionLinenumber: 1969
    functionLinenumberEnd: 2019
    functionName: validate_properties
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - ERR
    linkageType: ''
    returnType: int
    signature: int validate_properties(sepol_handle_t *handle, const policydb_t *p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/policydb_validate.c:2026,1
    - Dst: sepol_polcap_getname
      Src: /src/selinux/libsepol/src/policydb_validate.c:2027,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:2034,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - handle
    - p
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2036
      start: 2021
    functionDepth: 1
    functionLinenumber: 2021
    functionLinenumberEnd: 2036
    functionName: validate_policycaps
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - ebitmap_for_each_positive_bit
    - ERR
    - sepol_polcap_getname
    linkageType: ''
    returnType: int
    signature: int validate_policycaps(sepol_handle_t *handle, const policydb_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/policydb_validate.c:2043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - flavors
    argTypes:
    - validate_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2045
      start: 2038
    functionDepth: 1
    functionLinenumber: 2038
    functionLinenumberEnd: 2045
    functionName: validate_array_destroy
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - ebitmap_destroy
    linkageType: ''
    returnType: void
    signature: void validate_array_destroy(validate_t flavors[])
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: validate_array_init
      Src: /src/selinux/libsepol/src/policydb_validate.c:2054,1
    - Dst: validate_properties
      Src: /src/selinux/libsepol/src/policydb_validate.c:2057,1
    - Dst: validate_policycaps
      Src: /src/selinux/libsepol/src/policydb_validate.c:2060,1
    - Dst: validate_avtab
      Src: /src/selinux/libsepol/src/policydb_validate.c:2064,1
    - Dst: validate_cond_list
      Src: /src/selinux/libsepol/src/policydb_validate.c:2066,1
    - Dst: validate_role_transes
      Src: /src/selinux/libsepol/src/policydb_validate.c:2068,1
    - Dst: validate_role_allows
      Src: /src/selinux/libsepol/src/policydb_validate.c:2070,1
    - Dst: validate_filename_trans_hashtab
      Src: /src/selinux/libsepol/src/policydb_validate.c:2073,1
    - Dst: validate_avrule_blocks
      Src: /src/selinux/libsepol/src/policydb_validate.c:2076,1
    - Dst: validate_ocontexts
      Src: /src/selinux/libsepol/src/policydb_validate.c:2080,1
    - Dst: validate_genfs
      Src: /src/selinux/libsepol/src/policydb_validate.c:2083,1
    - Dst: validate_scopes
      Src: /src/selinux/libsepol/src/policydb_validate.c:2086,1
    - Dst: validate_datum_array_gaps
      Src: /src/selinux/libsepol/src/policydb_validate.c:2089,1
    - Dst: validate_datum_array_entries
      Src: /src/selinux/libsepol/src/policydb_validate.c:2092,1
    - Dst: validate_permissives
      Src: /src/selinux/libsepol/src/policydb_validate.c:2095,1
    - Dst: validate_neveraudit
      Src: /src/selinux/libsepol/src/policydb_validate.c:2098,1
    - Dst: validate_range_transitions
      Src: /src/selinux/libsepol/src/policydb_validate.c:2101,1
    - Dst: validate_typeattr_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:2104,1
    - Dst: validate_attrtype_map
      Src: /src/selinux/libsepol/src/policydb_validate.c:2107,1
    - Dst: validate_array_destroy
      Src: /src/selinux/libsepol/src/policydb_validate.c:2110,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/policydb_validate.c:2115,1
    - Dst: validate_array_destroy
      Src: /src/selinux/libsepol/src/policydb_validate.c:2116,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 69
    argCount: 2
    argNames:
    - handle
    - p
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2118
      start: 2050
    functionDepth: 7
    functionLinenumber: 2050
    functionLinenumberEnd: 2118
    functionName: policydb_validate
    functionSourceFile: /src/selinux/libsepol/src/policydb_validate.c
    functionUses: 1
    functionsReached:
    - validate_role_allows
    - validate_range_transitions
    - validate_properties
    - validate_policycaps
    - validate_datum_array_gaps
    - validate_typeattr_map
    - validate_avtab
    - validate_neveraudit
    - validate_array_init
    - ERR
    - validate_attrtype_map
    - validate_ocontexts
    - validate_array_destroy
    - validate_avrule_blocks
    - validate_permissives
    - validate_genfs
    - validate_datum_array_entries
    - validate_scopes
    - validate_filename_trans_hashtab
    - validate_role_transes
    - validate_cond_list
    linkageType: ''
    returnType: int
    signature: int policydb_validate(sepol_handle_t *handle, const policydb_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - h
    - key
    argTypes:
    - hashtab_t
    - const_hashtab_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 27
    functionName: symhash
    functionSourceFile: /src/selinux/libsepol/src/symtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ignore_unsigned_overflow_
    signature: "ignore_unsigned_overflow_ symhash(hashtab_t h,\n\t\t\t\t\t\t      const_hashtab_key_t
      key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/symtab.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - h
    - key1
    - key2
    argTypes:
    - hashtab_t
    - const_hashtab_key_t
    - const_hashtab_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: symcmp
    functionSourceFile: /src/selinux/libsepol/src/symtab.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int symcmp(hashtab_t h __attribute__((unused)), const_hashtab_key_t
      key1,\n\t\t  const_hashtab_key_t key2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_create
      Src: /src/selinux/libsepol/src/symtab.c:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - size
    argTypes:
    - symtab_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: symtab_init
    functionSourceFile: /src/selinux/libsepol/src/symtab.c
    functionUses: 5
    functionsReached:
    - hashtab_create
    linkageType: ''
    returnType: int
    signature: int symtab_init(symtab_t *s, unsigned int size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_destroy
      Src: /src/selinux/libsepol/src/symtab.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: symtab_destroy
    functionSourceFile: /src/selinux/libsepol/src/symtab.c
    functionUses: 1
    functionsReached:
    - hashtab_destroy
    linkageType: ''
    returnType: void
    signature: void symtab_destroy(symtab_t *s)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strs_stack_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:38,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:46,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:79,1
    - Dst: strs_stack_pop
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:85,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:87,1
    - Dst: strs_stack_pop
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:92,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:94,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:95,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:99,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:101,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:103,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:105,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:108,1
    - Dst: strs_stack_push
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:111,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:113,1
    - Dst: strs_stack_pop
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:118,1
    - Dst: strs_stack_empty
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:119,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:120,1
    - Dst: strs_stack_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:126,1
    - Dst: strs_stack_pop
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:131,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:132,1
    - Dst: strs_stack_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:134,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 93
    argCount: 2
    argNames:
    - pdb
    - expr
    argTypes:
    - struct policydb*
    - struct cond_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 138
    functionName: cond_expr_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 0
    functionsReached:
    - ERR
    - create_str
    - strs_stack_push
    - strs_stack_destroy
    - strs_stack_pop
    - free
    - strs_stack_empty
    - strs_stack_init
    linkageType: ''
    returnType: char
    signature: char *cond_expr_to_str(struct policydb *pdb, struct cond_expr *expr)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: strs_stack_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:152,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:180,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:247,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:257,1
    - Dst: ebitmap_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:263,1
    - Dst: ebitmap_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:267,1
    - Dst: ebitmap_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:271,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:276,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:278,1
    - Dst: strchr
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:282,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:283,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:286,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:289,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:310,1
    - Dst: strs_stack_pop
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:317,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:319,1
    - Dst: strs_stack_pop
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:324,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:326,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:331,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:333,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:335,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:337,1
    - Dst: strs_stack_push
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:342,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:344,1
    - Dst: strs_stack_pop
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:349,1
    - Dst: strs_stack_empty
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:350,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:351,1
    - Dst: strs_stack_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:357,1
    - Dst: strs_stack_pop
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:363,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:364,1
    - Dst: strs_stack_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:366,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 196
    argCount: 3
    argNames:
    - pdb
    - expr
    - use_mls
    argTypes:
    - struct policydb*
    - struct constraint_expr*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 370
    functionName: constraint_expr_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 0
    functionsReached:
    - ERR
    - create_str
    - strchr
    - strs_stack_push
    - strs_stack_destroy
    - strs_stack_pop
    - free
    - strs_stack_empty
    - ebitmap_to_str
    - strs_stack_init
    - strdup
    linkageType: ''
    returnType: char
    signature: "char *constraint_expr_to_str(struct policydb *pdb,\n\t\t\t\t    struct
      constraint_expr *expr, int *use_mls)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: constraint_expr_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:389,1
    - Dst: sepol_av_to_string
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:395,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:398,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:403,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:404,1
    - Dst: strchr
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:408,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:423,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:426,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:427,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:435,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 6
    argNames:
    - pdb
    - classkey
    - class
    - constraint_rules
    - mls_list
    - non_mls_list
    argTypes:
    - struct policydb*
    - char*
    - class_datum_t*
    - struct constraint_node*
    - struct strs*
    - struct strs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 437
    functionName: class_constraint_rules_to_strs
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 0
    functionsReached:
    - ERR
    - strchr
    - sepol_av_to_string
    - constraint_expr_to_str
    - strs_create_and_add
    - free
    linkageType: ''
    returnType: int
    signature: "int class_constraint_rules_to_strs(struct policydb *pdb, char *classkey,\n\t\t\t
      \      class_datum_t *class,\n\t\t\t       struct constraint_node *constraint_rules,\n\t\t\t
      \      struct strs *mls_list, struct strs *non_mls_list)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: constraint_expr_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:453,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:467,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:469,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - pdb
    - classkey
    - validatetrans_rules
    - mls_list
    - non_mls_list
    argTypes:
    - struct policydb*
    - char*
    - struct constraint_node*
    - struct strs*
    - struct strs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 439
    functionDepth: 2
    functionLinenumber: 439
    functionLinenumberEnd: 477
    functionName: class_validatetrans_rules_to_strs
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 0
    functionsReached:
    - free
    - constraint_expr_to_str
    - strs_create_and_add
    linkageType: ''
    returnType: int
    signature: "int class_validatetrans_rules_to_strs(struct policydb *pdb, char *classkey,\n\t\t\t\t
      \ struct constraint_node *validatetrans_rules,\n\t\t\t\t  struct strs *mls_list,\n\t\t\t\t
      \ struct strs *non_mls_list)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: class_constraint_rules_to_strs
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:491,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - pdb
    - mls_strs
    - non_mls_strs
    argTypes:
    - struct policydb*
    - struct strs*
    - struct strs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 499
    functionName: constraint_rules_to_strs
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - class_constraint_rules_to_strs
    linkageType: ''
    returnType: int
    signature: "int constraint_rules_to_strs(struct policydb *pdb, struct strs *mls_strs,\n\t\t\t\t
      \   struct strs *non_mls_strs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: class_validatetrans_rules_to_strs
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:521,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - pdb
    - mls_strs
    - non_mls_strs
    argTypes:
    - struct policydb*
    - struct strs*
    - struct strs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 528
    functionName: validatetrans_rules_to_strs
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - class_validatetrans_rules_to_strs
    linkageType: ''
    returnType: int
    signature: "int validatetrans_rules_to_strs(struct policydb *pdb,\n\t\t\t\t       struct
      strs *mls_strs,\n\t\t\t\t       struct strs *non_mls_strs)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:552,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:557,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 560
    functionName: write_handle_unknown_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_printf
    linkageType: ''
    returnType: int
    signature: int write_handle_unknown_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 573
    functionName: write_class_decl_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 0
    functionsReached:
    - sepol_printf
    linkageType: ''
    returnType: int
    signature: int write_class_decl_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: isids_to_strs
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:582,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:584,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:588,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:589,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:593,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:594,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:595,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:598,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:599,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - out
    - sid_to_str
    - num_sids
    - isids
    argTypes:
    - FILE*
    - char**
    - unsigned
    - struct ocontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 575
    functionDepth: 2
    functionLinenumber: 575
    functionLinenumberEnd: 602
    functionName: write_sids_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 0
    functionsReached:
    - isids_to_strs
    - ERR
    - sepol_printf
    - strs_num_items
    - strs_read_at_index
    - strs_destroy
    - strs_free_all
    linkageType: ''
    returnType: int
    signature: "int write_sids_to_conf(FILE *out, const char *const *sid_to_str,\n\t\t\t
      \     unsigned num_sids, struct ocontext *isids)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write_sids_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:609,1
    - Dst: write_sids_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:612,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 604
    functionDepth: 3
    functionLinenumber: 604
    functionLinenumberEnd: 620
    functionName: write_sid_decl_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 0
    functionsReached:
    - ERR
    - write_sids_to_conf
    linkageType: ''
    returnType: int
    signature: int write_sid_decl_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:627,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:632,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:637,1
    - Dst: strs_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:638,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:642,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - permtab
    argTypes:
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 621
    functionDepth: 2
    functionLinenumber: 621
    functionLinenumberEnd: 645
    functionName: class_or_common_perms_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 0
    functionsReached:
    - strs_to_str
    - hashtab_map
    - strs_num_items
    - strs_init
    - strs_destroy
    linkageType: ''
    returnType: char
    signature: char *class_or_common_perms_to_str(symtab_t *permtab)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:657,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:659,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:670,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:673,1
    - Dst: class_or_common_perms_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:678,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:682,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:685,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:686,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:690,1
    - Dst: class_or_common_perms_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:698,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:702,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:709,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:710,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:712,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 714
    functionName: write_class_and_common_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_printf
    - hashtab_search
    - class_or_common_perms_to_str
    - free
    - calloc
    linkageType: ''
    returnType: int
    signature: int write_class_and_common_rules_to_conf(FILE *out, struct policydb
      *pdb)
  - BBCount: 336
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:737,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:759,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:763,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:781,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:785,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:818,1
    - Dst: write_default_user_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:839,1
    - Dst: write_default_role_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:853,1
    - Dst: write_default_type_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:867,1
    - Dst: write_default_range_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:885,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:895,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:908,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:923,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:928,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:934,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:938,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:946,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:947,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:954,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:962,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:963,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:977,1
    - Dst: strchr
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:987,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:988,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:992,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:996,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1001,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1007,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1016,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1021,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1023,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1028,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1030,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1033,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1036,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1049,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1064,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1069,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1074,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1078,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1086,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1087,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1094,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1102,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1103,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1117,1
    - Dst: strchr
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1127,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1128,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1131,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1135,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1142,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1144,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1147,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1150,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1169,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1172,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1174,1
    - Dst: cats_ebitmap_len
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1191,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1195,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1210,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1215,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1219,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1236,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1251,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1259,1
    - Dst: cats_ebitmap_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1260,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1262,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1263,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1265,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1271,1
    - Dst: write_sensitivity_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1285,1
    - Dst: write_category_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1290,1
    - Dst: write_level_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1295,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1302,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1316,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1321,1
    - Dst: sepol_polcap_getname
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1322,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1324,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1329,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1335,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1336,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1339,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1340,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1343,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1357,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1365,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1372,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1374,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1376,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1381,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1385,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1388,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1402,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1410,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1417,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1419,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1421,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1426,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1430,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1433,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1447,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1455,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1460,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1465,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1466,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1469,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1470,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1473,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1487,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1495,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1502,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1504,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1506,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1511,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1515,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1518,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1543,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1557,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1562,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1567,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1572,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1575,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1580,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1586,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1590,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1593,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1608,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1617,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1625,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1627,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1629,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1634,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1640,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1644,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1647,1
    - Dst: __builtin_mul_overflow
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1666,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1667,1
    - Dst: __builtin_add_overflow
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1671,1
    - Dst: strs_len_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1671,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1672,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1675,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1677,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1685,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1686,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1688,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1711,1
    - Dst: ebitmap_to_strs
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1716,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1721,1
    - Dst: attr_strs_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1723,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1726,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1740,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1749,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1752,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1756,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1758,1
    - Dst: attrmap_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1762,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1763,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1769,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1771,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1777,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1778,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1781,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1782,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1785,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1800,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1805,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1806,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1812,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1814,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1816,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1821,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1825,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1828,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1842,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1847,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1848,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1854,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1856,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1858,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1863,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1867,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1870,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1914,1
    - Dst: sepol_av_to_string
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1930,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1932,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1936,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1937,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1940,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1942,1
    - Dst: sepol_extended_perms_to_string
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1944,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1946,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1951,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1953,1
    - Dst: pdb::pdb
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1955,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1957,1
    - Dst: avtab_node_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1988,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1993,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1995,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2011,1
    - Dst: avtab_map
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2020,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2025,1
    - Dst: strs_write_each_indented
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2026,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2029,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2030,1
    - Dst: write_avtab_flavor_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2041,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2050,1
    - Dst: pdb::pdb
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2077,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2079,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2081,1
    - Dst: filename::filename
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2083,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2100,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2108,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2113,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2114,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2117,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2118,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2121,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2135,1
    - Dst: cats_ebitmap_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2136,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2137,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2138,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2140,1
    - Dst: level_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2152,1
    - Dst: level_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2157,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2162,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2165,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2166,1
    - Dst: range_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2189,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2195,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2197,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2212,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2220,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2225,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2226,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2229,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2230,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2233,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2255,1
    - Dst: avtab_node_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2266,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2271,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2273,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2279,1
    - Dst: strs_write_each_indented
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2280,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2281,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2282,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2288,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2289,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2302,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2322,1
    - Dst: cond_expr_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2331,1
    - Dst: qsort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2340,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2346,1
    - Dst: write_cond_av_list_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2349,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2357,1
    - Dst: write_cond_av_list_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2358,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2364,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2370,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2372,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2376,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2390,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2399,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2406,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2408,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2411,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2415,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2419,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2422,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2427,1
    - Dst: ebitmap_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2429,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2435,1
    - Dst: strchr
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2440,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2448,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2453,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2456,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2460,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2463,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2476,1
    - Dst: pdb::pdb
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2485,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2487,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2496,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2497,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2500,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2501,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2504,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2517,1
    - Dst: pdb::pdb
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2524,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2526,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2534,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2535,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2538,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2539,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2542,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2556,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2564,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2570,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2572,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2575,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2579,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2584,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2586,1
    - Dst: ebitmap_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2587,1
    - Dst: strchr
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2593,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2594,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2596,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2598,1
    - Dst: level_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2602,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2607,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2608,1
    - Dst: range_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2610,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2615,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2616,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2618,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2623,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2626,1
    - Dst: range_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2642,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2643,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2644,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2646,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2664,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2674,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2679,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2685,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2686,1
    - Dst: strs_add_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2692,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2694,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2699,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2702,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2703,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2706,1
    - Dst: write_sid_context_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2714,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2737,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2744,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2750,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2752,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2757,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2772,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2776,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2791,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2793,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2795,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2798,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2801,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2804,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2807,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2816,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2822,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2826,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2835,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2840,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2844,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2851,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2852,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2855,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2856,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2859,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2891,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2900,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2902,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2909,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2915,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2918,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2925,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2939,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2944,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2946,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2951,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2953,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2954,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2959,1
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2974,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2976,1
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2981,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2983,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2988,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2994,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2996,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3001,1
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3016,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3018,1
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3023,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3025,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3030,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3036,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3038,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3043,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3062,1
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3066,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3068,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3076,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3078,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3085,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3091,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3094,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3101,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3117,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3124,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3130,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3133,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3140,1
    - Dst: write_sid_context_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3148,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3160,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3166,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3172,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3174,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3181,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3201,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3203,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3210,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3216,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3218,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3225,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3244,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3246,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3254,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3260,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3262,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3269,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3283,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3290,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3296,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3298,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3305,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3319,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3325,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3327,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3332,1
    - Dst: check_for_supported_policy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3346,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3351,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3356,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3361,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3366,1
    - Dst: constraint_rules_to_strs
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3371,1
    - Dst: validatetrans_rules_to_strs
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3377,1
    - Dst: write_handle_unknown_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3383,1
    - Dst: write_class_decl_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3388,1
    - Dst: write_sid_decl_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3393,1
    - Dst: write_class_and_common_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3398,1
    - Dst: write_default_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3403,1
    - Dst: write_mls_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3408,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3413,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3414,1
    - Dst: write_polcap_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3416,1
    - Dst: write_type_attributes_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3421,1
    - Dst: write_role_attributes_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3426,1
    - Dst: write_boolean_decl_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3431,1
    - Dst: write_type_decl_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3436,1
    - Dst: write_type_alias_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3441,1
    - Dst: write_type_bounds_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3446,1
    - Dst: write_type_attribute_sets_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3451,1
    - Dst: write_type_permissive_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3456,1
    - Dst: write_type_neveraudit_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3461,1
    - Dst: write_avtab_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3466,1
    - Dst: write_filename_trans_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3470,1
    - Dst: write_range_trans_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3473,1
    - Dst: write_cond_nodes_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3479,1
    - Dst: write_role_decl_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3484,1
    - Dst: write_role_transition_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3489,1
    - Dst: write_role_allow_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3494,1
    - Dst: write_user_decl_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3499,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3504,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3505,1
    - Dst: sort_ocontexts
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3507,1
    - Dst: write_selinux_isid_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3513,1
    - Dst: write_selinux_fsuse_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3518,1
    - Dst: write_genfscon_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3523,1
    - Dst: write_selinux_port_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3528,1
    - Dst: write_selinux_netif_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3533,1
    - Dst: write_selinux_node_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3538,1
    - Dst: write_selinux_node6_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3543,1
    - Dst: write_selinux_ibpkey_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3548,1
    - Dst: write_selinux_ibendport_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3553,1
    - Dst: write_xen_isid_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3558,1
    - Dst: write_genfscon_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3563,1
    - Dst: write_xen_pirq_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3568,1
    - Dst: write_xen_iomem_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3573,1
    - Dst: write_xen_ioport_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3578,1
    - Dst: write_xen_pcidevice_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3583,1
    - Dst: write_xen_devicetree_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3588,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3595,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3596,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3597,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3598,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3599,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3600,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3601,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3602,1
    CyclomaticComplexity: 628
    EdgeCount: 628
    ICount: 2059
    argCount: 3
    argNames:
    - out
    - class_name
    - class
    argTypes:
    - FILE*
    - char*
    - class_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3605
      start: 724
    functionDepth: 4
    functionLinenumber: 724
    functionLinenumberEnd: 3605
    functionName: write_default_user_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ebitmap_cardinality
    - create_str
    - write_selinux_node_rules_to_conf
    - strchr
    - write_level_rules_to_conf
    - __builtin_mul_overflow
    - cats_ebitmap_len
    - write_xen_iomem_rules_to_conf
    - write_avtab_to_conf
    - ebitmap_to_strs
    - write_xen_isid_rules_to_conf
    - write_selinux_ibpkey_rules_to_conf
    - strs_num_items
    - write_type_neveraudit_rules_to_conf
    - write_genfscon_rules_to_conf
    - calloc
    - ebitmap_get_bit
    - pdb::pdb
    - write_type_decl_rules_to_conf
    - level_to_str
    - strs_add_at_index
    - sepol_printf
    - write_category_rules_to_conf
    - write_xen_ioport_rules_to_conf
    - hashtab_map
    - attr_strs_to_str
    - write_mls_rules_to_conf
    - write_cond_nodes_to_conf
    - strs_add
    - write_selinux_ibendport_rules_to_conf
    - strs_write_each_indented
    - validatetrans_rules_to_strs
    - write_polcap_rules_to_conf
    - write_type_attributes_to_conf
    - malloc
    - write_selinux_fsuse_rules_to_conf
    - write_role_attributes_to_conf
    - avtab_node_to_str
    - write_role_transition_rules_to_conf
    - constraint_rules_to_strs
    - cats_ebitmap_to_str
    - strs_init
    - avtab_map
    - write_role_allow_rules_to_conf
    - ebitmap_to_str
    - sort_ocontexts
    - write_selinux_netif_rules_to_conf
    - inet_ntop
    - check_for_supported_policy
    - sepol_av_to_string
    - qsort
    - memcpy
    - strs_destroy
    - write_xen_pcidevice_rules_to_conf
    - cond_expr_to_str
    - filename::filename
    - write_type_alias_rules_to_conf
    - write_class_decl_rules_to_conf
    - __builtin_add_overflow
    - write_default_type_to_conf
    - strs_free_all
    - ebitmap_cpy
    - write_sid_decl_rules_to_conf
    - write_type_attribute_sets_to_conf
    - write_xen_devicetree_rules_to_conf
    - write_selinux_isid_rules_to_conf
    - write_handle_unknown_to_conf
    - write_default_rules_to_conf
    - strs_sort
    - write_default_role_to_conf
    - hashtab_search
    - attrmap_to_str
    - write_sid_context_rules_to_conf
    - strdup
    - write_selinux_node6_rules_to_conf
    - strs_write_each
    - write_type_bounds_rules_to_conf
    - strs_read_at_index
    - write_cond_av_list_to_conf
    - sepol_polcap_getname
    - write_selinux_port_rules_to_conf
    - ebitmap_destroy
    - ebitmap_for_each_positive_bit
    - write_class_and_common_rules_to_conf
    - write_avtab_flavor_to_conf
    - strcmp
    - ebitmap_is_empty
    - write_default_user_to_conf
    - strs_len_items
    - context_to_str
    - write_xen_pirq_rules_to_conf
    - write_role_decl_rules_to_conf
    - free
    - strlen
    - ERR
    - write_sensitivity_rules_to_conf
    - strs_create_and_add
    - write_user_decl_rules_to_conf
    - write_filename_trans_rules_to_conf
    - write_range_trans_rules_to_conf
    - range_to_str
    - snprintf
    - write_boolean_decl_rules_to_conf
    - ebitmap_set_bit
    - write_default_range_to_conf
    - sepol_extended_perms_to_string
    - write_type_permissive_rules_to_conf
    linkageType: ''
    returnType: int
    signature: "int write_default_user_to_conf(FILE *out, char *class_name,\n\t\t\t\t
      \     class_datum_t *class)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - key
    - data
    - args
    argTypes:
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 901
    functionDepth: 1
    functionLinenumber: 901
    functionLinenumberEnd: 912
    functionName: map_sensitivity_aliases_to_strs
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 0
    functionsReached:
    - strs_add
    linkageType: ''
    returnType: int
    signature: int map_sensitivity_aliases_to_strs(char *key, void *data, void *args)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:923,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:928,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:934,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:938,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:946,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:947,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:954,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:962,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:963,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:977,1
    - Dst: strchr
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:987,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:988,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:992,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:996,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1001,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1007,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1016,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1021,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1023,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1028,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1030,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1033,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1036,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 106
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 1040
    functionName: write_sensitivity_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ERR
    - create_str
    - sepol_printf
    - hashtab_map
    - strchr
    - strs_num_items
    - strs_init
    - strs_read_at_index
    - hashtab_search
    - free
    - calloc
    - strs_destroy
    - strdup
    linkageType: ''
    returnType: int
    signature: int write_sensitivity_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1049,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - key
    - data
    - args
    argTypes:
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1042
    functionDepth: 1
    functionLinenumber: 1042
    functionLinenumberEnd: 1053
    functionName: map_category_aliases_to_strs
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 0
    functionsReached:
    - strs_add
    linkageType: ''
    returnType: int
    signature: int map_category_aliases_to_strs(char *key, void *data, void *args)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1064,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1069,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1074,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1078,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1086,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1087,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1094,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1102,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1103,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1117,1
    - Dst: strchr
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1127,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1128,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1131,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1135,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1142,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1144,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1147,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1150,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 83
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1055
    functionDepth: 1
    functionLinenumber: 1055
    functionLinenumberEnd: 1154
    functionName: write_category_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ERR
    - create_str
    - sepol_printf
    - hashtab_map
    - strchr
    - strs_num_items
    - strs_init
    - strs_read_at_index
    - hashtab_search
    - free
    - calloc
    - strs_destroy
    - strdup
    linkageType: ''
    returnType: int
    signature: int write_category_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1169,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1172,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - cats
    - val_to_name
    argTypes:
    - struct ebitmap*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1156
    functionDepth: 1
    functionLinenumber: 1156
    functionLinenumberEnd: 1181
    functionName: cats_ebitmap_len
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ebitmap_get_bit
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t cats_ebitmap_len(struct ebitmap *cats, char **val_to_name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1169,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1172,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1178
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 32
    functionsReached:
    - ebitmap_get_bit
    - strlen
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(cats, node, i)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cats_ebitmap_len
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1191,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1195,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1210,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1215,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1219,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1236,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 2
    argNames:
    - cats
    - val_to_name
    argTypes:
    - struct ebitmap*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1183
    functionDepth: 1
    functionLinenumber: 1183
    functionLinenumberEnd: 1238
    functionName: cats_ebitmap_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - snprintf
    - malloc
    - free
    - ebitmap_get_bit
    - cats_ebitmap_len
    linkageType: ''
    returnType: char
    signature: char *cats_ebitmap_to_str(struct ebitmap *cats, char **val_to_name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1210,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1215,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1219,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1204
    functionDepth: 1
    functionLinenumber: 1204
    functionLinenumberEnd: 1229
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 32
    functionsReached:
    - ebitmap_get_bit
    - snprintf
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(cats, node, i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1251,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1259,1
    - Dst: cats_ebitmap_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1260,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1262,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1263,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1265,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1271,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1240
    functionDepth: 1
    functionLinenumber: 1240
    functionLinenumberEnd: 1275
    functionName: write_level_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ERR
    - cats_ebitmap_to_str
    - sepol_printf
    - hashtab_search
    - ebitmap_is_empty
    - free
    linkageType: ''
    returnType: int
    signature: int write_level_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: write_sensitivity_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1285,1
    - Dst: write_category_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1290,1
    - Dst: write_level_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1295,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1302,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1277
    functionDepth: 2
    functionLinenumber: 1277
    functionLinenumberEnd: 1306
    functionName: write_mls_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ERR
    - write_category_rules_to_conf
    - write_sensitivity_rules_to_conf
    - write_level_rules_to_conf
    linkageType: ''
    returnType: int
    signature: int write_mls_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1316,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1321,1
    - Dst: sepol_polcap_getname
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1322,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1324,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1329,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1335,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1336,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1339,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1340,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1343,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1308
    functionDepth: 2
    functionLinenumber: 1308
    functionLinenumberEnd: 1347
    functionName: write_polcap_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ERR
    - strs_write_each
    - strs_sort
    - strs_init
    - ebitmap_for_each_positive_bit
    - strs_create_and_add
    - sepol_polcap_getname
    - strs_destroy
    - strs_free_all
    linkageType: ''
    returnType: int
    signature: int write_polcap_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1357,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1365,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1372,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1374,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1376,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1381,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1385,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1388,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1349
    functionDepth: 1
    functionLinenumber: 1349
    functionLinenumberEnd: 1392
    functionName: write_type_attributes_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ERR
    - sepol_printf
    - strs_num_items
    - strs_sort
    - strs_read_at_index
    - strs_init
    - strs_add
    - strs_destroy
    linkageType: ''
    returnType: int
    signature: int write_type_attributes_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1402,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1410,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1417,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1419,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1421,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1426,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1430,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1433,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1394
    functionDepth: 1
    functionLinenumber: 1394
    functionLinenumberEnd: 1437
    functionName: write_role_attributes_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ERR
    - sepol_printf
    - strs_num_items
    - strs_sort
    - strs_read_at_index
    - strs_init
    - strs_add
    - strs_destroy
    linkageType: ''
    returnType: int
    signature: int write_role_attributes_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - data
    - args
    argTypes:
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1439
    functionDepth: 2
    functionLinenumber: 1439
    functionLinenumberEnd: 1448
    functionName: map_boolean_to_strs
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 0
    functionsReached:
    - strs_create_and_add
    linkageType: ''
    returnType: int
    signature: int map_boolean_to_strs(char *key, void *data, void *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1455,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1460,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1465,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1466,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1469,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1470,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1473,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1450
    functionDepth: 2
    functionLinenumber: 1450
    functionLinenumberEnd: 1477
    functionName: write_boolean_decl_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ERR
    - strs_write_each
    - hashtab_map
    - strs_sort
    - strs_init
    - strs_destroy
    - strs_free_all
    linkageType: ''
    returnType: int
    signature: int write_boolean_decl_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1487,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1495,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1502,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1504,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1506,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1511,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1515,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1518,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1479
    functionDepth: 1
    functionLinenumber: 1479
    functionLinenumberEnd: 1522
    functionName: write_type_decl_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ERR
    - sepol_printf
    - strs_num_items
    - strs_sort
    - strs_read_at_index
    - strs_init
    - strs_add
    - strs_destroy
    linkageType: ''
    returnType: int
    signature: int write_type_decl_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - key
    - data
    - args
    argTypes:
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1524
    functionDepth: 0
    functionLinenumber: 1524
    functionLinenumberEnd: 1534
    functionName: map_count_type_aliases
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int map_count_type_aliases(__attribute__((unused)) char *key, void
      *data,\n\t\t\t\t  void *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - key
    - data
    - args
    argTypes:
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1536
    functionDepth: 1
    functionLinenumber: 1536
    functionLinenumberEnd: 1546
    functionName: map_type_aliases_to_strs
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 0
    functionsReached:
    - strs_add
    linkageType: ''
    returnType: int
    signature: int map_type_aliases_to_strs(char *key, void *data, void *args)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1557,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1562,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1567,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1572,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1575,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1580,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1586,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1590,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1593,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1597
      start: 1548
    functionDepth: 1
    functionLinenumber: 1548
    functionLinenumberEnd: 1597
    functionName: write_type_alias_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ERR
    - sepol_printf
    - hashtab_map
    - strs_sort
    - hashtab_search
    - strs_read_at_index
    - strs_init
    - strs_destroy
    linkageType: ''
    returnType: int
    signature: int write_type_alias_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1608,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1617,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1625,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1627,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1629,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1634,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1640,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1644,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1647,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1599
    functionDepth: 1
    functionLinenumber: 1599
    functionLinenumberEnd: 1651
    functionName: write_type_bounds_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ERR
    - sepol_printf
    - strs_num_items
    - strs_sort
    - strs_read_at_index
    - strs_init
    - hashtab_search
    - strs_add
    - strs_destroy
    linkageType: ''
    returnType: int
    signature: int write_type_bounds_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_mul_overflow
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1666,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1667,1
    - Dst: __builtin_add_overflow
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1671,1
    - Dst: strs_len_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1671,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1672,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1675,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1677,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1685,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1686,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1688,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 1
    argNames:
    - strs
    argTypes:
    - struct strs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1703
      start: 1653
    functionDepth: 1
    functionLinenumber: 1653
    functionLinenumberEnd: 1703
    functionName: attr_strs_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ERR
    - snprintf
    - __builtin_mul_overflow
    - malloc
    - free
    - __builtin_add_overflow
    - strs_len_items
    - strlen
    linkageType: ''
    returnType: char
    signature: char *attr_strs_to_str(struct strs *strs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1711,1
    - Dst: ebitmap_to_strs
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1716,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1721,1
    - Dst: attr_strs_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1723,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1726,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - map
    - val_to_name
    argTypes:
    - struct ebitmap*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1705
    functionDepth: 2
    functionLinenumber: 1705
    functionLinenumberEnd: 1729
    functionName: attrmap_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - strs_sort
    - strs_init
    - attr_strs_to_str
    - ebitmap_to_strs
    - strs_destroy
    linkageType: ''
    returnType: char
    signature: char *attrmap_to_str(struct ebitmap *map, char **val_to_name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1740,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1749,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1752,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1756,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1758,1
    - Dst: attrmap_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1762,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1763,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1769,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1771,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1777,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1778,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1781,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1782,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1785,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1731
    functionDepth: 3
    functionLinenumber: 1731
    functionLinenumberEnd: 1790
    functionName: write_type_attribute_sets_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ebitmap_cardinality
    - ERR
    - strs_write_each
    - ebitmap_destroy
    - strs_sort
    - strs_init
    - strs_free_all
    - attrmap_to_str
    - strs_create_and_add
    - ebitmap_set_bit
    - free
    - strs_destroy
    - ebitmap_cpy
    linkageType: ''
    returnType: int
    signature: int write_type_attribute_sets_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1800,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1805,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1806,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1812,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1814,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1816,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1821,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1825,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1828,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1832
      start: 1792
    functionDepth: 1
    functionLinenumber: 1792
    functionLinenumberEnd: 1832
    functionName: write_type_permissive_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ERR
    - sepol_printf
    - strs_num_items
    - strs_sort
    - ebitmap_for_each_positive_bit
    - strs_init
    - strs_read_at_index
    - strs_add
    - strs_destroy
    linkageType: ''
    returnType: int
    signature: int write_type_permissive_rules_to_conf(FILE *out, struct policydb
      *pdb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1842,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1847,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1848,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1854,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1856,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1858,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1863,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1867,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1870,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1874
      start: 1834
    functionDepth: 1
    functionLinenumber: 1834
    functionLinenumberEnd: 1874
    functionName: write_type_neveraudit_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ERR
    - sepol_printf
    - strs_num_items
    - strs_sort
    - ebitmap_for_each_positive_bit
    - strs_init
    - strs_read_at_index
    - strs_add
    - strs_destroy
    linkageType: ''
    returnType: int
    signature: int write_type_neveraudit_rules_to_conf(FILE *out, struct policydb
      *pdb)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1914,1
    - Dst: sepol_av_to_string
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1930,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1932,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1936,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1937,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1940,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1942,1
    - Dst: sepol_extended_perms_to_string
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1944,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1946,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1951,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1953,1
    - Dst: pdb::pdb
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1955,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1957,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 80
    argCount: 3
    argNames:
    - pdb
    - key
    - datum
    argTypes:
    - struct policydb*
    - avtab_key_t*
    - avtab_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1876
    functionDepth: 2
    functionLinenumber: 1876
    functionLinenumberEnd: 1969
    functionName: avtab_node_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ERR
    - create_str
    - sepol_av_to_string
    - free
    - pdb::pdb
    - sepol_extended_perms_to_string
    linkageType: ''
    returnType: char
    signature: "char *avtab_node_to_str(struct policydb *pdb, avtab_key_t *key,\n\t\t\t
      \      avtab_datum_t *datum)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: avtab_node_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1988,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1993,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:1995,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - key
    - datum
    - args
    argTypes:
    - avtab_key_t*
    - avtab_datum_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2002
      start: 1977
    functionDepth: 1
    functionLinenumber: 1977
    functionLinenumberEnd: 2002
    functionName: map_avtab_write_helper
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 0
    functionsReached:
    - avtab_node_to_str
    - strs_add
    - free
    linkageType: ''
    returnType: int
    signature: "int map_avtab_write_helper(avtab_key_t *key, avtab_datum_t *datum,\n\t\t\t\t
      \ void *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2011,1
    - Dst: avtab_map
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2020,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2025,1
    - Dst: strs_write_each_indented
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2026,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2029,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2030,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - out
    - pdb
    - flavor
    - indent
    argTypes:
    - FILE*
    - struct policydb*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2033
      start: 2004
    functionDepth: 2
    functionLinenumber: 2004
    functionLinenumberEnd: 2033
    functionName: write_avtab_flavor_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - strs_sort
    - strs_init
    - avtab_map
    - strs_destroy
    - strs_write_each_indented
    - strs_free_all
    linkageType: ''
    returnType: int
    signature: "int write_avtab_flavor_to_conf(FILE *out, struct policydb *pdb,\n\t\t\t\t
      \     uint32_t flavor, int indent)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write_avtab_flavor_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2041,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2050,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - out
    - pdb
    - indent
    argTypes:
    - FILE*
    - struct policydb*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2054
      start: 2035
    functionDepth: 3
    functionLinenumber: 2035
    functionLinenumberEnd: 2054
    functionName: write_avtab_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ERR
    - write_avtab_flavor_to_conf
    linkageType: ''
    returnType: int
    signature: int write_avtab_to_conf(FILE *out, struct policydb *pdb, int indent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pdb::pdb
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2077,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2079,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2081,1
    - Dst: filename::filename
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2083,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - key
    - data
    - arg
    argTypes:
    - hashtab_key_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2061
    functionDepth: 2
    functionLinenumber: 2061
    functionLinenumberEnd: 2092
    functionName: map_filename_trans_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 0
    functionsReached:
    - ebitmap_for_each_positive_bit
    - filename::filename
    - strs_create_and_add
    - pdb::pdb
    linkageType: ''
    returnType: int
    signature: int map_filename_trans_to_str(hashtab_key_t key, void *data, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2100,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2108,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2113,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2114,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2117,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2118,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2094
    functionDepth: 2
    functionLinenumber: 2094
    functionLinenumberEnd: 2126
    functionName: write_filename_trans_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ERR
    - strs_write_each
    - hashtab_map
    - strs_sort
    - strs_init
    - strs_destroy
    - strs_free_all
    linkageType: ''
    returnType: int
    signature: int write_filename_trans_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2135,1
    - Dst: cats_ebitmap_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2136,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2137,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2138,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pdb
    - level
    argTypes:
    - struct policydb*
    - struct mls_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2144
      start: 2128
    functionDepth: 1
    functionLinenumber: 2128
    functionLinenumberEnd: 2144
    functionName: level_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ebitmap_is_empty
    - create_str
    - cats_ebitmap_to_str
    - free
    linkageType: ''
    returnType: char
    signature: char *level_to_str(struct policydb *pdb, struct mls_level *level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: level_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2152,1
    - Dst: level_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2157,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2162,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2165,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - pdb
    - range
    argTypes:
    - struct policydb*
    - mls_range_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2169
      start: 2146
    functionDepth: 1
    functionLinenumber: 2146
    functionLinenumberEnd: 2169
    functionName: range_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - level_to_str
    - create_str
    - free
    linkageType: ''
    returnType: char
    signature: char *range_to_str(struct policydb *pdb, mls_range_t *range)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: range_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2189,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2195,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - key
    - data
    - arg
    argTypes:
    - hashtab_key_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2204
      start: 2176
    functionDepth: 2
    functionLinenumber: 2176
    functionLinenumberEnd: 2204
    functionName: map_range_trans_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 0
    functionsReached:
    - range_to_str
    - free
    - strs_create_and_add
    linkageType: ''
    returnType: int
    signature: int map_range_trans_to_str(hashtab_key_t key, void *data, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2212,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2220,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2225,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2226,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2229,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2230,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2233,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2206
    functionDepth: 2
    functionLinenumber: 2206
    functionLinenumberEnd: 2238
    functionName: write_range_trans_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ERR
    - strs_write_each
    - hashtab_map
    - strs_sort
    - strs_init
    - strs_destroy
    - strs_free_all
    linkageType: ''
    returnType: int
    signature: int write_range_trans_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2255,1
    - Dst: avtab_node_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2266,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2271,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2273,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2279,1
    - Dst: strs_write_each_indented
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2280,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2281,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2282,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2288,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2289,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 4
    argNames:
    - out
    - pdb
    - cond_list
    - indent
    argTypes:
    - FILE*
    - struct policydb*
    - cond_av_list_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2291
      start: 2240
    functionDepth: 2
    functionLinenumber: 2240
    functionLinenumberEnd: 2291
    functionName: write_cond_av_list_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - avtab_node_to_str
    - strs_sort
    - strs_init
    - strs_add
    - free
    - strs_destroy
    - strs_write_each_indented
    - strs_free_all
    linkageType: ''
    returnType: int
    signature: "int write_cond_av_list_to_conf(FILE *out, struct policydb *pdb,\n\t\t\t\t
      \     cond_av_list_t *cond_list, int indent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2303
      start: 2298
    functionDepth: 0
    functionLinenumber: 2298
    functionLinenumberEnd: 2303
    functionName: cond_node_cmp
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cond_node_cmp(const void *a, const void *b)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2322,1
    - Dst: cond_expr_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2331,1
    - Dst: qsort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2340,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2346,1
    - Dst: write_cond_av_list_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2349,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2357,1
    - Dst: write_cond_av_list_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2358,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2364,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2370,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2372,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2376,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2380
      start: 2305
    functionDepth: 3
    functionLinenumber: 2305
    functionLinenumberEnd: 2380
    functionName: write_cond_nodes_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ERR
    - sepol_printf
    - write_cond_av_list_to_conf
    - qsort
    - free
    - calloc
    - cond_expr_to_str
    linkageType: ''
    returnType: int
    signature: int write_cond_nodes_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2390,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2399,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2406,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2408,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2411,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2415,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2419,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2422,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2427,1
    - Dst: ebitmap_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2429,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2435,1
    - Dst: strchr
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2440,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2448,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2453,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2456,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2460,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2463,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 71
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2467
      start: 2382
    functionDepth: 3
    functionLinenumber: 2382
    functionLinenumberEnd: 2467
    functionName: write_role_decl_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ERR
    - sepol_printf
    - strchr
    - strs_num_items
    - strs_sort
    - strs_read_at_index
    - strs_init
    - hashtab_search
    - ebitmap_is_empty
    - strs_add
    - free
    - ebitmap_to_str
    - strs_destroy
    - strlen
    linkageType: ''
    returnType: int
    signature: int write_role_decl_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2476,1
    - Dst: pdb::pdb
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2485,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2487,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2496,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2497,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2500,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2501,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2504,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2508
      start: 2469
    functionDepth: 2
    functionLinenumber: 2469
    functionLinenumberEnd: 2508
    functionName: write_role_transition_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ERR
    - strs_write_each
    - strs_sort
    - strs_init
    - strs_create_and_add
    - pdb::pdb
    - strs_destroy
    - strs_free_all
    linkageType: ''
    returnType: int
    signature: int write_role_transition_rules_to_conf(FILE *out, struct policydb
      *pdb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2517,1
    - Dst: pdb::pdb
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2524,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2526,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2534,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2535,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2538,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2539,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2542,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2546
      start: 2510
    functionDepth: 2
    functionLinenumber: 2510
    functionLinenumberEnd: 2546
    functionName: write_role_allow_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - ERR
    - strs_write_each
    - strs_sort
    - strs_init
    - strs_create_and_add
    - pdb::pdb
    - strs_destroy
    - strs_free_all
    linkageType: ''
    returnType: int
    signature: int write_role_allow_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2556,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2564,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2570,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2572,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2575,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2579,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2584,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2586,1
    - Dst: ebitmap_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2587,1
    - Dst: strchr
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2593,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2594,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2596,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2598,1
    - Dst: level_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2602,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2607,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2608,1
    - Dst: range_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2610,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2615,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2616,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2618,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2623,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2626,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 71
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2630
      start: 2548
    functionDepth: 3
    functionLinenumber: 2548
    functionLinenumberEnd: 2630
    functionName: write_user_decl_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - range_to_str
    - level_to_str
    - ERR
    - sepol_printf
    - strchr
    - strs_num_items
    - strs_sort
    - strs_read_at_index
    - strs_init
    - hashtab_search
    - ebitmap_is_empty
    - strs_add
    - free
    - ebitmap_to_str
    - strs_destroy
    linkageType: ''
    returnType: int
    signature: int write_user_decl_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: range_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2642,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2643,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2644,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - pdb
    - con
    argTypes:
    - struct policydb*
    - struct context_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2650
      start: 2632
    functionDepth: 1
    functionLinenumber: 2632
    functionLinenumberEnd: 2650
    functionName: context_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - range_to_str
    - create_str
    - free
    linkageType: ''
    returnType: char
    signature: char *context_to_str(struct policydb *pdb, struct context_struct *con)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2664,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2674,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2679,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2685,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2686,1
    - Dst: strs_add_at_index
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2692,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2694,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2699,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2702,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2703,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2706,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 4
    argNames:
    - out
    - pdb
    - sid_to_str
    - num_sids
    argTypes:
    - FILE*
    - struct policydb*
    - char**
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2710
      start: 2652
    functionDepth: 2
    functionLinenumber: 2652
    functionLinenumberEnd: 2710
    functionName: write_sid_context_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - context_to_str
    - ERR
    - create_str
    - strs_add_at_index
    - strs_write_each
    - snprintf
    - strs_init
    - free
    - strs_destroy
    - strs_free_all
    linkageType: ''
    returnType: int
    signature: "int write_sid_context_rules_to_conf(FILE *out, struct policydb *pdb,\n\t\t\t\t\t
      \  const char *const *sid_to_str,\n\t\t\t\t\t   unsigned num_sids)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_sid_context_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2716
      start: 2712
    functionDepth: 3
    functionLinenumber: 2712
    functionLinenumberEnd: 2716
    functionName: write_selinux_isid_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - write_sid_context_rules_to_conf
    linkageType: ''
    returnType: int
    signature: int write_selinux_isid_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2737,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2744,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2750,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2752,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2757,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2761
      start: 2718
    functionDepth: 1
    functionLinenumber: 2718
    functionLinenumberEnd: 2761
    functionName: write_selinux_fsuse_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - context_to_str
    - ERR
    - sepol_printf
    - free
    linkageType: ''
    returnType: int
    signature: int write_selinux_fsuse_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2772,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2776,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2791,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2793,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2795,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2798,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2801,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2804,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2807,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2816,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2822,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2826,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2835,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2840,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2844,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2851,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2852,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2855,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2856,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2859,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 77
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2863
      start: 2763
    functionDepth: 2
    functionLinenumber: 2763
    functionLinenumberEnd: 2863
    functionName: write_genfscon_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - context_to_str
    - ERR
    - strs_write_each
    - strs_sort
    - strs_init
    - strcmp
    - strs_create_and_add
    - free
    - ebitmap_get_bit
    - strs_destroy
    - strs_free_all
    - strlen
    linkageType: ''
    returnType: int
    signature: int write_genfscon_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2891,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2900,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2902,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2909,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2915,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2918,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2925,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2929
      start: 2865
    functionDepth: 1
    functionLinenumber: 2865
    functionLinenumberEnd: 2929
    functionName: write_selinux_port_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - context_to_str
    - ERR
    - sepol_printf
    - snprintf
    - free
    linkageType: ''
    returnType: int
    signature: int write_selinux_port_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2939,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2944,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2946,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2951,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2953,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2954,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2959,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2963
      start: 2931
    functionDepth: 1
    functionLinenumber: 2931
    functionLinenumberEnd: 2963
    functionName: write_selinux_netif_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - context_to_str
    - ERR
    - sepol_printf
    - free
    linkageType: ''
    returnType: int
    signature: int write_selinux_netif_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2974,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2976,1
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2981,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2983,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2988,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2994,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:2996,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3001,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3005
      start: 2965
    functionDepth: 1
    functionLinenumber: 2965
    functionLinenumberEnd: 3005
    functionName: write_selinux_node_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - context_to_str
    - ERR
    - sepol_printf
    - inet_ntop
    - free
    linkageType: ''
    returnType: int
    signature: int write_selinux_node_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3016,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3018,1
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3023,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3025,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3030,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3036,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3038,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3043,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3047
      start: 3007
    functionDepth: 1
    functionLinenumber: 3007
    functionLinenumberEnd: 3047
    functionName: write_selinux_node6_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - context_to_str
    - ERR
    - sepol_printf
    - inet_ntop
    - free
    linkageType: ''
    returnType: int
    signature: int write_selinux_node6_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3062,1
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3066,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3068,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3076,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3078,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3085,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3091,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3094,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3101,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3105
      start: 3049
    functionDepth: 1
    functionLinenumber: 3049
    functionLinenumberEnd: 3105
    functionName: write_selinux_ibpkey_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - context_to_str
    - ERR
    - sepol_printf
    - snprintf
    - inet_ntop
    - free
    - memcpy
    linkageType: ''
    returnType: int
    signature: int write_selinux_ibpkey_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3117,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3124,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3130,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3133,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3140,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3144
      start: 3107
    functionDepth: 1
    functionLinenumber: 3107
    functionLinenumberEnd: 3144
    functionName: write_selinux_ibendport_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - context_to_str
    - ERR
    - sepol_printf
    - snprintf
    - free
    linkageType: ''
    returnType: int
    signature: "int write_selinux_ibendport_rules_to_conf(FILE *out,\n\t\t\t\t\t\t
      struct policydb *pdb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_sid_context_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3150
      start: 3146
    functionDepth: 3
    functionLinenumber: 3146
    functionLinenumberEnd: 3150
    functionName: write_xen_isid_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - write_sid_context_rules_to_conf
    linkageType: ''
    returnType: int
    signature: int write_xen_isid_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3160,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3166,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3172,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3174,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3181,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3185
      start: 3152
    functionDepth: 1
    functionLinenumber: 3152
    functionLinenumberEnd: 3185
    functionName: write_xen_pirq_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - context_to_str
    - ERR
    - sepol_printf
    - snprintf
    - free
    linkageType: ''
    returnType: int
    signature: int write_xen_pirq_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3201,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3203,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3210,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3216,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3218,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3225,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3229
      start: 3187
    functionDepth: 1
    functionLinenumber: 3187
    functionLinenumberEnd: 3229
    functionName: write_xen_ioport_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - context_to_str
    - ERR
    - sepol_printf
    - snprintf
    - free
    linkageType: ''
    returnType: int
    signature: int write_xen_ioport_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3244,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3246,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3254,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3260,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3262,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3269,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3273
      start: 3231
    functionDepth: 1
    functionLinenumber: 3231
    functionLinenumberEnd: 3273
    functionName: write_xen_iomem_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - context_to_str
    - ERR
    - sepol_printf
    - snprintf
    - free
    linkageType: ''
    returnType: int
    signature: int write_xen_iomem_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3283,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3290,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3296,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3298,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3305,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3309
      start: 3275
    functionDepth: 1
    functionLinenumber: 3275
    functionLinenumberEnd: 3309
    functionName: write_xen_pcidevice_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - context_to_str
    - ERR
    - sepol_printf
    - snprintf
    - free
    linkageType: ''
    returnType: int
    signature: int write_xen_pcidevice_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3319,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3325,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3327,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3332,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3336
      start: 3311
    functionDepth: 1
    functionLinenumber: 3311
    functionLinenumberEnd: 3336
    functionName: write_xen_devicetree_rules_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 1
    functionsReached:
    - context_to_str
    - ERR
    - sepol_printf
    - free
    linkageType: ''
    returnType: int
    signature: int write_xen_devicetree_rules_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 51
    BranchProfiles: []
    Callsites:
    - Dst: check_for_supported_policy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3346,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3351,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3356,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3361,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3366,1
    - Dst: constraint_rules_to_strs
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3371,1
    - Dst: validatetrans_rules_to_strs
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3377,1
    - Dst: write_handle_unknown_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3383,1
    - Dst: write_class_decl_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3388,1
    - Dst: write_sid_decl_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3393,1
    - Dst: write_class_and_common_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3398,1
    - Dst: write_default_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3403,1
    - Dst: write_mls_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3408,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3413,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3414,1
    - Dst: write_polcap_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3416,1
    - Dst: write_type_attributes_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3421,1
    - Dst: write_role_attributes_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3426,1
    - Dst: write_boolean_decl_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3431,1
    - Dst: write_type_decl_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3436,1
    - Dst: write_type_alias_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3441,1
    - Dst: write_type_bounds_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3446,1
    - Dst: write_type_attribute_sets_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3451,1
    - Dst: write_type_permissive_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3456,1
    - Dst: write_type_neveraudit_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3461,1
    - Dst: write_avtab_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3466,1
    - Dst: write_filename_trans_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3470,1
    - Dst: write_range_trans_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3473,1
    - Dst: write_cond_nodes_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3479,1
    - Dst: write_role_decl_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3484,1
    - Dst: write_role_transition_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3489,1
    - Dst: write_role_allow_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3494,1
    - Dst: write_user_decl_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3499,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3504,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3505,1
    - Dst: sort_ocontexts
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3507,1
    - Dst: write_selinux_isid_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3513,1
    - Dst: write_selinux_fsuse_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3518,1
    - Dst: write_genfscon_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3523,1
    - Dst: write_selinux_port_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3528,1
    - Dst: write_selinux_netif_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3533,1
    - Dst: write_selinux_node_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3538,1
    - Dst: write_selinux_node6_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3543,1
    - Dst: write_selinux_ibpkey_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3548,1
    - Dst: write_selinux_ibendport_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3553,1
    - Dst: write_xen_isid_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3558,1
    - Dst: write_genfscon_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3563,1
    - Dst: write_xen_pirq_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3568,1
    - Dst: write_xen_iomem_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3573,1
    - Dst: write_xen_ioport_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3578,1
    - Dst: write_xen_pcidevice_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3583,1
    - Dst: write_xen_devicetree_rules_to_conf
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3588,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3595,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3596,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3597,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3598,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3599,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3600,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3601,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_conf.c:3602,1
    CyclomaticComplexity: 96
    EdgeCount: 96
    ICount: 257
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3605
      start: 3338
    functionDepth: 4
    functionLinenumber: 3338
    functionLinenumberEnd: 3605
    functionName: sepol_kernel_policydb_to_conf
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_conf.c
    functionUses: 0
    functionsReached:
    - write_type_alias_rules_to_conf
    - write_selinux_node_rules_to_conf
    - write_class_decl_rules_to_conf
    - write_class_and_common_rules_to_conf
    - write_mls_rules_to_conf
    - write_cond_nodes_to_conf
    - write_selinux_ibendport_rules_to_conf
    - strs_free_all
    - validatetrans_rules_to_strs
    - write_sid_decl_rules_to_conf
    - write_polcap_rules_to_conf
    - write_type_attributes_to_conf
    - write_xen_pirq_rules_to_conf
    - write_type_attribute_sets_to_conf
    - write_xen_devicetree_rules_to_conf
    - write_role_decl_rules_to_conf
    - write_selinux_isid_rules_to_conf
    - write_selinux_fsuse_rules_to_conf
    - write_role_attributes_to_conf
    - write_avtab_to_conf
    - write_xen_iomem_rules_to_conf
    - write_handle_unknown_to_conf
    - write_default_rules_to_conf
    - write_role_transition_rules_to_conf
    - write_xen_isid_rules_to_conf
    - constraint_rules_to_strs
    - write_selinux_ibpkey_rules_to_conf
    - strs_init
    - write_type_neveraudit_rules_to_conf
    - write_genfscon_rules_to_conf
    - write_role_allow_rules_to_conf
    - write_user_decl_rules_to_conf
    - write_filename_trans_rules_to_conf
    - sort_ocontexts
    - write_type_decl_rules_to_conf
    - write_range_trans_rules_to_conf
    - write_selinux_netif_rules_to_conf
    - write_selinux_node6_rules_to_conf
    - strs_write_each
    - write_type_bounds_rules_to_conf
    - check_for_supported_policy
    - write_boolean_decl_rules_to_conf
    - write_xen_ioport_rules_to_conf
    - write_selinux_port_rules_to_conf
    - strs_destroy
    - write_xen_pcidevice_rules_to_conf
    - write_type_permissive_rules_to_conf
    linkageType: ''
    returnType: int
    signature: int sepol_kernel_policydb_to_conf(FILE *out, struct policydb *pdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mix
      Src: /src/selinux/libsepol/src/avtab.c:78,1
    - Dst: mix
      Src: /src/selinux/libsepol/src/avtab.c:79,1
    - Dst: mix
      Src: /src/selinux/libsepol/src/avtab.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - keyp
    - mask
    argTypes:
    - struct avtab_key*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 91
    functionName: avtab_hash
    functionSourceFile: /src/selinux/libsepol/src/avtab.c
    functionUses: 0
    functionsReached:
    - mix
    linkageType: ''
    returnType: ignore_unsigned_overflow_
    signature: "ignore_unsigned_overflow_ avtab_hash(struct avtab_key *keyp,\n\t\t\t\t\t\t
      \      uint32_t mask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - input
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: mix
    functionSourceFile: /src/selinux/libsepol/src/avtab.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mix(input)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/avtab.c:99,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/avtab.c:102,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/avtab.c:106,1
    - Dst: free
      Src: /src/selinux/libsepol/src/avtab.c:108,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 5
    argNames:
    - h
    - hvalue
    - prev
    - key
    - datum
    argTypes:
    - avtab_t*
    - int
    - avtab_ptr_t
    - avtab_key_t*
    - avtab_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 134
    functionName: avtab_insert_node
    functionSourceFile: /src/selinux/libsepol/src/avtab.c
    functionUses: 0
    functionsReached:
    - free
    - calloc
    - malloc
    - memset
    linkageType: ''
    returnType: avtab_ptr_t
    signature: "avtab_ptr_t avtab_insert_node(avtab_t *h, int hvalue, avtab_ptr_t
      prev,\n\t\t\t\t     avtab_key_t *key, avtab_datum_t *datum)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: avtab_hash
      Src: /src/selinux/libsepol/src/avtab.c:146,1
    - Dst: avtab_insert_node
      Src: /src/selinux/libsepol/src/avtab.c:169,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 21
    argCount: 3
    argNames:
    - h
    - key
    - datum
    argTypes:
    - avtab_t*
    - avtab_key_t*
    - avtab_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 174
    functionName: avtab_insert
    functionSourceFile: /src/selinux/libsepol/src/avtab.c
    functionUses: 1
    functionsReached:
    - avtab_insert_node
    - avtab_hash
    linkageType: ''
    returnType: int
    signature: int avtab_insert(avtab_t *h, avtab_key_t *key, avtab_datum_t *datum)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: avtab_hash
      Src: /src/selinux/libsepol/src/avtab.c:190,1
    - Dst: avtab_insert_node
      Src: /src/selinux/libsepol/src/avtab.c:208,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 16
    argCount: 3
    argNames:
    - h
    - key
    - datum
    argTypes:
    - avtab_t*
    - avtab_key_t*
    - avtab_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 211
    functionName: avtab_insert_nonunique
    functionSourceFile: /src/selinux/libsepol/src/avtab.c
    functionUses: 1
    functionsReached:
    - avtab_insert_node
    - avtab_hash
    linkageType: ''
    returnType: avtab_ptr_t
    signature: "avtab_ptr_t avtab_insert_nonunique(avtab_t *h, avtab_key_t *key,\n\t\t\t\t
      \  avtab_datum_t *datum)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: avtab_hash
      Src: /src/selinux/libsepol/src/avtab.c:223,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 15
    argCount: 2
    argNames:
    - h
    - key
    argTypes:
    - avtab_t*
    - avtab_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 243
    functionName: avtab_search
    functionSourceFile: /src/selinux/libsepol/src/avtab.c
    functionUses: 5
    functionsReached:
    - avtab_hash
    linkageType: ''
    returnType: avtab_datum_t
    signature: avtab_datum_t *avtab_search(avtab_t *h, avtab_key_t *key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: avtab_hash
      Src: /src/selinux/libsepol/src/avtab.c:258,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 15
    argCount: 2
    argNames:
    - h
    - key
    argTypes:
    - avtab_t*
    - avtab_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 277
    functionName: avtab_search_node
    functionSourceFile: /src/selinux/libsepol/src/avtab.c
    functionUses: 12
    functionsReached:
    - avtab_hash
    linkageType: ''
    returnType: avtab_ptr_t
    signature: avtab_ptr_t avtab_search_node(avtab_t *h, avtab_key_t *key)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 15
    argCount: 2
    argNames:
    - node
    - specified
    argTypes:
    - avtab_ptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 305
    functionName: avtab_search_node_next
    functionSourceFile: /src/selinux/libsepol/src/avtab.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: avtab_ptr_t
    signature: avtab_ptr_t avtab_search_node_next(avtab_ptr_t node, int specified)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/avtab.c:319,1
    - Dst: free
      Src: /src/selinux/libsepol/src/avtab.c:323,1
    - Dst: free
      Src: /src/selinux/libsepol/src/avtab.c:327,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - h
    argTypes:
    - avtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 331
    functionName: avtab_destroy
    functionSourceFile: /src/selinux/libsepol/src/avtab.c
    functionUses: 5
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void avtab_destroy(avtab_t *h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apply
      Src: /src/selinux/libsepol/src/avtab.c:347,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - h
    - args
    argTypes:
    - avtab_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 354
    functionName: avtab_map
    functionSourceFile: /src/selinux/libsepol/src/avtab.c
    functionUses: 8
    functionsReached:
    - apply
    linkageType: ''
    returnType: int
    signature: "int avtab_map(const avtab_t *h,\n\t      int (*apply)(avtab_key_t
      *k, avtab_datum_t *d, void *args),\n\t      void *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - h
    argTypes:
    - avtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 361
    functionName: avtab_init
    functionSourceFile: /src/selinux/libsepol/src/avtab.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int avtab_init(avtab_t *h)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_C
      Src: /src/selinux/libsepol/src/avtab.c:379,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/avtab.c:384,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - h
    - nrules
    argTypes:
    - avtab_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 392
    functionName: avtab_alloc
    functionSourceFile: /src/selinux/libsepol/src/avtab.c
    functionUses: 2
    functionsReached:
    - calloc
    - UINT32_C
    linkageType: ''
    returnType: int
    signature: int avtab_alloc(avtab_t *h, uint32_t nrules)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/libsepol/src/avtab.c:416,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - h
    - tag
    argTypes:
    - avtab_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 418
    functionName: avtab_hash_eval
    functionSourceFile: /src/selinux/libsepol/src/avtab.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void avtab_hash_eval(avtab_t *h, char *tag)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/avtab.c:434,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/avtab.c:435,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/avtab.c:436,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/avtab.c:438,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/avtab.c:440,1
    - Dst: le16_to_cpu
      Src: /src/selinux/libsepol/src/avtab.c:444,1
    - Dst: le16_to_cpu
      Src: /src/selinux/libsepol/src/avtab.c:445,1
    - Dst: le16_to_cpu
      Src: /src/selinux/libsepol/src/avtab.c:446,1
    - Dst: le16_to_cpu
      Src: /src/selinux/libsepol/src/avtab.c:447,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/avtab.c:451,1
    - Dst: __builtin_popcount
      Src: /src/selinux/libsepol/src/avtab.c:455,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/avtab.c:456,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/avtab.c:462,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/avtab.c:468,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/avtab.c:470,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/avtab.c:474,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/avtab.c:476,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/avtab.c:480,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/avtab.c:482,1
    - Dst: ARRAY_SIZE
      Src: /src/selinux/libsepol/src/avtab.c:485,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/avtab.c:486,1
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/avtab.c:489,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/avtab.c:491,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/avtab.c:494,1
    - Dst: insertf
      Src: /src/selinux/libsepol/src/avtab.c:496,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 56
    argCount: 4
    argNames:
    - fp
    - vers
    - a
    - p
    argTypes:
    - struct policy_file*
    - uint32_t
    - avtab_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 497
    functionName: avtab_read_item
    functionSourceFile: /src/selinux/libsepol/src/avtab.c
    functionUses: 1
    functionsReached:
    - ERR
    - insertf
    - ARRAY_SIZE
    - le32_to_cpu
    - le16_to_cpu
    - __builtin_popcount
    - memset
    - next_entry
    linkageType: ''
    returnType: int
    signature: "int avtab_read_item(struct policy_file *fp, uint32_t vers, avtab_t
      *a,\n\t\t    int (*insertf)(avtab_t *a, avtab_key_t *k, avtab_datum_t *d,\n\t\t\t\t
      \  void *p),\n\t\t    void *p)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avtab_insert
      Src: /src/selinux/libsepol/src/avtab.c:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - a
    - k
    - d
    - p
    argTypes:
    - avtab_t*
    - avtab_key_t*
    - avtab_datum_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 499
    functionDepth: 2
    functionLinenumber: 499
    functionLinenumberEnd: 503
    functionName: avtab_insertf
    functionSourceFile: /src/selinux/libsepol/src/avtab.c
    functionUses: 0
    functionsReached:
    - avtab_insert
    linkageType: ''
    returnType: int
    signature: "int avtab_insertf(avtab_t *a, avtab_key_t *k, avtab_datum_t *d,\n\t\t\t
      void *p __attribute__((unused)))"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libsepol/src/avtab.c:512,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/avtab.c:514,1
    - Dst: le32_to_cpu
      Src: /src/selinux/libsepol/src/avtab.c:517,1
    - Dst: zero_or_saturated
      Src: /src/selinux/libsepol/src/avtab.c:518,1
    - Dst: exceeds_available_bytes
      Src: /src/selinux/libsepol/src/avtab.c:519,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/avtab.c:520,1
    - Dst: avtab_alloc
      Src: /src/selinux/libsepol/src/avtab.c:524,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/avtab.c:526,1
    - Dst: avtab_read_item
      Src: /src/selinux/libsepol/src/avtab.c:531,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/avtab.c:534,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/avtab.c:536,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/avtab.c:537,1
    - Dst: avtab_destroy
      Src: /src/selinux/libsepol/src/avtab.c:545,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - a
    - fp
    - vers
    argTypes:
    - avtab_t*
    - struct policy_file*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 547
    functionName: avtab_read
    functionSourceFile: /src/selinux/libsepol/src/avtab.c
    functionUses: 1
    functionsReached:
    - ERR
    - avtab_destroy
    - zero_or_saturated
    - avtab_read_item
    - le32_to_cpu
    - exceeds_available_bytes
    - next_entry
    - avtab_alloc
    linkageType: ''
    returnType: int
    signature: int avtab_read(avtab_t *a, struct policy_file *fp, uint32_t vers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/expand.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - state
    argTypes:
    - expand_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: expand_state_init
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void expand_state_init(expand_state_t *state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:63,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - src
    - dst
    - map
    argTypes:
    - ebitmap_t*
    - ebitmap_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 72
    functionName: map_ebitmap
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_set_bit
    linkageType: ''
    returnType: int
    signature: int map_ebitmap(ebitmap_t *src, ebitmap_t *dst, uint32_t *map)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:68,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 36
    functionsReached:
    - ebitmap_set_bit
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(src, tnode, i)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:81,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/expand.c:84,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:86,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:87,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/src/expand.c:91,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:92,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:97,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/src/expand.c:98,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:99,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:102,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - p
    - roles
    argTypes:
    - policydb_t*
    - ebitmap_t*
    assertStmts:
    - condition: (role)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/selinux/libsepol/src/expand.c
    constantsTouched: []
    func_position:
      end: 104
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 104
    functionName: ebitmap_expand_roles
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - assert
    - ebitmap_set_bit
    - ebitmap_union
    - ebitmap_cpy
    linkageType: ''
    returnType: int
    signature: int ebitmap_expand_roles(policydb_t *p, ebitmap_t *roles)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsepol/src/expand.c:84,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:86,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:87,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/src/expand.c:91,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (role)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/selinux/libsepol/src/expand.c
    constantsTouched: []
    func_position:
      end: 96
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 96
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 36
    functionsReached:
    - ebitmap_union
    - ebitmap_set_bit
    - ebitmap_destroy
    - assert
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(roles, node, bit)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: is_id_enabled
      Src: /src/selinux/libsepol/src/expand.c:123,1
    - Dst: INFO
      Src: /src/selinux/libsepol/src/expand.c:129,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/expand.c:131,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:133,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/expand.c:137,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:139,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:140,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/expand.c:143,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:149,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:150,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:151,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/expand.c:157,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:160,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:161,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:162,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:167,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:169,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:174,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:176,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 181
    functionName: type_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    - malloc
    - is_id_enabled
    - hashtab_insert
    - ebitmap_set_bit
    - free
    - memset
    - INFO
    - strdup
    linkageType: ''
    returnType: int
    signature: "int type_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \     void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_id_enabled
      Src: /src/selinux/libsepol/src/expand.c:198,1
    - Dst: INFO
      Src: /src/selinux/libsepol/src/expand.c:204,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/expand.c:206,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:208,1
    - Dst: map_ebitmap
      Src: /src/selinux/libsepol/src/expand.c:211,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:212,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/src/expand.c:217,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:218,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:221,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 224
    functionName: attr_convert_callback
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    - ebitmap_destroy
    - hashtab_search
    - is_id_enabled
    - INFO
    - map_ebitmap
    - ebitmap_union
    linkageType: ''
    returnType: int
    signature: "int attr_convert_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t\t
      void *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:234,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:238,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/expand.c:244,1
    - Dst: ebitmap_match_any
      Src: /src/selinux/libsepol/src/expand.c:246,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:248,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/expand.c:249,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:252,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:255,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:256,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/expand.c:259,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/src/expand.c:261,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:264,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:267,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/src/expand.c:268,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:269,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:274,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:277,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 2
    argNames:
    - handle
    - p
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 282
    functionName: expand_attributes_in_attributes
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ERR
    - ebitmap_destroy
    - ebitmap_for_each_positive_bit
    - ebitmap_set_bit
    - ebitmap_get_bit
    - ebitmap_match_any
    - ebitmap_union
    - ebitmap_cpy
    linkageType: ''
    returnType: int
    signature: "int expand_attributes_in_attributes(sepol_handle_t *handle,\n\t\t\t\t\t
      \  policydb_t *p)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/expand.c:296,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/expand.c:300,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/expand.c:302,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:304,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/expand.c:311,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:313,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:314,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 319
    functionName: perm_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - malloc
    - hashtab_insert
    - free
    - memset
    - strdup
    linkageType: ''
    returnType: int
    signature: "int perm_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \     void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/selinux/libsepol/src/expand.c:334,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/expand.c:336,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:338,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/expand.c:341,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/src/expand.c:342,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:343,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:344,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/expand.c:348,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:350,1
    - Dst: symtab_destroy
      Src: /src/selinux/libsepol/src/expand.c:352,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:353,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/expand.c:360,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:363,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:364,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:365,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:369,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:371,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 376
    functionName: common_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_map
    - symtab_init
    - malloc
    - hashtab_insert
    - free
    - symtab_destroy
    - memset
    - INFO
    - strdup
    linkageType: ''
    returnType: int
    signature: "int common_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t\tvoid
      *data)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/expand.c:387,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/expand.c:391,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/expand.c:394,1
    - Dst: constraint_expr_init
      Src: /src/selinux/libsepol/src/expand.c:397,1
    - Dst: map_ebitmap
      Src: /src/selinux/libsepol/src/expand.c:410,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:414,1
    - Dst: expand_convert_type_set
      Src: /src/selinux/libsepol/src/expand.c:419,1
    - Dst: map_ebitmap
      Src: /src/selinux/libsepol/src/expand.c:426,1
    - Dst: ebitmap_expand_roles
      Src: /src/selinux/libsepol/src/expand.c:431,1
    - Dst: map_ebitmap
      Src: /src/selinux/libsepol/src/expand.c:437,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/src/expand.c:444,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:469,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:471,1
    - Dst: constraint_expr_destroy
      Src: /src/selinux/libsepol/src/expand.c:472,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 80
    argCount: 3
    argNames:
    - dst
    - src
    - state
    argTypes:
    - constraint_node_t**
    - constraint_node_t*
    - expand_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 378
    functionDepth: 4
    functionLinenumber: 378
    functionLinenumberEnd: 474
    functionName: constraint_node_clone
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - constraint_expr_init
    - ERR
    - ebitmap_expand_roles
    - expand_convert_type_set
    - malloc
    - free
    - calloc
    - memset
    - map_ebitmap
    - ebitmap_cpy
    - constraint_expr_destroy
    linkageType: ''
    returnType: int
    signature: "int constraint_node_clone(constraint_node_t **dst,\n\t\t\t\t constraint_node_t
      *src, expand_state_t *state)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:483,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:492,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:501,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:510,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - state
    - olddatum
    - newdatum
    argTypes:
    - expand_state_t*
    - class_datum_t*
    - class_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 517
    functionName: class_copy_default_new_object
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 1
    functionsReached:
    - ERR
    linkageType: ''
    returnType: int
    signature: "int class_copy_default_new_object(expand_state_t *state,\n\t\t\t\t\t
      class_datum_t *olddatum,\n\t\t\t\t\t class_datum_t *newdatum)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: is_id_enabled
      Src: /src/selinux/libsepol/src/expand.c:531,1
    - Dst: INFO
      Src: /src/selinux/libsepol/src/expand.c:537,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/expand.c:539,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:541,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/expand.c:544,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/src/expand.c:545,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:546,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:547,1
    - Dst: class_copy_default_new_object
      Src: /src/selinux/libsepol/src/expand.c:554,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:556,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/expand.c:560,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:562,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:563,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/expand.c:567,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:570,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:571,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:572,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:576,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:578,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/expand.c:583,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:585,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/expand.c:589,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:592,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/expand.c:614,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:616,1
    - Dst: constraint_node_clone
      Src: /src/selinux/libsepol/src/expand.c:621,1
    - Dst: constraint_node_clone
      Src: /src/selinux/libsepol/src/expand.c:623,1
    - Dst: type_bounds_copy_callback
      Src: /src/selinux/libsepol/src/expand.c:634,1
    - Dst: is_id_enabled
      Src: /src/selinux/libsepol/src/expand.c:645,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:650,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/expand.c:654,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:656,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:660,1
    - Dst: is_id_enabled
      Src: /src/selinux/libsepol/src/expand.c:679,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 80
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 519
    functionDepth: 5
    functionLinenumber: 519
    functionLinenumberEnd: 686
    functionName: class_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    - type_bounds_copy_callback
    - hashtab_map
    - strdup
    - hashtab_search
    - symtab_init
    - malloc
    - is_id_enabled
    - hashtab_insert
    - constraint_node_clone
    - free
    - memset
    - INFO
    - class_copy_default_new_object
    linkageType: ''
    returnType: int
    signature: "int class_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \      void *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 587
    functionName: (!new_class->comkey)
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    linkageType: ''
    returnType: if
    signature: if (!new_class->comkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 595
    functionName: (!new_class->comdatum)
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    linkageType: ''
    returnType: if
    signature: if (!new_class->comdatum)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_id_enabled
      Src: /src/selinux/libsepol/src/expand.c:713,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:718,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/expand.c:722,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:724,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:728,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 702
    functionDepth: 1
    functionLinenumber: 702
    functionLinenumberEnd: 734
    functionName: user_bounds_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    - is_id_enabled
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: "int user_bounds_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t\t
      \    void *data)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: is_id_enabled
      Src: /src/selinux/libsepol/src/expand.c:767,1
    - Dst: INFO
      Src: /src/selinux/libsepol/src/expand.c:775,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/expand.c:777,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:779,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/expand.c:783,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:785,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:786,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/expand.c:789,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/expand.c:795,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:798,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:799,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:800,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/expand.c:806,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:810,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:811,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:812,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:819,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:821,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:826,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:828,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 794
        line_start: 794
        source_file: /src/selinux/libsepol/src/expand.c
    constantsTouched: []
    func_position:
      end: 833
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 833
    functionName: alias_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    - malloc
    - is_id_enabled
    - assert
    - hashtab_insert
    - ebitmap_set_bit
    - free
    - memset
    - INFO
    - strdup
    linkageType: ''
    returnType: int
    signature: "int alias_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \      void *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_id_enabled
      Src: /src/selinux/libsepol/src/expand.c:848,1
    - Dst: INFO
      Src: /src/selinux/libsepol/src/expand.c:854,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/expand.c:857,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:859,1
    - Dst: map_ebitmap
      Src: /src/selinux/libsepol/src/expand.c:863,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/src/expand.c:865,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:866,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:869,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 835
    functionDepth: 3
    functionLinenumber: 835
    functionLinenumberEnd: 872
    functionName: role_dominates_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    - ebitmap_destroy
    - hashtab_search
    - is_id_enabled
    - INFO
    - map_ebitmap
    - ebitmap_union
    linkageType: ''
    returnType: int
    signature: "int role_dominates_copy_callback(hashtab_key_t key\n\t\t\t\t\t__attribute__((unused)),\n\t\t\t\t\thashtab_datum_t
      datum, void *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_id_enabled
      Src: /src/selinux/libsepol/src/expand.c:886,1
    - Dst: INFO
      Src: /src/selinux/libsepol/src/expand.c:892,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/expand.c:895,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:897,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:902,1
    - Dst: expand_convert_type_set
      Src: /src/selinux/libsepol/src/expand.c:903,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:905,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:906,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/src/expand.c:909,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:910,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:911,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:914,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 874
    functionDepth: 3
    functionLinenumber: 874
    functionLinenumberEnd: 917
    functionName: role_types_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ERR
    - ebitmap_destroy
    - hashtab_search
    - expand_convert_type_set
    - is_id_enabled
    - INFO
    - ebitmap_union
    linkageType: ''
    returnType: int
    signature: "int role_types_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t\t
      \   void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_id_enabled
      Src: /src/selinux/libsepol/src/expand.c:935,1
    - Dst: INFO
      Src: /src/selinux/libsepol/src/expand.c:941,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/expand.c:944,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:946,1
    - Dst: map_ebitmap
      Src: /src/selinux/libsepol/src/expand.c:951,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/src/expand.c:953,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:954,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:955,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:958,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 919
    functionDepth: 3
    functionLinenumber: 919
    functionLinenumberEnd: 961
    functionName: role_roles_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    - ebitmap_destroy
    - hashtab_search
    - is_id_enabled
    - INFO
    - map_ebitmap
    - ebitmap_union
    linkageType: ''
    returnType: int
    signature: "int role_roles_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t\t
      \   void *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:970,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:974,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/expand.c:980,1
    - Dst: ebitmap_match_any
      Src: /src/selinux/libsepol/src/expand.c:982,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:984,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/expand.c:985,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:988,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:991,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:992,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/expand.c:995,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/src/expand.c:997,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:1000,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:1003,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/src/expand.c:1004,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:1005,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:1010,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1013,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 2
    argNames:
    - handle
    - p
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 962
    functionDepth: 3
    functionLinenumber: 962
    functionLinenumberEnd: 1018
    functionName: expand_role_attributes_in_attributes
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ERR
    - ebitmap_destroy
    - ebitmap_for_each_positive_bit
    - ebitmap_set_bit
    - ebitmap_get_bit
    - ebitmap_match_any
    - ebitmap_union
    - ebitmap_cpy
    linkageType: ''
    returnType: int
    signature: "int expand_role_attributes_in_attributes(sepol_handle_t *handle,\n\t\t\t\t\t\tpolicydb_t
      *p)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/selinux/libsepol/src/expand.c:1042,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/expand.c:1044,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/expand.c:1046,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/src/expand.c:1047,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1048,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts:
    - condition: (role != NULL && role->flavor == ROLE_ROLE)
      pos:
        line_end: 1045
        line_start: 1045
        source_file: /src/selinux/libsepol/src/expand.c
    constantsTouched: []
    func_position:
      end: 1054
      start: 1025
    functionDepth: 3
    functionLinenumber: 1025
    functionLinenumberEnd: 1054
    functionName: role_fix_callback
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    - ebitmap_for_each_positive_bit
    - assert
    - INFO
    - ebitmap_union
    linkageType: ''
    returnType: int
    signature: "int role_fix_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \    void *data)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/expand.c:1068,1
    - Dst: is_id_enabled
      Src: /src/selinux/libsepol/src/expand.c:1074,1
    - Dst: INFO
      Src: /src/selinux/libsepol/src/expand.c:1080,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/expand.c:1083,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/expand.c:1085,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1087,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/expand.c:1090,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/expand.c:1092,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1094,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:1095,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/expand.c:1103,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1108,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:1109,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:1110,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1116
    functionName: role_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_search
    - malloc
    - is_id_enabled
    - strcmp
    - hashtab_insert
    - free
    - memset
    - INFO
    - strdup
    linkageType: ''
    returnType: int
    signature: "int role_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \     void *data)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: mls_level_init
      Src: /src/selinux/libsepol/src/expand.c:1125,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/expand.c:1140,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1143,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1152,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1157,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1161,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1168,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/expand.c:1171,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1172,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:1179,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1180,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 4
    argNames:
    - sl
    - l
    - p
    - h
    argTypes:
    - mls_semantic_level_t*
    - mls_level_t*
    - policydb_t*
    - sepol_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1118
    functionDepth: 1
    functionLinenumber: 1118
    functionLinenumberEnd: 1187
    functionName: mls_semantic_level_expand
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 1
    functionsReached:
    - ERR
    - hashtab_search
    - ebitmap_set_bit
    - ebitmap_get_bit
    - mls_level_init
    linkageType: ''
    returnType: int
    signature: "int mls_semantic_level_expand(mls_semantic_level_t *sl, mls_level_t
      *l,\n\t\t\t      policydb_t *p, sepol_handle_t *h)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mls_semantic_level_expand
      Src: /src/selinux/libsepol/src/expand.c:1192,1
    - Dst: mls_semantic_level_expand
      Src: /src/selinux/libsepol/src/expand.c:1195,1
    - Dst: mls_level_destroy
      Src: /src/selinux/libsepol/src/expand.c:1196,1
    - Dst: mls_level_dom
      Src: /src/selinux/libsepol/src/expand.c:1200,1
    - Dst: mls_range_destroy
      Src: /src/selinux/libsepol/src/expand.c:1201,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - sr
    - r
    - p
    - h
    argTypes:
    - mls_semantic_range_t*
    - mls_range_t*
    - policydb_t*
    - sepol_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1189
    functionDepth: 2
    functionLinenumber: 1189
    functionLinenumberEnd: 1207
    functionName: mls_semantic_range_expand
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 1
    functionsReached:
    - ERR
    - mls_level_dom
    - mls_level_destroy
    - mls_range_destroy
    - mls_semantic_level_expand
    linkageType: ''
    returnType: int
    signature: "int mls_semantic_range_expand(mls_semantic_range_t *sr, mls_range_t
      *r,\n\t\t\t      policydb_t *p, sepol_handle_t *h)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: is_id_enabled
      Src: /src/selinux/libsepol/src/expand.c:1223,1
    - Dst: INFO
      Src: /src/selinux/libsepol/src/expand.c:1229,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/expand.c:1232,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/expand.c:1234,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1236,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/expand.c:1239,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/expand.c:1245,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1247,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:1248,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/expand.c:1251,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1255,1
    - Dst: user_datum_destroy
      Src: /src/selinux/libsepol/src/expand.c:1256,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:1257,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:1258,1
    - Dst: mls_semantic_range_expand
      Src: /src/selinux/libsepol/src/expand.c:1263,1
    - Dst: mls_semantic_level_expand
      Src: /src/selinux/libsepol/src/expand.c:1268,1
    - Dst: mls_level_between
      Src: /src/selinux/libsepol/src/expand.c:1273,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1276,1
    - Dst: mls_semantic_range_expand
      Src: /src/selinux/libsepol/src/expand.c:1285,1
    - Dst: mls_semantic_level_expand
      Src: /src/selinux/libsepol/src/expand.c:1289,1
    - Dst: mls_range_destroy
      Src: /src/selinux/libsepol/src/expand.c:1291,1
    - Dst: mls_range_eq
      Src: /src/selinux/libsepol/src/expand.c:1294,1
    - Dst: mls_level_eq
      Src: /src/selinux/libsepol/src/expand.c:1295,1
    - Dst: mls_range_destroy
      Src: /src/selinux/libsepol/src/expand.c:1296,1
    - Dst: mls_level_destroy
      Src: /src/selinux/libsepol/src/expand.c:1297,1
    - Dst: mls_range_destroy
      Src: /src/selinux/libsepol/src/expand.c:1300,1
    - Dst: mls_level_destroy
      Src: /src/selinux/libsepol/src/expand.c:1301,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:1304,1
    - Dst: role_set_expand
      Src: /src/selinux/libsepol/src/expand.c:1307,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1309,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:1310,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/src/expand.c:1314,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1315,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:1316,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:1319,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 73
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1209
    functionDepth: 3
    functionLinenumber: 1209
    functionLinenumberEnd: 1322
    functionName: user_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ebitmap_destroy
    - user_datum_destroy
    - mls_semantic_range_expand
    - role_set_expand
    - mls_semantic_level_expand
    - mls_level_eq
    - malloc
    - is_id_enabled
    - free
    - INFO
    - ERR
    - ebitmap_init
    - hashtab_search
    - mls_level_destroy
    - hashtab_insert
    - mls_range_eq
    - memset
    - strdup
    - mls_range_destroy
    - mls_level_between
    - ebitmap_union
    linkageType: ''
    returnType: int
    signature: "int user_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \     void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_id_enabled
      Src: /src/selinux/libsepol/src/expand.c:1336,1
    - Dst: INFO
      Src: /src/selinux/libsepol/src/expand.c:1347,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/expand.c:1349,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1351,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/expand.c:1355,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1357,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:1358,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/expand.c:1365,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1368,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:1369,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:1370,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1324
    functionDepth: 1
    functionLinenumber: 1324
    functionLinenumberEnd: 1380
    functionName: bool_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    - malloc
    - is_id_enabled
    - hashtab_insert
    - free
    - INFO
    - strdup
    linkageType: ''
    returnType: int
    signature: "int bool_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \     void *data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: is_id_enabled
      Src: /src/selinux/libsepol/src/expand.c:1389,1
    - Dst: INFO
      Src: /src/selinux/libsepol/src/expand.c:1395,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/expand.c:1397,1
    - Dst: level_datum_init
      Src: /src/selinux/libsepol/src/expand.c:1400,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/expand.c:1401,1
    - Dst: mls_level_init
      Src: /src/selinux/libsepol/src/expand.c:1404,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/expand.c:1405,1
    - Dst: mls_level_cpy
      Src: /src/selinux/libsepol/src/expand.c:1409,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/expand.c:1415,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1422,1
    - Dst: mls_level_destroy
      Src: /src/selinux/libsepol/src/expand.c:1424,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:1425,1
    - Dst: level_datum_destroy
      Src: /src/selinux/libsepol/src/expand.c:1427,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:1428,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:1429,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1431
      start: 1382
    functionDepth: 1
    functionLinenumber: 1382
    functionLinenumberEnd: 1431
    functionName: sens_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    - level_datum_destroy
    - level_datum_init
    - mls_level_destroy
    - malloc
    - is_id_enabled
    - hashtab_insert
    - mls_level_cpy
    - free
    - INFO
    - mls_level_init
    - strdup
    linkageType: ''
    returnType: int
    signature: "int sens_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \     void *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_id_enabled
      Src: /src/selinux/libsepol/src/expand.c:1440,1
    - Dst: INFO
      Src: /src/selinux/libsepol/src/expand.c:1446,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/expand.c:1448,1
    - Dst: cat_datum_init
      Src: /src/selinux/libsepol/src/expand.c:1451,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/expand.c:1452,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/expand.c:1459,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1467,1
    - Dst: cat_datum_destroy
      Src: /src/selinux/libsepol/src/expand.c:1468,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:1469,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:1470,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1472
      start: 1433
    functionDepth: 1
    functionLinenumber: 1433
    functionLinenumberEnd: 1472
    functionName: cats_copy_callback
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    - cat_datum_destroy
    - cat_datum_init
    - malloc
    - is_id_enabled
    - hashtab_insert
    - free
    - INFO
    - strdup
    linkageType: ''
    returnType: int
    signature: "int cats_copy_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \     void *data)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:1488,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:1489,1
    - Dst: role_set_expand
      Src: /src/selinux/libsepol/src/expand.c:1491,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1493,1
    - Dst: role_set_expand
      Src: /src/selinux/libsepol/src/expand.c:1497,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1499,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/expand.c:1503,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/expand.c:1504,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/expand.c:1515,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1518,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/expand.c:1521,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:1533,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:1534,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - state
    - rules
    argTypes:
    - expand_state_t*
    - role_allow_rule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1474
    functionDepth: 1
    functionLinenumber: 1474
    functionLinenumberEnd: 1540
    functionName: copy_role_allows
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ERR
    - ebitmap_destroy
    - ebitmap_for_each_positive_bit
    - malloc
    - memset
    - role_set_expand
    linkageType: ''
    returnType: int
    signature: int copy_role_allows(expand_state_t *state, role_allow_rule_t *rules)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:1556,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:1557,1
    - Dst: role_set_expand
      Src: /src/selinux/libsepol/src/expand.c:1559,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1561,1
    - Dst: expand_convert_type_set
      Src: /src/selinux/libsepol/src/expand.c:1564,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1566,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/expand.c:1569,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/expand.c:1570,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/expand.c:1571,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1582,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1597,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/expand.c:1620,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1623,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/expand.c:1627,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1635,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:1649,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:1650,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 63
    argCount: 2
    argNames:
    - state
    - rules
    argTypes:
    - expand_state_t*
    - role_trans_rule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1542
    functionDepth: 1
    functionLinenumber: 1542
    functionLinenumberEnd: 1655
    functionName: copy_role_trans
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ERR
    - ebitmap_destroy
    - ebitmap_for_each_positive_bit
    - expand_convert_type_set
    - malloc
    - memset
    - role_set_expand
    linkageType: ''
    returnType: int
    signature: int copy_role_trans(expand_state_t *state, role_trans_rule_t *rules)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1666,1
    - Dst: policydb_filetrans_insert
      Src: /src/selinux/libsepol/src/expand.c:1670,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1678,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1688,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - state
    - rule
    - s
    - t
    argTypes:
    - expand_state_t*
    - filename_trans_rule_t*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1692
      start: 1657
    functionDepth: 2
    functionLinenumber: 1657
    functionLinenumberEnd: 1692
    functionName: expand_filename_trans_helper
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    - policydb_filetrans_insert
    linkageType: ''
    returnType: int
    signature: "int expand_filename_trans_helper(expand_state_t *state,\n\t\t\t\t\tfilename_trans_rule_t
      *rule,\n\t\t\t\t\tunsigned int s, unsigned int t)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:1705,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:1706,1
    - Dst: expand_convert_type_set
      Src: /src/selinux/libsepol/src/expand.c:1708,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1710,1
    - Dst: expand_convert_type_set
      Src: /src/selinux/libsepol/src/expand.c:1714,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1716,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/expand.c:1720,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/expand.c:1721,1
    - Dst: expand_filename_trans_helper
      Src: /src/selinux/libsepol/src/expand.c:1722,1
    - Dst: expand_filename_trans_helper
      Src: /src/selinux/libsepol/src/expand.c:1728,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:1735,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:1736,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - state
    - rules
    argTypes:
    - expand_state_t*
    - filename_trans_rule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1741
      start: 1694
    functionDepth: 3
    functionLinenumber: 1694
    functionLinenumberEnd: 1741
    functionName: expand_filename_trans
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ERR
    - ebitmap_destroy
    - ebitmap_for_each_positive_bit
    - expand_convert_type_set
    - expand_filename_trans_helper
    linkageType: ''
    returnType: int
    signature: "int expand_filename_trans(expand_state_t *state,\n\t\t\t\t filename_trans_rule_t
      *rules)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/expand.c:1751,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1753,1
    - Dst: mls_semantic_range_expand
      Src: /src/selinux/libsepol/src/expand.c:1757,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/expand.c:1765,1
    - Dst: mls_range_eq
      Src: /src/selinux/libsepol/src/expand.c:1767,1
    - Dst: mls_range_destroy
      Src: /src/selinux/libsepol/src/expand.c:1769,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:1770,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1775,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/expand.c:1782,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1784,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/src/expand.c:1791,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1793,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:1799,1
    - Dst: mls_range_destroy
      Src: /src/selinux/libsepol/src/expand.c:1801,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:1802,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 5
    argNames:
    - stype
    - ttype
    - tclass
    - trange
    - state
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - mls_semantic_range_t*
    - expand_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1743
    functionDepth: 3
    functionLinenumber: 1743
    functionLinenumberEnd: 1805
    functionName: exp_rangetr_helper
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    - hashtab_search
    - mls_range_destroy
    - hashtab_insert
    - mls_range_eq
    - free
    - calloc
    - mls_semantic_range_expand
    linkageType: ''
    returnType: int
    signature: "int exp_rangetr_helper(uint32_t stype, uint32_t ttype, uint32_t tclass,\n\t\t\t
      \     mls_semantic_range_t *trange,\n\t\t\t      expand_state_t *state)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/selinux/libsepol/src/expand.c:1816,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:1819,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:1820,1
    - Dst: expand_convert_type_set
      Src: /src/selinux/libsepol/src/expand.c:1823,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1825,1
    - Dst: expand_convert_type_set
      Src: /src/selinux/libsepol/src/expand.c:1828,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:1830,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1831,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/expand.c:1836,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/expand.c:1838,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/expand.c:1840,1
    - Dst: exp_rangetr_helper
      Src: /src/selinux/libsepol/src/expand.c:1842,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:1845,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:1846,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:1853,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:1854,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - state
    - rules
    argTypes:
    - expand_state_t*
    - range_trans_rule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1807
    functionDepth: 4
    functionLinenumber: 1807
    functionLinenumberEnd: 1858
    functionName: expand_range_trans
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ERR
    - ebitmap_destroy
    - ebitmap_for_each_positive_bit
    - expand_convert_type_set
    - exp_rangetr_helper
    - INFO
    linkageType: ''
    returnType: int
    signature: int expand_range_trans(expand_state_t *state, range_trans_rule_t *rules)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1876,1
    - Dst: avtab_search_node
      Src: /src/selinux/libsepol/src/expand.c:1879,1
    - Dst: avtab_search_node_next
      Src: /src/selinux/libsepol/src/expand.c:1888,1
    - Dst: avtab_search_node
      Src: /src/selinux/libsepol/src/expand.c:1895,1
    - Dst: avtab_search_node_next
      Src: /src/selinux/libsepol/src/expand.c:1904,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/expand.c:1909,1
    - Dst: UINT32_C
      Src: /src/selinux/libsepol/src/expand.c:1915,1
    - Dst: UINT32_C
      Src: /src/selinux/libsepol/src/expand.c:1916,1
    - Dst: avtab_insert_nonunique
      Src: /src/selinux/libsepol/src/expand.c:1918,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1920,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/expand.c:1925,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1927,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/expand.c:1930,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 5
    argNames:
    - handle
    - avtab
    - key
    - cond
    - xperms
    argTypes:
    - sepol_handle_t*
    - avtab_t*
    - avtab_key_t*
    - cond_av_list_t**
    - av_extended_perms_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1938
      start: 1864
    functionDepth: 2
    functionLinenumber: 1864
    functionLinenumberEnd: 1938
    functionName: find_avtab_node
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    - avtab_search_node
    - malloc
    - UINT32_C
    - avtab_search_node_next
    - memset
    - avtab_insert_nonunique
    linkageType: ''
    returnType: avtab_ptr_t
    signature: "avtab_ptr_t find_avtab_node(sepol_handle_t *handle, avtab_t *avtab,\n\t\t\t\t
      \  avtab_key_t *key, cond_av_list_t **cond,\n\t\t\t\t   av_extended_perms_t
      *xperms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - specification
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1944
      start: 1940
    functionDepth: 0
    functionLinenumber: 1940
    functionLinenumberEnd: 1944
    functionName: avrule_to_avtab_spec
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t avrule_to_avtab_spec(uint32_t specification)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1966,1
    - Dst: avrule_to_avtab_spec
      Src: /src/selinux/libsepol/src/expand.c:1970,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:1981,1
    - Dst: avtab_search_node
      Src: /src/selinux/libsepol/src/expand.c:1994,1
    - Dst: avtab_search_node
      Src: /src/selinux/libsepol/src/expand.c:1998,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2020,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2028,1
    - Dst: find_avtab_node
      Src: /src/selinux/libsepol/src/expand.c:2038,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 63
    argCount: 11
    argNames:
    - handle
    - p
    - typemap
    - specified
    - cond
    - other
    - stype
    - ttype
    - perms
    - avtab
    - enabled
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - uint32_t*
    - uint32_t
    - cond_av_list_t**
    - cond_av_list_t**
    - uint32_t
    - uint32_t
    - class_perm_node_t*
    - avtab_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2054
      start: 1950
    functionDepth: 3
    functionLinenumber: 1950
    functionLinenumberEnd: 2054
    functionName: expand_terule_helper
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - avrule_to_avtab_spec
    - ERR
    - find_avtab_node
    - avtab_search_node
    linkageType: ''
    returnType: int
    signature: "int expand_terule_helper(sepol_handle_t *handle, policydb_t *p,\n\t\t\t\tuint32_t
      *typemap, uint32_t specified,\n\t\t\t\tcond_av_list_t **cond, cond_av_list_t
      **other,\n\t\t\t\tuint32_t stype, uint32_t ttype,\n\t\t\t\tclass_perm_node_t
      *perms, avtab_t *avtab,\n\t\t\t\tint enabled)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/expand.c:2064,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2067,1
    - Dst: ARRAY_SIZE
      Src: /src/selinux/libsepol/src/expand.c:2088,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - handle
    - avdatump
    - extended_perms
    argTypes:
    - sepol_handle_t*
    - avtab_datum_t*
    - av_extended_perms_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2057
    functionDepth: 0
    functionLinenumber: 2057
    functionLinenumberEnd: 2092
    functionName: allocate_xperms
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    - ARRAY_SIZE
    - calloc
    linkageType: ''
    returnType: int
    signature: "int allocate_xperms(sepol_handle_t *handle, avtab_datum_t *avdatump,\n\t\t\t
      \  av_extended_perms_t *extended_perms)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: avrule_to_avtab_spec
      Src: /src/selinux/libsepol/src/expand.c:2112,1
    - Dst: find_avtab_node
      Src: /src/selinux/libsepol/src/expand.c:2118,1
    - Dst: allocate_xperms
      Src: /src/selinux/libsepol/src/expand.c:2152,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2156,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 9
    argNames:
    - handle
    - specified
    - cond
    - stype
    - ttype
    - perms
    - avtab
    - enabled
    - extended_perms
    argTypes:
    - sepol_handle_t*
    - uint32_t
    - cond_av_list_t**
    - uint32_t
    - uint32_t
    - class_perm_node_t*
    - avtab_t*
    - int
    - av_extended_perms_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2164
      start: 2094
    functionDepth: 3
    functionLinenumber: 2094
    functionLinenumberEnd: 2164
    functionName: expand_avrule_helper
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - avrule_to_avtab_spec
    - allocate_xperms
    - ERR
    - find_avtab_node
    linkageType: ''
    returnType: int
    signature: "int expand_avrule_helper(sepol_handle_t *handle, uint32_t specified,\n\t\t\t\tcond_av_list_t
      **cond, uint32_t stype,\n\t\t\t\tuint32_t ttype, class_perm_node_t *perms,\n\t\t\t\tavtab_t
      *avtab, int enabled,\n\t\t\t\tav_extended_perms_t *extended_perms)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: expand_avrule_helper
      Src: /src/selinux/libsepol/src/expand.c:2180,1
    - Dst: expand_terule_helper
      Src: /src/selinux/libsepol/src/expand.c:2187,1
    - Dst: expand_avrule_helper
      Src: /src/selinux/libsepol/src/expand.c:2199,1
    - Dst: expand_terule_helper
      Src: /src/selinux/libsepol/src/expand.c:2206,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 10
    argNames:
    - handle
    - p
    - typemap
    - source_rule
    - dest_avtab
    - cond
    - other
    - enabled
    - stypes
    - ttypes
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - uint32_t*
    - avrule_t*
    - avtab_t*
    - cond_av_list_t**
    - cond_av_list_t**
    - int
    - ebitmap_t*
    - ebitmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2218
      start: 2166
    functionDepth: 4
    functionLinenumber: 2166
    functionLinenumberEnd: 2218
    functionName: expand_rule_helper
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - expand_avrule_helper
    - expand_terule_helper
    linkageType: ''
    returnType: int
    signature: "int expand_rule_helper(sepol_handle_t *handle, policydb_t *p,\n\t\t\t
      \     uint32_t *typemap, avrule_t *source_rule,\n\t\t\t      avtab_t *dest_avtab,
      cond_av_list_t **cond,\n\t\t\t      cond_av_list_t **other, int enabled,\n\t\t\t
      \     ebitmap_t *stypes, ebitmap_t *ttypes)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: expand_avrule_helper
      Src: /src/selinux/libsepol/src/expand.c:2180,1
    - Dst: expand_terule_helper
      Src: /src/selinux/libsepol/src/expand.c:2187,1
    - Dst: expand_avrule_helper
      Src: /src/selinux/libsepol/src/expand.c:2199,1
    - Dst: expand_terule_helper
      Src: /src/selinux/libsepol/src/expand.c:2206,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2215
      start: 2176
    functionDepth: 4
    functionLinenumber: 2176
    functionLinenumberEnd: 2215
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 43
    functionsReached:
    - expand_avrule_helper
    - expand_terule_helper
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(stypes, snode, i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: expand_avrule_helper
      Src: /src/selinux/libsepol/src/expand.c:2199,1
    - Dst: expand_terule_helper
      Src: /src/selinux/libsepol/src/expand.c:2206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2214
      start: 2196
    functionDepth: 4
    functionLinenumber: 2196
    functionLinenumberEnd: 2214
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 43
    functionsReached:
    - expand_avrule_helper
    - expand_terule_helper
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(ttypes, tnode, j)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:2241,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:2242,1
    - Dst: expand_convert_type_set
      Src: /src/selinux/libsepol/src/expand.c:2248,1
    - Dst: expand_convert_type_set
      Src: /src/selinux/libsepol/src/expand.c:2251,1
    - Dst: expand_rule_helper
      Src: /src/selinux/libsepol/src/expand.c:2255,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:2258,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:2259,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 9
    argNames:
    - handle
    - dest_pol
    - typemap
    - source_rule
    - dest_avtab
    - cond
    - other
    - enabled
    - do_neverallow
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - uint32_t*
    - avrule_t*
    - avtab_t*
    - cond_av_list_t**
    - cond_av_list_t**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2226
    functionDepth: 5
    functionLinenumber: 2226
    functionLinenumberEnd: 2261
    functionName: convert_and_expand_rule
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - expand_convert_type_set
    - expand_rule_helper
    linkageType: ''
    returnType: int
    signature: "int convert_and_expand_rule(sepol_handle_t *handle, policydb_t *dest_pol,\n\t\t\t\t
      \  uint32_t *typemap, avrule_t *source_rule,\n\t\t\t\t   avtab_t *dest_avtab,
      cond_av_list_t **cond,\n\t\t\t\t   cond_av_list_t **other, int enabled,\n\t\t\t\t
      \  int do_neverallow)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: convert_and_expand_rule
      Src: /src/selinux/libsepol/src/expand.c:2272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 8
    argNames:
    - dest_pol
    - source_rules
    - dest_avtab
    - list
    - other
    - typemap
    - enabled
    - state
    argTypes:
    - policydb_t*
    - avrule_t*
    - avtab_t*
    - cond_av_list_t**
    - cond_av_list_t**
    - uint32_t*
    - int
    - expand_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2282
      start: 2263
    functionDepth: 6
    functionLinenumber: 2263
    functionLinenumberEnd: 2282
    functionName: cond_avrule_list_copy
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - convert_and_expand_rule
    linkageType: ''
    returnType: int
    signature: "int cond_avrule_list_copy(policydb_t *dest_pol, avrule_t *source_rules,\n\t\t\t\t
      avtab_t *dest_avtab, cond_av_list_t **list,\n\t\t\t\t cond_av_list_t **other,
      uint32_t *typemap,\n\t\t\t\t int enabled, expand_state_t *state)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2294,1
    - Dst: min
      Src: /src/selinux/libsepol/src/expand.c:2301,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2304,1
    - Dst: cond_normalize_expr
      Src: /src/selinux/libsepol/src/expand.c:2309,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2310,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - state
    - cn
    argTypes:
    - expand_state_t*
    - cond_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2315
      start: 2284
    functionDepth: 2
    functionLinenumber: 2284
    functionLinenumberEnd: 2315
    functionName: cond_node_map_bools
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    - cond_normalize_expr
    - min
    linkageType: ''
    returnType: int
    signature: int cond_node_map_bools(expand_state_t *state, cond_node_t *cn)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cond_node_copy
      Src: /src/selinux/libsepol/src/expand.c:2327,1
    - Dst: cond_normalize_expr
      Src: /src/selinux/libsepol/src/expand.c:2337,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2338,1
    - Dst: cond_node_create
      Src: /src/selinux/libsepol/src/expand.c:2344,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2346,1
    - Dst: cond_node_map_bools
      Src: /src/selinux/libsepol/src/expand.c:2350,1
    - Dst: cond_node_destroy
      Src: /src/selinux/libsepol/src/expand.c:2351,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:2352,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2353,1
    - Dst: cond_node_search
      Src: /src/selinux/libsepol/src/expand.c:2357,1
    - Dst: cond_node_destroy
      Src: /src/selinux/libsepol/src/expand.c:2359,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:2360,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2361,1
    - Dst: cond_node_destroy
      Src: /src/selinux/libsepol/src/expand.c:2364,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:2365,1
    - Dst: cond_avrule_list_copy
      Src: /src/selinux/libsepol/src/expand.c:2367,1
    - Dst: cond_avrule_list_copy
      Src: /src/selinux/libsepol/src/expand.c:2372,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 2
    argNames:
    - state
    - cn
    argTypes:
    - expand_state_t*
    - cond_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2379
      start: 2320
    functionDepth: 7
    functionLinenumber: 2320
    functionLinenumberEnd: 2379
    functionName: cond_node_copy
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 1
    functionsReached:
    - ERR
    - cond_node_search
    - cond_node_create
    - cond_node_destroy
    - cond_normalize_expr
    - cond_node_map_bools
    - cond_node_copy
    - cond_avrule_list_copy
    - free
    linkageType: ''
    returnType: int
    signature: int cond_node_copy(expand_state_t *state, cond_node_t *cn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2386,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2392,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2398,1
    - Dst: mls_context_cpy
      Src: /src/selinux/libsepol/src/expand.c:2402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - dst
    - src
    - state
    argTypes:
    - context_struct_t*
    - context_struct_t*
    - expand_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2403
      start: 2381
    functionDepth: 1
    functionLinenumber: 2381
    functionLinenumberEnd: 2403
    functionName: context_copy
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    - mls_context_cpy
    linkageType: ''
    returnType: int
    signature: "int context_copy(context_struct_t *dst, context_struct_t *src,\n\t\t\texpand_state_t
      *state)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/selinux/libsepol/src/expand.c:2414,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/expand.c:2419,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2421,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/expand.c:2424,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/expand.c:2450,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2452,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2458,1
    - Dst: context_copy
      Src: /src/selinux/libsepol/src/expand.c:2461,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2463,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 1
    argNames:
    - state
    argTypes:
    - expand_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2469
      start: 2405
    functionDepth: 2
    functionLinenumber: 2405
    functionLinenumberEnd: 2469
    functionName: ocontext_copy_xen
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    - malloc
    - context_copy
    - memset
    - INFO
    - strdup
    linkageType: ''
    returnType: int
    signature: int ocontext_copy_xen(expand_state_t *state)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/selinux/libsepol/src/expand.c:2480,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/expand.c:2485,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2487,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/expand.c:2490,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/expand.c:2502,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2504,1
    - Dst: context_copy
      Src: /src/selinux/libsepol/src/expand.c:2507,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2509,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/expand.c:2522,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2524,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/expand.c:2540,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2542,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2554,1
    - Dst: context_copy
      Src: /src/selinux/libsepol/src/expand.c:2557,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2559,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 81
    argCount: 1
    argNames:
    - state
    argTypes:
    - expand_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2565
      start: 2471
    functionDepth: 2
    functionLinenumber: 2471
    functionLinenumberEnd: 2565
    functionName: ocontext_copy_selinux
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    - malloc
    - context_copy
    - memset
    - INFO
    - strdup
    linkageType: ''
    returnType: int
    signature: int ocontext_copy_selinux(expand_state_t *state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ocontext_copy_selinux
      Src: /src/selinux/libsepol/src/expand.c:2572,1
    - Dst: ocontext_copy_xen
      Src: /src/selinux/libsepol/src/expand.c:2575,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2578,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - state
    - target
    argTypes:
    - expand_state_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2582
      start: 2567
    functionDepth: 3
    functionLinenumber: 2567
    functionLinenumberEnd: 2582
    functionName: ocontext_copy
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ocontext_copy_xen
    - ERR
    - ocontext_copy_selinux
    linkageType: ''
    returnType: int
    signature: int ocontext_copy(expand_state_t *state, uint32_t target)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/expand.c:2591,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2593,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/expand.c:2596,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/expand.c:2597,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:2599,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2600,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/expand.c:2611,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2613,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/expand.c:2616,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/expand.c:2617,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2619,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:2620,1
    - Dst: context_copy
      Src: /src/selinux/libsepol/src/expand.c:2624,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 1
    argNames:
    - state
    argTypes:
    - expand_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2633
      start: 2584
    functionDepth: 2
    functionLinenumber: 2584
    functionLinenumberEnd: 2633
    functionName: genfs_copy
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    - malloc
    - context_copy
    - free
    - memset
    - strdup
    linkageType: ''
    returnType: int
    signature: int genfs_copy(expand_state_t *state)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/src/expand.c:2650,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/expand.c:2654,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:2655,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:2662,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:2668,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:2677,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - key
    - datum
    - ptr
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2679
      start: 2635
    functionDepth: 2
    functionLinenumber: 2635
    functionLinenumberEnd: 2679
    functionName: type_attr_map
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ebitmap_for_each_positive_bit
    - ERR
    - ebitmap_set_bit
    - ebitmap_cpy
    linkageType: ''
    returnType: int
    signature: "int type_attr_map(hashtab_key_t key __attribute__((unused)),\n\t\t\t
      hashtab_datum_t datum, void *ptr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: type_set_init
      Src: /src/selinux/libsepol/src/expand.c:2689,1
    - Dst: map_ebitmap
      Src: /src/selinux/libsepol/src/expand.c:2691,1
    - Dst: map_ebitmap
      Src: /src/selinux/libsepol/src/expand.c:2694,1
    - Dst: type_set_expand
      Src: /src/selinux/libsepol/src/expand.c:2699,1
    - Dst: type_set_destroy
      Src: /src/selinux/libsepol/src/expand.c:2702,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - p
    - typemap
    - set
    - types
    - alwaysexpand
    argTypes:
    - policydb_t*
    - uint32_t*
    - type_set_t*
    - ebitmap_t*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2705
      start: 2684
    functionDepth: 2
    functionLinenumber: 2684
    functionLinenumberEnd: 2705
    functionName: expand_convert_type_set
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 6
    functionsReached:
    - type_set_expand
    - map_ebitmap
    - type_set_destroy
    - type_set_init
    linkageType: ''
    returnType: int
    signature: "int expand_convert_type_set(policydb_t *p, uint32_t *typemap, type_set_t
      *set,\n\t\t\t    ebitmap_t *types, unsigned char alwaysexpand)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:2721,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:2722,1
    - Dst: type_set_expand
      Src: /src/selinux/libsepol/src/expand.c:2724,1
    - Dst: type_set_expand
      Src: /src/selinux/libsepol/src/expand.c:2726,1
    - Dst: expand_rule_helper
      Src: /src/selinux/libsepol/src/expand.c:2728,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:2731,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:2732,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 7
    argNames:
    - handle
    - source_pol
    - source_rule
    - dest_avtab
    - cond
    - other
    - enabled
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - avrule_t*
    - avtab_t*
    - cond_av_list_t**
    - cond_av_list_t**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2734
      start: 2710
    functionDepth: 5
    functionLinenumber: 2710
    functionLinenumberEnd: 2734
    functionName: expand_rule
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 3
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - expand_rule_helper
    - type_set_expand
    linkageType: ''
    returnType: int
    signature: "int expand_rule(sepol_handle_t *handle, policydb_t *source_pol,\n\t\tavrule_t
      *source_rule, avtab_t *dest_avtab,\n\t\tcond_av_list_t **cond, cond_av_list_t
      **other, int enabled)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:2753,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:2757,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:2762,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:2763,1
    - Dst: map_ebitmap
      Src: /src/selinux/libsepol/src/expand.c:2766,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/expand.c:2768,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/expand.c:2770,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/src/expand.c:2772,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:2775,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/src/expand.c:2780,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/expand.c:2784,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:2785,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:2789,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:2790,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/expand.c:2795,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:2796,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:2799,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:2807,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:2808,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    argCount: 5
    argNames:
    - x
    - r
    - out
    - base
    - rolemap
    argTypes:
    - role_set_t*
    - ebitmap_t*
    - policydb_t*
    - policydb_t*
    - uint32_t*
    assertStmts:
    - condition: (role != NULL)
      pos:
        line_end: 2769
        line_start: 2769
        source_file: /src/selinux/libsepol/src/expand.c
    constantsTouched: []
    func_position:
      end: 2810
      start: 2744
    functionDepth: 3
    functionLinenumber: 2744
    functionLinenumberEnd: 2810
    functionName: role_set_expand
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 5
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - ebitmap_for_each_positive_bit
    - assert
    - ebitmap_set_bit
    - ebitmap_get_bit
    - map_ebitmap
    - ebitmap_union
    - ebitmap_cpy
    linkageType: ''
    returnType: int
    signature: "int role_set_expand(role_set_t *x, ebitmap_t *r, policydb_t *out,\n\t\t
      \   __attribute__((unused)) policydb_t *base, uint32_t *rolemap)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/expand.c:2826,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:2830,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:2831,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/expand.c:2834,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/src/expand.c:2850,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:2854,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:2861,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/expand.c:2862,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/src/expand.c:2872,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:2877,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/expand.c:2886,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:2891,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/expand.c:2897,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/expand.c:2898,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:2899,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/expand.c:2907,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/expand.c:2911,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:2912,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:2915,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:2925,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:2927,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 89
    argCount: 4
    argNames:
    - set
    - t
    - p
    - alwaysexpand
    argTypes:
    - type_set_t*
    - ebitmap_t*
    - policydb_t*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2930
      start: 2819
    functionDepth: 3
    functionLinenumber: 2819
    functionLinenumberEnd: 2930
    functionName: type_set_expand
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 4
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - ebitmap_for_each_positive_bit
    - ebitmap_is_empty
    - ebitmap_set_bit
    - ebitmap_get_bit
    - ebitmap_union
    linkageType: ''
    returnType: int
    signature: "int type_set_expand(type_set_t *set, ebitmap_t *t, policydb_t *p,\n\t\t
      \   unsigned char alwaysexpand)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:2940,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/src/expand.c:2941,1
    - Dst: expand_convert_type_set
      Src: /src/selinux/libsepol/src/expand.c:2943,1
    - Dst: expand_convert_type_set
      Src: /src/selinux/libsepol/src/expand.c:2946,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/expand.c:2950,1
    - Dst: avrule_init
      Src: /src/selinux/libsepol/src/expand.c:2954,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/expand.c:2960,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/src/expand.c:2965,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/src/expand.c:2968,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/expand.c:2975,1
    - Dst: class_perm_node_init
      Src: /src/selinux/libsepol/src/expand.c:2978,1
    - Dst: assert
      Src: /src/selinux/libsepol/src/expand.c:2980,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/expand.c:2996,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/expand.c:2999,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:3013,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:3014,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:3019,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:3020,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:3021,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/src/expand.c:3022,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:3026,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:3029,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:3030,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 76
    argCount: 3
    argNames:
    - dest_pol
    - typemap
    - source_rule
    argTypes:
    - policydb_t*
    - uint32_t*
    - avrule_t*
    assertStmts:
    - condition: (new_perm->tclass)
      pos:
        line_end: 2979
        line_start: 2979
        source_file: /src/selinux/libsepol/src/expand.c
    constantsTouched: []
    func_position:
      end: 3032
      start: 2932
    functionDepth: 3
    functionLinenumber: 2932
    functionLinenumberEnd: 3032
    functionName: copy_neverallow
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - expand_convert_type_set
    - malloc
    - assert
    - avrule_init
    - calloc
    - memcpy
    - free
    - class_perm_node_init
    - ebitmap_cpy
    - strdup
    linkageType: ''
    returnType: int
    signature: "int copy_neverallow(policydb_t *dest_pol, uint32_t *typemap,\n\t\t\t
      \  avrule_t *source_rule)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: avtab_alloc
      Src: /src/selinux/libsepol/src/expand.c:3046,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3047,1
    - Dst: avtab_alloc
      Src: /src/selinux/libsepol/src/expand.c:3051,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3052,1
    - Dst: copy_role_allows
      Src: /src/selinux/libsepol/src/expand.c:3066,1
    - Dst: copy_role_trans
      Src: /src/selinux/libsepol/src/expand.c:3067,1
    - Dst: expand_filename_trans
      Src: /src/selinux/libsepol/src/expand.c:3071,1
    - Dst: expand_range_trans
      Src: /src/selinux/libsepol/src/expand.c:3075,1
    - Dst: copy_neverallow
      Src: /src/selinux/libsepol/src/expand.c:3086,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3088,1
    - Dst: convert_and_expand_rule
      Src: /src/selinux/libsepol/src/expand.c:3095,1
    - Dst: cond_node_copy
      Src: /src/selinux/libsepol/src/expand.c:3108,1
    - Dst: avrule_block_destroy
      Src: /src/selinux/libsepol/src/expand.c:3120,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 55
    argCount: 1
    argNames:
    - state
    argTypes:
    - expand_state_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3128
      start: 3040
    functionDepth: 8
    functionLinenumber: 3040
    functionLinenumberEnd: 3128
    functionName: copy_and_expand_avrule_block
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - ERR
    - avrule_block_destroy
    - convert_and_expand_rule
    - expand_range_trans
    - cond_node_copy
    - copy_role_trans
    - expand_filename_trans
    - avtab_alloc
    - copy_role_allows
    - copy_neverallow
    linkageType: ''
    returnType: int
    signature: int copy_and_expand_avrule_block(expand_state_t *state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expand_state_init
      Src: /src/selinux/libsepol/src/expand.c:3142,1
    - Dst: copy_and_expand_avrule_block
      Src: /src/selinux/libsepol/src/expand.c:3154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 9
    argNames:
    - handle
    - base
    - out
    - typemap
    - boolmap
    - rolemap
    - usermap
    - verbose
    - expand_neverallow
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - policydb_t*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - uint32_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3155
      start: 3135
    functionDepth: 9
    functionLinenumber: 3135
    functionLinenumberEnd: 3155
    functionName: expand_module_avrules
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - expand_state_init
    - copy_and_expand_avrule_block
    linkageType: ''
    returnType: int
    signature: "int expand_module_avrules(sepol_handle_t *handle, policydb_t *base,\n\t\t\t
      \ policydb_t *out, uint32_t *typemap, uint32_t *boolmap,\n\t\t\t  uint32_t *rolemap,
      uint32_t *usermap, int verbose,\n\t\t\t  int expand_neverallow)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsepol/src/expand.c:3217,1
    - Dst: cond_evaluate_expr
      Src: /src/selinux/libsepol/src/expand.c:3224,1
    - Dst: printf
      Src: /src/selinux/libsepol/src/expand.c:3226,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 46
    argCount: 2
    argNames:
    - sh
    - pol
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    assertStmts:
    - condition: (!(booleans && tunables))
      pos:
        line_end: 3216
        line_start: 3216
        source_file: /src/selinux/libsepol/src/expand.c
    constantsTouched: []
    func_position:
      end: 3255
      start: 3157
    functionDepth: 1
    functionLinenumber: 3157
    functionLinenumberEnd: 3255
    functionName: discard_tunables
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - cond_evaluate_expr
    - printf
    - assert
    linkageType: ''
    returnType: void
    signature: void discard_tunables(sepol_handle_t *sh, policydb_t *pol)
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: discard_tunables
      Src: /src/selinux/libsepol/src/expand.c:3278,1
    - Dst: expand_state_init
      Src: /src/selinux/libsepol/src/expand.c:3280,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3289,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/expand.c:3296,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3298,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/src/expand.c:3311,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3312,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/expand.c:3316,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3318,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/expand.c:3323,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3325,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/expand.c:3330,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3332,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/expand.c:3337,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3339,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3346,1
    - Dst: policydb_index_others
      Src: /src/selinux/libsepol/src/expand.c:3349,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3351,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3353,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3356,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3364,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3367,1
    - Dst: expand_attributes_in_attributes
      Src: /src/selinux/libsepol/src/expand.c:3372,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3377,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3384,1
    - Dst: policydb_index_others
      Src: /src/selinux/libsepol/src/expand.c:3390,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3391,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3396,1
    - Dst: policydb_index_others
      Src: /src/selinux/libsepol/src/expand.c:3399,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3401,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3404,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3407,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3410,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3418,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3421,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3424,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3427,1
    - Dst: expand_role_attributes_in_attributes
      Src: /src/selinux/libsepol/src/expand.c:3432,1
    - Dst: expand_role_attributes_in_attributes
      Src: /src/selinux/libsepol/src/expand.c:3441,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3446,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3451,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3453,1
    - Dst: policydb_index_others
      Src: /src/selinux/libsepol/src/expand.c:3455,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3456,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3461,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3463,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3471,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3474,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3480,1
    - Dst: policydb_index_classes
      Src: /src/selinux/libsepol/src/expand.c:3483,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3484,1
    - Dst: policydb_index_others
      Src: /src/selinux/libsepol/src/expand.c:3487,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3488,1
    - Dst: copy_and_expand_avrule_block
      Src: /src/selinux/libsepol/src/expand.c:3492,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3493,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3498,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3503,1
    - Dst: cond_optimize_lists
      Src: /src/selinux/libsepol/src/expand.c:3508,1
    - Dst: evaluate_conds
      Src: /src/selinux/libsepol/src/expand.c:3509,1
    - Dst: ocontext_copy
      Src: /src/selinux/libsepol/src/expand.c:3513,1
    - Dst: genfs_copy
      Src: /src/selinux/libsepol/src/expand.c:3517,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/expand.c:3522,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/expand.c:3524,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3526,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/src/expand.c:3531,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3532,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/expand.c:3536,1
    - Dst: hierarchy_check_constraints
      Src: /src/selinux/libsepol/src/expand.c:3539,1
    - Dst: check_assertions
      Src: /src/selinux/libsepol/src/expand.c:3542,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:3550,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:3551,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:3552,1
    - Dst: free
      Src: /src/selinux/libsepol/src/expand.c:3553,1
    CyclomaticComplexity: 116
    EdgeCount: 116
    ICount: 237
    argCount: 5
    argNames:
    - handle
    - base
    - out
    - verbose
    - check
    argTypes:
    - sepol_handle_t*
    - policydb_t*
    - policydb_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3555
      start: 3262
    functionDepth: 9
    functionLinenumber: 3262
    functionLinenumberEnd: 3555
    functionName: expand_module
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 7
    functionsReached:
    - hashtab_map
    - copy_and_expand_avrule_block
    - genfs_copy
    - ebitmap_cpy
    - evaluate_conds
    - discard_tunables
    - expand_state_init
    - expand_role_attributes_in_attributes
    - policydb_index_others
    - ocontext_copy
    - free
    - check_assertions
    - ERR
    - policydb_index_classes
    - calloc
    - cond_optimize_lists
    - strdup
    - expand_attributes_in_attributes
    - hierarchy_check_constraints
    - ebitmap_set_bit
    linkageType: ''
    returnType: int
    signature: "int expand_module(sepol_handle_t *handle, policydb_t *base, policydb_t
      *out,\n\t\t  int verbose, int check)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: avtab_search_node
      Src: /src/selinux/libsepol/src/expand.c:3570,1
    - Dst: avtab_search_node_next
      Src: /src/selinux/libsepol/src/expand.c:3578,1
    - Dst: avtab_search_node
      Src: /src/selinux/libsepol/src/expand.c:3583,1
    - Dst: avtab_insert_nonunique
      Src: /src/selinux/libsepol/src/expand.c:3588,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3590,1
    - Dst: ARRAY_SIZE
      Src: /src/selinux/libsepol/src/expand.c:3609,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3613,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 3
    argNames:
    - a
    - k
    - d
    argTypes:
    - avtab_t*
    - avtab_key_t*
    - avtab_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3618
      start: 3557
    functionDepth: 2
    functionLinenumber: 3557
    functionLinenumberEnd: 3618
    functionName: expand_avtab_insert
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - avtab_search_node
    - ERR
    - ARRAY_SIZE
    - avtab_search_node_next
    - avtab_insert_nonunique
    linkageType: ''
    returnType: int
    signature: int expand_avtab_insert(avtab_t *a, avtab_key_t *k, avtab_datum_t *d)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: expand_avtab_insert
      Src: /src/selinux/libsepol/src/expand.c:3645,1
    - Dst: expand_avtab_insert
      Src: /src/selinux/libsepol/src/expand.c:3653,1
    - Dst: expand_avtab_insert
      Src: /src/selinux/libsepol/src/expand.c:3665,1
    - Dst: expand_avtab_insert
      Src: /src/selinux/libsepol/src/expand.c:3677,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - avtab_key_t*
    - avtab_datum_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3684
      start: 3625
    functionDepth: 3
    functionLinenumber: 3625
    functionLinenumberEnd: 3684
    functionName: expand_avtab_node
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - expand_avtab_insert
    linkageType: ''
    returnType: int
    signature: int expand_avtab_node(avtab_key_t *k, avtab_datum_t *d, void *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expand_avtab_insert
      Src: /src/selinux/libsepol/src/expand.c:3653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3656
      start: 3651
    functionDepth: 3
    functionLinenumber: 3651
    functionLinenumberEnd: 3656
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 46
    functionsReached:
    - expand_avtab_insert
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(tattr, tnode, j)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expand_avtab_insert
      Src: /src/selinux/libsepol/src/expand.c:3665,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3668
      start: 3663
    functionDepth: 3
    functionLinenumber: 3663
    functionLinenumberEnd: 3668
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 46
    functionsReached:
    - expand_avtab_insert
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(sattr, snode, i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expand_avtab_insert
      Src: /src/selinux/libsepol/src/expand.c:3677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3681
      start: 3673
    functionDepth: 3
    functionLinenumber: 3673
    functionLinenumberEnd: 3681
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 46
    functionsReached:
    - expand_avtab_insert
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(sattr, snode, i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expand_avtab_insert
      Src: /src/selinux/libsepol/src/expand.c:3677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3680
      start: 3674
    functionDepth: 3
    functionLinenumber: 3674
    functionLinenumberEnd: 3680
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 46
    functionsReached:
    - expand_avtab_insert
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(tattr, tnode, j)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avtab_alloc
      Src: /src/selinux/libsepol/src/expand.c:3690,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3691,1
    - Dst: avtab_map
      Src: /src/selinux/libsepol/src/expand.c:3697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - p
    - a
    - expa
    argTypes:
    - policydb_t*
    - avtab_t*
    - avtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3698
      start: 3686
    functionDepth: 1
    functionLinenumber: 3686
    functionLinenumberEnd: 3698
    functionName: expand_avtab
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - avtab_alloc
    - ERR
    - avtab_map
    linkageType: ''
    returnType: int
    signature: int expand_avtab(policydb_t *p, avtab_t *a, avtab_t *expa)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: avtab_search_node
      Src: /src/selinux/libsepol/src/expand.c:3707,1
    - Dst: avtab_insert_nonunique
      Src: /src/selinux/libsepol/src/expand.c:3710,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3712,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/expand.c:3716,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3718,1
    - Dst: memset
      Src: /src/selinux/libsepol/src/expand.c:3721,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3738,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 4
    argNames:
    - l
    - expa
    - k
    - d
    argTypes:
    - cond_av_list_t**
    - avtab_t*
    - avtab_key_t*
    - avtab_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3743
      start: 3700
    functionDepth: 2
    functionLinenumber: 3700
    functionLinenumberEnd: 3743
    functionName: expand_cond_insert
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - avtab_search_node
    - ERR
    - malloc
    - memset
    - avtab_insert_nonunique
    linkageType: ''
    returnType: int
    signature: "int expand_cond_insert(cond_av_list_t **l, avtab_t *expa, avtab_key_t
      *k,\n\t\t\t      avtab_datum_t *d)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: expand_cond_insert
      Src: /src/selinux/libsepol/src/expand.c:3765,1
    - Dst: expand_cond_insert
      Src: /src/selinux/libsepol/src/expand.c:3773,1
    - Dst: expand_cond_insert
      Src: /src/selinux/libsepol/src/expand.c:3785,1
    - Dst: expand_cond_insert
      Src: /src/selinux/libsepol/src/expand.c:3797,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 4
    argNames:
    - p
    - node
    - newl
    - expa
    argTypes:
    - policydb_t*
    - avtab_ptr_t
    - cond_av_list_t**
    - avtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3804
      start: 3745
    functionDepth: 3
    functionLinenumber: 3745
    functionLinenumberEnd: 3804
    functionName: expand_cond_av_node
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - expand_cond_insert
    linkageType: ''
    returnType: int
    signature: "int expand_cond_av_node(policydb_t *p, avtab_ptr_t node,\n\t\t\t       cond_av_list_t
      **newl, avtab_t *expa)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expand_cond_insert
      Src: /src/selinux/libsepol/src/expand.c:3773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3776
      start: 3771
    functionDepth: 3
    functionLinenumber: 3771
    functionLinenumberEnd: 3776
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 46
    functionsReached:
    - expand_cond_insert
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(tattr, tnode, j)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expand_cond_insert
      Src: /src/selinux/libsepol/src/expand.c:3785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3788
      start: 3783
    functionDepth: 3
    functionLinenumber: 3783
    functionLinenumberEnd: 3788
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 46
    functionsReached:
    - expand_cond_insert
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(sattr, snode, i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expand_cond_insert
      Src: /src/selinux/libsepol/src/expand.c:3797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3801
      start: 3793
    functionDepth: 3
    functionLinenumber: 3793
    functionLinenumberEnd: 3801
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 46
    functionsReached:
    - expand_cond_insert
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(sattr, snode, i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expand_cond_insert
      Src: /src/selinux/libsepol/src/expand.c:3797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3800
      start: 3794
    functionDepth: 3
    functionLinenumber: 3794
    functionLinenumberEnd: 3800
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 46
    functionsReached:
    - expand_cond_insert
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(tattr, tnode, j)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: avtab_alloc
      Src: /src/selinux/libsepol/src/expand.c:3813,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/expand.c:3814,1
    - Dst: expand_cond_av_node
      Src: /src/selinux/libsepol/src/expand.c:3821,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - p
    - l
    - newl
    - expa
    argTypes:
    - policydb_t*
    - cond_av_list_t*
    - cond_av_list_t**
    - avtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3827
      start: 3806
    functionDepth: 4
    functionLinenumber: 3806
    functionLinenumberEnd: 3827
    functionName: expand_cond_av_list
    functionSourceFile: /src/selinux/libsepol/src/expand.c
    functionUses: 0
    functionsReached:
    - avtab_alloc
    - ERR
    - expand_cond_av_node
    linkageType: ''
    returnType: int
    signature: "int expand_cond_av_list(policydb_t *p, cond_av_list_t *l, cond_av_list_t
      **newl,\n\t\t\tavtab_t *expa)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strs_stack_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:39,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:47,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:80,1
    - Dst: strs_stack_pop
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:86,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:88,1
    - Dst: strs_stack_pop
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:93,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:95,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:96,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:100,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:102,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:104,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:106,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:109,1
    - Dst: strs_stack_push
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:112,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:114,1
    - Dst: strs_stack_pop
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:119,1
    - Dst: strs_stack_empty
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:120,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:121,1
    - Dst: strs_stack_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:127,1
    - Dst: strs_stack_pop
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:132,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:133,1
    - Dst: strs_stack_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:135,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 93
    argCount: 2
    argNames:
    - pdb
    - expr
    argTypes:
    - struct policydb*
    - struct cond_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 139
    functionName: cond_expr_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 2
    functionsReached:
    - ERR
    - create_str
    - strs_stack_push
    - strs_stack_destroy
    - strs_stack_pop
    - free
    - strs_stack_empty
    - strs_stack_init
    linkageType: ''
    returnType: char
    signature: char *cond_expr_to_str(struct policydb *pdb, struct cond_expr *expr)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: strs_stack_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:153,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:181,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:248,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:258,1
    - Dst: ebitmap_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:264,1
    - Dst: ebitmap_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:268,1
    - Dst: ebitmap_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:272,1
    - Dst: strdup
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:277,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:279,1
    - Dst: strchr
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:283,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:284,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:287,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:290,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:311,1
    - Dst: strs_stack_pop
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:318,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:320,1
    - Dst: strs_stack_pop
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:325,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:327,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:332,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:334,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:336,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:338,1
    - Dst: strs_stack_push
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:343,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:345,1
    - Dst: strs_stack_pop
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:350,1
    - Dst: strs_stack_empty
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:351,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:352,1
    - Dst: strs_stack_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:358,1
    - Dst: strs_stack_pop
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:364,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:365,1
    - Dst: strs_stack_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:367,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 196
    argCount: 3
    argNames:
    - pdb
    - expr
    - use_mls
    argTypes:
    - struct policydb*
    - struct constraint_expr*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 371
    functionName: constraint_expr_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 2
    functionsReached:
    - ERR
    - create_str
    - strchr
    - strs_stack_push
    - strs_stack_destroy
    - strs_stack_pop
    - free
    - strs_stack_empty
    - ebitmap_to_str
    - strs_stack_init
    - strdup
    linkageType: ''
    returnType: char
    signature: "char *constraint_expr_to_str(struct policydb *pdb,\n\t\t\t\t    struct
      constraint_expr *expr, int *use_mls)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: constraint_expr_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:391,1
    - Dst: sepol_av_to_string
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:397,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:400,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:405,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:406,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:419,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:421,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:422,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:430,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 6
    argNames:
    - pdb
    - classkey
    - class
    - constraint_rules
    - mls_list
    - non_mls_list
    argTypes:
    - struct policydb*
    - char*
    - class_datum_t*
    - struct constraint_node*
    - struct strs*
    - struct strs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 432
    functionName: class_constraint_rules_to_strs
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 1
    functionsReached:
    - ERR
    - sepol_av_to_string
    - constraint_expr_to_str
    - strs_create_and_add
    - free
    linkageType: ''
    returnType: int
    signature: "int class_constraint_rules_to_strs(struct policydb *pdb, char *classkey,\n\t\t\t
      \      class_datum_t *class,\n\t\t\t       struct constraint_node *constraint_rules,\n\t\t\t
      \      struct strs *mls_list, struct strs *non_mls_list)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: constraint_expr_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:448,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:462,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:464,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - pdb
    - classkey
    - validatetrans_rules
    - mls_list
    - non_mls_list
    argTypes:
    - struct policydb*
    - char*
    - struct constraint_node*
    - struct strs*
    - struct strs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 434
    functionDepth: 2
    functionLinenumber: 434
    functionLinenumberEnd: 472
    functionName: class_validatetrans_rules_to_strs
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 1
    functionsReached:
    - free
    - constraint_expr_to_str
    - strs_create_and_add
    linkageType: ''
    returnType: int
    signature: "int class_validatetrans_rules_to_strs(struct policydb *pdb, char *classkey,\n\t\t\t\t
      \ struct constraint_node *validatetrans_rules,\n\t\t\t\t  struct strs *mls_list,\n\t\t\t\t
      \ struct strs *non_mls_list)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 494
    functionName: (rc != 0)
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: if
    signature: if (rc != 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 525
    functionName: (rc != 0)
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: if
    signature: if (rc != 0)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:551,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:556,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 559
    functionName: write_handle_unknown_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_printf
    linkageType: ''
    returnType: int
    signature: int write_handle_unknown_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:567,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:572,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:577,1
    - Dst: strs_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:578,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:582,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - permtab
    argTypes:
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 585
    functionName: class_or_common_perms_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 1
    functionsReached:
    - strs_to_str
    - hashtab_map
    - strs_num_items
    - strs_init
    - strs_destroy
    linkageType: ''
    returnType: char
    signature: char *class_or_common_perms_to_str(symtab_t *permtab)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: class_or_common_perms_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:602,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:604,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:605,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:607,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:612,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:616,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:621,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:623,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:632,1
    - Dst: calloc
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:638,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:640,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:650,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:653,1
    - Dst: class_or_common_perms_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:658,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:662,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:663,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:667,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:669,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:674,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:678,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 682
    functionName: write_class_decl_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_printf
    - hashtab_search
    - class_or_common_perms_to_str
    - free
    - calloc
    linkageType: ''
    returnType: int
    signature: int write_class_decl_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isids_to_strs
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:692,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:694,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:698,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:699,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:703,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:704,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:705,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:708,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:710,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:711,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:713,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:718,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:720,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:722,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:723,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - out
    - sid_to_str
    - num_sids
    - isids
    argTypes:
    - FILE*
    - char**
    - unsigned
    - struct ocontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 684
    functionDepth: 2
    functionLinenumber: 684
    functionLinenumberEnd: 726
    functionName: write_sids_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - isids_to_strs
    - ERR
    - sepol_printf
    - strs_num_items
    - strs_read_at_index
    - strs_destroy
    - strs_free_all
    linkageType: ''
    returnType: int
    signature: "int write_sids_to_cil(FILE *out, const char *const *sid_to_str,\n\t\t\t
      \    unsigned num_sids, struct ocontext *isids)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write_sids_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:733,1
    - Dst: write_sids_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:736,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:739,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 728
    functionDepth: 3
    functionLinenumber: 728
    functionLinenumberEnd: 744
    functionName: write_sid_decl_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - write_sids_to_cil
    linkageType: ''
    returnType: int
    signature: int write_sid_decl_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 911
    functionName: (rc != 0)
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: if
    signature: if (rc != 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:925,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:926,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 928
    functionName: write_default_mls_level
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - sepol_printf
    linkageType: ''
    returnType: void
    signature: void write_default_mls_level(FILE *out)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - key
    - data
    - args
    argTypes:
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 940
    functionName: map_count_sensitivity_aliases
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int map_count_sensitivity_aliases(__attribute__((unused)) char *key,\n\t\t\t\t\t
      void *data, void *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - key
    - data
    - args
    argTypes:
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 953
    functionName: map_sensitivity_aliases_to_strs
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - strs_add
    linkageType: ''
    returnType: int
    signature: int map_sensitivity_aliases_to_strs(char *key, void *data, void *args)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:966,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:970,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:975,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:980,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:982,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:984,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:996,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1001,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1007,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1011,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1012,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1017,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1018,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1024,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1029,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1032,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 1036
    functionName: write_sensitivity_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_printf
    - hashtab_map
    - strs_sort
    - strs_init
    - strs_read_at_index
    - hashtab_search
    - strs_destroy
    linkageType: ''
    returnType: int
    signature: int write_sensitivity_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - key
    - data
    - args
    argTypes:
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1038
    functionDepth: 0
    functionLinenumber: 1038
    functionLinenumberEnd: 1048
    functionName: map_count_category_aliases
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int map_count_category_aliases(__attribute__((unused)) char *key,\n\t\t\t\t
      \     void *data, void *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1057,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - key
    - data
    - args
    argTypes:
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1050
    functionDepth: 1
    functionLinenumber: 1050
    functionLinenumberEnd: 1061
    functionName: map_category_aliases_to_strs
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - strs_add
    linkageType: ''
    returnType: int
    signature: int map_category_aliases_to_strs(char *key, void *data, void *args)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1074,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1078,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1083,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1088,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1090,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1092,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1103,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1108,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1113,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1117,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1118,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1123,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1124,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1130,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1135,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1138,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1142
      start: 1063
    functionDepth: 1
    functionLinenumber: 1063
    functionLinenumberEnd: 1142
    functionName: write_category_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_printf
    - hashtab_map
    - strs_sort
    - strs_init
    - strs_read_at_index
    - hashtab_search
    - strs_destroy
    linkageType: ''
    returnType: int
    signature: int write_category_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1157,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1160,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1162,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1162,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1164,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - cats
    - val_to_name
    argTypes:
    - struct ebitmap*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1144
    functionDepth: 1
    functionLinenumber: 1144
    functionLinenumberEnd: 1177
    functionName: cats_ebitmap_len
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 2
    functionsReached:
    - ebitmap_get_bit
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t cats_ebitmap_len(struct ebitmap *cats, char **val_to_name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1157,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1160,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1162,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1162,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1164,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1151
    functionDepth: 1
    functionLinenumber: 1151
    functionLinenumberEnd: 1170
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 46
    functionsReached:
    - ebitmap_get_bit
    - strlen
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(cats, node, i)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cats_ebitmap_len
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1186,1
    - Dst: malloc
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1190,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1207,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1212,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1216,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1221,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1238,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 2
    argNames:
    - cats
    - val_to_name
    argTypes:
    - struct ebitmap*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1179
    functionDepth: 1
    functionLinenumber: 1179
    functionLinenumberEnd: 1240
    functionName: cats_ebitmap_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 3
    functionsReached:
    - snprintf
    - malloc
    - free
    - ebitmap_get_bit
    - cats_ebitmap_len
    linkageType: ''
    returnType: char
    signature: char *cats_ebitmap_to_str(struct ebitmap *cats, char **val_to_name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1207,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1212,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1216,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1221,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1201
    functionDepth: 1
    functionLinenumber: 1201
    functionLinenumberEnd: 1230
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 46
    functionsReached:
    - ebitmap_get_bit
    - snprintf
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(cats, node, i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1255,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1263,1
    - Dst: cats_ebitmap_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1264,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1266,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1268,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1274,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1242
    functionDepth: 1
    functionLinenumber: 1242
    functionLinenumberEnd: 1278
    functionName: write_sensitivitycategory_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - cats_ebitmap_to_str
    - sepol_printf
    - hashtab_search
    - ebitmap_is_empty
    - free
    linkageType: ''
    returnType: int
    signature: "int write_sensitivitycategory_rules_to_cil(FILE *out,\n\t\t\t\t\t\t
      \ struct policydb *pdb)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1285,1
    - Dst: write_default_mls_level
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1287,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1291,1
    - Dst: write_sensitivity_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1293,1
    - Dst: write_category_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1298,1
    - Dst: write_sensitivitycategory_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1303,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1310,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1280
    functionDepth: 2
    functionLinenumber: 1280
    functionLinenumberEnd: 1314
    functionName: write_mls_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - write_sensitivitycategory_rules_to_cil
    - ERR
    - sepol_printf
    - write_default_mls_level
    - write_sensitivity_rules_to_cil
    - write_category_rules_to_cil
    linkageType: ''
    returnType: int
    signature: int write_mls_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1324,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1329,1
    - Dst: sepol_polcap_getname
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1330,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1332,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1337,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1343,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1344,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1347,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1348,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1351,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1316
    functionDepth: 2
    functionLinenumber: 1316
    functionLinenumberEnd: 1355
    functionName: write_polcap_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - strs_write_each
    - strs_sort
    - strs_init
    - ebitmap_for_each_positive_bit
    - strs_create_and_add
    - sepol_polcap_getname
    - strs_destroy
    - strs_free_all
    linkageType: ''
    returnType: int
    signature: int write_polcap_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1365,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1373,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1380,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1382,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1384,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1389,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1393,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1396,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1357
    functionDepth: 1
    functionLinenumber: 1357
    functionLinenumberEnd: 1400
    functionName: write_type_attributes_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_printf
    - strs_num_items
    - strs_sort
    - strs_read_at_index
    - strs_init
    - strs_add
    - strs_destroy
    linkageType: ''
    returnType: int
    signature: int write_type_attributes_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1410,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1418,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1425,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1427,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1429,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1434,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1438,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1441,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1402
    functionDepth: 1
    functionLinenumber: 1402
    functionLinenumberEnd: 1445
    functionName: write_role_attributes_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_printf
    - strs_num_items
    - strs_sort
    - strs_read_at_index
    - strs_init
    - strs_add
    - strs_destroy
    linkageType: ''
    returnType: int
    signature: int write_role_attributes_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - data
    - args
    argTypes:
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1447
    functionDepth: 2
    functionLinenumber: 1447
    functionLinenumberEnd: 1456
    functionName: map_boolean_to_strs
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - strs_create_and_add
    linkageType: ''
    returnType: int
    signature: int map_boolean_to_strs(char *key, void *data, void *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1463,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1468,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1473,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1474,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1477,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1478,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1481,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1458
    functionDepth: 2
    functionLinenumber: 1458
    functionLinenumberEnd: 1485
    functionName: write_boolean_decl_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - strs_write_each
    - hashtab_map
    - strs_sort
    - strs_init
    - strs_destroy
    - strs_free_all
    linkageType: ''
    returnType: int
    signature: int write_boolean_decl_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1495,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1503,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1510,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1512,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1514,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1519,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1523,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1526,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1487
    functionDepth: 1
    functionLinenumber: 1487
    functionLinenumberEnd: 1530
    functionName: write_type_decl_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_printf
    - strs_num_items
    - strs_sort
    - strs_read_at_index
    - strs_init
    - strs_add
    - strs_destroy
    linkageType: ''
    returnType: int
    signature: int write_type_decl_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - key
    - data
    - args
    argTypes:
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1532
    functionDepth: 0
    functionLinenumber: 1532
    functionLinenumberEnd: 1542
    functionName: map_count_type_aliases
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int map_count_type_aliases(__attribute__((unused)) char *key, void
      *data,\n\t\t\t\t  void *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - key
    - data
    - args
    argTypes:
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1544
    functionDepth: 1
    functionLinenumber: 1544
    functionLinenumberEnd: 1554
    functionName: map_type_aliases_to_strs
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - strs_add
    linkageType: ''
    returnType: int
    signature: int map_type_aliases_to_strs(char *key, void *data, void *args)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1565,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1570,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1575,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1580,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1583,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1588,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1592,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1597,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1603,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1607,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1610,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1556
    functionDepth: 1
    functionLinenumber: 1556
    functionLinenumberEnd: 1614
    functionName: write_type_alias_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_printf
    - hashtab_map
    - strs_sort
    - strs_init
    - strs_read_at_index
    - hashtab_search
    - strs_destroy
    linkageType: ''
    returnType: int
    signature: int write_type_alias_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1625,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1634,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1642,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1644,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1646,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1651,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1657,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1661,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1664,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1616
    functionDepth: 1
    functionLinenumber: 1616
    functionLinenumberEnd: 1668
    functionName: write_type_bounds_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_printf
    - strs_num_items
    - strs_sort
    - strs_read_at_index
    - strs_init
    - hashtab_search
    - strs_add
    - strs_destroy
    linkageType: ''
    returnType: int
    signature: int write_type_bounds_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1679,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1690,1
    - Dst: ebitmap_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1692,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1698,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1700,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1706,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1707,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1710,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1711,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1714,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1670
    functionDepth: 3
    functionLinenumber: 1670
    functionLinenumberEnd: 1718
    functionName: write_type_attribute_sets_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - strs_write_each
    - strs_sort
    - strs_init
    - strs_create_and_add
    - ebitmap_is_empty
    - free
    - ebitmap_to_str
    - strs_destroy
    - strs_free_all
    linkageType: ''
    returnType: int
    signature: int write_type_attribute_sets_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1728,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1733,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1734,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1740,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1742,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1744,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1749,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1753,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1756,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1720
    functionDepth: 1
    functionLinenumber: 1720
    functionLinenumberEnd: 1760
    functionName: write_type_permissive_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_printf
    - strs_num_items
    - strs_sort
    - ebitmap_for_each_positive_bit
    - strs_init
    - strs_read_at_index
    - strs_add
    - strs_destroy
    linkageType: ''
    returnType: int
    signature: int write_type_permissive_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1770,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1775,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1776,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1782,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1784,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1786,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1791,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1795,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1798,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1762
    functionDepth: 1
    functionLinenumber: 1762
    functionLinenumberEnd: 1802
    functionName: write_type_neveraudit_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_printf
    - strs_num_items
    - strs_sort
    - ebitmap_for_each_positive_bit
    - strs_init
    - strs_read_at_index
    - strs_add
    - strs_destroy
    linkageType: ''
    returnType: int
    signature: int write_type_neveraudit_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1806
      start: 1804
    functionDepth: 0
    functionLinenumber: 1804
    functionLinenumberEnd: 1806
    functionName: next_bit_in_range
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: next_bit_in_range(i, p)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_mul_overflow
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1825,1
    - Dst: realloc
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1827,1
    - Dst: xperm_test
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1837,1
    - Dst: next_bit_in_range
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1840,1
    - Dst: next_bit_in_range
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1843,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1855,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1860,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1866,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1872,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1895,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 68
    argCount: 1
    argNames:
    - xperms
    argTypes:
    - avtab_extended_perms_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1807
    functionDepth: 1
    functionLinenumber: 1807
    functionLinenumberEnd: 1897
    functionName: xperms_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - snprintf
    - __builtin_mul_overflow
    - realloc
    - free
    - next_bit_in_range
    - xperm_test
    linkageType: ''
    returnType: char
    signature: char *xperms_to_str(const avtab_extended_perms_t *xperms)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1938,1
    - Dst: sepol_av_to_string
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1954,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1956,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1960,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1961,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1964,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1966,1
    - Dst: xperms_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1968,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1970,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1980,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1983,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1985,1
    - Dst: pdb::pdb
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1987,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:1989,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 90
    argCount: 3
    argNames:
    - pdb
    - key
    - datum
    argTypes:
    - struct policydb*
    - avtab_key_t*
    - avtab_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2001
      start: 1899
    functionDepth: 2
    functionLinenumber: 1899
    functionLinenumberEnd: 2001
    functionName: avtab_node_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 3
    functionsReached:
    - ERR
    - create_str
    - sepol_av_to_string
    - xperms_to_str
    - free
    - pdb::pdb
    linkageType: ''
    returnType: char
    signature: "char *avtab_node_to_str(struct policydb *pdb, avtab_key_t *key,\n\t\t\t
      \      avtab_datum_t *datum)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: avtab_node_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2020,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2025,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2027,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - key
    - datum
    - args
    argTypes:
    - avtab_key_t*
    - avtab_datum_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 2009
    functionDepth: 1
    functionLinenumber: 2009
    functionLinenumberEnd: 2034
    functionName: map_avtab_write_helper
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - avtab_node_to_str
    - strs_add
    - free
    linkageType: ''
    returnType: int
    signature: "int map_avtab_write_helper(avtab_key_t *key, avtab_datum_t *datum,\n\t\t\t\t
      \ void *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2043,1
    - Dst: avtab_map
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2052,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2057,1
    - Dst: strs_write_each_indented
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2058,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2061,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2062,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - out
    - pdb
    - flavor
    - indent
    argTypes:
    - FILE*
    - struct policydb*
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2036
    functionDepth: 2
    functionLinenumber: 2036
    functionLinenumberEnd: 2065
    functionName: write_avtab_flavor_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - strs_sort
    - strs_init
    - avtab_map
    - strs_destroy
    - strs_write_each_indented
    - strs_free_all
    linkageType: ''
    returnType: int
    signature: "int write_avtab_flavor_to_cil(FILE *out, struct policydb *pdb,\n\t\t\t\t
      \    uint32_t flavor, int indent)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write_avtab_flavor_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2073,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2082,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - out
    - pdb
    - indent
    argTypes:
    - FILE*
    - struct policydb*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2067
    functionDepth: 3
    functionLinenumber: 2067
    functionLinenumberEnd: 2086
    functionName: write_avtab_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - write_avtab_flavor_to_cil
    linkageType: ''
    returnType: int
    signature: int write_avtab_to_cil(FILE *out, struct policydb *pdb, int indent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pdb::pdb
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2109,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2111,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - key
    - data
    - arg
    argTypes:
    - hashtab_key_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2124
      start: 2093
    functionDepth: 2
    functionLinenumber: 2093
    functionLinenumberEnd: 2124
    functionName: map_filename_trans_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - ebitmap_for_each_positive_bit
    - strs_create_and_add
    - pdb::pdb
    linkageType: ''
    returnType: int
    signature: int map_filename_trans_to_str(hashtab_key_t key, void *data, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2132,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2140,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2145,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2146,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2149,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2150,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2153,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2157
      start: 2126
    functionDepth: 2
    functionLinenumber: 2126
    functionLinenumberEnd: 2157
    functionName: write_filename_trans_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - strs_write_each
    - hashtab_map
    - strs_sort
    - strs_init
    - strs_destroy
    - strs_free_all
    linkageType: ''
    returnType: int
    signature: int write_filename_trans_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2166,1
    - Dst: cats_ebitmap_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2167,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2168,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2169,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - pdb
    - level
    argTypes:
    - struct policydb*
    - struct mls_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2175
      start: 2159
    functionDepth: 1
    functionLinenumber: 2159
    functionLinenumberEnd: 2175
    functionName: level_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 3
    functionsReached:
    - ebitmap_is_empty
    - create_str
    - cats_ebitmap_to_str
    - free
    linkageType: ''
    returnType: char
    signature: char *level_to_str(struct policydb *pdb, struct mls_level *level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: level_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2183,1
    - Dst: level_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2188,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2193,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2196,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - pdb
    - range
    argTypes:
    - struct policydb*
    - mls_range_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2200
      start: 2177
    functionDepth: 1
    functionLinenumber: 2177
    functionLinenumberEnd: 2200
    functionName: range_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 4
    functionsReached:
    - level_to_str
    - create_str
    - free
    linkageType: ''
    returnType: char
    signature: char *range_to_str(struct policydb *pdb, mls_range_t *range)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: range_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2220,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2226,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2228,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - key
    - data
    - arg
    argTypes:
    - hashtab_key_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2235
      start: 2207
    functionDepth: 2
    functionLinenumber: 2207
    functionLinenumberEnd: 2235
    functionName: map_range_trans_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - range_to_str
    - free
    - strs_create_and_add
    linkageType: ''
    returnType: int
    signature: int map_range_trans_to_str(hashtab_key_t key, void *data, void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2243,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2251,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2256,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2257,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2260,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2261,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2264,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2268
      start: 2237
    functionDepth: 2
    functionLinenumber: 2237
    functionLinenumberEnd: 2268
    functionName: write_range_trans_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - strs_write_each
    - hashtab_map
    - strs_sort
    - strs_init
    - strs_destroy
    - strs_free_all
    linkageType: ''
    returnType: int
    signature: int write_range_trans_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2285,1
    - Dst: avtab_node_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2296,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2301,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2303,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2309,1
    - Dst: strs_write_each_indented
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2310,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2311,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2312,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2318,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2319,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 4
    argNames:
    - out
    - pdb
    - cond_list
    - indent
    argTypes:
    - FILE*
    - struct policydb*
    - cond_av_list_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2321
      start: 2270
    functionDepth: 2
    functionLinenumber: 2270
    functionLinenumberEnd: 2321
    functionName: write_cond_av_list_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - avtab_node_to_str
    - strs_sort
    - strs_init
    - strs_add
    - free
    - strs_destroy
    - strs_write_each_indented
    - strs_free_all
    linkageType: ''
    returnType: int
    signature: "int write_cond_av_list_to_cil(FILE *out, struct policydb *pdb,\n\t\t\t\t
      \    cond_av_list_t *cond_list, int indent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2333
      start: 2328
    functionDepth: 0
    functionLinenumber: 2328
    functionLinenumberEnd: 2333
    functionName: cond_node_cmp
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cond_node_cmp(const void *a, const void *b)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2347,1
    - Dst: cond_expr_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2356,1
    - Dst: qsort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2365,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2371,1
    - Dst: sepol_indent
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2374,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2375,1
    - Dst: write_cond_av_list_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2376,1
    - Dst: sepol_indent
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2381,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2382,1
    - Dst: sepol_indent
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2386,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2387,1
    - Dst: write_cond_av_list_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2388,1
    - Dst: sepol_indent
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2393,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2394,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2396,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2402,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2404,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2408,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 63
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2412
      start: 2335
    functionDepth: 3
    functionLinenumber: 2335
    functionLinenumberEnd: 2412
    functionName: write_cond_nodes_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_printf
    - sepol_indent
    - qsort
    - free
    - calloc
    - write_cond_av_list_to_cil
    - cond_expr_to_str
    linkageType: ''
    returnType: int
    signature: int write_cond_nodes_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2424,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2432,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2439,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2441,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2444,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2448,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2452,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2456,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2464,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2470,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2474,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2480,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2481,1
    - Dst: ebitmap_to_strs
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2485,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2488,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2491,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2493,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2495,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2496,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2499,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2503,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2505,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2514,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2521,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2523,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2526,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2530,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2534,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2537,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 106
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2541
      start: 2414
    functionDepth: 2
    functionLinenumber: 2414
    functionLinenumberEnd: 2541
    functionName: write_role_decl_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_printf
    - strs_num_items
    - strs_sort
    - strs_read_at_index
    - strs_init
    - hashtab_search
    - ebitmap_is_empty
    - strs_add
    - ebitmap_to_strs
    - strs_destroy
    linkageType: ''
    returnType: int
    signature: int write_role_decl_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2550,1
    - Dst: pdb::pdb
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2559,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2561,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2570,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2571,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2574,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2575,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2578,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2582
      start: 2543
    functionDepth: 2
    functionLinenumber: 2543
    functionLinenumberEnd: 2582
    functionName: write_role_transition_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - strs_write_each
    - strs_sort
    - strs_init
    - strs_create_and_add
    - pdb::pdb
    - strs_destroy
    - strs_free_all
    linkageType: ''
    returnType: int
    signature: int write_role_transition_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2591,1
    - Dst: pdb::pdb
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2598,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2600,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2608,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2609,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2612,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2613,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2616,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2620
      start: 2584
    functionDepth: 2
    functionLinenumber: 2584
    functionLinenumberEnd: 2620
    functionName: write_role_allow_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - ERR
    - strs_write_each
    - strs_sort
    - strs_init
    - strs_create_and_add
    - pdb::pdb
    - strs_destroy
    - strs_free_all
    linkageType: ''
    returnType: int
    signature: int write_role_allow_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2631,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2639,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2645,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2647,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2650,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2654,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2658,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2663,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2670,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2671,1
    - Dst: ebitmap_to_strs
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2675,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2678,1
    - Dst: strs_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2682,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2684,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2688,1
    - Dst: strs_num_items
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2690,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2692,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2693,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2696,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2701,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2706,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2712,1
    - Dst: level_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2715,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2720,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2721,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2723,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2725,1
    - Dst: strs_read_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2729,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2734,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2740,1
    - Dst: range_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2742,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2747,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2748,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2750,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2753,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2758,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2761,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 123
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2765
      start: 2622
    functionDepth: 2
    functionLinenumber: 2622
    functionLinenumberEnd: 2765
    functionName: write_user_decl_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - range_to_str
    - level_to_str
    - ERR
    - sepol_printf
    - strs_num_items
    - strs_sort
    - strs_read_at_index
    - strs_init
    - hashtab_search
    - ebitmap_is_empty
    - strs_add
    - free
    - ebitmap_to_strs
    - strs_destroy
    linkageType: ''
    returnType: int
    signature: int write_user_decl_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: range_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2777,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2779,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2785,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2786,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - pdb
    - con
    argTypes:
    - struct policydb*
    - struct context_struct*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2790
      start: 2767
    functionDepth: 1
    functionLinenumber: 2767
    functionLinenumberEnd: 2790
    functionName: context_to_str
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 15
    functionsReached:
    - range_to_str
    - create_str
    - free
    linkageType: ''
    returnType: char
    signature: char *context_to_str(struct policydb *pdb, struct context_struct *con)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2804,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2814,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2818,1
    - Dst: create_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2824,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2825,1
    - Dst: strs_add_at_index
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2831,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2833,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2838,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2841,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2842,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2845,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 4
    argNames:
    - out
    - pdb
    - sid_to_str
    - num_sids
    argTypes:
    - FILE*
    - struct policydb*
    - char**
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2849
      start: 2792
    functionDepth: 2
    functionLinenumber: 2792
    functionLinenumberEnd: 2849
    functionName: write_sid_context_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - context_to_str
    - ERR
    - create_str
    - strs_add_at_index
    - strs_write_each
    - snprintf
    - strs_init
    - free
    - strs_destroy
    - strs_free_all
    linkageType: ''
    returnType: int
    signature: "int write_sid_context_rules_to_cil(FILE *out, struct policydb *pdb,\n\t\t\t\t\t
      \ const char *const *sid_to_str,\n\t\t\t\t\t  unsigned num_sids)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_sid_context_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2855
      start: 2851
    functionDepth: 3
    functionLinenumber: 2851
    functionLinenumberEnd: 2855
    functionName: write_selinux_isid_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - write_sid_context_rules_to_cil
    linkageType: ''
    returnType: int
    signature: int write_selinux_isid_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2876,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2883,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2889,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2891,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2896,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2900
      start: 2857
    functionDepth: 1
    functionLinenumber: 2857
    functionLinenumberEnd: 2900
    functionName: write_selinux_fsuse_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - context_to_str
    - ERR
    - sepol_printf
    - free
    linkageType: ''
    returnType: int
    signature: int write_selinux_fsuse_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2911,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2915,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2930,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2932,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2934,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2937,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2940,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2943,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2946,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2955,1
    - Dst: strlen
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2961,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2965,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2974,1
    - Dst: strs_create_and_add
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2979,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2983,1
    - Dst: strs_sort
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2990,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2991,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2994,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2995,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:2998,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 77
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3002
      start: 2902
    functionDepth: 2
    functionLinenumber: 2902
    functionLinenumberEnd: 3002
    functionName: write_genfscon_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - context_to_str
    - ERR
    - strs_write_each
    - strs_sort
    - strs_init
    - strcmp
    - strs_create_and_add
    - free
    - ebitmap_get_bit
    - strs_destroy
    - strs_free_all
    - strlen
    linkageType: ''
    returnType: int
    signature: int write_genfscon_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3030,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3039,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3041,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3048,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3054,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3057,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3064,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3068
      start: 3004
    functionDepth: 1
    functionLinenumber: 3004
    functionLinenumberEnd: 3068
    functionName: write_selinux_port_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - context_to_str
    - ERR
    - sepol_printf
    - snprintf
    - free
    linkageType: ''
    returnType: int
    signature: int write_selinux_port_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3078,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3083,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3085,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3090,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3092,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3093,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3098,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3102
      start: 3070
    functionDepth: 1
    functionLinenumber: 3070
    functionLinenumberEnd: 3102
    functionName: write_selinux_netif_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - context_to_str
    - ERR
    - sepol_printf
    - free
    linkageType: ''
    returnType: int
    signature: int write_selinux_netif_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3113,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3115,1
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3120,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3122,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3127,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3133,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3135,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3140,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3144
      start: 3104
    functionDepth: 1
    functionLinenumber: 3104
    functionLinenumberEnd: 3144
    functionName: write_selinux_node_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - context_to_str
    - ERR
    - sepol_printf
    - inet_ntop
    - free
    linkageType: ''
    returnType: int
    signature: int write_selinux_node_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3155,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3157,1
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3162,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3164,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3169,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3175,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3177,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3182,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3186
      start: 3146
    functionDepth: 1
    functionLinenumber: 3146
    functionLinenumberEnd: 3186
    functionName: write_selinux_node6_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - context_to_str
    - ERR
    - sepol_printf
    - inet_ntop
    - free
    linkageType: ''
    returnType: int
    signature: int write_selinux_node6_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3201,1
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3205,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3207,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3215,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3217,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3224,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3230,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3233,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3240,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3244
      start: 3188
    functionDepth: 1
    functionLinenumber: 3188
    functionLinenumberEnd: 3244
    functionName: write_selinux_ibpkey_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - context_to_str
    - ERR
    - sepol_printf
    - snprintf
    - inet_ntop
    - free
    - memcpy
    linkageType: ''
    returnType: int
    signature: int write_selinux_ibpkey_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3255,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3262,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3268,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3271,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3278,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3282
      start: 3246
    functionDepth: 1
    functionLinenumber: 3246
    functionLinenumberEnd: 3282
    functionName: write_selinux_ibendport_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - context_to_str
    - ERR
    - sepol_printf
    - snprintf
    - free
    linkageType: ''
    returnType: int
    signature: int write_selinux_ibendport_rules_to_cil(FILE *out, struct policydb
      *pdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_sid_context_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3288
      start: 3284
    functionDepth: 3
    functionLinenumber: 3284
    functionLinenumberEnd: 3288
    functionName: write_xen_isid_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - write_sid_context_rules_to_cil
    linkageType: ''
    returnType: int
    signature: int write_xen_isid_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3298,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3304,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3310,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3312,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3319,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3323
      start: 3290
    functionDepth: 1
    functionLinenumber: 3290
    functionLinenumberEnd: 3323
    functionName: write_xen_pirq_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - context_to_str
    - ERR
    - sepol_printf
    - snprintf
    - free
    linkageType: ''
    returnType: int
    signature: int write_xen_pirq_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3340,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3342,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3350,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3356,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3358,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3365,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3369
      start: 3325
    functionDepth: 1
    functionLinenumber: 3325
    functionLinenumberEnd: 3369
    functionName: write_xen_ioport_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - context_to_str
    - ERR
    - sepol_printf
    - snprintf
    - free
    linkageType: ''
    returnType: int
    signature: int write_xen_ioport_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3385,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3387,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3396,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3402,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3404,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3411,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3415
      start: 3371
    functionDepth: 1
    functionLinenumber: 3371
    functionLinenumberEnd: 3415
    functionName: write_xen_iomem_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - context_to_str
    - ERR
    - sepol_printf
    - snprintf
    - free
    linkageType: ''
    returnType: int
    signature: int write_xen_iomem_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3425,1
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3432,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3438,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3440,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3447,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3451
      start: 3417
    functionDepth: 1
    functionLinenumber: 3417
    functionLinenumberEnd: 3451
    functionName: write_xen_pcidevice_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - context_to_str
    - ERR
    - sepol_printf
    - snprintf
    - free
    linkageType: ''
    returnType: int
    signature: int write_xen_pcidevice_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: context_to_str
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3461,1
    - Dst: sepol_printf
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3467,1
    - Dst: free
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3469,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3474,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3478
      start: 3453
    functionDepth: 1
    functionLinenumber: 3453
    functionLinenumberEnd: 3478
    functionName: write_xen_devicetree_rules_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - context_to_str
    - ERR
    - sepol_printf
    - free
    linkageType: ''
    returnType: int
    signature: int write_xen_devicetree_rules_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: check_for_supported_policy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3488,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3493,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3498,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3503,1
    - Dst: strs_init
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3508,1
    - Dst: constraint_rules_to_strs
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3513,1
    - Dst: validatetrans_rules_to_strs
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3519,1
    - Dst: write_handle_unknown_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3525,1
    - Dst: write_class_decl_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3530,1
    - Dst: write_sid_decl_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3535,1
    - Dst: write_default_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3540,1
    - Dst: write_mls_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3545,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3550,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3551,1
    - Dst: write_polcap_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3553,1
    - Dst: write_type_attributes_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3558,1
    - Dst: write_role_attributes_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3563,1
    - Dst: write_boolean_decl_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3568,1
    - Dst: write_type_decl_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3573,1
    - Dst: write_type_alias_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3578,1
    - Dst: write_type_bounds_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3583,1
    - Dst: write_type_attribute_sets_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3588,1
    - Dst: write_type_permissive_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3593,1
    - Dst: write_type_neveraudit_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3598,1
    - Dst: write_avtab_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3603,1
    - Dst: write_filename_trans_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3608,1
    - Dst: write_range_trans_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3614,1
    - Dst: write_cond_nodes_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3620,1
    - Dst: write_role_decl_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3625,1
    - Dst: write_role_transition_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3630,1
    - Dst: write_role_allow_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3635,1
    - Dst: write_user_decl_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3640,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3645,1
    - Dst: strs_write_each
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3646,1
    - Dst: sort_ocontexts
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3648,1
    - Dst: write_selinux_isid_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3654,1
    - Dst: write_selinux_fsuse_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3659,1
    - Dst: write_genfscon_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3664,1
    - Dst: write_selinux_port_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3669,1
    - Dst: write_selinux_netif_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3674,1
    - Dst: write_selinux_node_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3679,1
    - Dst: write_selinux_node6_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3684,1
    - Dst: write_selinux_ibpkey_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3689,1
    - Dst: write_selinux_ibendport_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3694,1
    - Dst: write_xen_isid_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3699,1
    - Dst: write_xen_pirq_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3704,1
    - Dst: write_xen_ioport_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3709,1
    - Dst: write_xen_iomem_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3714,1
    - Dst: write_xen_pcidevice_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3719,1
    - Dst: write_xen_devicetree_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3724,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3731,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3732,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3733,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3734,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3735,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3736,1
    - Dst: strs_free_all
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3737,1
    - Dst: strs_destroy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3738,1
    CyclomaticComplexity: 94
    EdgeCount: 94
    ICount: 251
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3741
      start: 3480
    functionDepth: 4
    functionLinenumber: 3480
    functionLinenumberEnd: 3741
    functionName: sepol_kernel_policydb_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - write_selinux_ibendport_rules_to_cil
    - write_type_alias_rules_to_cil
    - write_type_permissive_rules_to_cil
    - write_type_bounds_rules_to_cil
    - write_role_allow_rules_to_cil
    - write_role_decl_rules_to_cil
    - write_type_attributes_to_cil
    - write_selinux_netif_rules_to_cil
    - strs_free_all
    - validatetrans_rules_to_strs
    - write_genfscon_rules_to_cil
    - write_type_attribute_sets_to_cil
    - write_polcap_rules_to_cil
    - write_class_decl_rules_to_cil
    - write_selinux_ibpkey_rules_to_cil
    - write_xen_iomem_rules_to_cil
    - write_role_attributes_to_cil
    - write_cond_nodes_to_cil
    - write_role_transition_rules_to_cil
    - write_boolean_decl_rules_to_cil
    - write_selinux_node_rules_to_cil
    - write_xen_pirq_rules_to_cil
    - write_selinux_isid_rules_to_cil
    - write_selinux_node6_rules_to_cil
    - constraint_rules_to_strs
    - write_type_decl_rules_to_cil
    - strs_init
    - write_default_rules_to_cil
    - write_avtab_to_cil
    - write_type_neveraudit_rules_to_cil
    - write_filename_trans_rules_to_cil
    - sort_ocontexts
    - write_xen_ioport_rules_to_cil
    - write_xen_devicetree_rules_to_cil
    - write_selinux_fsuse_rules_to_cil
    - strs_write_each
    - write_xen_isid_rules_to_cil
    - write_mls_rules_to_cil
    - write_sid_decl_rules_to_cil
    - write_handle_unknown_to_cil
    - check_for_supported_policy
    - write_range_trans_rules_to_cil
    - write_xen_pcidevice_rules_to_cil
    - write_selinux_port_rules_to_cil
    - strs_destroy
    - write_user_decl_rules_to_cil
    linkageType: ''
    returnType: int
    signature: int sepol_kernel_policydb_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: check_for_supported_policy
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3747,1
    - Dst: write_sid_decl_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3752,1
    - Dst: write_class_decl_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3757,1
    - Dst: write_mls_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3762,1
    - Dst: write_boolean_decl_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3767,1
    - Dst: write_type_decl_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3772,1
    - Dst: write_type_alias_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3777,1
    - Dst: write_type_attributes_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3782,1
    - Dst: write_type_attribute_sets_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3787,1
    - Dst: write_role_decl_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3792,1
    - Dst: write_role_attributes_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3797,1
    - Dst: write_user_decl_rules_to_cil
      Src: /src/selinux/libsepol/src/kernel_to_cil.c:3802,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 63
    argCount: 2
    argNames:
    - out
    - pdb
    argTypes:
    - FILE*
    - struct policydb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3809
      start: 3743
    functionDepth: 4
    functionLinenumber: 3743
    functionLinenumberEnd: 3809
    functionName: sepol_kernel_policydb_decls_to_cil
    functionSourceFile: /src/selinux/libsepol/src/kernel_to_cil.c
    functionUses: 0
    functionsReached:
    - write_type_attribute_sets_to_cil
    - write_type_alias_rules_to_cil
    - write_type_decl_rules_to_cil
    - write_mls_rules_to_cil
    - write_class_decl_rules_to_cil
    - write_sid_decl_rules_to_cil
    - write_role_attributes_to_cil
    - check_for_supported_policy
    - write_boolean_decl_rules_to_cil
    - write_role_decl_rules_to_cil
    - write_type_attributes_to_cil
    - write_user_decl_rules_to_cil
    linkageType: ''
    returnType: int
    signature: int sepol_kernel_policydb_decls_to_cil(FILE *out, struct policydb *pdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: inet_pton
      Src: /src/selinux/libsepol/src/ibpkey_record.c:40,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibpkey_record.c:41,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/ibpkey_record.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - handle
    - subnet_prefix_str
    - subnet_prefix
    argTypes:
    - sepol_handle_t*
    - char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 50
    functionName: ibpkey_parse_subnet_prefix
    functionSourceFile: /src/selinux/libsepol/src/ibpkey_record.c
    functionUses: 0
    functionsReached:
    - inet_pton
    - ERR
    - memcpy
    linkageType: ''
    returnType: int
    signature: "int ibpkey_parse_subnet_prefix(sepol_handle_t *handle,\n\t\t\t\t      const
      char *subnet_prefix_str,\n\t\t\t\t      uint64_t *subnet_prefix)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/src/ibpkey_record.c:62,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/src/ibpkey_record.c:63,1
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/src/ibpkey_record.c:65,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibpkey_record.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - subnet_prefix
    - subnet_prefix_str
    argTypes:
    - sepol_handle_t*
    - uint64_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 72
    functionName: ibpkey_expand_subnet_prefix
    functionSourceFile: /src/selinux/libsepol/src/ibpkey_record.c
    functionUses: 0
    functionsReached:
    - memcpy
    - inet_ntop
    - ERR
    - memset
    linkageType: ''
    returnType: int
    signature: "int ibpkey_expand_subnet_prefix(sepol_handle_t *handle,\n\t\t\t\t
      \      uint64_t subnet_prefix,\n\t\t\t\t       char *subnet_prefix_str)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/ibpkey_record.c:82,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibpkey_record.c:91,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibpkey_record.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - handle
    - subnet_prefix
    argTypes:
    - sepol_handle_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 95
    functionName: ibpkey_alloc_subnet_prefix_string
    functionSourceFile: /src/selinux/libsepol/src/ibpkey_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - malloc
    linkageType: ''
    returnType: int
    signature: "int ibpkey_alloc_subnet_prefix_string(sepol_handle_t *handle,\n\t\t\t\t\t
      \    char **subnet_prefix)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/ibpkey_record.c:102,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibpkey_record.c:105,1
    - Dst: ibpkey_parse_subnet_prefix
      Src: /src/selinux/libsepol/src/ibpkey_record.c:109,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibpkey_record.c:120,1
    - Dst: sepol_ibpkey_key_free
      Src: /src/selinux/libsepol/src/ibpkey_record.c:123,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibpkey_record.c:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - handle
    - subnet_prefix
    - low
    - high
    - key_ptr
    argTypes:
    - sepol_handle_t*
    - char*
    - int
    - int
    - sepol_ibpkey_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 128
    functionName: sepol_ibpkey_key_create
    functionSourceFile: /src/selinux/libsepol/src/ibpkey_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - malloc
    - sepol_ibpkey_key_free
    - ibpkey_parse_subnet_prefix
    linkageType: ''
    returnType: int
    signature: "int sepol_ibpkey_key_create(sepol_handle_t *handle, const char *subnet_prefix,\n\t\t\t
      \   int low, int high, sepol_ibpkey_key_t **key_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - key
    - subnet_prefix
    - low
    - high
    argTypes:
    - sepol_ibpkey_key_t*
    - uint64_t*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: sepol_ibpkey_key_unpack
    functionSourceFile: /src/selinux/libsepol/src/ibpkey_record.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void sepol_ibpkey_key_unpack(const sepol_ibpkey_key_t *key,\n\t\t\t
      \    uint64_t *subnet_prefix, int *low, int *high)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ibpkey_expand_subnet_prefix
      Src: /src/selinux/libsepol/src/ibpkey_record.c:144,1
    - Dst: sepol_ibpkey_key_create
      Src: /src/selinux/libsepol/src/ibpkey_record.c:147,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibpkey_record.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - handle
    - ibpkey
    - key_ptr
    argTypes:
    - sepol_handle_t*
    - sepol_ibpkey_t*
    - sepol_ibpkey_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 156
    functionName: sepol_ibpkey_key_extract
    functionSourceFile: /src/selinux/libsepol/src/ibpkey_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_ibpkey_key_create
    - ibpkey_expand_subnet_prefix
    linkageType: ''
    returnType: int
    signature: "int sepol_ibpkey_key_extract(sepol_handle_t *handle,\n\t\t\t     const
      sepol_ibpkey_t *ibpkey,\n\t\t\t     sepol_ibpkey_key_t **key_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/src/ibpkey_record.c:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - sepol_ibpkey_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 163
    functionName: sepol_ibpkey_key_free
    functionSourceFile: /src/selinux/libsepol/src/ibpkey_record.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void sepol_ibpkey_key_free(sepol_ibpkey_key_t *key)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - ibpkey
    - key
    argTypes:
    - sepol_ibpkey_t*
    - sepol_ibpkey_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 184
    functionName: sepol_ibpkey_compare
    functionSourceFile: /src/selinux/libsepol/src/ibpkey_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sepol_ibpkey_compare(const sepol_ibpkey_t *ibpkey,\n\t\t\t const
      sepol_ibpkey_key_t *key)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - ibpkey
    - ibpkey2
    argTypes:
    - sepol_ibpkey_t*
    - sepol_ibpkey_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 205
    functionName: sepol_ibpkey_compare2
    functionSourceFile: /src/selinux/libsepol/src/ibpkey_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int sepol_ibpkey_compare2(const sepol_ibpkey_t *ibpkey,\n\t\t\t  const
      sepol_ibpkey_t *ibpkey2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ibpkey
    argTypes:
    - sepol_ibpkey_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: sepol_ibpkey_get_low
    functionSourceFile: /src/selinux/libsepol/src/ibpkey_record.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sepol_ibpkey_get_low(const sepol_ibpkey_t *ibpkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ibpkey
    argTypes:
    - sepol_ibpkey_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: sepol_ibpkey_get_high
    functionSourceFile: /src/selinux/libsepol/src/ibpkey_record.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sepol_ibpkey_get_high(const sepol_ibpkey_t *ibpkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ibpkey
    - pkey_num
    argTypes:
    - sepol_ibpkey_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: sepol_ibpkey_set_pkey
    functionSourceFile: /src/selinux/libsepol/src/ibpkey_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sepol_ibpkey_set_pkey(sepol_ibpkey_t *ibpkey, int pkey_num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ibpkey
    - low
    - high
    argTypes:
    - sepol_ibpkey_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 228
    functionName: sepol_ibpkey_set_range
    functionSourceFile: /src/selinux/libsepol/src/ibpkey_record.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sepol_ibpkey_set_range(sepol_ibpkey_t *ibpkey, int low, int high)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ibpkey_alloc_subnet_prefix_string
      Src: /src/selinux/libsepol/src/ibpkey_record.c:236,1
    - Dst: ibpkey_expand_subnet_prefix
      Src: /src/selinux/libsepol/src/ibpkey_record.c:239,1
    - Dst: free
      Src: /src/selinux/libsepol/src/ibpkey_record.c:247,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibpkey_record.c:248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - handle
    - ibpkey
    - subnet_prefix
    argTypes:
    - sepol_handle_t*
    - sepol_ibpkey_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 250
    functionName: sepol_ibpkey_get_subnet_prefix
    functionSourceFile: /src/selinux/libsepol/src/ibpkey_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - free
    - ibpkey_expand_subnet_prefix
    - ibpkey_alloc_subnet_prefix_string
    linkageType: ''
    returnType: int
    signature: "int sepol_ibpkey_get_subnet_prefix(sepol_handle_t *handle,\n\t\t\t\t
      \  const sepol_ibpkey_t *ibpkey,\n\t\t\t\t   char **subnet_prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ibpkey
    argTypes:
    - sepol_ibpkey_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: sepol_ibpkey_get_subnet_prefix_bytes
    functionSourceFile: /src/selinux/libsepol/src/ibpkey_record.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t sepol_ibpkey_get_subnet_prefix_bytes(const sepol_ibpkey_t
      *ibpkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ibpkey_parse_subnet_prefix
      Src: /src/selinux/libsepol/src/ibpkey_record.c:264,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibpkey_record.c:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - handle
    - ibpkey
    - subnet_prefix_str
    argTypes:
    - sepol_handle_t*
    - sepol_ibpkey_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 274
    functionName: sepol_ibpkey_set_subnet_prefix
    functionSourceFile: /src/selinux/libsepol/src/ibpkey_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - ibpkey_parse_subnet_prefix
    linkageType: ''
    returnType: int
    signature: "int sepol_ibpkey_set_subnet_prefix(sepol_handle_t *handle,\n\t\t\t\t
      \  sepol_ibpkey_t *ibpkey,\n\t\t\t\t   const char *subnet_prefix_str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ibpkey
    - subnet_prefix
    argTypes:
    - sepol_ibpkey_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: sepol_ibpkey_set_subnet_prefix_bytes
    functionSourceFile: /src/selinux/libsepol/src/ibpkey_record.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void sepol_ibpkey_set_subnet_prefix_bytes(sepol_ibpkey_t *ibpkey,\n\t\t\t\t\t
      \ uint64_t subnet_prefix)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/src/ibpkey_record.c:286,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibpkey_record.c:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - handle
    - ibpkey
    argTypes:
    - sepol_handle_t*
    - sepol_ibpkey_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 300
    functionName: sepol_ibpkey_create
    functionSourceFile: /src/selinux/libsepol/src/ibpkey_record.c
    functionUses: 1
    functionsReached:
    - ERR
    - malloc
    linkageType: ''
    returnType: int
    signature: int sepol_ibpkey_create(sepol_handle_t *handle, sepol_ibpkey_t **ibpkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_create
      Src: /src/selinux/libsepol/src/ibpkey_record.c:308,1
    - Dst: sepol_context_clone
      Src: /src/selinux/libsepol/src/ibpkey_record.c:316,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibpkey_record.c:323,1
    - Dst: sepol_ibpkey_free
      Src: /src/selinux/libsepol/src/ibpkey_record.c:324,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - handle
    - ibpkey
    - ibpkey_ptr
    argTypes:
    - sepol_handle_t*
    - sepol_ibpkey_t*
    - sepol_ibpkey_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 326
    functionName: sepol_ibpkey_clone
    functionSourceFile: /src/selinux/libsepol/src/ibpkey_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_ibpkey_create
    - sepol_ibpkey_free
    - sepol_context_clone
    linkageType: ''
    returnType: int
    signature: "int sepol_ibpkey_clone(sepol_handle_t *handle, const sepol_ibpkey_t
      *ibpkey,\n\t\t       sepol_ibpkey_t **ibpkey_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/ibpkey_record.c:334,1
    - Dst: free
      Src: /src/selinux/libsepol/src/ibpkey_record.c:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ibpkey
    argTypes:
    - sepol_ibpkey_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 336
    functionName: sepol_ibpkey_free
    functionSourceFile: /src/selinux/libsepol/src/ibpkey_record.c
    functionUses: 3
    functionsReached:
    - free
    - sepol_context_free
    linkageType: ''
    returnType: void
    signature: void sepol_ibpkey_free(sepol_ibpkey_t *ibpkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ibpkey
    argTypes:
    - sepol_ibpkey_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 342
    functionName: sepol_ibpkey_get_con
    functionSourceFile: /src/selinux/libsepol/src/ibpkey_record.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: sepol_context_t
    signature: sepol_context_t *sepol_ibpkey_get_con(const sepol_ibpkey_t *ibpkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_clone
      Src: /src/selinux/libsepol/src/ibpkey_record.c:349,1
    - Dst: ERR
      Src: /src/selinux/libsepol/src/ibpkey_record.c:350,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsepol/src/ibpkey_record.c:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - ibpkey
    - con
    argTypes:
    - sepol_handle_t*
    - sepol_ibpkey_t*
    - sepol_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 357
    functionName: sepol_ibpkey_set_con
    functionSourceFile: /src/selinux/libsepol/src/ibpkey_record.c
    functionUses: 1
    functionsReached:
    - ERR
    - sepol_context_clone
    - sepol_context_free
    linkageType: ''
    returnType: int
    signature: "int sepol_ibpkey_set_con(sepol_handle_t *handle, sepol_ibpkey_t *ibpkey,\n\t\t\t
      sepol_context_t *con)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 257
    functionName: xperm_test
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xperm_test(x, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 258
    functionName: xperm_set
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xperm_set(x, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 259
    functionName: xperm_clear
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xperm_clear(x, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 811
    functionName: policydb_has_boundary_feature
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: policydb_has_boundary_feature(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 817
    functionName: policydb_has_cond_xperms_feature
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: policydb_has_cond_xperms_feature(p)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/selinux/libsepol/include/sepol/policydb/mls_types.h:64,1
    - Dst: MIN
      Src: /src/selinux/libsepol/include/sepol/policydb/mls_types.h:66,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/include/sepol/policydb/mls_types.h:68,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/include/sepol/policydb/mls_types.h:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - dst
    - r1
    - r2
    argTypes:
    - struct mls_range*
    - struct mls_range*
    - struct mls_range*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 79
    functionName: mls_range_glblub
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/mls_types.h
    functionUses: 0
    functionsReached:
    - MIN
    - MAX
    - ebitmap_and
    linkageType: ''
    returnType: int
    signature: "int mls_range_glblub(struct mls_range *dst,\n\t\t\t\t   const struct
      mls_range *r1,\n\t\t\t\t   const struct mls_range *r2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/include/sepol/policydb/mls_types.h:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct mls_level*
    - struct mls_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: mls_level_cpy
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/mls_types.h
    functionUses: 4
    functionsReached:
    - ebitmap_cpy
    linkageType: ''
    returnType: int
    signature: "int mls_level_cpy(struct mls_level *dst,\n\t\t\t\tconst struct mls_level
      *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/include/sepol/policydb/mls_types.h:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - level
    argTypes:
    - struct mls_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    functionName: mls_level_init
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/mls_types.h
    functionUses: 4
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void mls_level_init(struct mls_level *level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/include/sepol/policydb/mls_types.h:100,1
    - Dst: mls_level_init
      Src: /src/selinux/libsepol/include/sepol/policydb/mls_types.h:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - level
    argTypes:
    - struct mls_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: mls_level_destroy
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/mls_types.h
    functionUses: 6
    functionsReached:
    - mls_level_init
    - ebitmap_destroy
    linkageType: ''
    returnType: void
    signature: void mls_level_destroy(struct mls_level *level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/include/sepol/policydb/mls_types.h:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - l1
    - l2
    argTypes:
    - struct mls_level*
    - struct mls_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: mls_level_eq
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/mls_types.h
    functionUses: 5
    functionsReached:
    - ebitmap_cmp
    linkageType: ''
    returnType: int
    signature: "int mls_level_eq(const struct mls_level *l1,\n\t\t\t       const struct
      mls_level *l2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_contains
      Src: /src/selinux/libsepol/include/sepol/policydb/mls_types.h:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - l1
    - l2
    argTypes:
    - struct mls_level*
    - struct mls_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: mls_level_dom
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/mls_types.h
    functionUses: 4
    functionsReached:
    - ebitmap_contains
    linkageType: ''
    returnType: int
    signature: "int mls_level_dom(const struct mls_level *l1,\n\t\t\t\tconst struct
      mls_level *l2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - l1
    - ','
    - l2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: mls_level_incomp
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/mls_types.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mls_level_incomp(l1, l2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - l1
    - ','
    - l2
    - ','
    - l3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: mls_level_between
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/mls_types.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mls_level_between(l1, l2, l3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - r1
    - ','
    - r2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    functionName: mls_range_contains
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/mls_types.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mls_range_contains(r1, r2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mls_level_cpy
      Src: /src/selinux/libsepol/include/sepol/policydb/mls_types.h:128,1
    - Dst: mls_level_cpy
      Src: /src/selinux/libsepol/include/sepol/policydb/mls_types.h:131,1
    - Dst: mls_level_destroy
      Src: /src/selinux/libsepol/include/sepol/policydb/mls_types.h:137,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - mls_range_t*
    - mls_range_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 126
    functionDepth: 3
    functionLinenumber: 126
    functionLinenumberEnd: 141
    functionName: mls_range_cpy
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/mls_types.h
    functionUses: 2
    functionsReached:
    - mls_level_destroy
    - mls_level_cpy
    linkageType: ''
    returnType: int
    signature: int mls_range_cpy(mls_range_t *dst, const mls_range_t *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mls_level_init
      Src: /src/selinux/libsepol/include/sepol/policydb/mls_types.h:145,1
    - Dst: mls_level_init
      Src: /src/selinux/libsepol/include/sepol/policydb/mls_types.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct mls_range*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 147
    functionName: mls_range_init
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/mls_types.h
    functionUses: 1
    functionsReached:
    - mls_level_init
    linkageType: ''
    returnType: void
    signature: void mls_range_init(struct mls_range *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mls_level_destroy
      Src: /src/selinux/libsepol/include/sepol/policydb/mls_types.h:151,1
    - Dst: mls_level_destroy
      Src: /src/selinux/libsepol/include/sepol/policydb/mls_types.h:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct mls_range*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 153
    functionName: mls_range_destroy
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/mls_types.h
    functionUses: 6
    functionsReached:
    - mls_level_destroy
    linkageType: ''
    returnType: void
    signature: void mls_range_destroy(struct mls_range *r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mls_level_eq
      Src: /src/selinux/libsepol/include/sepol/policydb/mls_types.h:158,1
    - Dst: mls_level_eq
      Src: /src/selinux/libsepol/include/sepol/policydb/mls_types.h:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - r1
    - r2
    argTypes:
    - struct mls_range*
    - struct mls_range*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 160
    functionName: mls_range_eq
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/mls_types.h
    functionUses: 2
    functionsReached:
    - mls_level_eq
    linkageType: ''
    returnType: int
    signature: "int mls_range_eq(const struct mls_range *r1,\n\t\t\t       const struct
      mls_range *r2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: ebitmap_is_empty
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/ebitmap.h
    functionUses: 31
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ebitmap_is_empty(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: ebitmap_length
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/ebitmap.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ebitmap_length(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: ebitmap_startbit
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/ebitmap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ebitmap_startbit(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: ebitmap_startnode
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/ebitmap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ebitmap_startnode(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_startbit
      Src: /src/selinux/libsepol/include/sepol/policydb/ebitmap.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - e
    - n
    argTypes:
    - ebitmap_t*
    - ebitmap_node_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: ebitmap_start
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/ebitmap.h
    functionUses: 0
    functionsReached:
    - ebitmap_startbit
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ebitmap_start(const ebitmap_t *e, ebitmap_node_t **n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/include/sepol/policydb/ebitmap.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - ebitmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: ebitmap_init
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/ebitmap.h
    functionUses: 55
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void ebitmap_init(ebitmap_t *e)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - n
    - bit
    argTypes:
    - ebitmap_node_t**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: ebitmap_next
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/ebitmap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int ebitmap_next(ebitmap_node_t **n, unsigned int bit)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - n
    - bit
    argTypes:
    - ebitmap_node_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: ebitmap_node_get_bit
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/ebitmap.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ebitmap_node_get_bit(const ebitmap_node_t *n,\n\t\t\t\t       unsigned
      int bit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - e
    - ','
    - n
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: ebitmap_for_each_bit
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/ebitmap.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ebitmap_for_each_bit(e, n, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - e
    - ','
    - n
    - ','
    - bit
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/ebitmap.h
    functionUses: 50
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ebitmap_for_each_positive_bit(e, n, bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mls_range_init
      Src: /src/selinux/libsepol/include/sepol/policydb/context.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: mls_context_init
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/context.h
    functionUses: 0
    functionsReached:
    - mls_range_init
    linkageType: ''
    returnType: void
    signature: void mls_context_init(context_struct_t *c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mls_range_cpy
      Src: /src/selinux/libsepol/include/sepol/policydb/context.h:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - context_struct_t*
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 4
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: mls_context_cpy
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/context.h
    functionUses: 2
    functionsReached:
    - mls_range_cpy
    linkageType: ''
    returnType: int
    signature: "int mls_context_cpy(context_struct_t *dst,\n\t\t\t\t  const context_struct_t
      *src)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/include/sepol/policydb/context.h:63,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/include/sepol/policydb/context.h:68,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/include/sepol/policydb/context.h:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - context_struct_t*
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 73
    functionName: mls_context_cpy_low
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/context.h
    functionUses: 1
    functionsReached:
    - ebitmap_destroy
    - ebitmap_cpy
    linkageType: ''
    returnType: int
    signature: "int mls_context_cpy_low(context_struct_t *dst,\n\t\t\t\t      const
      context_struct_t *src)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/include/sepol/policydb/context.h:84,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/include/sepol/policydb/context.h:89,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/include/sepol/policydb/context.h:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - context_struct_t*
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 94
    functionName: mls_context_cpy_high
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/context.h
    functionUses: 1
    functionsReached:
    - ebitmap_destroy
    - ebitmap_cpy
    linkageType: ''
    returnType: int
    signature: "int mls_context_cpy_high(context_struct_t *dst,\n\t\t\t\t       const
      context_struct_t *src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mls_range_glblub
      Src: /src/selinux/libsepol/include/sepol/policydb/context.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dst
    - c1
    - c2
    argTypes:
    - context_struct_t*
    - context_struct_t*
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 101
    functionName: mls_context_glblub
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/context.h
    functionUses: 1
    functionsReached:
    - mls_range_glblub
    linkageType: ''
    returnType: int
    signature: "int mls_context_glblub(context_struct_t *dst,\n\t\t\t\t     const
      context_struct_t *c1,\n\t\t\t\t     const context_struct_t *c2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mls_level_eq
      Src: /src/selinux/libsepol/include/sepol/policydb/context.h:106,1
    - Dst: mls_level_eq
      Src: /src/selinux/libsepol/include/sepol/policydb/context.h:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - c1
    - c2
    argTypes:
    - context_struct_t*
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 108
    functionName: mls_context_cmp
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/context.h
    functionUses: 0
    functionsReached:
    - mls_level_eq
    linkageType: ''
    returnType: int
    signature: "int mls_context_cmp(const context_struct_t *c1,\n\t\t\t\t  const context_struct_t
      *c2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mls_range_destroy
      Src: /src/selinux/libsepol/include/sepol/policydb/context.h:115,1
    - Dst: mls_context_init
      Src: /src/selinux/libsepol/include/sepol/policydb/context.h:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: mls_context_destroy
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/context.h
    functionUses: 0
    functionsReached:
    - mls_context_init
    - mls_range_destroy
    linkageType: ''
    returnType: void
    signature: void mls_context_destroy(context_struct_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/include/sepol/policydb/context.h:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: context_init
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/context.h
    functionUses: 7
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void context_init(context_struct_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mls_context_cpy
      Src: /src/selinux/libsepol/include/sepol/policydb/context.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - context_struct_t*
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 124
    functionDepth: 5
    functionLinenumber: 124
    functionLinenumberEnd: 131
    functionName: context_cpy
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/context.h
    functionUses: 10
    functionsReached:
    - mls_context_cpy
    linkageType: ''
    returnType: int
    signature: "int context_cpy(context_struct_t *dst,\n\t\t\t      const context_struct_t
      *src)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mls_context_destroy
      Src: /src/selinux/libsepol/include/sepol/policydb/context.h:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - c
    argTypes:
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 133
    functionDepth: 4
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: context_destroy
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/context.h
    functionUses: 27
    functionsReached:
    - mls_context_destroy
    linkageType: ''
    returnType: void
    signature: void context_destroy(context_struct_t *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mls_context_cmp
      Src: /src/selinux/libsepol/include/sepol/policydb/context.h:146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - c1
    - c2
    argTypes:
    - context_struct_t*
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: context_cmp
    functionSourceFile: /src/selinux/libsepol/include/sepol/policydb/context.h
    functionUses: 2
    functionsReached:
    - mls_context_cmp
    linkageType: ''
    returnType: int
    signature: "int context_cmp(const context_struct_t *c1,\n\t\t\t      const context_struct_t
      *c2)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sepol_debug
      Src: /src/selinux/libsepol/fuzz/module-package-fuzzer.c:16,1
    - Dst: sepol_policy_file_create
      Src: /src/selinux/libsepol/fuzz/module-package-fuzzer.c:18,1
    - Dst: sepol_policy_file_set_mem
      Src: /src/selinux/libsepol/fuzz/module-package-fuzzer.c:21,1
    - Dst: sepol_module_package_create
      Src: /src/selinux/libsepol/fuzz/module-package-fuzzer.c:23,1
    - Dst: sepol_module_package_read
      Src: /src/selinux/libsepol/fuzz/module-package-fuzzer.c:26,1
    - Dst: fopen
      Src: /src/selinux/libsepol/fuzz/module-package-fuzzer.c:29,1
    - Dst: sepol_module_package_to_cil
      Src: /src/selinux/libsepol/fuzz/module-package-fuzzer.c:37,1
    - Dst: fclose
      Src: /src/selinux/libsepol/fuzz/module-package-fuzzer.c:41,1
    - Dst: sepol_module_package_free
      Src: /src/selinux/libsepol/fuzz/module-package-fuzzer.c:42,1
    - Dst: sepol_policy_file_free
      Src: /src/selinux/libsepol/fuzz/module-package-fuzzer.c:43,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 10
    functionDepth: 11
    functionLinenumber: 10
    functionLinenumberEnd: 47
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/selinux/libsepol/fuzz/module-package-fuzzer.c
    functionUses: 0
    functionsReached:
    - sepol_policy_file_create
    - sepol_policy_file_free
    - fclose
    - sepol_module_package_to_cil
    - sepol_module_package_free
    - sepol_debug
    - sepol_module_package_create
    - sepol_policy_file_set_mem
    - fopen
    - sepol_module_package_read
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: policy_file_init
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:21,1
    - Dst: policydb_write
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - outfp
    argTypes:
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 17
    functionDepth: 8
    functionLinenumber: 17
    functionLinenumberEnd: 25
    functionName: write_binary_policy
    functionSourceFile: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c
    functionUses: 1
    functionsReached:
    - policy_file_init
    - policydb_write
    linkageType: ''
    returnType: int
    signature: int write_binary_policy(policydb_t *p, FILE *outfp)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: sepol_debug
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:34,1
    - Dst: policy_file_init
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:36,1
    - Dst: policydb_init
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:41,1
    - Dst: policydb_read
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:44,1
    - Dst: policydb_load_isids
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:47,1
    - Dst: policydb_optimize
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:51,1
    - Dst: policydb_validate
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:53,1
    - Dst: abort
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:54,1
    - Dst: check_assertions
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:58,1
    - Dst: hierarchy_check_constraints
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:61,1
    - Dst: fopen
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:63,1
    - Dst: write_binary_policy
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:67,1
    - Dst: abort
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:68,1
    - Dst: sepol_kernel_policydb_to_conf
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:71,1
    - Dst: abort
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:72,1
    - Dst: sepol_kernel_policydb_to_cil
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:74,1
    - Dst: abort
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:75,1
    - Dst: sepol_module_policydb_to_cil
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:77,1
    - Dst: abort
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:78,1
    - Dst: link_modules
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:81,1
    - Dst: policydb_init
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:84,1
    - Dst: expand_module
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:87,1
    - Dst: policydb_validate
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:91,1
    - Dst: check_assertions
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:94,1
    - Dst: hierarchy_check_constraints
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:96,1
    - Dst: write_binary_policy
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:98,1
    - Dst: abort
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:99,1
    - Dst: sepol_kernel_policydb_to_conf
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:101,1
    - Dst: abort
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:102,1
    - Dst: sepol_kernel_policydb_to_cil
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:104,1
    - Dst: abort
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:105,1
    - Dst: fclose
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:111,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:113,1
    - Dst: policydb_destroy
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:114,1
    - Dst: sepol_sidtab_destroy
      Src: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c:115,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 68
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 27
    functionDepth: 10
    functionLinenumber: 27
    functionLinenumberEnd: 119
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c
    functionUses: 0
    functionsReached:
    - policydb_validate
    - policydb_load_isids
    - fopen
    - link_modules
    - policydb_read
    - sepol_kernel_policydb_to_cil
    - abort
    - expand_module
    - policydb_optimize
    - check_assertions
    - policy_file_init
    - sepol_debug
    - policydb_destroy
    - write_binary_policy
    - sepol_module_policydb_to_cil
    - fclose
    - hierarchy_check_constraints
    - policydb_init
    - sepol_kernel_policydb_to_conf
    - sepol_sidtab_destroy
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - lvl
    - msg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 15
    functionName: log_handler
    functionSourceFile: /src/selinux/libsepol/fuzz/secilc-fuzzer.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void log_handler(__attribute__((unused)) int lvl,\n\t\t\t__attribute__((unused))
      const char *msg)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cil_set_log_level
      Src: /src/selinux/libsepol/fuzz/secilc-fuzzer.c:33,1
    - Dst: cil_set_log_handler
      Src: /src/selinux/libsepol/fuzz/secilc-fuzzer.c:34,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/fuzz/secilc-fuzzer.c:36,1
    - Dst: cil_set_disable_dontaudit
      Src: /src/selinux/libsepol/fuzz/secilc-fuzzer.c:37,1
    - Dst: cil_set_multiple_decls
      Src: /src/selinux/libsepol/fuzz/secilc-fuzzer.c:38,1
    - Dst: cil_set_disable_neverallow
      Src: /src/selinux/libsepol/fuzz/secilc-fuzzer.c:39,1
    - Dst: cil_set_preserve_tunables
      Src: /src/selinux/libsepol/fuzz/secilc-fuzzer.c:40,1
    - Dst: cil_set_mls
      Src: /src/selinux/libsepol/fuzz/secilc-fuzzer.c:41,1
    - Dst: cil_set_target_platform
      Src: /src/selinux/libsepol/fuzz/secilc-fuzzer.c:42,1
    - Dst: cil_set_policy_version
      Src: /src/selinux/libsepol/fuzz/secilc-fuzzer.c:43,1
    - Dst: cil_set_attrs_expand_generated
      Src: /src/selinux/libsepol/fuzz/secilc-fuzzer.c:44,1
    - Dst: cil_add_file
      Src: /src/selinux/libsepol/fuzz/secilc-fuzzer.c:46,1
    - Dst: cil_compile
      Src: /src/selinux/libsepol/fuzz/secilc-fuzzer.c:49,1
    - Dst: cil_build_policydb
      Src: /src/selinux/libsepol/fuzz/secilc-fuzzer.c:52,1
    - Dst: sepol_policydb_optimize
      Src: /src/selinux/libsepol/fuzz/secilc-fuzzer.c:55,1
    - Dst: fopen
      Src: /src/selinux/libsepol/fuzz/secilc-fuzzer.c:58,1
    - Dst: sepol_policy_file_create
      Src: /src/selinux/libsepol/fuzz/secilc-fuzzer.c:62,1
    - Dst: sepol_policy_file_set_fp
      Src: /src/selinux/libsepol/fuzz/secilc-fuzzer.c:65,1
    - Dst: sepol_policydb_write
      Src: /src/selinux/libsepol/fuzz/secilc-fuzzer.c:67,1
    - Dst: fclose
      Src: /src/selinux/libsepol/fuzz/secilc-fuzzer.c:71,1
    - Dst: cil_db_destroy
      Src: /src/selinux/libsepol/fuzz/secilc-fuzzer.c:73,1
    - Dst: sepol_policydb_free
      Src: /src/selinux/libsepol/fuzz/secilc-fuzzer.c:74,1
    - Dst: sepol_policy_file_free
      Src: /src/selinux/libsepol/fuzz/secilc-fuzzer.c:75,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 17
    functionDepth: 9
    functionLinenumber: 17
    functionLinenumberEnd: 77
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/selinux/libsepol/fuzz/secilc-fuzzer.c
    functionUses: 0
    functionsReached:
    - sepol_policydb_write
    - sepol_policydb_free
    - sepol_policydb_optimize
    - cil_set_log_level
    - cil_set_disable_neverallow
    - fopen
    - cil_set_log_handler
    - cil_db_destroy
    - sepol_policy_file_create
    - cil_set_preserve_tunables
    - cil_db_init
    - cil_add_file
    - cil_set_attrs_expand_generated
    - cil_set_mls
    - cil_build_policydb
    - cil_set_target_platform
    - cil_compile
    - sepol_policy_file_free
    - fclose
    - cil_set_policy_version
    - sepol_policy_file_set_fp
    - cil_set_disable_dontaudit
    - cil_set_multiple_decls
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:18,1
    - Dst: fopen
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:22,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:24,1
    - Dst: strerror
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:25,1
    - Dst: sepol_set_policydb_from_file
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:28,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:29,1
    - Dst: strerror
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:30,1
    - Dst: fclose
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:31,1
    - Dst: fclose
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:34,1
    - Dst: sepol_context_to_sid
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:36,1
    - Dst: strlen
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:36,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:37,1
    - Dst: sepol_context_to_sid
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:41,1
    - Dst: strlen
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:41,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:42,1
    - Dst: sepol_string_to_security_class
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:46,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:47,1
    - Dst: sepol_compute_av
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:51,1
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:54,1
    - Dst: sepol_av_perm_to_string
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:55,1
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:56,1
    - Dst: sepol_av_perm_to_string
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:57,1
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:58,1
    - Dst: sepol_av_perm_to_string
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:59,1
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:60,1
    - Dst: sepol_av_perm_to_string
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:61,1
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:64,1
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_compute_av.c:67,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 9
    functionDepth: 6
    functionLinenumber: 9
    functionLinenumberEnd: 71
    functionName: main
    functionSourceFile: /src/selinux/libsepol/utils/sepol_compute_av.c
    functionUses: 0
    functionsReached:
    - fclose
    - sepol_compute_av
    - sepol_context_to_sid
    - strerror
    - sepol_string_to_security_class
    - fopen
    - sepol_set_policydb_from_file
    - sepol_av_perm_to_string
    - printf
    - fprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:18,1
    - Dst: fopen
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:22,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:24,1
    - Dst: strerror
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:25,1
    - Dst: sepol_set_policydb_from_file
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:28,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:29,1
    - Dst: strerror
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:30,1
    - Dst: fclose
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:31,1
    - Dst: fclose
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:34,1
    - Dst: sepol_context_to_sid
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:36,1
    - Dst: strlen
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:36,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:37,1
    - Dst: sepol_context_to_sid
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:41,1
    - Dst: strlen
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:41,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:42,1
    - Dst: sepol_string_to_security_class
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:46,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:47,1
    - Dst: sepol_change_sid
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:51,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:52,1
    - Dst: strerror
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:53,1
    - Dst: sepol_sid_to_context
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:57,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:58,1
    - Dst: strerror
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:59,1
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:63,1
    - Dst: free
      Src: /src/selinux/libsepol/utils/sepol_compute_relabel.c:64,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 9
    functionDepth: 4
    functionLinenumber: 9
    functionLinenumberEnd: 67
    functionName: main
    functionSourceFile: /src/selinux/libsepol/utils/sepol_compute_relabel.c
    functionUses: 0
    functionsReached:
    - fclose
    - sepol_change_sid
    - sepol_context_to_sid
    - strerror
    - sepol_sid_to_context
    - free
    - sepol_string_to_security_class
    - fopen
    - sepol_set_policydb_from_file
    - printf
    - fprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/libsepol/utils/chkcon.c:13,1
    - Dst: exit
      Src: /src/selinux/libsepol/utils/chkcon.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 15
    functionName: usage
    functionSourceFile: /src/selinux/libsepol/utils/chkcon.c
    functionUses: 1
    functionsReached:
    - printf
    - exit
    linkageType: ''
    returnType: void
    signature: void usage(char *progname)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/selinux/libsepol/utils/chkcon.c:22,1
    - Dst: fopen
      Src: /src/selinux/libsepol/utils/chkcon.c:24,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/chkcon.c:26,1
    - Dst: strerror
      Src: /src/selinux/libsepol/utils/chkcon.c:27,1
    - Dst: exit
      Src: /src/selinux/libsepol/utils/chkcon.c:28,1
    - Dst: sepol_set_policydb_from_file
      Src: /src/selinux/libsepol/utils/chkcon.c:30,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/chkcon.c:31,1
    - Dst: strerror
      Src: /src/selinux/libsepol/utils/chkcon.c:32,1
    - Dst: exit
      Src: /src/selinux/libsepol/utils/chkcon.c:33,1
    - Dst: fclose
      Src: /src/selinux/libsepol/utils/chkcon.c:35,1
    - Dst: sepol_check_context
      Src: /src/selinux/libsepol/utils/chkcon.c:37,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/chkcon.c:38,1
    - Dst: exit
      Src: /src/selinux/libsepol/utils/chkcon.c:39,1
    - Dst: printf
      Src: /src/selinux/libsepol/utils/chkcon.c:42,1
    - Dst: exit
      Src: /src/selinux/libsepol/utils/chkcon.c:43,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 44
    functionName: main
    functionSourceFile: /src/selinux/libsepol/utils/chkcon.c
    functionUses: 0
    functionsReached:
    - fclose
    - sepol_check_context
    - usage
    - strerror
    - fopen
    - sepol_set_policydb_from_file
    - printf
    - exit
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:22,1
    - Dst: fopen
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:27,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:29,1
    - Dst: strerror
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:30,1
    - Dst: sepol_set_policydb_from_file
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:33,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:34,1
    - Dst: strerror
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:35,1
    - Dst: fclose
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:36,1
    - Dst: fclose
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:39,1
    - Dst: sepol_context_to_sid
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:41,1
    - Dst: strlen
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:41,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:42,1
    - Dst: sepol_context_to_sid
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:46,1
    - Dst: strlen
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:46,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:47,1
    - Dst: sepol_string_to_security_class
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:51,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:52,1
    - Dst: strchr
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:60,1
    - Dst: strndup
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:63,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:65,1
    - Dst: strerror
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:67,1
    - Dst: sepol_string_to_av_perm
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:74,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:75,1
    - Dst: strerror
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:77,1
    - Dst: free
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:78,1
    - Dst: free
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:82,1
    - Dst: strchr
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:84,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:88,1
    - Dst: sepol_compute_av_reason_buffer
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:93,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:95,1
    - Dst: strerror
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:96,1
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:101,1
    - Dst: free
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:102,1
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:106,1
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:109,1
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:114,1
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:115,1
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:120,1
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:121,1
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:126,1
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:127,1
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:132,1
    - Dst: free
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:134,1
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_check_access.c:136,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 87
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 9
    functionDepth: 5
    functionLinenumber: 9
    functionLinenumberEnd: 139
    functionName: main
    functionSourceFile: /src/selinux/libsepol/utils/sepol_check_access.c
    functionUses: 0
    functionsReached:
    - fclose
    - sepol_context_to_sid
    - strchr
    - strndup
    - sepol_string_to_av_perm
    - strerror
    - sepol_compute_av_reason_buffer
    - free
    - sepol_string_to_security_class
    - fopen
    - sepol_set_policydb_from_file
    - printf
    - fprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:18,1
    - Dst: fopen
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:22,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:24,1
    - Dst: strerror
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:25,1
    - Dst: sepol_set_policydb_from_file
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:28,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:29,1
    - Dst: strerror
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:30,1
    - Dst: fclose
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:31,1
    - Dst: fclose
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:34,1
    - Dst: sepol_context_to_sid
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:36,1
    - Dst: strlen
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:36,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:37,1
    - Dst: sepol_context_to_sid
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:41,1
    - Dst: strlen
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:41,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:42,1
    - Dst: sepol_string_to_security_class
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:46,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:47,1
    - Dst: sepol_member_sid
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:51,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:52,1
    - Dst: strerror
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:53,1
    - Dst: sepol_sid_to_context
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:57,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:58,1
    - Dst: strerror
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:59,1
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:63,1
    - Dst: free
      Src: /src/selinux/libsepol/utils/sepol_compute_member.c:64,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 9
    functionDepth: 4
    functionLinenumber: 9
    functionLinenumberEnd: 67
    functionName: main
    functionSourceFile: /src/selinux/libsepol/utils/sepol_compute_member.c
    functionUses: 0
    functionsReached:
    - fclose
    - sepol_context_to_sid
    - strerror
    - sepol_sid_to_context
    - sepol_member_sid
    - free
    - sepol_string_to_security_class
    - fopen
    - sepol_set_policydb_from_file
    - printf
    - fprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:18,1
    - Dst: fopen
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:23,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:25,1
    - Dst: strerror
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:26,1
    - Dst: sepol_set_policydb_from_file
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:29,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:30,1
    - Dst: strerror
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:31,1
    - Dst: fclose
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:32,1
    - Dst: fclose
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:35,1
    - Dst: sepol_context_to_sid
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:37,1
    - Dst: strlen
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:37,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:38,1
    - Dst: sepol_context_to_sid
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:42,1
    - Dst: strlen
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:42,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:43,1
    - Dst: sepol_string_to_security_class
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:47,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:48,1
    - Dst: sepol_context_to_sid
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:52,1
    - Dst: strlen
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:52,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:53,1
    - Dst: sepol_validate_transition_reason_buffer
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:57,1
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:61,1
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:65,1
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:66,1
    - Dst: printf
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:70,1
    - Dst: strerror
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:71,1
    - Dst: free
      Src: /src/selinux/libsepol/utils/sepol_validate_transition.c:75,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 9
    functionDepth: 4
    functionLinenumber: 9
    functionLinenumberEnd: 78
    functionName: main
    functionSourceFile: /src/selinux/libsepol/utils/sepol_validate_transition.c
    functionUses: 0
    functionsReached:
    - fclose
    - sepol_context_to_sid
    - strerror
    - sepol_validate_transition_reason_buffer
    - free
    - sepol_string_to_security_class
    - fopen
    - sepol_set_policydb_from_file
    - printf
    - fprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: CuStrAlloc
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: char
    signature: char *CuStrAlloc(int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:45,1
    - Dst: CuStrAlloc
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:46,1
    - Dst: strcpy
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - old
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: CuStrCopy
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - strcpy
    - CuStrAlloc
    - strlen
    linkageType: ''
    returnType: char
    signature: char *CuStrCopy(const char *old)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - CuString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: CuStringInit
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: void
    signature: void CuStringInit(CuString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:65,1
    - Dst: malloc
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: CuStringNew
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: CuString
    signature: CuString *CuStringNew(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:77,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - CuString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: CuStringDelete
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void CuStringDelete(CuString *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - str
    - newSize
    argTypes:
    - CuString*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: CuStringResize
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: void CuStringResize(CuString *str, int newSize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:95,1
    - Dst: CuStringResize
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:97,1
    - Dst: strcat
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - str
    - text
    argTypes:
    - CuString*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 100
    functionName: CuStringAppend
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - CuStringResize
    - strlen
    - strcat
    linkageType: ''
    returnType: void
    signature: void CuStringAppend(CuString *str, const char *text)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CuStringAppend
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - str
    - ch
    argTypes:
    - CuString*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 108
    functionName: CuStringAppendChar
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - CuStringAppend
    linkageType: ''
    returnType: void
    signature: void CuStringAppendChar(CuString *str, char ch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:110,1
    - Dst: va_start
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:115,1
    - Dst: vsprintf
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:116,1
    - Dst: va_end
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:117,1
    - Dst: CuStringAppend
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - str
    - format
    argTypes:
    - CuString*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: CuStringAppendFormat
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - va_end
    - CuStringAppend
    - format
    - vsprintf
    - va_start
    linkageType: ''
    returnType: void
    signature: void CuStringAppendFormat(CuString *str, const char *format, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:123,1
    - Dst: CuStringResize
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:127,1
    - Dst: memmove
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:128,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - str
    - text
    - pos
    argTypes:
    - CuString*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 132
    functionName: CuStringInsert
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - memmove
    - CuStringResize
    - strlen
    - memcpy
    linkageType: ''
    returnType: void
    signature: void CuStringInsert(CuString *str, const char *text, int pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CuStrCopy
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - t
    - name
    - function
    argTypes:
    - CuTest*
    - char*
    - TestFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 146
    functionName: CuTestInit
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - CuStrCopy
    linkageType: ''
    returnType: void
    signature: void CuTestInit(CuTest *t, const char *name, TestFunction function)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ALLOC
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:150,1
    - Dst: CuTestInit
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - function
    argTypes:
    - char*
    - TestFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 148
    functionDepth: 3
    functionLinenumber: 148
    functionLinenumberEnd: 153
    functionName: CuTestNew
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - CU_ALLOC
    - CuTestInit
    linkageType: ''
    returnType: CuTest
    signature: CuTest *CuTestNew(const char *name, TestFunction function)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:159,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - t
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 161
    functionName: CuTestDelete
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void CuTestDelete(CuTest *t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setjmp
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 172
    functionName: CuTestRun
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - setjmp
    linkageType: ''
    returnType: void
    signature: void CuTestRun(CuTest *tc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:179,1
    - Dst: CuStringInsert
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:180,1
    - Dst: longjmp
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - tc
    - file
    - line
    - string
    argTypes:
    - CuTest*
    - char*
    - int
    - CuString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 186
    functionName: CuFailInternal
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - sprintf
    - longjmp
    - CuStringInsert
    linkageType: ''
    returnType: void
    signature: "void CuFailInternal(CuTest *tc, const char *file, int line,\n\t\t\t
      \  CuString *string)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CuStringInit
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:193,1
    - Dst: CuStringAppend
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:195,1
    - Dst: CuStringAppend
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:196,1
    - Dst: CuStringAppend
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:198,1
    - Dst: CuFailInternal
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - tc
    - file
    - line
    - message2
    - message
    argTypes:
    - CuTest*
    - char*
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 200
    functionName: CuFail_Line
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - CuStringAppend
    - CuFailInternal
    - CuStringInit
    linkageType: ''
    returnType: void
    signature: "void CuFail_Line(CuTest *tc, const char *file, int line, const char
      *message2,\n\t\t const char *message)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CuFail_Line
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - tc
    - file
    - line
    - message
    - condition
    argTypes:
    - CuTest*
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 4
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: CuAssert_Line
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - CuFail_Line
    linkageType: ''
    returnType: void
    signature: "void CuAssert_Line(CuTest *tc, const char *file, int line, const char
      *message,\n\t\t   int condition)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:217,1
    - Dst: CuStringInit
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:221,1
    - Dst: CuStringAppend
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:223,1
    - Dst: CuStringAppend
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:224,1
    - Dst: CuStringAppend
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:226,1
    - Dst: CuStringAppend
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:227,1
    - Dst: CuStringAppend
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:228,1
    - Dst: CuStringAppend
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:229,1
    - Dst: CuStringAppend
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:230,1
    - Dst: CuFailInternal
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:231,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 6
    argNames:
    - tc
    - file
    - line
    - message
    - expected
    - actual
    argTypes:
    - CuTest*
    - char*
    - int
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 210
    functionDepth: 3
    functionLinenumber: 210
    functionLinenumberEnd: 232
    functionName: CuAssertStrEquals_LineMsg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - CuFailInternal
    - CuStringAppend
    - strcmp
    - CuStringInit
    linkageType: ''
    returnType: void
    signature: "void CuAssertStrEquals_LineMsg(CuTest *tc, const char *file, int line,\n\t\t\t
      \      const char *message, const char *expected,\n\t\t\t       const char *actual)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:240,1
    - Dst: CuFail_Line
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - tc
    - file
    - line
    - message
    - expected
    - actual
    argTypes:
    - CuTest*
    - char*
    - int
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 234
    functionDepth: 4
    functionLinenumber: 234
    functionLinenumberEnd: 242
    functionName: CuAssertIntEquals_LineMsg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - sprintf
    - CuFail_Line
    linkageType: ''
    returnType: void
    signature: "void CuAssertIntEquals_LineMsg(CuTest *tc, const char *file, int line,\n\t\t\t
      \      const char *message, int expected, int actual)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fabs
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:249,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:251,1
    - Dst: CuFail_Line
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - tc
    - file
    - line
    - message
    - expected
    - actual
    - delta
    argTypes:
    - CuTest*
    - char*
    - int
    - char*
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 244
    functionDepth: 4
    functionLinenumber: 244
    functionLinenumberEnd: 254
    functionName: CuAssertDblEquals_LineMsg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - fabs
    - CuFail_Line
    - sprintf
    linkageType: ''
    returnType: void
    signature: "void CuAssertDblEquals_LineMsg(CuTest *tc, const char *file, int line,\n\t\t\t
      \      const char *message, double expected,\n\t\t\t       double actual, double
      delta)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:263,1
    - Dst: CuFail_Line
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 6
    argNames:
    - tc
    - file
    - line
    - message
    - expected
    - actual
    argTypes:
    - CuTest*
    - char*
    - int
    - char*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 256
    functionDepth: 4
    functionLinenumber: 256
    functionLinenumberEnd: 266
    functionName: CuAssertPtrEquals_LineMsg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - sprintf
    - CuFail_Line
    linkageType: ''
    returnType: void
    signature: "void CuAssertPtrEquals_LineMsg(CuTest *tc, const char *file, int line,\n\t\t\t
      \      const char *message, void *expected,\n\t\t\t       void *actual)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - testSuite
    argTypes:
    - CuSuite*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 277
    functionName: CuSuiteInit
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void CuSuiteInit(CuSuite *testSuite)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ALLOC
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:281,1
    - Dst: CuSuiteInit
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 284
    functionName: CuSuiteNew
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - CU_ALLOC
    - CuSuiteInit
    linkageType: ''
    returnType: CuSuite
    signature: CuSuite *CuSuiteNew(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CuTestDelete
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:291,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - testSuite
    argTypes:
    - CuSuite*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 295
    functionName: CuSuiteDelete
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - CuTestDelete
    - free
    linkageType: ''
    returnType: void
    signature: void CuSuiteDelete(CuSuite *testSuite)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - testSuite
    - testCase
    argTypes:
    - CuSuite*
    - CuTest*
    assertStmts:
    - condition: (testSuite->count < MAX_TEST_CASES)
      pos:
        line_end: 298
        line_start: 298
        source_file: /src/selinux/libsepol/cil/test/unit/CuTest.c
    constantsTouched: []
    func_position:
      end: 302
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 302
    functionName: CuSuiteAdd
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void CuSuiteAdd(CuSuite *testSuite, CuTest *testCase)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CuSuiteAdd
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - testSuite
    - testSuite2
    argTypes:
    - CuSuite*
    - CuSuite*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 311
    functionName: CuSuiteAddSuite
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - CuSuiteAdd
    linkageType: ''
    returnType: void
    signature: void CuSuiteAddSuite(CuSuite *testSuite, CuSuite *testSuite2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CuTestRun
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - testSuite
    argTypes:
    - CuSuite*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 323
    functionName: CuSuiteRun
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - CuTestRun
    linkageType: ''
    returnType: void
    signature: void CuSuiteRun(CuSuite *testSuite)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CuStringAppend
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:330,1
    - Dst: CuStringAppend
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - testSuite
    - summary
    argTypes:
    - CuSuite*
    - CuString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 333
    functionName: CuSuiteSummary
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - CuStringAppend
    linkageType: ''
    returnType: void
    signature: void CuSuiteSummary(CuSuite *testSuite, CuString *summary)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CuStringAppendFormat
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:343,1
    - Dst: CuStringAppend
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:347,1
    - Dst: CuStringAppendFormat
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:349,1
    - Dst: CuStringAppendFormat
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:357,1
    - Dst: CuStringAppend
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:362,1
    - Dst: CuStringAppendFormat
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:364,1
    - Dst: CuStringAppendFormat
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:365,1
    - Dst: CuStringAppendFormat
      Src: /src/selinux/libsepol/cil/test/unit/CuTest.c:367,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - testSuite
    - details
    argTypes:
    - CuSuite*
    - CuString*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 335
    functionDepth: 3
    functionLinenumber: 335
    functionLinenumberEnd: 370
    functionName: CuSuiteDetails
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.c
    functionUses: 0
    functionsReached:
    - CuStringAppend
    - CuStringAppendFormat
    linkageType: ''
    returnType: void
    signature: void CuSuiteDetails(CuSuite *testSuite, CuString *details)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:57,1
    - Dst: fopen
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:63,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:65,1
    - Dst: exit
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:66,1
    - Dst: stat
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:68,1
    - Dst: printf
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:69,1
    - Dst: exit
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:70,1
    - Dst: malloc
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:74,1
    - Dst: fread
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:75,1
    - Dst: exit
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:76,1
    - Dst: memset
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:78,1
    - Dst: fclose
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct cil_file_data**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 85
    functionName: set_cil_file_data
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CilTest.c
    functionUses: 0
    functionsReached:
    - stat
    - fclose
    - fread
    - malloc
    - memset
    - fopen
    - printf
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void set_cil_file_data(struct cil_file_data **data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:89,1
    - Dst: cil_tree_init
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:92,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:99,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:112,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 2
    argNames:
    - test_root
    - line
    argTypes:
    - struct cil_tree**
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 128
    functionName: gen_test_tree
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CilTest.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_tree_init
    - cil_strdup
    - malloc
    linkageType: ''
    returnType: void
    signature: void gen_test_tree(struct cil_tree **test_root, char *line[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:133,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:138,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:140,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 145
    functionName: test_symtab_init
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CilTest.c
    functionUses: 0
    functionsReached:
    - symtab_init
    - free
    - malloc
    - CuAssertIntEquals
    linkageType: ''
    returnType: void
    signature: void test_symtab_init(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:150,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:152,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:153,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 156
    functionName: test_symtab_init_no_table_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CilTest.c
    functionUses: 0
    functionsReached:
    - symtab_init
    - free
    - malloc
    - CuAssertIntEquals
    linkageType: ''
    returnType: void
    signature: void test_symtab_init_no_table_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CuSuiteNew
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:160,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:163,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:164,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:166,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:167,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:169,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:172,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:175,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:178,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:179,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:180,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:181,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:182,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:184,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:186,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:190,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:191,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:192,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:193,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:196,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:197,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:198,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:199,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:200,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:201,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:203,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:204,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:205,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:206,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:209,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:210,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:211,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:212,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:213,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:214,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:216,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:219,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:220,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:221,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:222,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:224,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:225,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:226,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:227,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:228,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:230,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:232,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:234,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:236,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:237,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:238,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:239,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:241,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:242,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:244,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:245,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:248,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:249,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:250,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:251,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:252,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:254,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:255,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:256,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:257,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:258,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:260,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:262,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:264,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:265,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:266,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:267,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:268,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:269,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:271,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:272,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:273,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:274,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:276,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:277,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:278,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:279,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:281,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:282,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:283,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:284,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:286,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:287,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:288,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:289,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:292,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:293,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:294,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:295,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:298,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:299,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:300,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:301,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:302,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:303,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:304,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:306,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:307,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:308,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:309,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:310,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:311,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:312,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:313,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:314,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:315,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:317,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:318,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:319,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:320,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:321,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:322,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:323,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:324,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:325,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:327,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:328,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:329,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:330,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:331,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:332,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:333,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:334,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:336,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:337,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:338,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:339,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:340,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:341,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:342,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:343,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:346,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:347,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:348,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:349,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:350,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:351,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:352,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:353,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:354,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:355,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:356,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:358,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:359,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:360,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:361,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:362,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:363,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:366,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:369,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:373,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:374,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:375,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:376,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:377,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:379,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:380,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:382,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:383,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:385,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:386,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:387,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:389,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:390,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:391,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:392,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:393,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:394,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:395,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:396,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:397,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:398,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:400,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:402,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:404,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:407,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:408,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:410,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:412,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:414,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:416,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:418,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:422,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:423,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:424,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:425,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:426,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:427,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:429,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:432,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:433,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:434,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:435,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:436,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:437,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:439,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:442,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:443,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:444,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:445,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:446,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:447,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:449,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:450,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:451,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:452,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:453,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:454,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:456,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:457,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:458,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:459,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:460,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:461,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:463,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:464,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:465,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:466,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:467,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:468,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:469,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:470,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:471,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:472,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:473,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:474,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:475,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:476,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:478,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:481,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:482,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:483,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:484,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:485,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:486,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:487,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:488,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:490,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:491,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:492,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:493,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:494,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:495,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:497,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:498,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:499,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:500,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:501,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:502,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:504,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:505,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:506,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:507,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:508,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:509,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:511,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:512,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:513,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:514,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:515,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:516,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:519,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:520,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:521,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:522,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:523,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:526,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:527,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:528,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:529,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:531,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:534,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:535,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:537,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:538,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:539,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:541,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:542,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:543,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:544,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:547,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:548,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:549,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:550,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:551,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:552,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:553,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:554,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:555,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:556,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:557,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:558,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:559,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:560,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:561,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:562,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:563,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:564,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:565,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:566,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:567,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:568,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:569,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:570,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:571,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:572,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:573,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:574,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:575,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:576,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:578,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:579,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:580,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:581,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:582,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:583,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:584,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:585,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:586,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:587,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:588,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:589,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:590,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:591,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:592,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:593,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:594,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:595,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:596,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:597,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:599,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:600,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:601,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:602,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:603,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:605,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:615,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:616,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:617,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:618,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:620,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:621,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:622,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:623,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:624,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:625,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:626,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:627,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:630,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:631,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:632,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:634,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:635,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:637,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:638,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:639,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:640,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:641,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:642,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:644,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:645,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:646,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:647,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:648,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:650,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:653,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:654,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:655,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:656,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:657,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:659,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:662,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:663,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:664,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:665,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:666,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:667,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:668,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:669,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:670,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:672,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:673,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:674,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:675,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:676,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:677,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:678,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:679,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:680,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:682,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:684,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:686,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:687,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:688,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:689,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:690,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:691,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:692,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:693,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:694,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:695,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:696,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:697,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:698,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:699,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:700,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:701,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:702,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:703,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:704,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:705,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:706,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:708,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:709,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:710,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:711,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:712,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:713,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:715,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:717,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:718,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 428
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 724
    functionName: CilTreeGetResolveSuite
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CilTest.c
    functionUses: 0
    functionsReached:
    - SUITE_ADD_TEST
    - CuSuiteNew
    linkageType: ''
    returnType: CuSuite
    signature: CuSuite *CilTreeGetResolveSuite(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CuSuiteNew
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:728,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:731,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:732,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:733,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:734,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:735,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:737,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:738,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:739,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:741,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:742,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:743,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:744,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:746,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:747,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:748,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:749,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:750,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:751,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:752,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:753,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:754,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:756,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:757,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:758,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:759,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:760,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:761,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:762,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:763,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:764,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:766,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:767,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:768,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:769,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:770,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:772,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:773,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:774,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:775,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:776,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:777,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:778,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:779,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:780,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:781,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:782,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:784,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:785,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:787,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:788,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:789,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:790,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:792,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:793,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:794,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:795,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:796,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:797,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:798,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:799,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:801,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:802,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:803,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:804,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:805,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:806,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:807,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:808,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:809,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:810,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:811,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:812,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:813,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:815,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:816,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:817,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:818,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:819,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:820,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:821,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:822,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:823,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:825,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:826,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:827,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:828,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:829,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:830,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:831,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:832,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:833,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:834,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:835,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:836,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:838,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:839,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:840,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:841,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:842,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:844,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:845,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:846,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:847,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:848,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:849,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:850,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:851,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:852,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:854,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:855,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:856,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:857,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:858,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:859,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:860,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:861,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:862,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:863,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:864,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:866,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:867,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:868,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:869,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:870,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:871,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:872,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:873,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:875,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:876,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:878,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:879,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:880,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:881,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:882,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:883,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:884,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:885,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:886,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:888,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:889,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:891,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:892,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:893,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:894,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:895,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:896,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:897,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:898,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:899,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:901,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:902,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:903,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:904,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:905,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:906,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:907,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:909,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:910,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:911,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:912,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:913,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:914,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:915,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:917,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:918,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:919,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:920,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:921,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:922,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:923,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:924,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:925,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:926,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:927,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:929,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:930,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:931,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:932,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:933,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:934,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:935,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:936,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:937,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:940,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:941,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:942,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:943,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:944,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:945,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:946,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:947,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:948,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:950,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:951,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:952,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:953,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:954,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:955,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:956,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:958,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:961,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:962,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:963,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:964,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:965,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:966,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:967,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:968,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:969,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:970,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:971,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:973,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:974,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:976,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:977,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:978,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:979,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:980,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:981,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:982,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:985,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:986,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:987,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:988,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:989,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:990,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:991,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:992,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:993,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:994,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:995,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:996,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:998,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:999,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1000,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1001,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1002,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1004,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1005,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1006,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1008,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1009,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1010,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1011,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1012,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1013,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1014,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1015,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1016,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1017,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1018,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1019,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1020,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1021,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1022,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1023,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1024,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1026,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1027,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1028,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1029,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1030,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1031,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1032,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1033,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1034,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1035,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1036,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1037,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1038,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1039,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1040,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1041,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1042,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1043,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1044,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1046,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1047,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1048,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1049,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1050,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1051,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1052,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1053,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1054,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1056,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1057,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1060,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1061,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1062,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1063,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1064,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1065,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1067,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1068,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1069,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1071,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1072,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1073,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1074,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1075,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1076,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1077,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1078,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1079,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1080,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1081,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1082,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1083,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1084,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1085,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1088,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1089,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1090,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1091,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1092,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1093,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1094,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1095,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1096,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1097,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1098,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1100,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1101,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1102,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1103,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1104,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1105,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1106,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1107,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1109,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1110,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1111,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1112,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1113,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1114,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1115,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1116,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1117,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1120,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1121,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1122,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1123,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1124,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1125,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1126,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1127,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1128,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1129,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1130,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1131,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1132,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1133,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1134,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1135,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1137,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1138,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1139,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1140,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1141,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1142,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1143,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1144,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1145,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1146,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1147,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1148,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1149,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1150,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1151,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1152,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1153,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1154,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1155,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1156,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1157,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1158,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1159,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1160,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1161,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1162,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1165,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1167,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1169,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1170,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1172,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1173,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1175,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1177,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1178,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1180,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1182,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1184,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1186,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1188,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1189,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1191,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1194,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1196,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1199,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1201,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1202,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1203,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1205,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1207,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1208,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1209,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1210,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1213,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1216,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1219,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1221,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1222,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1223,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1224,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1227,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1230,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1233,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1235,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1236,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1238,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1240,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1242,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1244,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1246,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1247,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1249,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1252,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1254,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1257,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1259,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1260,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1262,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1265,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1267,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1270,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1272,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1273,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1274,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1276,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1279,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1280,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1281,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1282,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1283,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1284,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1285,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1286,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1287,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1289,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1290,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1291,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1292,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1293,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1294,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1295,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1296,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1297,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1298,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1299,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1301,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1302,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1303,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1304,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1305,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1306,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1307,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1308,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1309,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1310,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1311,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1312,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1313,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1314,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1315,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1316,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1317,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1318,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1319,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1321,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1322,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1324,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1325,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1328,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1329,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1330,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1331,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1332,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1333,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1334,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1335,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1336,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1338,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1341,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1342,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1343,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1344,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1345,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1346,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1347,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1348,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1349,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1350,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1353,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1354,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1355,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1356,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1357,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1358,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1359,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1360,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1361,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1362,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1363,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1366,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1367,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1368,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1369,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1370,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1371,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1372,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1373,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1375,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1376,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1377,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1378,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1379,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1380,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1381,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1382,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1383,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1384,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1385,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1386,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1387,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1389,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1390,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1391,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1392,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1393,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1394,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1395,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1396,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1397,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1398,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1399,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1400,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1401,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1403,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1404,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1405,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1406,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1407,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1408,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1409,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1410,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1411,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1413,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1414,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1415,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1416,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1417,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1418,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1419,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1420,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1421,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1422,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1423,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1425,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1426,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1427,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1428,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1429,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1430,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1431,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1432,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1433,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1435,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1436,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1437,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1438,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1439,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1440,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1441,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1442,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1443,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1444,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1445,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1446,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1447,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1449,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1450,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1451,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1452,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1453,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1454,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1455,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1456,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1457,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1459,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1460,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1461,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1462,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1463,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1464,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1465,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1466,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1467,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1468,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1469,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1471,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1472,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1473,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1474,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1475,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1476,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1477,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1478,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1479,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1480,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1482,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1483,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1484,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1485,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1486,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1487,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1488,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1489,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1490,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1491,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1493,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1494,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1495,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1496,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1497,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1498,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1499,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1500,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1501,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1504,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1505,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1506,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1507,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1508,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1509,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1510,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1511,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1512,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1514,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1515,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1516,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1517,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1518,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1519,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1520,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1521,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1523,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1524,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1525,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1526,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1527,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1528,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1529,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1530,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1531,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1532,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1534,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1535,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1536,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1537,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1538,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1540,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1541,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1542,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1543,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1544,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1545,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1546,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1547,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1548,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1549,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1550,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1551,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1553,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1554,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1555,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1556,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1557,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1558,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1559,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1560,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1561,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1562,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1563,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1566,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1567,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1568,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1569,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1570,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1571,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1572,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1573,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1574,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1575,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1576,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1577,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1578,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1579,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1580,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1581,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1584,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1585,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1586,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1587,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1588,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1589,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1590,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1591,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1592,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1594,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1597,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1598,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1599,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1600,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1601,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1602,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1603,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1604,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1605,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1606,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1607,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1609,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1610,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1611,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1612,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1613,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1614,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1615,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1617,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1618,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1619,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1620,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1621,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1622,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1623,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1624,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1625,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1626,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1627,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1628,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1629,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1630,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1631,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1632,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1633,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1634,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1635,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1636,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1637,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1638,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1639,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1640,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1642,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1643,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1644,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1645,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1646,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1647,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1648,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1649,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1650,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1651,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1652,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1653,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1654,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1655,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1656,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1657,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1658,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1659,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1660,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1661,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1662,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1664,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1665,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1666,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1667,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1668,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1670,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1671,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1672,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1673,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1674,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1675,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1676,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1677,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1678,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1679,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1680,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1681,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1682,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1683,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1684,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1685,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1687,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1688,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1689,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1690,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1691,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1692,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1693,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1694,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1695,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1696,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1697,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1698,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1699,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1700,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1702,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1703,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1704,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1705,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1706,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1708,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1709,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1712,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1713,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1714,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1715,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1716,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1717,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1718,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1719,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1721,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1722,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1723,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1724,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1725,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1726,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1727,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1728,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1729,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1730,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1731,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1732,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1734,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1735,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1736,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1737,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1739,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1740,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1741,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1743,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1744,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1745,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1746,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1747,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1748,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1749,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1750,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1751,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1752,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1754,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1755,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1756,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1758,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1760,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1761,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1763,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1766,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1767,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1768,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1769,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1770,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1771,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1772,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1773,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1774,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1775,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1777,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1778,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1779,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1780,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1781,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1782,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1783,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1784,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1785,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1786,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1787,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1788,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1791,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1792,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1793,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1794,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1795,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1796,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1797,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1798,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1799,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1800,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1801,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1802,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1803,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1804,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1805,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1806,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1807,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1808,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1810,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1811,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1812,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1813,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1814,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1815,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1816,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1817,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1818,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1819,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1820,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1821,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1822,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1823,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1824,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1825,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1826,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1827,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1828,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1829,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1830,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1831,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1832,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1833,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1834,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1835,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1838,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1842,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1843,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1844,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1845,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1846,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1847,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1848,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1849,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1850,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1851,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1852,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1854,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1855,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1856,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1857,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1858,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1859,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1860,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1861,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1862,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1863,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1864,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1866,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1867,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1868,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1869,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1870,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1871,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1872,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1873,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1874,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1876,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1877,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1878,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1879,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1880,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1881,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1882,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1883,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1884,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1885,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1886,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1887,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1888,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1889,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1891,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1893,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 986
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1898
      start: 726
    functionDepth: 2
    functionLinenumber: 726
    functionLinenumberEnd: 1898
    functionName: CilTreeGetBuildSuite
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CilTest.c
    functionUses: 0
    functionsReached:
    - SUITE_ADD_TEST
    - CuSuiteNew
    linkageType: ''
    returnType: CuSuite
    signature: CuSuite *CilTreeGetBuildSuite(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CuSuiteNew
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1902,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1905,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1906,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1909,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1911,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1913,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1914,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1915,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1916,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1917,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1918,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1919,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1922,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1923,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1924,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1925,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1926,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1927,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1928,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1929,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1930,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1933,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1936,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1937,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1940,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1941,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1944,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1947,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1948,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1951,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1952,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1953,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1954,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1956,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1957,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1958,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1960,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1961,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1962,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1964,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1965,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1966,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1968,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1969,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1970,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1972,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1973,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1975,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1976,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1977,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1979,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1980,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1982,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1983,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1984,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1986,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1987,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1988,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1990,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1991,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1993,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1994,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1995,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1997,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1998,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:1999,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2001,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2002,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2003,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2005,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2006,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2007,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2009,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2010,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2012,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2013,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2015,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2016,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2017,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2019,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2020,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2021,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2023,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2024,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2025,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2027,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2028,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2029,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2031,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2032,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2034,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2035,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2037,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2038,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2040,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2041,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2042,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2044,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2046,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2047,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2048,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2050,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2051,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2052,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2054,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2055,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2057,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2058,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2060,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2061,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2062,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2064,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2065,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2067,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2069,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2070,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2071,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2073,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2075,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2076,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2078,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2079,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2084,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2085,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2088,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2089,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2090,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2093,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2096,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2098,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2100,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2102,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2104,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2106,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2109,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2112,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2115,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2118,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2120,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2121,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2122,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2124,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2125,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2126,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2128,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2130,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2133,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2136,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2138,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2140,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2143,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2147,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2148,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2149,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2150,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 157
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2154
      start: 1900
    functionDepth: 2
    functionLinenumber: 1900
    functionLinenumberEnd: 2154
    functionName: CilTreeGetSuite
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CilTest.c
    functionUses: 0
    functionsReached:
    - SUITE_ADD_TEST
    - CuSuiteNew
    linkageType: ''
    returnType: CuSuite
    signature: CuSuite *CilTreeGetSuite(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CuSuiteNew
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2158,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2159,1
    - Dst: SUITE_ADD_TEST
      Src: /src/selinux/libsepol/cil/test/unit/CilTest.c:2160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2163
      start: 2156
    functionDepth: 2
    functionLinenumber: 2156
    functionLinenumberEnd: 2163
    functionName: CilTestFullCil
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CilTest.c
    functionUses: 0
    functionsReached:
    - SUITE_ADD_TEST
    - CuSuiteNew
    linkageType: ''
    returnType: CuSuite
    signature: CuSuite *CilTestFullCil(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_fqn.c:72,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_fqn.c:75,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_fqn.c:77,1
    - Dst: cil_fqn_qualify
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_fqn.c:79,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_fqn.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 81
    functionName: test_cil_qualify_name
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_fqn.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_fqn_qualify
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_qualify_name(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_fqn.c:89,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_fqn.c:92,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_fqn.c:94,1
    - Dst: cil_fqn_qualify
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_fqn.c:96,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_fqn.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 98
    functionName: test_cil_qualify_name_cil_flavor
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_fqn.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_fqn_qualify
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_qualify_name_cil_flavor(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_tree.c:41,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_tree.c:43,1
    - Dst: CuAssertPtrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_tree.c:44,1
    - Dst: CuAssertPtrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_tree.c:45,1
    - Dst: CuAssertPtrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_tree.c:46,1
    - Dst: CuAssertPtrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_tree.c:47,1
    - Dst: CuAssertPtrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_tree.c:48,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_tree.c:49,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_tree.c:50,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_tree.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: test_cil_tree_node_init
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_tree.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - CuAssertPtrEquals
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    - free
    linkageType: ''
    returnType: void
    signature: void test_cil_tree_node_init(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_tree.c:59,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_tree.c:61,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_tree.c:62,1
    - Dst: CuAssertPtrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_tree.c:63,1
    - Dst: CuAssertPtrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_tree.c:64,1
    - Dst: CuAssertPtrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_tree.c:65,1
    - Dst: CuAssertPtrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_tree.c:66,1
    - Dst: CuAssertPtrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_tree.c:67,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_tree.c:68,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_tree.c:69,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_tree.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 72
    functionName: test_cil_tree_init
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_tree.c
    functionUses: 0
    functionsReached:
    - CuAssertPtrEquals
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    - free
    - cil_tree_init
    linkageType: ''
    returnType: void
    signature: void test_cil_tree_init(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - node
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: gen_copy_args
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: struct cil_args_copy
    signature: "struct cil_args_copy *gen_copy_args(struct cil_tree_node *node,\n\t\t\t\t
      \   struct cil_db *db)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:65,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:66,1
    - Dst: cil_set_to_list
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:68,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:71,1
    - Dst: cil_copy_list
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:73,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:74,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:75,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:76,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:78,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 81
    functionName: test_cil_copy_list
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_set_to_list
    - CuAssertStrEquals
    - CuAssertIntEquals
    - gen_test_tree
    - cil_list_init
    - cil_copy_list
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_list(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:90,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:91,1
    - Dst: cil_set_to_list
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:93,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:96,1
    - Dst: cil_copy_list
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:98,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:99,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:100,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:101,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:103,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:108,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:109,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 116
    functionName: test_cil_copy_list_sublist
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_set_to_list
    - CuAssertStrEquals
    - CuAssertIntEquals
    - gen_test_tree
    - cil_list_init
    - cil_copy_list
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_list_sublist(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:126,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:127,1
    - Dst: cil_set_to_list
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:129,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:132,1
    - Dst: cil_copy_list
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:134,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:135,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:136,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:137,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:139,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:144,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:146,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:147,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:149,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 156
    functionName: test_cil_copy_list_sublist_extra
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_set_to_list
    - CuAssertStrEquals
    - CuAssertIntEquals
    - gen_test_tree
    - cil_list_init
    - cil_copy_list
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_list_sublist_extra(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:165,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:168,1
    - Dst: cil_copy_list
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:170,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:171,1
    - Dst: CuAssertPtrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 173
    functionName: test_cil_copy_list_orignull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - CuAssertPtrEquals
    - CuAssertIntEquals
    - gen_test_tree
    - cil_list_init
    - cil_copy_list
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_list_orignull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:180,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:183,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:186,1
    - Dst: cil_gen_block
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:191,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:195,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:198,1
    - Dst: cil_copy_block
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:200,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 203
    functionName: test_cil_copy_block
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_block
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_copy_block
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_block(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:211,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:214,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:217,1
    - Dst: cil_class_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:220,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:223,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:231,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:234,1
    - Dst: cil_gen_perm
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:236,1
    - Dst: cil_copy_perm
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:239,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:241,1
    - Dst: cil_gen_perm
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:242,1
    - Dst: cil_copy_perm
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:246,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:248,1
    - Dst: cil_gen_perm
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:249,1
    - Dst: cil_copy_perm
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:253,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 256
    functionName: test_cil_copy_perm
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_copy_perm
    - cil_gen_perm
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - cil_class_init
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_perm(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:264,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:267,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:270,1
    - Dst: cil_gen_class
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:275,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:279,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:282,1
    - Dst: cil_copy_class
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:284,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 287
    functionName: test_cil_copy_class
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_class
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - cil_copy_class
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_class(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:295,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:298,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:301,1
    - Dst: cil_gen_common
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:306,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:310,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:313,1
    - Dst: cil_copy_common
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:315,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 318
    functionName: test_cil_copy_common
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - cil_copy_common
    - gen_test_tree
    - cil_gen_common
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_common(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:325,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:328,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:331,1
    - Dst: cil_class_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:335,1
    - Dst: cil_symtab_insert
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:340,1
    - Dst: cil_gen_classcommon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:347,1
    - Dst: cil_classcommon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:351,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:354,1
    - Dst: cil_copy_classcommon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:356,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:358,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:359,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 365
    functionName: test_cil_copy_classcommon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_copy_classcommon
    - cil_db_init
    - symtab_init
    - cil_classcommon_init
    - CuAssertIntEquals
    - cil_class_init
    - gen_test_tree
    - CuAssertStrEquals
    - cil_gen_classcommon
    - cil_symtab_insert
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_classcommon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:372,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:375,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:378,1
    - Dst: cil_gen_sid
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:383,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:386,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:389,1
    - Dst: cil_copy_sid
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:391,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 367
    functionDepth: 2
    functionLinenumber: 367
    functionLinenumberEnd: 394
    functionName: test_cil_copy_sid
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - symtab_init
    - cil_gen_sid
    - CuAssertIntEquals
    - gen_test_tree
    - cil_copy_sid
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_sid(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:403,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:406,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:409,1
    - Dst: cil_gen_sidcontext
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:414,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:418,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:421,1
    - Dst: cil_copy_sidcontext
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:423,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:425,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 428
    functionName: test_cil_copy_sidcontext
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - cil_gen_sidcontext
    - cil_copy_sidcontext
    - gen_test_tree
    - CuAssertStrEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_sidcontext(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:435,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:438,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:441,1
    - Dst: cil_gen_user
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:446,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:449,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:452,1
    - Dst: cil_copy_user
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:454,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 430
    functionDepth: 2
    functionLinenumber: 430
    functionLinenumberEnd: 457
    functionName: test_cil_copy_user
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_user
    - cil_db_init
    - symtab_init
    - cil_copy_user
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_user(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:464,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:467,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:470,1
    - Dst: cil_gen_role
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:475,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:478,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:481,1
    - Dst: cil_copy_role
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:483,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 486
    functionName: test_cil_copy_role
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_copy_role
    - cil_gen_role
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_role(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:493,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:496,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:499,1
    - Dst: cil_gen_userrole
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:504,1
    - Dst: cil_userrole_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:508,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:511,1
    - Dst: cil_copy_userrole
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:513,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:515,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:516,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 488
    functionDepth: 2
    functionLinenumber: 488
    functionLinenumberEnd: 522
    functionName: test_cil_copy_userrole
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_copy_userrole
    - cil_db_init
    - symtab_init
    - cil_userrole_init
    - CuAssertIntEquals
    - cil_gen_userrole
    - gen_test_tree
    - CuAssertStrEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_userrole(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:529,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:532,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:535,1
    - Dst: cil_gen_type
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:540,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:543,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:546,1
    - Dst: cil_copy_type
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:548,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 524
    functionDepth: 2
    functionLinenumber: 524
    functionLinenumberEnd: 551
    functionName: test_cil_copy_type
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - cil_copy_type
    - gen_test_tree
    - cil_gen_type
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_type(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:559,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:562,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:565,1
    - Dst: cil_gen_typealias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:570,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:574,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:577,1
    - Dst: cil_copy_typealias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:579,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 553
    functionDepth: 2
    functionLinenumber: 553
    functionLinenumberEnd: 582
    functionName: test_cil_copy_typealias
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - symtab_init
    - cil_copy_typealias
    - CuAssertIntEquals
    - cil_gen_typealias
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_typealias(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:589,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:592,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:595,1
    - Dst: cil_gen_typeattribute
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:600,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:604,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:607,1
    - Dst: cil_copy_typeattribute
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:609,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 612
    functionName: test_cil_copy_typeattribute
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - cil_gen_typeattribute
    - cil_copy_typeattribute
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_typeattribute(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:619,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:622,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:625,1
    - Dst: cil_gen_bool
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:630,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:634,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:637,1
    - Dst: cil_copy_bool
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:639,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:641,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 614
    functionDepth: 2
    functionLinenumber: 614
    functionLinenumberEnd: 644
    functionName: test_cil_copy_bool
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_bool
    - cil_tree_node_init
    - cil_copy_bool
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_bool(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:652,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:655,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:658,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:663,1
    - Dst: cil_type_rule_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:667,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:670,1
    - Dst: cil_copy_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:672,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:674,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:675,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:678,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:681,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 646
    functionDepth: 2
    functionLinenumber: 646
    functionLinenumberEnd: 687
    functionName: test_cil_copy_type_rule
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - symtab_init
    - cil_copy_type_rule
    - CuAssertIntEquals
    - gen_test_tree
    - CuAssertStrEquals
    - cil_type_rule_init
    - cil_gen_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_type_rule(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:695,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:698,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:701,1
    - Dst: cil_gen_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:709,1
    - Dst: cil_avrule_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:712,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:715,1
    - Dst: cil_copy_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:717,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:719,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:720,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:723,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:726,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:729,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:733,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:738,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:744,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 689
    functionDepth: 2
    functionLinenumber: 689
    functionLinenumberEnd: 756
    functionName: test_cil_copy_avrule
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - symtab_init
    - cil_copy_avrule
    - CuAssertIntEquals
    - cil_gen_avrule
    - cil_avrule_init
    - gen_test_tree
    - CuAssertStrEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_avrule(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:763,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:766,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:769,1
    - Dst: cil_gen_sensitivity
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:774,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:778,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:781,1
    - Dst: cil_copy_sens
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:783,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 786
    functionName: test_cil_copy_sens
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - cil_gen_sensitivity
    - gen_test_tree
    - cil_copy_sens
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_sens(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:793,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:796,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:799,1
    - Dst: cil_gen_sensalias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:804,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:808,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:811,1
    - Dst: cil_copy_sensalias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:813,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:815,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 788
    functionDepth: 2
    functionLinenumber: 788
    functionLinenumberEnd: 819
    functionName: test_cil_copy_sensalias
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - cil_gen_sensalias
    - gen_test_tree
    - CuAssertStrEquals
    - cil_copy_sensalias
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_sensalias(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:826,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:829,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:832,1
    - Dst: cil_gen_category
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:837,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:841,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:844,1
    - Dst: cil_copy_cat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:846,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 821
    functionDepth: 2
    functionLinenumber: 821
    functionLinenumberEnd: 849
    functionName: test_cil_copy_cat
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - symtab_init
    - cil_gen_category
    - cil_copy_cat
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_cat(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:856,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:859,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:862,1
    - Dst: cil_gen_catalias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:867,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:871,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:874,1
    - Dst: cil_copy_catalias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:876,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:878,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 851
    functionDepth: 2
    functionLinenumber: 851
    functionLinenumberEnd: 882
    functionName: test_cil_copy_catalias
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - gen_test_tree
    - CuAssertStrEquals
    - cil_copy_catalias
    - cil_gen_catalias
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_catalias(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:927,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:930,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:933,1
    - Dst: cil_gen_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:938,1
    - Dst: cil_senscat_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:944,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:947,1
    - Dst: cil_copy_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:949,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:951,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:952,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:955,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 884
    functionDepth: 2
    functionLinenumber: 884
    functionLinenumberEnd: 964
    functionName: test_cil_copy_senscat
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_senscat_init
    - cil_db_init
    - symtab_init
    - cil_copy_senscat
    - CuAssertIntEquals
    - gen_test_tree
    - CuAssertStrEquals
    - cil_gen_senscat
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_senscat(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:974,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:977,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:980,1
    - Dst: cil_gen_catorder
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:985,1
    - Dst: cil_catorder_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:989,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:992,1
    - Dst: cil_copy_catorder
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:994,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:996,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:997,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 966
    functionDepth: 2
    functionLinenumber: 966
    functionLinenumberEnd: 1005
    functionName: test_cil_copy_catorder
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_copy_catorder
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - cil_gen_catorder
    - gen_test_tree
    - cil_catorder_init
    - CuAssertStrEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_catorder(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1016,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1019,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1022,1
    - Dst: cil_gen_dominance
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1027,1
    - Dst: cil_sens_dominates_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1032,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1035,1
    - Dst: cil_copy_dominance
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1037,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1039,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1040,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1007
    functionDepth: 2
    functionLinenumber: 1007
    functionLinenumberEnd: 1050
    functionName: test_cil_copy_dominance
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_dominance
    - cil_tree_node_init
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - gen_test_tree
    - CuAssertStrEquals
    - cil_copy_dominance
    - cil_sens_dominates_init
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_dominance(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1058,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1061,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1064,1
    - Dst: cil_gen_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1069,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1073,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1076,1
    - Dst: cil_copy_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1078,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1052
    functionDepth: 2
    functionLinenumber: 1052
    functionLinenumberEnd: 1081
    functionName: test_cil_copy_level
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_copy_level
    - cil_gen_level
    - cil_tree_node_init
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_level(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1089,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1092,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1095,1
    - Dst: cil_gen_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1100,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1104,1
    - Dst: cil_level_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1105,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1108,1
    - Dst: cil_copy_fill_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1110,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1112,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1083
    functionDepth: 2
    functionLinenumber: 1083
    functionLinenumberEnd: 1115
    functionName: test_cil_copy_fill_level
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_level
    - cil_tree_node_init
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - gen_test_tree
    - CuAssertStrEquals
    - cil_copy_fill_level
    - cil_level_init
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_fill_level(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1126,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1129,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1132,1
    - Dst: cil_gen_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1137,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1141,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1144,1
    - Dst: cil_copy_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1146,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1117
    functionDepth: 2
    functionLinenumber: 1117
    functionLinenumberEnd: 1149
    functionName: test_cil_copy_context
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_context
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_copy_context
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_context(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1158,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1161,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1164,1
    - Dst: cil_gen_netifcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1169,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1175,1
    - Dst: cil_copy_netifcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1177,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1179,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1180,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1183,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 1151
    functionDepth: 2
    functionLinenumber: 1151
    functionLinenumberEnd: 1189
    functionName: test_cil_copy_netifcon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_netifcon
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - gen_test_tree
    - CuAssertStrEquals
    - cil_copy_netifcon
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_netifcon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1200,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1203,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1206,1
    - Dst: cil_gen_netifcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1211,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1217,1
    - Dst: cil_copy_netifcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1219,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1221,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1222,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1225,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1228,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1231,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1234,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1237,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1191
    functionDepth: 2
    functionLinenumber: 1191
    functionLinenumberEnd: 1243
    functionName: test_cil_copy_netifcon_nested
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_netifcon
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - gen_test_tree
    - CuAssertStrEquals
    - cil_copy_netifcon
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_netifcon_nested(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1253,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1256,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1259,1
    - Dst: cil_gen_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1264,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1268,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1269,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1272,1
    - Dst: cil_copy_fill_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1275,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1277,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1278,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1281,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1284,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1245
    functionDepth: 2
    functionLinenumber: 1245
    functionLinenumberEnd: 1290
    functionName: test_cil_copy_fill_context
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_copy_fill_context
    - cil_gen_context
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - cil_context_init
    - gen_test_tree
    - CuAssertStrEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_fill_context(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1301,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1304,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1307,1
    - Dst: cil_gen_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1312,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1316,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1317,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1320,1
    - Dst: cil_copy_fill_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1323,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1325,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1326,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1329,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1332,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1292
    functionDepth: 2
    functionLinenumber: 1292
    functionLinenumberEnd: 1338
    functionName: test_cil_copy_fill_context_anonrange
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_copy_fill_context
    - cil_gen_context
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - cil_context_init
    - gen_test_tree
    - CuAssertStrEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_fill_context_anonrange(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1345,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1348,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1351,1
    - Dst: cil_gen_call
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1356,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1361,1
    - Dst: cil_copy_call
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1363,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1365,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1340
    functionDepth: 2
    functionLinenumber: 1340
    functionLinenumberEnd: 1368
    functionName: test_cil_copy_call
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - cil_copy_call
    - cil_gen_call
    - gen_test_tree
    - CuAssertStrEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_call(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1377,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1380,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1383,1
    - Dst: cil_gen_optional
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1388,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1392,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1395,1
    - Dst: cil_copy_optional
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1397,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1370
    functionDepth: 2
    functionLinenumber: 1370
    functionLinenumberEnd: 1400
    functionName: test_cil_copy_optional
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_copy_optional
    - cil_tree_node_init
    - cil_db_init
    - symtab_init
    - cil_gen_optional
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_optional(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1407,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1410,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1413,1
    - Dst: cil_gen_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1418,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1424,1
    - Dst: cil_copy_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1426,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1428,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1429,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1432,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1402
    functionDepth: 2
    functionLinenumber: 1402
    functionLinenumberEnd: 1438
    functionName: test_cil_copy_nodecon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_nodecon
    - CuAssertStrEquals
    - cil_copy_nodecon
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_nodecon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1448,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1451,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1454,1
    - Dst: cil_gen_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1459,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1465,1
    - Dst: cil_copy_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1467,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1469,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1470,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1473,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1440
    functionDepth: 2
    functionLinenumber: 1440
    functionLinenumberEnd: 1479
    functionName: test_cil_copy_nodecon_anon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_nodecon
    - CuAssertStrEquals
    - cil_copy_nodecon
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_nodecon_anon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1486,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1489,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1492,1
    - Dst: cil_gen_ipaddr
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1497,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1501,1
    - Dst: cil_copy_fill_ipaddr
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1509,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1510,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1512,1
    - Dst: family::family
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1481
    functionDepth: 2
    functionLinenumber: 1481
    functionLinenumberEnd: 1513
    functionName: test_cil_copy_fill_ipaddr
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - family::family
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - cil_gen_ipaddr
    - cil_copy_fill_ipaddr
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_fill_ipaddr(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1520,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1523,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1526,1
    - Dst: cil_gen_ipaddr
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1531,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1535,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1538,1
    - Dst: cil_copy_ipaddr
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1540,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1515
    functionDepth: 2
    functionLinenumber: 1515
    functionLinenumberEnd: 1543
    functionName: test_cil_copy_ipaddr
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - symtab_init
    - cil_copy_ipaddr
    - CuAssertIntEquals
    - cil_gen_ipaddr
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_ipaddr(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1553,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1556,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1559,1
    - Dst: cil_gen_boolif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1564,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1574,1
    - Dst: cil_copy_conditional
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1576,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1578,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1580,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1545
    functionDepth: 2
    functionLinenumber: 1545
    functionLinenumberEnd: 1585
    functionName: test_cil_copy_conditional
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_boolif
    - cil_copy_conditional
    - cil_tree_node_init
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - gen_test_tree
    - CuAssertStrEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_conditional(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1595,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1598,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1601,1
    - Dst: cil_gen_boolif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1606,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1612,1
    - Dst: cil_copy_boolif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1614,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1587
    functionDepth: 2
    functionLinenumber: 1587
    functionLinenumberEnd: 1617
    functionName: test_cil_copy_boolif
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_boolif
    - cil_tree_node_init
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_copy_boolif
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_boolif(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1627,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1630,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1633,1
    - Dst: cil_gen_constrain
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1638,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1644,1
    - Dst: cil_copy_constrain
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1646,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1648,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1619
    functionDepth: 2
    functionLinenumber: 1619
    functionLinenumberEnd: 1654
    functionName: test_cil_copy_constrain
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - symtab_init
    - CuAssertIntEquals
    - cil_gen_constrain
    - gen_test_tree
    - CuAssertStrEquals
    - cil_copy_constrain
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_constrain(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1719,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1722,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1725,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1730,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1732,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1734,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1736,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1738
      start: 1714
    functionDepth: 2
    functionLinenumber: 1714
    functionLinenumberEnd: 1738
    functionName: test_cil_copy_node_helper_block
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_block(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1745,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1748,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1753,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1755,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1757,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1759,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1761
      start: 1740
    functionDepth: 2
    functionLinenumber: 1740
    functionLinenumberEnd: 1761
    functionName: test_cil_copy_node_helper_block_merge
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_block_merge(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1769,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1772,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1775,1
    - Dst: cil_class_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1780,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1783,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1787,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1791,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1793,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1795,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1797,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1763
    functionDepth: 2
    functionLinenumber: 1763
    functionLinenumberEnd: 1799
    functionName: test_cil_copy_node_helper_perm
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - cil_class_init
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_perm(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1807,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1810,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1815,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1817,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1819,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1821,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1801
    functionDepth: 2
    functionLinenumber: 1801
    functionLinenumberEnd: 1823
    functionName: test_cil_copy_node_helper_perm_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_perm_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1831,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1834,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1837,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1842,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1844,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1846,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1848,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1850
      start: 1825
    functionDepth: 2
    functionLinenumber: 1825
    functionLinenumberEnd: 1850
    functionName: test_cil_copy_node_helper_class
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_class(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1858,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1861,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1866,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1868,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1870,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1872,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1873,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1874
      start: 1852
    functionDepth: 2
    functionLinenumber: 1852
    functionLinenumberEnd: 1874
    functionName: test_cil_copy_node_helper_class_dup_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_class_dup_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1882,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1885,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1888,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1893,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1895,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1897,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1899,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1876
    functionDepth: 2
    functionLinenumber: 1876
    functionLinenumberEnd: 1901
    functionName: test_cil_copy_node_helper_common
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_common(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1909,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1912,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1917,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1919,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1921,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1923,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1903
    functionDepth: 2
    functionLinenumber: 1903
    functionLinenumberEnd: 1925
    functionName: test_cil_copy_node_helper_common_dup_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_common_dup_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1932,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1935,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1938,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1943,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1945,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1947,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1949,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1927
    functionDepth: 2
    functionLinenumber: 1927
    functionLinenumberEnd: 1951
    functionName: test_cil_copy_node_helper_classcommon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_classcommon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1958,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1961,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1964,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1969,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1971,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1973,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1975,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1977
      start: 1953
    functionDepth: 2
    functionLinenumber: 1953
    functionLinenumberEnd: 1977
    functionName: test_cil_copy_node_helper_sid
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_sid(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1984,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1987,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1992,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1994,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1996,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1998,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:1999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1979
    functionDepth: 2
    functionLinenumber: 1979
    functionLinenumberEnd: 2000
    functionName: test_cil_copy_node_helper_sid_merge
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_sid_merge(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2009,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2012,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2015,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2020,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2022,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2024,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2026,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2028
      start: 2002
    functionDepth: 2
    functionLinenumber: 2002
    functionLinenumberEnd: 2028
    functionName: test_cil_copy_node_helper_sidcontext
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_sidcontext(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2035,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2038,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2041,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2046,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2048,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2050,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2052,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2054
      start: 2030
    functionDepth: 2
    functionLinenumber: 2030
    functionLinenumberEnd: 2054
    functionName: test_cil_copy_node_helper_user
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_user(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2061,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2064,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2069,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2071,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2073,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2075,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2077
      start: 2056
    functionDepth: 2
    functionLinenumber: 2056
    functionLinenumberEnd: 2077
    functionName: test_cil_copy_node_helper_user_merge
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_user_merge(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2084,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2087,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2090,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2095,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2097,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2099,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2101,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2103
      start: 2079
    functionDepth: 2
    functionLinenumber: 2079
    functionLinenumberEnd: 2103
    functionName: test_cil_copy_node_helper_role
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_role(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2110,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2113,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2118,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2120,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2122,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2124,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2126
      start: 2105
    functionDepth: 2
    functionLinenumber: 2105
    functionLinenumberEnd: 2126
    functionName: test_cil_copy_node_helper_role_merge
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_role_merge(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2133,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2136,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2139,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2144,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2146,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2148,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2150,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2152
      start: 2128
    functionDepth: 2
    functionLinenumber: 2128
    functionLinenumberEnd: 2152
    functionName: test_cil_copy_node_helper_userrole
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_userrole(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2159,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2162,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2165,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2170,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2172,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2174,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2176,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2178
      start: 2154
    functionDepth: 2
    functionLinenumber: 2154
    functionLinenumberEnd: 2178
    functionName: test_cil_copy_node_helper_type
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_type(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2185,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2188,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2193,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2195,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2197,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2199,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2180
    functionDepth: 2
    functionLinenumber: 2180
    functionLinenumberEnd: 2201
    functionName: test_cil_copy_node_helper_type_merge
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_type_merge(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2208,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2211,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2214,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2219,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2221,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2223,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2225,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2227
      start: 2203
    functionDepth: 2
    functionLinenumber: 2203
    functionLinenumberEnd: 2227
    functionName: test_cil_copy_node_helper_typeattribute
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_typeattribute(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2234,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2237,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2242,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2244,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2246,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2248,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2250
      start: 2229
    functionDepth: 2
    functionLinenumber: 2229
    functionLinenumberEnd: 2250
    functionName: test_cil_copy_node_helper_typeattribute_merge
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_typeattribute_merge(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2258,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2261,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2264,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2269,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2271,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2273,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2275,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2277
      start: 2252
    functionDepth: 2
    functionLinenumber: 2252
    functionLinenumberEnd: 2277
    functionName: test_cil_copy_node_helper_typealias
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_typealias(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2285,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2288,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2293,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2295,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2297,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2299,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2301
      start: 2279
    functionDepth: 2
    functionLinenumber: 2279
    functionLinenumberEnd: 2301
    functionName: test_cil_copy_node_helper_typealias_dup_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_typealias_dup_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2308,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2311,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2314,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2319,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2321,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2323,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2325,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2327
      start: 2303
    functionDepth: 2
    functionLinenumber: 2303
    functionLinenumberEnd: 2327
    functionName: test_cil_copy_node_helper_bool
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_bool(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2334,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2337,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2342,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2344,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2346,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2348,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2350
      start: 2329
    functionDepth: 2
    functionLinenumber: 2329
    functionLinenumberEnd: 2350
    functionName: test_cil_copy_node_helper_bool_dup_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_bool_dup_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2358,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2361,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2364,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2369,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2371,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2373,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2375,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2352
    functionDepth: 2
    functionLinenumber: 2352
    functionLinenumberEnd: 2377
    functionName: test_cil_copy_node_helper_avrule
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_avrule(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2385,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2388,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2391,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2396,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2398,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2400,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2402,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2404
      start: 2379
    functionDepth: 2
    functionLinenumber: 2379
    functionLinenumberEnd: 2404
    functionName: test_cil_copy_node_helper_type_rule
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_type_rule(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2411,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2414,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2417,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2422,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2424,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2426,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2428,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2430
      start: 2406
    functionDepth: 2
    functionLinenumber: 2406
    functionLinenumberEnd: 2430
    functionName: test_cil_copy_node_helper_sens
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_sens(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2437,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2440,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2445,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2447,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2449,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2451,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2453
      start: 2432
    functionDepth: 2
    functionLinenumber: 2432
    functionLinenumberEnd: 2453
    functionName: test_cil_copy_node_helper_sens_merge
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_sens_merge(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2460,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2463,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2466,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2471,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2473,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2475,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2477,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2479
      start: 2455
    functionDepth: 2
    functionLinenumber: 2455
    functionLinenumberEnd: 2479
    functionName: test_cil_copy_node_helper_sensalias
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_sensalias(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2486,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2489,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2494,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2496,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2498,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2500,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2502
      start: 2481
    functionDepth: 2
    functionLinenumber: 2481
    functionLinenumberEnd: 2502
    functionName: test_cil_copy_node_helper_sensalias_dup_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_sensalias_dup_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2509,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2512,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2515,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2520,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2522,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2524,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2526,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2528
      start: 2504
    functionDepth: 2
    functionLinenumber: 2504
    functionLinenumberEnd: 2528
    functionName: test_cil_copy_node_helper_cat
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_cat(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2535,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2538,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2543,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2545,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2547,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2549,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2551
      start: 2530
    functionDepth: 2
    functionLinenumber: 2530
    functionLinenumberEnd: 2551
    functionName: test_cil_copy_node_helper_cat_merge
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_cat_merge(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2558,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2561,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2564,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2569,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2571,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2573,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2575,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2577
      start: 2553
    functionDepth: 2
    functionLinenumber: 2553
    functionLinenumberEnd: 2577
    functionName: test_cil_copy_node_helper_catalias
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_catalias(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2584,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2587,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2592,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2594,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2596,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2598,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2600
      start: 2579
    functionDepth: 2
    functionLinenumber: 2579
    functionLinenumberEnd: 2600
    functionName: test_cil_copy_node_helper_catalias_dup_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_catalias_dup_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2645,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2648,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2651,1
    - Dst: cil_senscat_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2656,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2659,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2663,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2665,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2667,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2670,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2672
      start: 2602
    functionDepth: 2
    functionLinenumber: 2602
    functionLinenumberEnd: 2672
    functionName: test_cil_copy_node_helper_senscat
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_senscat_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_senscat(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2682,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2685,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2688,1
    - Dst: cil_catorder_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2693,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2696,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2700,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2702,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2704,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2706,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2708
      start: 2674
    functionDepth: 2
    functionLinenumber: 2674
    functionLinenumberEnd: 2708
    functionName: test_cil_copy_node_helper_catorder
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    - cil_catorder_init
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_catorder(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2719,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2722,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2725,1
    - Dst: cil_sens_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2730,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2733,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2737,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2739,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2741,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2744,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2746
      start: 2710
    functionDepth: 2
    functionLinenumber: 2710
    functionLinenumberEnd: 2746
    functionName: test_cil_copy_node_helper_dominance
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_sens_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_dominance(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2754,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2757,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2760,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2765,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2767,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2769,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2771,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2748
    functionDepth: 2
    functionLinenumber: 2748
    functionLinenumberEnd: 2773
    functionName: test_cil_copy_node_helper_level
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_level(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2781,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2784,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2789,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2791,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2793,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2795,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2797
      start: 2775
    functionDepth: 2
    functionLinenumber: 2775
    functionLinenumberEnd: 2797
    functionName: test_cil_copy_node_helper_level_dup_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_level_dup_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2808,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2811,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2814,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2819,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2821,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2823,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2825,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2827
      start: 2799
    functionDepth: 2
    functionLinenumber: 2799
    functionLinenumberEnd: 2827
    functionName: test_cil_copy_node_helper_context
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_context(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2838,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2841,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2846,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2848,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2850,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2852,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2854
      start: 2829
    functionDepth: 2
    functionLinenumber: 2829
    functionLinenumberEnd: 2854
    functionName: test_cil_copy_node_helper_context_dup_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_context_dup_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2863,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2866,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2869,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2874,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2876,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2878,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2880,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2882
      start: 2856
    functionDepth: 2
    functionLinenumber: 2856
    functionLinenumberEnd: 2882
    functionName: test_cil_copy_node_helper_netifcon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_netifcon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2889,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2892,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2895,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2900,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2902,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2904,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2906,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2908
      start: 2884
    functionDepth: 2
    functionLinenumber: 2884
    functionLinenumberEnd: 2908
    functionName: test_cil_copy_node_helper_call
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_call(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2917,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2920,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2923,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2928,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2930,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2932,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2934,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2936
      start: 2910
    functionDepth: 2
    functionLinenumber: 2910
    functionLinenumberEnd: 2936
    functionName: test_cil_copy_node_helper_optional
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_optional(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2945,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2948,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2953,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2955,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2957,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2959,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2961
      start: 2938
    functionDepth: 2
    functionLinenumber: 2938
    functionLinenumberEnd: 2961
    functionName: test_cil_copy_node_helper_optional_merge
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_optional_merge(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2968,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2971,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2974,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2979,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2981,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2983,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2985,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2987
      start: 2963
    functionDepth: 2
    functionLinenumber: 2963
    functionLinenumberEnd: 2987
    functionName: test_cil_copy_node_helper_ipaddr
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_ipaddr(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2994,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:2997,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3002,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3004,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3006,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3008,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3010
      start: 2989
    functionDepth: 2
    functionLinenumber: 2989
    functionLinenumberEnd: 3010
    functionName: test_cil_copy_node_helper_ipaddr_dup_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_ipaddr_dup_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3020,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3023,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3026,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3031,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3033,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3035,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3037,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3039
      start: 3012
    functionDepth: 2
    functionLinenumber: 3012
    functionLinenumberEnd: 3039
    functionName: test_cil_copy_node_helper_boolif
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_boolif(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3049,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3052,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3055,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3060,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3062,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3064,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3066,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3068
      start: 3041
    functionDepth: 2
    functionLinenumber: 3041
    functionLinenumberEnd: 3068
    functionName: test_cil_copy_node_helper_mlsconstrain
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_mlsconstrain(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3075,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3078,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3081,1
    - Dst: gen_copy_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3086,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3088,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3091
      start: 3070
    functionDepth: 2
    functionLinenumber: 3070
    functionLinenumberEnd: 3091
    functionName: test_cil_copy_node_helper_orignull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_copy_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_orignull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3100,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3103,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3106,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3112,1
    - Dst: __cil_copy_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3114,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c:3116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3117
      start: 3093
    functionDepth: 2
    functionLinenumber: 3093
    functionLinenumberEnd: 3117
    functionName: test_cil_copy_node_helper_extraargsnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - __cil_copy_node_helper
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_copy_node_helper_extraargsnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:40,1
    - Dst: malloc
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:41,1
    - Dst: memset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:43,1
    - Dst: strncpy
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:44,1
    - Dst: cil_lexer_setup
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:46,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:47,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: test_cil_lexer_setup
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c
    functionUses: 0
    functionsReached:
    - malloc
    - CuAssertIntEquals
    - cil_lexer_setup
    - strncpy
    - free
    - memset
    - strlen
    linkageType: ''
    returnType: void
    signature: void test_cil_lexer_setup(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:55,1
    - Dst: malloc
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:56,1
    - Dst: memset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:58,1
    - Dst: strcpy
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:59,1
    - Dst: cil_lexer_setup
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:61,1
    - Dst: cil_lexer_next
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:65,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:66,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:68,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:69,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:70,1
    - Dst: cil_lexer_next
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:72,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:73,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:75,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:76,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:77,1
    - Dst: cil_lexer_next
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:79,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:80,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:82,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:83,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:84,1
    - Dst: cil_lexer_next
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:86,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:87,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:89,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:90,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:91,1
    - Dst: cil_lexer_next
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:93,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:94,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:96,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:97,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:98,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 101
    functionName: test_cil_lexer_next
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c
    functionUses: 0
    functionsReached:
    - malloc
    - strcpy
    - cil_lexer_next
    - CuAssertIntEquals
    - cil_lexer_setup
    - free
    - memset
    - CuAssertStrEquals
    - strlen
    linkageType: ''
    returnType: void
    signature: void test_cil_lexer_next(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 6
    argNames:
    - db
    - pass
    - changed
    - calls
    - opts
    - macro
    argTypes:
    - struct cil_db*
    - enum cil_pass
    - uint32_t*
    - struct cil_tree_node*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 70
    functionName: gen_resolve_args
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: struct cil_args_resolve
    signature: "struct cil_args_resolve *gen_resolve_args(struct cil_db *db, enum
      cil_pass pass,\n\t\t\t\t\t  uint32_t *changed,\n\t\t\t\t\t  struct cil_tree_node
      *calls,\n\t\t\t\t\t  struct cil_tree_node *opts,\n\t\t\t\t\t  struct cil_tree_node
      *macro)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:79,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:82,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:85,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:88,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:95,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 98
    functionName: test_cil_resolve_name
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_name
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_name(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:107,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:110,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:113,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:116,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:123,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 126
    functionName: test_cil_resolve_name_invalid_type_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_name
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_name_invalid_type_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:131,1
    - Dst: cil_resolve_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:135,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 137
    functionName: test_cil_resolve_ast_curr_null_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_resolve_ast
    - CuAssertIntEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_curr_null_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:149,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:152,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:155,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:158,1
    - Dst: cil_resolve_roleallow
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:160,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 163
    functionName: test_cil_resolve_roleallow
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_roleallow
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_roleallow(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:171,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:174,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:177,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:180,1
    - Dst: cil_resolve_roleallow
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:183,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 185
    functionName: test_cil_resolve_roleallow_srcdecl_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_roleallow
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_roleallow_srcdecl_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:193,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:196,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:199,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:202,1
    - Dst: cil_resolve_roleallow
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:204,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 206
    functionName: test_cil_resolve_roleallow_tgtdecl_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_roleallow
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_roleallow_tgtdecl_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:219,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:222,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:225,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:228,1
    - Dst: cil_resolve_classmapping
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:230,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 233
    functionName: test_cil_resolve_classmapping_anon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_classmapping
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_classmapping_anon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:250,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:253,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:256,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:259,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:263,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:268,1
    - Dst: cil_resolve_classmapping
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:274,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:276,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:277,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 279
    functionName: test_cil_resolve_classmapping_anon_inmacro
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - cil_resolve_classmapping
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_classmapping_anon_inmacro(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:296,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:299,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:302,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:305,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:309,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:314,1
    - Dst: cil_resolve_classmapping
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:320,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:322,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:323,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 325
    functionName: test_cil_resolve_classmapping_anon_inmacro_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - cil_resolve_classmapping
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_classmapping_anon_inmacro_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:355,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:358,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:361,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:364,1
    - Dst: cil_resolve_classmapping
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:366,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 369
    functionName: test_cil_resolve_classmapping_named
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_classmapping
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_classmapping_named(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:399,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:402,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:405,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:408,1
    - Dst: cil_resolve_classmapping
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:410,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 413
    functionName: test_cil_resolve_classmapping_named_classmapname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_classmapping
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_classmapping_named_classmapname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:426,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:429,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:432,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:435,1
    - Dst: cil_resolve_classmapping
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:437,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 440
    functionName: test_cil_resolve_classmapping_anon_classmapname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_classmapping
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_classmapping_anon_classmapname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:453,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:456,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:459,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:462,1
    - Dst: cil_resolve_classmapping
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:464,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 442
    functionDepth: 2
    functionLinenumber: 442
    functionLinenumberEnd: 467
    functionName: test_cil_resolve_classmapping_anon_permset_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_classmapping
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_classmapping_anon_permset_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:476,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:479,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:482,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:485,1
    - Dst: cil_resolve_rolebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:487,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 469
    functionDepth: 2
    functionLinenumber: 469
    functionLinenumberEnd: 490
    functionName: test_cil_resolve_rolebounds
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_rolebounds
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_rolebounds(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:499,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:502,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:505,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:508,1
    - Dst: cil_resolve_rolebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:510,1
    - Dst: cil_resolve_rolebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:511,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 514
    functionName: test_cil_resolve_rolebounds_exists_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_rolebounds
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_rolebounds_exists_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:523,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:526,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:529,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:532,1
    - Dst: cil_resolve_rolebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:534,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 516
    functionDepth: 2
    functionLinenumber: 516
    functionLinenumberEnd: 537
    functionName: test_cil_resolve_rolebounds_role1_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_rolebounds
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_rolebounds_role1_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:546,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:549,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:552,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:555,1
    - Dst: cil_resolve_rolebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:557,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 539
    functionDepth: 2
    functionLinenumber: 539
    functionLinenumberEnd: 560
    functionName: test_cil_resolve_rolebounds_role2_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_rolebounds
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_rolebounds_role2_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:570,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:573,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:576,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:579,1
    - Dst: cil_resolve_sensalias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:581,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 562
    functionDepth: 2
    functionLinenumber: 562
    functionLinenumberEnd: 583
    functionName: test_cil_resolve_sensalias
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_sensalias
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_sensalias(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:590,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:593,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:596,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:599,1
    - Dst: cil_resolve_sensalias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:601,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 585
    functionDepth: 2
    functionLinenumber: 585
    functionLinenumberEnd: 603
    functionName: test_cil_resolve_sensalias_sensdecl_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_sensalias
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_sensalias_sensdecl_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:611,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:614,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:617,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:620,1
    - Dst: cil_resolve_catalias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:622,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 624
    functionName: test_cil_resolve_catalias
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_resolve_catalias
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_catalias(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:631,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:634,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:637,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:640,1
    - Dst: cil_resolve_catalias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:642,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 626
    functionDepth: 2
    functionLinenumber: 626
    functionLinenumberEnd: 644
    functionName: test_cil_resolve_catalias_catdecl_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_resolve_catalias
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_catalias_catdecl_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:653,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:656,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:658,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:661,1
    - Dst: cil_resolve_catorder
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:664,1
    - Dst: cil_resolve_catorder
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:666,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:668,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 646
    functionDepth: 2
    functionLinenumber: 646
    functionLinenumberEnd: 670
    functionName: test_cil_resolve_catorder
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_catorder
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_catorder(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:679,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:682,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:685,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:688,1
    - Dst: cil_resolve_catorder
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:690,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 672
    functionDepth: 2
    functionLinenumber: 672
    functionLinenumberEnd: 693
    functionName: test_cil_resolve_catorder_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_catorder
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_catorder_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:704,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:707,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:709,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:712,1
    - Dst: cil_resolve_dominance
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:715,1
    - Dst: cil_resolve_dominance
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:717,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:719,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 695
    functionDepth: 2
    functionLinenumber: 695
    functionLinenumberEnd: 721
    functionName: test_cil_resolve_dominance
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_dominance
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_dominance(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:732,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:735,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:738,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:741,1
    - Dst: cil_resolve_dominance
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:743,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 723
    functionDepth: 2
    functionLinenumber: 723
    functionLinenumberEnd: 746
    functionName: test_cil_resolve_dominance_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_dominance
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_dominance_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:758,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:761,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:764,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:767,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:770,1
    - Dst: cil_resolve_cat_list
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:776,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 748
    functionDepth: 2
    functionLinenumber: 748
    functionLinenumberEnd: 780
    functionName: test_cil_resolve_cat_list
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_cat_list
    - gen_resolve_args
    - gen_test_tree
    - cil_list_init
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_cat_list(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:792,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:795,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:798,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:801,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:804,1
    - Dst: cil_resolve_cat_list
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:811,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 782
    functionDepth: 2
    functionLinenumber: 782
    functionLinenumberEnd: 815
    functionName: test_cil_resolve_cat_list_catlistnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_cat_list
    - gen_resolve_args
    - gen_test_tree
    - cil_list_init
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_cat_list_catlistnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:827,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:830,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:833,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:836,1
    - Dst: cil_resolve_cat_list
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:844,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 817
    functionDepth: 2
    functionLinenumber: 817
    functionLinenumberEnd: 848
    functionName: test_cil_resolve_cat_list_rescatlistnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_cat_list
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_cat_list_rescatlistnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:870,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:873,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:875,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:878,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:881,1
    - Dst: __cil_verify_order
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:883,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:886,1
    - Dst: cil_resolve_cat_list
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:892,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 850
    functionDepth: 2
    functionLinenumber: 850
    functionLinenumberEnd: 896
    functionName: test_cil_resolve_cat_list_catrange
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_tree_walk
    - CuAssertIntEquals
    - __cil_verify_order
    - cil_resolve_cat_list
    - gen_resolve_args
    - gen_test_tree
    - cil_list_init
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_cat_list_catrange(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:918,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:921,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:924,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:927,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:930,1
    - Dst: cil_resolve_catorder
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:932,1
    - Dst: cil_resolve_cat_list
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:941,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 898
    functionDepth: 2
    functionLinenumber: 898
    functionLinenumberEnd: 945
    functionName: test_cil_resolve_cat_list_catrange_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_cat_list
    - gen_resolve_args
    - gen_test_tree
    - cil_list_init
    - cil_resolve_catorder
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_cat_list_catrange_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:967,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:970,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:973,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:976,1
    - Dst: cil_resolve_catorder
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:978,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:983,1
    - Dst: cil_resolve_cat_list
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:989,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:992,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 947
    functionDepth: 2
    functionLinenumber: 947
    functionLinenumberEnd: 993
    functionName: test_cil_resolve_cat_list_catname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_cat_list
    - gen_resolve_args
    - gen_test_tree
    - cil_list_init
    - cil_resolve_catorder
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_cat_list_catname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1005,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1008,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1011,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1014,1
    - Dst: cil_resolve_catset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1020,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 995
    functionDepth: 2
    functionLinenumber: 995
    functionLinenumberEnd: 1024
    functionName: test_cil_resolve_catset
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_catset
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_catset(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1036,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1039,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1042,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1045,1
    - Dst: cil_resolve_catset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1051,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1026
    functionDepth: 2
    functionLinenumber: 1026
    functionLinenumberEnd: 1055
    functionName: test_cil_resolve_catset_catlist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_catset
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_catset_catlist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1085,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1088,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1091,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1094,1
    - Dst: cil_resolve_catorder
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1095,1
    - Dst: __cil_verify_order
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1096,1
    - Dst: cil_resolve_catrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1100,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1057
    functionDepth: 2
    functionLinenumber: 1057
    functionLinenumberEnd: 1106
    functionName: test_cil_resolve_catrange
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - __cil_verify_order
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_catrange
    - cil_resolve_catorder
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_catrange(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1136,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1139,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1142,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1145,1
    - Dst: cil_resolve_catorder
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1146,1
    - Dst: __cil_verify_order
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1147,1
    - Dst: cil_resolve_catrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1154,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1108
    functionDepth: 2
    functionLinenumber: 1108
    functionLinenumberEnd: 1160
    functionName: test_cil_resolve_catrange_catloworder_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - __cil_verify_order
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_catrange
    - cil_resolve_catorder
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_catrange_catloworder_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1190,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1193,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1196,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1199,1
    - Dst: cil_resolve_catorder
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1200,1
    - Dst: __cil_verify_order
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1201,1
    - Dst: cil_resolve_catrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1205,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1162
    functionDepth: 2
    functionLinenumber: 1162
    functionLinenumberEnd: 1211
    functionName: test_cil_resolve_catrange_cathighorder_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - __cil_verify_order
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_catrange
    - cil_resolve_catorder
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_catrange_cathighorder_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1241,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1244,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1247,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1250,1
    - Dst: cil_resolve_catorder
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1251,1
    - Dst: __cil_verify_order
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1252,1
    - Dst: cil_resolve_catrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1256,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1213
    functionDepth: 2
    functionLinenumber: 1213
    functionLinenumberEnd: 1262
    functionName: test_cil_resolve_catrange_cat1_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - __cil_verify_order
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_catrange
    - cil_resolve_catorder
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_catrange_cat1_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1292,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1295,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1298,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1301,1
    - Dst: cil_resolve_catorder
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1302,1
    - Dst: __cil_verify_order
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1303,1
    - Dst: cil_resolve_catrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1307,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1264
    functionDepth: 2
    functionLinenumber: 1264
    functionLinenumberEnd: 1313
    functionName: test_cil_resolve_catrange_cat2_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - __cil_verify_order
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_catrange
    - cil_resolve_catorder
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_catrange_cat2_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1358,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1361,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1364,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1367,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1369,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1315
    functionDepth: 2
    functionLinenumber: 1315
    functionLinenumberEnd: 1373
    functionName: test_cil_resolve_senscat
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_senscat(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1426,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1429,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1432,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1435,1
    - Dst: cil_resolve_catorder
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1437,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1443,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1375
    functionDepth: 2
    functionLinenumber: 1375
    functionLinenumberEnd: 1447
    functionName: test_cil_resolve_senscat_catrange_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_catorder
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_senscat_catrange_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1496,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1499,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1502,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1505,1
    - Dst: cil_resolve_catset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1510,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1516,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1449
    functionDepth: 2
    functionLinenumber: 1449
    functionLinenumberEnd: 1520
    functionName: test_cil_resolve_senscat_catsetname
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_catset
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_senscat_catsetname(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1539,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1542,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1545,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1548,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1550,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1522
    functionDepth: 2
    functionLinenumber: 1522
    functionLinenumberEnd: 1554
    functionName: test_cil_resolve_senscat_catsetname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_senscat_catsetname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1607,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1610,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1612,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1615,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1618,1
    - Dst: __cil_verify_order
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1620,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1622,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1556
    functionDepth: 2
    functionLinenumber: 1556
    functionLinenumberEnd: 1626
    functionName: test_cil_resolve_senscat_sublist
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_tree_walk
    - CuAssertIntEquals
    - __cil_verify_order
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_senscat_sublist(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1667,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1670,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1673,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1676,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1678,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1682
      start: 1628
    functionDepth: 2
    functionLinenumber: 1628
    functionLinenumberEnd: 1682
    functionName: test_cil_resolve_senscat_missingsens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_senscat_missingsens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1727,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1730,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1733,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1736,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1738,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1684
    functionDepth: 2
    functionLinenumber: 1684
    functionLinenumberEnd: 1742
    functionName: test_cil_resolve_senscat_category_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_senscat_category_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1795,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1798,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1800,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1803,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1806,1
    - Dst: __cil_verify_order
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1808,1
    - Dst: __cil_verify_order
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1809,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1813,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1744
    functionDepth: 2
    functionLinenumber: 1744
    functionLinenumberEnd: 1817
    functionName: test_cil_resolve_senscat_currrangecat
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_tree_walk
    - CuAssertIntEquals
    - __cil_verify_order
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_senscat_currrangecat(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1857,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1860,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1863,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1866,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1868,1
    - Dst: cil_resolve_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1876,1
    - Dst: cil_resolve_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1877,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1879,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1881
      start: 1819
    functionDepth: 2
    functionLinenumber: 1819
    functionLinenumberEnd: 1881
    functionName: test_cil_resolve_level
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_level
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_level(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1962,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1965,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1967,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1970,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1973,1
    - Dst: cil_resolve_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1982,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1983,1
    - Dst: cil_resolve_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1984,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:1985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1986
      start: 1883
    functionDepth: 2
    functionLinenumber: 1883
    functionLinenumberEnd: 1986
    functionName: test_cil_resolve_level_catlist
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_level
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_level_catlist(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2074,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2077,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2079,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2082,1
    - Dst: cil_resolve_catorder
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2089,1
    - Dst: cil_resolve_catset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2094,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2099,1
    - Dst: cil_resolve_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2109,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2111
      start: 1988
    functionDepth: 2
    functionLinenumber: 1988
    functionLinenumberEnd: 2111
    functionName: test_cil_resolve_level_catset
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_catset
    - cil_resolve_level
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_catorder
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_level_catset(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2199,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2202,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2204,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2207,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2210,1
    - Dst: cil_resolve_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2219,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2221
      start: 2113
    functionDepth: 2
    functionLinenumber: 2113
    functionLinenumberEnd: 2221
    functionName: test_cil_resolve_level_catset_name_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_level
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_level_catset_name_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2261,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2264,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2266,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2269,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2272,1
    - Dst: cil_resolve_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2280,1
    - Dst: cil_resolve_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2281,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2283,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2285
      start: 2223
    functionDepth: 2
    functionLinenumber: 2223
    functionLinenumberEnd: 2285
    functionName: test_cil_resolve_level_sens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_level
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_level_sens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2325,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2328,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2331,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2334,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2336,1
    - Dst: cil_resolve_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2343,1
    - Dst: cil_resolve_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2344,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2346,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2348
      start: 2287
    functionDepth: 2
    functionLinenumber: 2287
    functionLinenumberEnd: 2348
    functionName: test_cil_resolve_level_cat_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_level
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_level_cat_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2388,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2391,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2393,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2396,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2399,1
    - Dst: cil_resolve_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2406,1
    - Dst: cil_resolve_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2407,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2409,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2411
      start: 2350
    functionDepth: 2
    functionLinenumber: 2350
    functionLinenumberEnd: 2411
    functionName: test_cil_resolve_level_senscat_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_level
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_level_senscat_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2439,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2442,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2444,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2447,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2450,1
    - Dst: cil_resolve_levelrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2458,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2462
      start: 2413
    functionDepth: 2
    functionLinenumber: 2413
    functionLinenumberEnd: 2462
    functionName: test_cil_resolve_levelrange_namedlvl
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_levelrange
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_levelrange_namedlvl(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2490,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2493,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2495,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2498,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2501,1
    - Dst: cil_resolve_levelrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2509,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2513
      start: 2464
    functionDepth: 2
    functionLinenumber: 2464
    functionLinenumberEnd: 2513
    functionName: test_cil_resolve_levelrange_namedlvl_low_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_levelrange
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_levelrange_namedlvl_low_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2541,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2544,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2546,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2549,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2552,1
    - Dst: cil_resolve_levelrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2560,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2564
      start: 2515
    functionDepth: 2
    functionLinenumber: 2515
    functionLinenumberEnd: 2564
    functionName: test_cil_resolve_levelrange_namedlvl_high_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_levelrange
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_levelrange_namedlvl_high_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2587,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2590,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2592,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2595,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2598,1
    - Dst: cil_resolve_levelrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2606,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2609
      start: 2566
    functionDepth: 2
    functionLinenumber: 2566
    functionLinenumberEnd: 2609
    functionName: test_cil_resolve_levelrange_anonlvl
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_levelrange
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_levelrange_anonlvl(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2632,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2635,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2637,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2640,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2643,1
    - Dst: cil_resolve_levelrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2651,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2654
      start: 2611
    functionDepth: 2
    functionLinenumber: 2611
    functionLinenumberEnd: 2654
    functionName: test_cil_resolve_levelrange_anonlvl_low_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_levelrange
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_levelrange_anonlvl_low_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2677,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2680,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2682,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2685,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2688,1
    - Dst: cil_resolve_levelrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2696,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2656
    functionDepth: 2
    functionLinenumber: 2656
    functionLinenumberEnd: 2699
    functionName: test_cil_resolve_levelrange_anonlvl_high_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_levelrange
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_levelrange_anonlvl_high_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2735,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2738,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2740,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2743,1
    - Dst: cil_resolve_constrain
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2746,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2750
      start: 2701
    functionDepth: 2
    functionLinenumber: 2701
    functionLinenumberEnd: 2750
    functionName: test_cil_resolve_constrain
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_constrain
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_constrain(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2782,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2785,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2788,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2791,1
    - Dst: cil_resolve_constrain
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2793,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2797
      start: 2752
    functionDepth: 2
    functionLinenumber: 2752
    functionLinenumberEnd: 2797
    functionName: test_cil_resolve_constrain_class_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_constrain
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_constrain_class_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2823,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2826,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2829,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2832,1
    - Dst: cil_resolve_constrain
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2834,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2838
      start: 2799
    functionDepth: 2
    functionLinenumber: 2799
    functionLinenumberEnd: 2838
    functionName: test_cil_resolve_constrain_perm_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_constrain
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_constrain_perm_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2853,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2856,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2859,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2862,1
    - Dst: cil_resolve_constrain
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2864,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2867
      start: 2840
    functionDepth: 2
    functionLinenumber: 2840
    functionLinenumberEnd: 2867
    functionName: test_cil_resolve_constrain_perm_resolve_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_constrain
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_constrain_perm_resolve_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2904,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2907,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2910,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2913,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2919,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2924
      start: 2869
    functionDepth: 2
    functionLinenumber: 2869
    functionLinenumberEnd: 2924
    functionName: test_cil_resolve_context
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_context
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_context(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2969,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2972,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2974,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2977,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2985,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2992,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:2998,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3004,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3008,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3009,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3011
      start: 2926
    functionDepth: 2
    functionLinenumber: 2926
    functionLinenumberEnd: 3011
    functionName: test_cil_resolve_context_macro
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_context
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_context_macro(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3056,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3059,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3062,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3065,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3072,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3079,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3085,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3091,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3095,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3096,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3098
      start: 3013
    functionDepth: 2
    functionLinenumber: 3013
    functionLinenumberEnd: 3098
    functionName: test_cil_resolve_context_macro_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_context
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_context_macro_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3137,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3140,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3143,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3146,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3152,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3157
      start: 3100
    functionDepth: 2
    functionLinenumber: 3100
    functionLinenumberEnd: 3157
    functionName: test_cil_resolve_context_namedrange
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_context
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_context_namedrange(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3196,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3199,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3201,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3204,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3211,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3216
      start: 3159
    functionDepth: 2
    functionLinenumber: 3159
    functionLinenumberEnd: 3216
    functionName: test_cil_resolve_context_namedrange_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_context
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_context_namedrange_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3251,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3254,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3257,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3260,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3266,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3270
      start: 3218
    functionDepth: 2
    functionLinenumber: 3218
    functionLinenumberEnd: 3270
    functionName: test_cil_resolve_context_user_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_context
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_context_user_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3305,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3308,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3311,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3314,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3320,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3324
      start: 3272
    functionDepth: 2
    functionLinenumber: 3272
    functionLinenumberEnd: 3324
    functionName: test_cil_resolve_context_role_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_context
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_context_role_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3359,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3362,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3365,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3368,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3374,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3378
      start: 3326
    functionDepth: 2
    functionLinenumber: 3326
    functionLinenumberEnd: 3378
    functionName: test_cil_resolve_context_type_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_context
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_context_type_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3415,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3418,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3421,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3424,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3426,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3434,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3439
      start: 3380
    functionDepth: 2
    functionLinenumber: 3380
    functionLinenumberEnd: 3439
    functionName: test_cil_resolve_context_anon_level_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_context
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_context_anon_level_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3454,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3457,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3460,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3463,1
    - Dst: cil_resolve_roletransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3465,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3468
      start: 3441
    functionDepth: 2
    functionLinenumber: 3441
    functionLinenumberEnd: 3468
    functionName: test_cil_resolve_roletransition
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_roletransition
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_roletransition(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3497,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3500,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3503,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3506,1
    - Dst: cil_resolve_roletransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3508,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3511
      start: 3470
    functionDepth: 2
    functionLinenumber: 3470
    functionLinenumberEnd: 3511
    functionName: test_cil_resolve_roletransition_srcdecl_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_roletransition
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_roletransition_srcdecl_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3540,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3543,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3546,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3549,1
    - Dst: cil_resolve_roletransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3551,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3554
      start: 3513
    functionDepth: 2
    functionLinenumber: 3513
    functionLinenumberEnd: 3554
    functionName: test_cil_resolve_roletransition_tgtdecl_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_roletransition
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_roletransition_tgtdecl_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3583,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3586,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3589,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3592,1
    - Dst: cil_resolve_roletransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3594,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3597
      start: 3556
    functionDepth: 2
    functionLinenumber: 3556
    functionLinenumberEnd: 3597
    functionName: test_cil_resolve_roletransition_resultdecl_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_roletransition
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_roletransition_resultdecl_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3626,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3629,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3631,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3634,1
    - Dst: cil_resolve_typeattributeset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3637,1
    - Dst: cil_resolve_typeattributeset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3639,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3641,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3643
      start: 3599
    functionDepth: 2
    functionLinenumber: 3599
    functionLinenumberEnd: 3643
    functionName: test_cil_resolve_typeattributeset_type_in_multiple_attrs
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_resolve_typeattributeset
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_typeattributeset_type_in_multiple_attrs(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3687,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3690,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3693,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3696,1
    - Dst: cil_resolve_typeattributeset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3698,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3702
      start: 3645
    functionDepth: 2
    functionLinenumber: 3645
    functionLinenumberEnd: 3702
    functionName: test_cil_resolve_typeattributeset_multiple_excludes_with_not
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_resolve_typeattributeset
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_typeattributeset_multiple_excludes_with_not(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3719,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3722,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3725,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3728,1
    - Dst: cil_resolve_typeattributeset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3730,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3733
      start: 3704
    functionDepth: 2
    functionLinenumber: 3704
    functionLinenumberEnd: 3733
    functionName: test_cil_resolve_typeattributeset_multiple_types_with_and
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_resolve_typeattributeset
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_typeattributeset_multiple_types_with_and(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3746,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3749,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3752,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3755,1
    - Dst: cil_resolve_typeattributeset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3757,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3760
      start: 3735
    functionDepth: 2
    functionLinenumber: 3735
    functionLinenumberEnd: 3760
    functionName: test_cil_resolve_typeattributeset_using_attr
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_resolve_typeattributeset
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_typeattributeset_using_attr(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3770,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3773,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3776,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3779,1
    - Dst: cil_resolve_typeattributeset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3781,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3784
      start: 3762
    functionDepth: 2
    functionLinenumber: 3762
    functionLinenumberEnd: 3784
    functionName: test_cil_resolve_typeattributeset_name_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_resolve_typeattributeset
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_typeattributeset_name_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3794,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3797,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3800,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3803,1
    - Dst: cil_resolve_typeattributeset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3805,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3808
      start: 3786
    functionDepth: 2
    functionLinenumber: 3786
    functionLinenumberEnd: 3808
    functionName: test_cil_resolve_typeattributeset_undef_type_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_resolve_typeattributeset
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_typeattributeset_undef_type_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3825,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3828,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3830,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3833,1
    - Dst: cil_resolve_typeattributeset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3836,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3839
      start: 3810
    functionDepth: 2
    functionLinenumber: 3810
    functionLinenumberEnd: 3839
    functionName: test_cil_resolve_typeattributeset_not
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_resolve_typeattributeset
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_typeattributeset_not(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3854,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3857,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3859,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3862,1
    - Dst: cil_resolve_typeattributeset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3865,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3868
      start: 3841
    functionDepth: 2
    functionLinenumber: 3841
    functionLinenumberEnd: 3868
    functionName: test_cil_resolve_typeattributeset_undef_type_not_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_resolve_typeattributeset
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_typeattributeset_undef_type_not_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3877,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3880,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3883,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3886,1
    - Dst: cil_resolve_typealias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3888,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3891
      start: 3870
    functionDepth: 2
    functionLinenumber: 3870
    functionLinenumberEnd: 3891
    functionName: test_cil_resolve_typealias
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_resolve_typealias
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_typealias(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3899,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3902,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3905,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3908,1
    - Dst: cil_resolve_typealias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3910,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3913
      start: 3893
    functionDepth: 2
    functionLinenumber: 3893
    functionLinenumberEnd: 3913
    functionName: test_cil_resolve_typealias_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_resolve_typealias
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_typealias_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3922,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3925,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3928,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3931,1
    - Dst: cil_resolve_typebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3933,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3936
      start: 3915
    functionDepth: 2
    functionLinenumber: 3915
    functionLinenumberEnd: 3936
    functionName: test_cil_resolve_typebounds
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_typebounds
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_typebounds(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3946,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3949,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3952,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3955,1
    - Dst: cil_resolve_typebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3957,1
    - Dst: cil_resolve_typebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3959,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3961,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3963
      start: 3938
    functionDepth: 2
    functionLinenumber: 3938
    functionLinenumberEnd: 3963
    functionName: test_cil_resolve_typebounds_repeatbind_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_typebounds
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_typebounds_repeatbind_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3971,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3974,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3977,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3980,1
    - Dst: cil_resolve_typebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3983,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3985
      start: 3965
    functionDepth: 2
    functionLinenumber: 3965
    functionLinenumberEnd: 3985
    functionName: test_cil_resolve_typebounds_type1_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_typebounds
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_typebounds_type1_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3993,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3996,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:3999,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4002,1
    - Dst: cil_resolve_typebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4005,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4007
      start: 3987
    functionDepth: 2
    functionLinenumber: 3987
    functionLinenumberEnd: 4007
    functionName: test_cil_resolve_typebounds_type2_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_typebounds
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_typebounds_type2_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4015,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4018,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4021,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4024,1
    - Dst: cil_resolve_typepermissive
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4026,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4029
      start: 4009
    functionDepth: 2
    functionLinenumber: 4009
    functionLinenumberEnd: 4029
    functionName: test_cil_resolve_typepermissive
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_typepermissive
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_typepermissive(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4037,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4040,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4043,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4046,1
    - Dst: cil_resolve_typepermissive
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4048,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4051
      start: 4031
    functionDepth: 2
    functionLinenumber: 4031
    functionLinenumberEnd: 4051
    functionName: test_cil_resolve_typepermissive_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_typepermissive
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_typepermissive_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4067,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4070,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4073,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4076,1
    - Dst: cil_resolve_nametypetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4078,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4081
      start: 4053
    functionDepth: 2
    functionLinenumber: 4053
    functionLinenumberEnd: 4081
    functionName: test_cil_resolve_nametypetransition
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_nametypetransition
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_nametypetransition(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4097,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4100,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4103,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4106,1
    - Dst: cil_resolve_nametypetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4108,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4111
      start: 4083
    functionDepth: 2
    functionLinenumber: 4083
    functionLinenumberEnd: 4111
    functionName: test_cil_resolve_nametypetransition_src_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_nametypetransition
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_nametypetransition_src_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4127,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4130,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4133,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4136,1
    - Dst: cil_resolve_nametypetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4138,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4141
      start: 4113
    functionDepth: 2
    functionLinenumber: 4113
    functionLinenumberEnd: 4141
    functionName: test_cil_resolve_nametypetransition_tgt_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_nametypetransition
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_nametypetransition_tgt_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4157,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4160,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4163,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4166,1
    - Dst: cil_resolve_nametypetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4168,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4171
      start: 4143
    functionDepth: 2
    functionLinenumber: 4143
    functionLinenumberEnd: 4171
    functionName: test_cil_resolve_nametypetransition_class_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_nametypetransition
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_nametypetransition_class_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4187,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4190,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4193,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4196,1
    - Dst: cil_resolve_nametypetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4198,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4201
      start: 4173
    functionDepth: 2
    functionLinenumber: 4173
    functionLinenumberEnd: 4201
    functionName: test_cil_resolve_nametypetransition_dest_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_nametypetransition
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_nametypetransition_dest_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4225,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4228,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4231,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4234,1
    - Dst: cil_resolve_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4236,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4241
      start: 4203
    functionDepth: 2
    functionLinenumber: 4203
    functionLinenumberEnd: 4241
    functionName: test_cil_resolve_rangetransition
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_rangetransition
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_rangetransition(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4325,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4328,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4331,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4334,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4337,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4344,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4350,1
    - Dst: cil_resolve_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4358,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4362,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4363,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4365
      start: 4243
    functionDepth: 2
    functionLinenumber: 4243
    functionLinenumberEnd: 4365
    functionName: test_cil_resolve_rangetransition_namedrange_anon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - cil_resolve_rangetransition
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_rangetransition_namedrange_anon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4449,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4452,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4455,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4458,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4461,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4468,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4474,1
    - Dst: cil_resolve_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4482,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4486,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4487,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4489
      start: 4367
    functionDepth: 2
    functionLinenumber: 4367
    functionLinenumberEnd: 4489
    functionName: test_cil_resolve_rangetransition_namedrange_anon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - cil_resolve_rangetransition
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_rangetransition_namedrange_anon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4554,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4557,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4560,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4563,1
    - Dst: cil_resolve_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4565,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4570
      start: 4491
    functionDepth: 2
    functionLinenumber: 4491
    functionLinenumberEnd: 4570
    functionName: test_cil_resolve_rangetransition_namedrange
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_rangetransition
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_rangetransition_namedrange(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4635,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4638,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4641,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4644,1
    - Dst: cil_resolve_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4646,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4651
      start: 4572
    functionDepth: 2
    functionLinenumber: 4572
    functionLinenumberEnd: 4651
    functionName: test_cil_resolve_rangetransition_namedrange_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_rangetransition
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_rangetransition_namedrange_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4675,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4678,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4681,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4684,1
    - Dst: cil_resolve_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4686,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4691
      start: 4653
    functionDepth: 2
    functionLinenumber: 4653
    functionLinenumberEnd: 4691
    functionName: test_cil_resolve_rangetransition_type1_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_rangetransition
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_rangetransition_type1_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4715,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4718,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4721,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4724,1
    - Dst: cil_resolve_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4726,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4731
      start: 4693
    functionDepth: 2
    functionLinenumber: 4693
    functionLinenumberEnd: 4731
    functionName: test_cil_resolve_rangetransition_type2_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_rangetransition
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_rangetransition_type2_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4755,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4758,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4761,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4764,1
    - Dst: cil_resolve_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4766,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4771
      start: 4733
    functionDepth: 2
    functionLinenumber: 4733
    functionLinenumberEnd: 4771
    functionName: test_cil_resolve_rangetransition_class_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_rangetransition
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_rangetransition_class_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4850,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4853,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4856,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4859,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4862,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4869,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4875,1
    - Dst: cil_resolve_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4883,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4887,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4888,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4890
      start: 4773
    functionDepth: 2
    functionLinenumber: 4773
    functionLinenumberEnd: 4890
    functionName: test_cil_resolve_rangetransition_call_level_l_anon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - cil_resolve_rangetransition
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_rangetransition_call_level_l_anon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4969,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4972,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4975,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4978,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4981,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4988,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:4994,1
    - Dst: cil_resolve_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5002,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5006,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5007,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5009
      start: 4892
    functionDepth: 2
    functionLinenumber: 4892
    functionLinenumberEnd: 5009
    functionName: test_cil_resolve_rangetransition_call_level_l_anon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - cil_resolve_rangetransition
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_rangetransition_call_level_l_anon_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5088,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5091,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5094,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5097,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5100,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5107,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5113,1
    - Dst: cil_resolve_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5121,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5125,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5126,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5128
      start: 5011
    functionDepth: 2
    functionLinenumber: 5011
    functionLinenumberEnd: 5128
    functionName: test_cil_resolve_rangetransition_call_level_h_anon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - cil_resolve_rangetransition
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_rangetransition_call_level_h_anon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5207,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5210,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5213,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5216,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5219,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5226,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5232,1
    - Dst: cil_resolve_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5240,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5244,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5245,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5247
      start: 5130
    functionDepth: 2
    functionLinenumber: 5130
    functionLinenumberEnd: 5247
    functionName: test_cil_resolve_rangetransition_call_level_h_anon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - cil_resolve_rangetransition
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_rangetransition_call_level_h_anon_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5271,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5274,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5277,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5280,1
    - Dst: cil_resolve_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5282,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5287
      start: 5249
    functionDepth: 2
    functionLinenumber: 5249
    functionLinenumberEnd: 5287
    functionName: test_cil_resolve_rangetransition_level_l_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_rangetransition
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_rangetransition_level_l_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5311,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5314,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5317,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5320,1
    - Dst: cil_resolve_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5322,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5327
      start: 5289
    functionDepth: 2
    functionLinenumber: 5289
    functionLinenumberEnd: 5327
    functionName: test_cil_resolve_rangetransition_level_h_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_rangetransition
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_rangetransition_level_h_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5389,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5392,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5395,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5398,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5400,1
    - Dst: cil_resolve_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5406,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5411
      start: 5329
    functionDepth: 2
    functionLinenumber: 5329
    functionLinenumberEnd: 5411
    functionName: test_cil_resolve_rangetransition_anon_level_l
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_rangetransition
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_rangetransition_anon_level_l(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5473,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5476,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5479,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5482,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5484,1
    - Dst: cil_resolve_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5490,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5495
      start: 5413
    functionDepth: 2
    functionLinenumber: 5413
    functionLinenumberEnd: 5495
    functionName: test_cil_resolve_rangetransition_anon_level_l_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_rangetransition
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_rangetransition_anon_level_l_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5557,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5560,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5563,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5566,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5568,1
    - Dst: cil_resolve_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5574,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5579
      start: 5497
    functionDepth: 2
    functionLinenumber: 5497
    functionLinenumberEnd: 5579
    functionName: test_cil_resolve_rangetransition_anon_level_h
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_rangetransition
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_rangetransition_anon_level_h(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5640,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5643,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5646,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5649,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5651,1
    - Dst: cil_resolve_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5657,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5662
      start: 5581
    functionDepth: 2
    functionLinenumber: 5581
    functionLinenumberEnd: 5662
    functionName: test_cil_resolve_rangetransition_anon_level_h_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_rangetransition
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_rangetransition_anon_level_h_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5671,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5674,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5677,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5680,1
    - Dst: cil_resolve_classcommon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5682,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5685
      start: 5664
    functionDepth: 2
    functionLinenumber: 5664
    functionLinenumberEnd: 5685
    functionName: test_cil_resolve_classcommon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_classcommon
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_classcommon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5693,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5696,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5699,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5702,1
    - Dst: cil_resolve_classcommon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5704,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5707
      start: 5687
    functionDepth: 2
    functionLinenumber: 5687
    functionLinenumberEnd: 5707
    functionName: test_cil_resolve_classcommon_no_class_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_classcommon
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_classcommon_no_class_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5715,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5718,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5721,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5724,1
    - Dst: cil_resolve_classcommon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5726,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5729
      start: 5709
    functionDepth: 2
    functionLinenumber: 5709
    functionLinenumberEnd: 5729
    functionName: test_cil_resolve_classcommon_no_common_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_classcommon
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_classcommon_no_common_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5751,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5754,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5757,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5760,1
    - Dst: cil_resolve_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5765,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5768
      start: 5731
    functionDepth: 2
    functionLinenumber: 5731
    functionLinenumberEnd: 5768
    functionName: test_cil_resolve_classpermset_named
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_classpermset
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_classpermset_named(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5810,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5813,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5816,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5819,1
    - Dst: cil_resolve_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5824,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5827
      start: 5770
    functionDepth: 2
    functionLinenumber: 5770
    functionLinenumberEnd: 5827
    functionName: test_cil_resolve_classpermset_named_namedpermlist
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_classpermset
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_classpermset_named_namedpermlist(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5849,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5852,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5855,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5858,1
    - Dst: cil_resolve_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5863,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5866
      start: 5829
    functionDepth: 2
    functionLinenumber: 5829
    functionLinenumberEnd: 5866
    functionName: test_cil_resolve_classpermset_named_permlist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_classpermset
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_classpermset_named_permlist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5888,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5891,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5894,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5897,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5900,1
    - Dst: cil_resolve_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5902,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5905
      start: 5868
    functionDepth: 2
    functionLinenumber: 5868
    functionLinenumberEnd: 5905
    functionName: test_cil_resolve_classpermset_named_unnamedcps_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_classpermset
    - cil_classpermset_init
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_classpermset_named_unnamedcps_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5918,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5921,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5924,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5927,1
    - Dst: cil_resolve_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5934,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5937
      start: 5907
    functionDepth: 2
    functionLinenumber: 5907
    functionLinenumberEnd: 5937
    functionName: test_cil_resolve_classpermset_anon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_classpermset
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_classpermset_anon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5954,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5957,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5960,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5963,1
    - Dst: cil_resolve_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5970,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5973
      start: 5939
    functionDepth: 2
    functionLinenumber: 5939
    functionLinenumberEnd: 5973
    functionName: test_cil_resolve_classpermset_anon_namedpermlist
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_classpermset
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_classpermset_anon_namedpermlist(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5986,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5989,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5992,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:5995,1
    - Dst: cil_resolve_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6002,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6005
      start: 5975
    functionDepth: 2
    functionLinenumber: 5975
    functionLinenumberEnd: 6005
    functionName: test_cil_resolve_classpermset_anon_permlist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_classpermset
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_classpermset_anon_permlist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6016,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6019,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6022,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6025,1
    - Dst: cil_resolve_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6027,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6030
      start: 6007
    functionDepth: 2
    functionLinenumber: 6007
    functionLinenumberEnd: 6030
    functionName: test_cil_resolve_avrule
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_avrule
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_avrule(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6071,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6074,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6077,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6080,1
    - Dst: cil_resolve_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6082,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6085
      start: 6032
    functionDepth: 2
    functionLinenumber: 6032
    functionLinenumberEnd: 6085
    functionName: test_cil_resolve_avrule_permset
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_avrule
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_avrule_permset(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6126,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6129,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6132,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6135,1
    - Dst: cil_resolve_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6137,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6140
      start: 6087
    functionDepth: 2
    functionLinenumber: 6087
    functionLinenumberEnd: 6140
    functionName: test_cil_resolve_avrule_permset_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_avrule
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_avrule_permset_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6181,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6184,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6187,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6190,1
    - Dst: cil_resolve_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6192,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6195
      start: 6142
    functionDepth: 2
    functionLinenumber: 6142
    functionLinenumberEnd: 6195
    functionName: test_cil_resolve_avrule_permset_permdne_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_avrule
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_avrule_permset_permdne_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6206,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6209,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6212,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6215,1
    - Dst: cil_resolve_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6217,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6220
      start: 6197
    functionDepth: 2
    functionLinenumber: 6197
    functionLinenumberEnd: 6220
    functionName: test_cil_resolve_avrule_firsttype_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_avrule
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_avrule_firsttype_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6231,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6234,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6237,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6240,1
    - Dst: cil_resolve_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6242,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6245
      start: 6222
    functionDepth: 2
    functionLinenumber: 6222
    functionLinenumberEnd: 6245
    functionName: test_cil_resolve_avrule_secondtype_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_avrule
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_avrule_secondtype_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6256,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6259,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6262,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6265,1
    - Dst: cil_resolve_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6267,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6270
      start: 6247
    functionDepth: 2
    functionLinenumber: 6247
    functionLinenumberEnd: 6270
    functionName: test_cil_resolve_avrule_class_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_avrule
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_avrule_class_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6281,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6284,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6287,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6290,1
    - Dst: cil_resolve_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6292,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6295
      start: 6272
    functionDepth: 2
    functionLinenumber: 6272
    functionLinenumberEnd: 6295
    functionName: test_cil_resolve_avrule_perm_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_avrule
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_avrule_perm_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6310,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6313,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6316,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6319,1
    - Dst: cil_resolve_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6321,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6324
      start: 6297
    functionDepth: 2
    functionLinenumber: 6297
    functionLinenumberEnd: 6324
    functionName: test_cil_resolve_type_rule_transition
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_type_rule_transition(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6353,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6356,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6359,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6362,1
    - Dst: cil_resolve_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6364,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6367
      start: 6326
    functionDepth: 2
    functionLinenumber: 6326
    functionLinenumberEnd: 6367
    functionName: test_cil_resolve_type_rule_transition_srcdecl_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_type_rule_transition_srcdecl_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6396,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6399,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6402,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6405,1
    - Dst: cil_resolve_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6407,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6410
      start: 6369
    functionDepth: 2
    functionLinenumber: 6369
    functionLinenumberEnd: 6410
    functionName: test_cil_resolve_type_rule_transition_tgtdecl_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_type_rule_transition_tgtdecl_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6421,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6424,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6427,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6430,1
    - Dst: cil_resolve_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6432,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6435
      start: 6412
    functionDepth: 2
    functionLinenumber: 6412
    functionLinenumberEnd: 6435
    functionName: test_cil_resolve_type_rule_transition_objdecl_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_type_rule_transition_objdecl_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6464,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6467,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6470,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6473,1
    - Dst: cil_resolve_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6475,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6478
      start: 6437
    functionDepth: 2
    functionLinenumber: 6437
    functionLinenumberEnd: 6478
    functionName: test_cil_resolve_type_rule_transition_resultdecl_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_type_rule_transition_resultdecl_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6490,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6493,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6496,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6499,1
    - Dst: cil_resolve_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6501,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6504
      start: 6480
    functionDepth: 2
    functionLinenumber: 6480
    functionLinenumberEnd: 6504
    functionName: test_cil_resolve_type_rule_change
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_type_rule_change(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6514,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6517,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6520,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6523,1
    - Dst: cil_resolve_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6525,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6528
      start: 6506
    functionDepth: 2
    functionLinenumber: 6506
    functionLinenumberEnd: 6528
    functionName: test_cil_resolve_type_rule_change_srcdecl_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_type_rule_change_srcdecl_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6538,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6541,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6544,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6547,1
    - Dst: cil_resolve_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6549,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6552
      start: 6530
    functionDepth: 2
    functionLinenumber: 6530
    functionLinenumberEnd: 6552
    functionName: test_cil_resolve_type_rule_change_tgtdecl_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_type_rule_change_tgtdecl_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6562,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6565,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6568,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6571,1
    - Dst: cil_resolve_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6573,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6576
      start: 6554
    functionDepth: 2
    functionLinenumber: 6554
    functionLinenumberEnd: 6576
    functionName: test_cil_resolve_type_rule_change_objdecl_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_type_rule_change_objdecl_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6587,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6590,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6593,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6596,1
    - Dst: cil_resolve_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6598,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6601
      start: 6578
    functionDepth: 2
    functionLinenumber: 6578
    functionLinenumberEnd: 6601
    functionName: test_cil_resolve_type_rule_change_resultdecl_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_type_rule_change_resultdecl_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6613,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6616,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6619,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6622,1
    - Dst: cil_resolve_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6624,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6627
      start: 6603
    functionDepth: 2
    functionLinenumber: 6603
    functionLinenumberEnd: 6627
    functionName: test_cil_resolve_type_rule_member
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_type_rule_member(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6637,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6640,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6643,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6646,1
    - Dst: cil_resolve_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6648,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6651
      start: 6629
    functionDepth: 2
    functionLinenumber: 6629
    functionLinenumberEnd: 6651
    functionName: test_cil_resolve_type_rule_member_srcdecl_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_type_rule_member_srcdecl_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6661,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6664,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6667,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6670,1
    - Dst: cil_resolve_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6672,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6675
      start: 6653
    functionDepth: 2
    functionLinenumber: 6653
    functionLinenumberEnd: 6675
    functionName: test_cil_resolve_type_rule_member_tgtdecl_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_type_rule_member_tgtdecl_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6685,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6688,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6691,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6694,1
    - Dst: cil_resolve_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6696,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6699
      start: 6677
    functionDepth: 2
    functionLinenumber: 6677
    functionLinenumberEnd: 6699
    functionName: test_cil_resolve_type_rule_member_objdecl_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_type_rule_member_objdecl_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6710,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6713,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6716,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6719,1
    - Dst: cil_resolve_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6721,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6724
      start: 6701
    functionDepth: 2
    functionLinenumber: 6701
    functionLinenumberEnd: 6724
    functionName: test_cil_resolve_type_rule_member_resultdecl_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_type_rule_member_resultdecl_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6745,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6748,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6751,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6754,1
    - Dst: cil_resolve_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6756,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6761
      start: 6726
    functionDepth: 2
    functionLinenumber: 6726
    functionLinenumberEnd: 6761
    functionName: test_cil_resolve_filecon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_filecon
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_filecon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6782,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6785,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6788,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6791,1
    - Dst: cil_resolve_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6793,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6798
      start: 6763
    functionDepth: 2
    functionLinenumber: 6763
    functionLinenumberEnd: 6798
    functionName: test_cil_resolve_filecon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_filecon
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_filecon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6816,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6819,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6822,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6825,1
    - Dst: cil_resolve_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6827,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6831
      start: 6800
    functionDepth: 2
    functionLinenumber: 6800
    functionLinenumberEnd: 6831
    functionName: test_cil_resolve_filecon_anon_context
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_filecon
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_filecon_anon_context(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6850,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6853,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6855,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6858,1
    - Dst: cil_resolve_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6861,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6865
      start: 6833
    functionDepth: 2
    functionLinenumber: 6833
    functionLinenumberEnd: 6865
    functionName: test_cil_resolve_filecon_anon_context_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_filecon
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_filecon_anon_context_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6885,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6888,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6891,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6894,1
    - Dst: cil_resolve_portcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6896,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6901
      start: 6867
    functionDepth: 2
    functionLinenumber: 6867
    functionLinenumberEnd: 6901
    functionName: test_cil_resolve_portcon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_portcon
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_portcon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6921,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6924,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6927,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6930,1
    - Dst: cil_resolve_portcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6932,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6937
      start: 6903
    functionDepth: 2
    functionLinenumber: 6903
    functionLinenumberEnd: 6937
    functionName: test_cil_resolve_portcon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_portcon
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_portcon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6954,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6957,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6960,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6963,1
    - Dst: cil_resolve_portcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6965,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6969
      start: 6939
    functionDepth: 2
    functionLinenumber: 6939
    functionLinenumberEnd: 6969
    functionName: test_cil_resolve_portcon_anon_context
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_portcon
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_portcon_anon_context(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6988,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6991,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6994,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6997,1
    - Dst: cil_resolve_portcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:6999,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7003
      start: 6971
    functionDepth: 2
    functionLinenumber: 6971
    functionLinenumberEnd: 7003
    functionName: test_cil_resolve_portcon_anon_context_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_portcon
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_portcon_anon_context_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7023,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7026,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7029,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7032,1
    - Dst: cil_resolve_genfscon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7034,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7039
      start: 7005
    functionDepth: 2
    functionLinenumber: 7005
    functionLinenumberEnd: 7039
    functionName: test_cil_resolve_genfscon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_genfscon
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_genfscon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7059,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7062,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7065,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7068,1
    - Dst: cil_resolve_genfscon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7070,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7075
      start: 7041
    functionDepth: 2
    functionLinenumber: 7041
    functionLinenumberEnd: 7075
    functionName: test_cil_resolve_genfscon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_genfscon
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_genfscon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7094,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7097,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7100,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7103,1
    - Dst: cil_resolve_genfscon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7105,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7109
      start: 7077
    functionDepth: 2
    functionLinenumber: 7077
    functionLinenumberEnd: 7109
    functionName: test_cil_resolve_genfscon_anon_context
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_genfscon
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_genfscon_anon_context(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7128,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7131,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7134,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7137,1
    - Dst: cil_resolve_genfscon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7139,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7143
      start: 7111
    functionDepth: 2
    functionLinenumber: 7111
    functionLinenumberEnd: 7143
    functionName: test_cil_resolve_genfscon_anon_context_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_genfscon
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_genfscon_anon_context_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7165,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7168,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7171,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7174,1
    - Dst: cil_resolve_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7176,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7181
      start: 7145
    functionDepth: 2
    functionLinenumber: 7145
    functionLinenumberEnd: 7181
    functionName: test_cil_resolve_nodecon_ipv4
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_nodecon
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_nodecon_ipv4(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7257,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7260,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7263,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7266,1
    - Dst: cil_resolve_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7268,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7273
      start: 7183
    functionDepth: 2
    functionLinenumber: 7183
    functionLinenumberEnd: 7273
    functionName: test_cil_resolve_nodecon_ipv6
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_nodecon
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_nodecon_ipv6(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7295,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7298,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7301,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7304,1
    - Dst: cil_resolve_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7306,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7311
      start: 7275
    functionDepth: 2
    functionLinenumber: 7275
    functionLinenumberEnd: 7311
    functionName: test_cil_resolve_nodecon_anonipaddr_ipv4
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_nodecon
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_nodecon_anonipaddr_ipv4(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7333,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7336,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7339,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7342,1
    - Dst: cil_resolve_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7344,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7349
      start: 7313
    functionDepth: 2
    functionLinenumber: 7313
    functionLinenumberEnd: 7349
    functionName: test_cil_resolve_nodecon_anonnetmask_ipv4
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_nodecon
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_nodecon_anonnetmask_ipv4(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7422,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7425,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7428,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7431,1
    - Dst: cil_resolve_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7433,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7438
      start: 7351
    functionDepth: 2
    functionLinenumber: 7351
    functionLinenumberEnd: 7438
    functionName: test_cil_resolve_nodecon_anonipaddr_ipv6
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_nodecon
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_nodecon_anonipaddr_ipv6(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7467,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7470,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7473,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7476,1
    - Dst: cil_resolve_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7478,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7483
      start: 7440
    functionDepth: 2
    functionLinenumber: 7440
    functionLinenumberEnd: 7483
    functionName: test_cil_resolve_nodecon_anonnetmask_ipv6
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_nodecon
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_nodecon_anonnetmask_ipv6(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7512,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7515,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7518,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7521,1
    - Dst: cil_resolve_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7523,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7528
      start: 7485
    functionDepth: 2
    functionLinenumber: 7485
    functionLinenumberEnd: 7528
    functionName: test_cil_resolve_nodecon_diffipfam_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_nodecon
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_nodecon_diffipfam_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7550,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7553,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7556,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7559,1
    - Dst: cil_resolve_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7561,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7566
      start: 7530
    functionDepth: 2
    functionLinenumber: 7530
    functionLinenumberEnd: 7566
    functionName: test_cil_resolve_nodecon_context_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_nodecon
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_nodecon_context_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7588,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7591,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7594,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7597,1
    - Dst: cil_resolve_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7599,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7604
      start: 7568
    functionDepth: 2
    functionLinenumber: 7568
    functionLinenumberEnd: 7604
    functionName: test_cil_resolve_nodecon_ipaddr_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_nodecon
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_nodecon_ipaddr_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7625,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7628,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7631,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7634,1
    - Dst: cil_resolve_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7636,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7641
      start: 7606
    functionDepth: 2
    functionLinenumber: 7606
    functionLinenumberEnd: 7641
    functionName: test_cil_resolve_nodecon_netmask_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_nodecon
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_nodecon_netmask_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7661,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7664,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7667,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7670,1
    - Dst: cil_resolve_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7672,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7677
      start: 7643
    functionDepth: 2
    functionLinenumber: 7643
    functionLinenumberEnd: 7677
    functionName: test_cil_resolve_nodecon_anon_context
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_nodecon
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_nodecon_anon_context(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7697,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7700,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7703,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7706,1
    - Dst: cil_resolve_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7708,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7712
      start: 7679
    functionDepth: 2
    functionLinenumber: 7679
    functionLinenumberEnd: 7712
    functionName: test_cil_resolve_nodecon_anon_context_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_nodecon
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_nodecon_anon_context_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7751,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7754,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7757,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7760,1
    - Dst: cil_resolve_netifcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7762,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7765
      start: 7714
    functionDepth: 2
    functionLinenumber: 7714
    functionLinenumberEnd: 7765
    functionName: test_cil_resolve_netifcon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - cil_resolve_netifcon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_netifcon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7778,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7781,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7784,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7787,1
    - Dst: cil_resolve_netifcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7789,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7791
      start: 7767
    functionDepth: 2
    functionLinenumber: 7767
    functionLinenumberEnd: 7791
    functionName: test_cil_resolve_netifcon_otf_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - cil_resolve_netifcon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_netifcon_otf_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7804,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7807,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7810,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7813,1
    - Dst: cil_resolve_netifcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7815,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7817
      start: 7793
    functionDepth: 2
    functionLinenumber: 7793
    functionLinenumberEnd: 7817
    functionName: test_cil_resolve_netifcon_interface_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - cil_resolve_netifcon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_netifcon_interface_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7838,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7841,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7844,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7847,1
    - Dst: cil_resolve_netifcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7849,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7853
      start: 7819
    functionDepth: 2
    functionLinenumber: 7819
    functionLinenumberEnd: 7853
    functionName: test_cil_resolve_netifcon_unnamed
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - cil_resolve_netifcon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_netifcon_unnamed(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7873,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7876,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7879,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7882,1
    - Dst: cil_resolve_netifcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7884,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7888
      start: 7855
    functionDepth: 2
    functionLinenumber: 7855
    functionLinenumberEnd: 7888
    functionName: test_cil_resolve_netifcon_unnamed_packet_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - cil_resolve_netifcon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_netifcon_unnamed_packet_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7909,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7912,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7915,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7918,1
    - Dst: cil_resolve_netifcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7920,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7924
      start: 7890
    functionDepth: 2
    functionLinenumber: 7890
    functionLinenumberEnd: 7924
    functionName: test_cil_resolve_netifcon_unnamed_otf_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - cil_resolve_netifcon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_netifcon_unnamed_otf_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7933,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7936,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7939,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7942,1
    - Dst: cil_resolve_netifcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7944,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7946
      start: 7926
    functionDepth: 2
    functionLinenumber: 7926
    functionLinenumberEnd: 7946
    functionName: test_cil_resolve_netifcon_sublist_secondlist_missing_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - cil_resolve_netifcon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_netifcon_sublist_secondlist_missing_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7956,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7959,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7962,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7965,1
    - Dst: cil_resolve_pirqcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7967,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7969
      start: 7948
    functionDepth: 2
    functionLinenumber: 7948
    functionLinenumberEnd: 7969
    functionName: test_cil_resolve_pirqcon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_pirqcon
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_pirqcon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7979,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7982,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7985,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7988,1
    - Dst: cil_resolve_pirqcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7990,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:7991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7992
      start: 7971
    functionDepth: 2
    functionLinenumber: 7971
    functionLinenumberEnd: 7992
    functionName: test_cil_resolve_pirqcon_context_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_pirqcon
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_pirqcon_context_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8029,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8032,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8034,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8037,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8040,1
    - Dst: cil_resolve_pirqcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8046,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8051
      start: 7994
    functionDepth: 2
    functionLinenumber: 7994
    functionLinenumberEnd: 8051
    functionName: test_cil_resolve_pirqcon_anon_context
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_pirqcon
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_pirqcon_anon_context(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8060,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8063,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8066,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8069,1
    - Dst: cil_resolve_pirqcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8071,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8073
      start: 8053
    functionDepth: 2
    functionLinenumber: 8053
    functionLinenumberEnd: 8073
    functionName: test_cil_resolve_pirqcon_anon_context_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_pirqcon
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_pirqcon_anon_context_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8083,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8086,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8089,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8092,1
    - Dst: cil_resolve_iomemcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8094,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8096
      start: 8075
    functionDepth: 2
    functionLinenumber: 8075
    functionLinenumberEnd: 8096
    functionName: test_cil_resolve_iomemcon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_resolve_iomemcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_iomemcon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8106,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8109,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8112,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8115,1
    - Dst: cil_resolve_iomemcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8117,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8119
      start: 8098
    functionDepth: 2
    functionLinenumber: 8098
    functionLinenumberEnd: 8119
    functionName: test_cil_resolve_iomemcon_context_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_resolve_iomemcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_iomemcon_context_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8156,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8159,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8162,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8165,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8167,1
    - Dst: cil_resolve_iomemcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8173,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8178
      start: 8121
    functionDepth: 2
    functionLinenumber: 8121
    functionLinenumberEnd: 8178
    functionName: test_cil_resolve_iomemcon_anon_context
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_resolve_iomemcon
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_iomemcon_anon_context(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8187,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8190,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8193,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8196,1
    - Dst: cil_resolve_iomemcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8198,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8200
      start: 8180
    functionDepth: 2
    functionLinenumber: 8180
    functionLinenumberEnd: 8200
    functionName: test_cil_resolve_iomemcon_anon_context_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_resolve_iomemcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_iomemcon_anon_context_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8210,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8213,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8216,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8219,1
    - Dst: cil_resolve_ioportcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8221,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8223
      start: 8202
    functionDepth: 2
    functionLinenumber: 8202
    functionLinenumberEnd: 8223
    functionName: test_cil_resolve_ioportcon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_ioportcon
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ioportcon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8233,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8236,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8239,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8242,1
    - Dst: cil_resolve_ioportcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8244,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8246
      start: 8225
    functionDepth: 2
    functionLinenumber: 8225
    functionLinenumberEnd: 8246
    functionName: test_cil_resolve_ioportcon_context_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_ioportcon
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ioportcon_context_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8283,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8286,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8289,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8292,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8294,1
    - Dst: cil_resolve_ioportcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8300,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8305
      start: 8248
    functionDepth: 2
    functionLinenumber: 8248
    functionLinenumberEnd: 8305
    functionName: test_cil_resolve_ioportcon_anon_context
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_ioportcon
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ioportcon_anon_context(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8314,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8317,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8320,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8323,1
    - Dst: cil_resolve_ioportcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8325,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8327
      start: 8307
    functionDepth: 2
    functionLinenumber: 8307
    functionLinenumberEnd: 8327
    functionName: test_cil_resolve_ioportcon_anon_context_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_ioportcon
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ioportcon_anon_context_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8337,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8340,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8343,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8346,1
    - Dst: cil_resolve_pcidevicecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8348,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8351
      start: 8329
    functionDepth: 2
    functionLinenumber: 8329
    functionLinenumberEnd: 8351
    functionName: test_cil_resolve_pcidevicecon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_pcidevicecon
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_pcidevicecon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8361,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8364,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8367,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8370,1
    - Dst: cil_resolve_pcidevicecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8372,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8375
      start: 8353
    functionDepth: 2
    functionLinenumber: 8353
    functionLinenumberEnd: 8375
    functionName: test_cil_resolve_pcidevicecon_context_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_pcidevicecon
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_pcidevicecon_context_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8442,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8445,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8448,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8451,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8453,1
    - Dst: cil_resolve_pcidevicecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8459,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8464
      start: 8377
    functionDepth: 2
    functionLinenumber: 8377
    functionLinenumberEnd: 8464
    functionName: test_cil_resolve_pcidevicecon_anon_context
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_pcidevicecon
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_pcidevicecon_anon_context(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8477,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8480,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8483,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8486,1
    - Dst: cil_resolve_pcidevicecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8488,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8490
      start: 8466
    functionDepth: 2
    functionLinenumber: 8466
    functionLinenumberEnd: 8490
    functionName: test_cil_resolve_pcidevicecon_anon_context_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_pcidevicecon
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_pcidevicecon_anon_context_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8530,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8533,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8536,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8539,1
    - Dst: cil_resolve_fsuse
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8541,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8545
      start: 8492
    functionDepth: 2
    functionLinenumber: 8492
    functionLinenumberEnd: 8545
    functionName: test_cil_resolve_fsuse
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_fsuse
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_fsuse(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8585,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8588,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8591,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8594,1
    - Dst: cil_resolve_fsuse
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8596,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8600
      start: 8547
    functionDepth: 2
    functionLinenumber: 8547
    functionLinenumberEnd: 8600
    functionName: test_cil_resolve_fsuse_nocontext_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_fsuse
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_fsuse_nocontext_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8640,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8643,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8646,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8649,1
    - Dst: cil_resolve_fsuse
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8651,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8655
      start: 8602
    functionDepth: 2
    functionLinenumber: 8602
    functionLinenumberEnd: 8655
    functionName: test_cil_resolve_fsuse_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_fsuse
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_fsuse_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8692,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8695,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8698,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8701,1
    - Dst: cil_resolve_fsuse
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8703,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8707
      start: 8657
    functionDepth: 2
    functionLinenumber: 8657
    functionLinenumberEnd: 8707
    functionName: test_cil_resolve_fsuse_anon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_fsuse
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_fsuse_anon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8744,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8747,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8750,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8753,1
    - Dst: cil_resolve_fsuse
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8755,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8759
      start: 8709
    functionDepth: 2
    functionLinenumber: 8709
    functionLinenumberEnd: 8759
    functionName: test_cil_resolve_fsuse_anon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_fsuse
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_fsuse_anon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8796,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8799,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8802,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8805,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8807,1
    - Dst: cil_resolve_sidcontext
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8812,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8817
      start: 8761
    functionDepth: 2
    functionLinenumber: 8761
    functionLinenumberEnd: 8817
    functionName: test_cil_resolve_sidcontext
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_sidcontext
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_sidcontext(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8859,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8862,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8865,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8868,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8870,1
    - Dst: cil_resolve_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8877,1
    - Dst: cil_resolve_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8878,1
    - Dst: cil_resolve_sidcontext
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8880,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8885
      start: 8819
    functionDepth: 2
    functionLinenumber: 8819
    functionLinenumberEnd: 8885
    functionName: test_cil_resolve_sidcontext_named_levels
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_sidcontext
    - cil_build_ast
    - cil_db_init
    - cil_resolve_level
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_sidcontext_named_levels(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8924,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8927,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8930,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8933,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8935,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8942,1
    - Dst: cil_resolve_sidcontext
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8944,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8949
      start: 8887
    functionDepth: 2
    functionLinenumber: 8887
    functionLinenumberEnd: 8949
    functionName: test_cil_resolve_sidcontext_named_context
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_sidcontext
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_context
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_sidcontext_named_context(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8988,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8991,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8994,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8997,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:8999,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9006,1
    - Dst: cil_resolve_sidcontext
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9008,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9013
      start: 8951
    functionDepth: 2
    functionLinenumber: 8951
    functionLinenumberEnd: 9013
    functionName: test_cil_resolve_sidcontext_named_context_wrongname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_sidcontext
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_context
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_sidcontext_named_context_wrongname_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9050,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9053,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9056,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9059,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9061,1
    - Dst: cil_resolve_sidcontext
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9064,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9069
      start: 9015
    functionDepth: 2
    functionLinenumber: 9015
    functionLinenumberEnd: 9069
    functionName: test_cil_resolve_sidcontext_named_context_invaliduser_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_sidcontext
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_sidcontext_named_context_invaliduser_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9079,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9082,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9085,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9088,1
    - Dst: cil_resolve_blockinherit
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9090,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9093
      start: 9071
    functionDepth: 2
    functionLinenumber: 9071
    functionLinenumberEnd: 9093
    functionName: test_cil_resolve_blockinherit
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_blockinherit
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_blockinherit(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9103,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9106,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9109,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9112,1
    - Dst: cil_resolve_blockinherit
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9114,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9117
      start: 9095
    functionDepth: 2
    functionLinenumber: 9095
    functionLinenumberEnd: 9117
    functionName: test_cil_resolve_blockinherit_blockstrdne_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_blockinherit
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_blockinherit_blockstrdne_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9128,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9131,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9134,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9137,1
    - Dst: cil_resolve_in
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9139,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9141
      start: 9119
    functionDepth: 2
    functionLinenumber: 9119
    functionLinenumberEnd: 9141
    functionName: test_cil_resolve_in_block
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_in
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_in_block(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9151,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9154,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9157,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9160,1
    - Dst: cil_resolve_in
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9162,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9164
      start: 9143
    functionDepth: 2
    functionLinenumber: 9143
    functionLinenumberEnd: 9164
    functionName: test_cil_resolve_in_blockstrdne_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_in
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_in_blockstrdne_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9178,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9181,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9184,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9187,1
    - Dst: cil_resolve_in
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9189,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9191
      start: 9166
    functionDepth: 2
    functionLinenumber: 9166
    functionLinenumberEnd: 9191
    functionName: test_cil_resolve_in_macro
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_in
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_in_macro(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9204,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9207,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9210,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9213,1
    - Dst: cil_resolve_in
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9215,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9217
      start: 9193
    functionDepth: 2
    functionLinenumber: 9193
    functionLinenumberEnd: 9217
    functionName: test_cil_resolve_in_optional
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_in
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_in_optional(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9229,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9232,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9235,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9238,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9240,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9243
      start: 9219
    functionDepth: 2
    functionLinenumber: 9219
    functionLinenumberEnd: 9243
    functionName: test_cil_resolve_call1_noparam
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_noparam(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9257,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9260,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9263,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9266,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9268,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9271
      start: 9245
    functionDepth: 2
    functionLinenumber: 9245
    functionLinenumberEnd: 9271
    functionName: test_cil_resolve_call1_type
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_type(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9285,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9288,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9291,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9294,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9296,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9299
      start: 9273
    functionDepth: 2
    functionLinenumber: 9273
    functionLinenumberEnd: 9299
    functionName: test_cil_resolve_call1_role
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_role(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9313,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9316,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9319,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9322,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9324,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9327
      start: 9301
    functionDepth: 2
    functionLinenumber: 9301
    functionLinenumberEnd: 9327
    functionName: test_cil_resolve_call1_user
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_user(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9342,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9345,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9348,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9351,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9353,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9356
      start: 9329
    functionDepth: 2
    functionLinenumber: 9329
    functionLinenumberEnd: 9356
    functionName: test_cil_resolve_call1_sens
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_sens(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9371,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9374,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9377,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9380,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9382,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9385
      start: 9358
    functionDepth: 2
    functionLinenumber: 9358
    functionLinenumberEnd: 9385
    functionName: test_cil_resolve_call1_cat
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_cat(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9403,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9406,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9409,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9412,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9414,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9418
      start: 9387
    functionDepth: 2
    functionLinenumber: 9387
    functionLinenumberEnd: 9418
    functionName: test_cil_resolve_call1_catset
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_catset(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9433,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9436,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9439,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9442,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9444,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9447
      start: 9420
    functionDepth: 2
    functionLinenumber: 9420
    functionLinenumberEnd: 9447
    functionName: test_cil_resolve_call1_catset_anon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_catset_anon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9463,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9466,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9469,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9472,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9474,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9477
      start: 9449
    functionDepth: 2
    functionLinenumber: 9449
    functionLinenumberEnd: 9477
    functionName: test_cil_resolve_call1_catset_anon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_catset_anon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9501,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9504,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9507,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9510,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9512,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9516
      start: 9479
    functionDepth: 2
    functionLinenumber: 9479
    functionLinenumberEnd: 9516
    functionName: test_cil_resolve_call1_level
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_level(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9540,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9543,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9546,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9549,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9551,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9555
      start: 9518
    functionDepth: 2
    functionLinenumber: 9518
    functionLinenumberEnd: 9555
    functionName: test_cil_resolve_call1_level_anon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_level_anon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9579,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9582,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9585,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9588,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9590,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9594
      start: 9557
    functionDepth: 2
    functionLinenumber: 9557
    functionLinenumberEnd: 9594
    functionName: test_cil_resolve_call1_level_anon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_level_anon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9620,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9623,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9626,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9629,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9631,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9636
      start: 9596
    functionDepth: 2
    functionLinenumber: 9596
    functionLinenumberEnd: 9636
    functionName: test_cil_resolve_call1_ipaddr
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_ipaddr(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9661,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9664,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9667,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9670,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9672,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9677
      start: 9638
    functionDepth: 2
    functionLinenumber: 9638
    functionLinenumberEnd: 9677
    functionName: test_cil_resolve_call1_ipaddr_anon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_ipaddr_anon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9702,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9705,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9708,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9711,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9713,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9718
      start: 9679
    functionDepth: 2
    functionLinenumber: 9679
    functionLinenumberEnd: 9718
    functionName: test_cil_resolve_call1_ipaddr_anon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_ipaddr_anon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9733,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9736,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9739,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9742,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9744,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9747
      start: 9720
    functionDepth: 2
    functionLinenumber: 9720
    functionLinenumberEnd: 9747
    functionName: test_cil_resolve_call1_class
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_class(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9762,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9765,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9768,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9771,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9773,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9776
      start: 9749
    functionDepth: 2
    functionLinenumber: 9749
    functionLinenumberEnd: 9776
    functionName: test_cil_resolve_call1_classmap
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_classmap(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9834,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9837,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9840,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9843,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9845,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9849
      start: 9778
    functionDepth: 2
    functionLinenumber: 9778
    functionLinenumberEnd: 9849
    functionName: test_cil_resolve_call1_permset
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_permset(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9902,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9905,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9908,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9911,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9913,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9916
      start: 9851
    functionDepth: 2
    functionLinenumber: 9851
    functionLinenumberEnd: 9916
    functionName: test_cil_resolve_call1_permset_anon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_permset_anon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9970,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9973,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9976,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9979,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9981,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:9983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9984
      start: 9918
    functionDepth: 2
    functionLinenumber: 9918
    functionLinenumberEnd: 9984
    functionName: test_cil_resolve_call1_classpermset_named
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_classpermset_named(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10001,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10004,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10007,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10010,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10012,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10015
      start: 9986
    functionDepth: 2
    functionLinenumber: 9986
    functionLinenumberEnd: 10015
    functionName: test_cil_resolve_call1_classpermset_anon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_classpermset_anon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10032,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10035,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10038,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10041,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10043,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10046
      start: 10017
    functionDepth: 2
    functionLinenumber: 10017
    functionLinenumberEnd: 10046
    functionName: test_cil_resolve_call1_classpermset_anon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_classpermset_anon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10061,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10064,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10067,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10070,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10073,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10080,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10089,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10092
      start: 10048
    functionDepth: 2
    functionLinenumber: 10048
    functionLinenumberEnd: 10092
    functionName: test_cil_resolve_call1_unknown_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - free
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_name
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_unknown_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10107,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10110,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10113,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10116,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10118,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10121
      start: 10094
    functionDepth: 2
    functionLinenumber: 10094
    functionLinenumberEnd: 10121
    functionName: test_cil_resolve_call1_unknowncall_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_unknowncall_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10136,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10139,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10142,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10145,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10147,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10150
      start: 10123
    functionDepth: 2
    functionLinenumber: 10123
    functionLinenumberEnd: 10150
    functionName: test_cil_resolve_call1_extraargs_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_extraargs_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10164,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10167,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10170,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10173,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10175,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10178
      start: 10152
    functionDepth: 2
    functionLinenumber: 10152
    functionLinenumberEnd: 10178
    functionName: test_cil_resolve_call1_copy_dup
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_copy_dup(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10201,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10204,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10207,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10210,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10212,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10216
      start: 10180
    functionDepth: 2
    functionLinenumber: 10180
    functionLinenumberEnd: 10216
    functionName: test_cil_resolve_call1_missing_arg_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_missing_arg_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10230,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10233,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10236,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10239,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10246,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10253,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10256
      start: 10218
    functionDepth: 2
    functionLinenumber: 10218
    functionLinenumberEnd: 10256
    functionName: test_cil_resolve_call1_paramsflavor_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_name
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_paramsflavor_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10270,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10273,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10276,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10279,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10286,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10293,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10296
      start: 10258
    functionDepth: 2
    functionLinenumber: 10258
    functionLinenumberEnd: 10296
    functionName: test_cil_resolve_call1_unknownflavor_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_name
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call1_unknownflavor_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10310,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10313,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10316,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10319,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10321,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10325,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10328
      start: 10298
    functionDepth: 2
    functionLinenumber: 10298
    functionLinenumberEnd: 10328
    functionName: test_cil_resolve_call2_type
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call2_type(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10342,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10345,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10348,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10351,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10353,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10357,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10360
      start: 10330
    functionDepth: 2
    functionLinenumber: 10330
    functionLinenumberEnd: 10360
    functionName: test_cil_resolve_call2_role
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call2_role(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10374,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10377,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10380,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10383,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10385,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10389,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10392
      start: 10362
    functionDepth: 2
    functionLinenumber: 10362
    functionLinenumberEnd: 10392
    functionName: test_cil_resolve_call2_user
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call2_user(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10407,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10410,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10413,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10416,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10418,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10422,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10425
      start: 10394
    functionDepth: 2
    functionLinenumber: 10394
    functionLinenumberEnd: 10425
    functionName: test_cil_resolve_call2_sens
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call2_sens(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10440,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10443,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10446,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10449,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10451,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10455,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10458
      start: 10427
    functionDepth: 2
    functionLinenumber: 10427
    functionLinenumberEnd: 10458
    functionName: test_cil_resolve_call2_cat
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call2_cat(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10476,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10479,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10482,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10485,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10487,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10493,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10497
      start: 10460
    functionDepth: 2
    functionLinenumber: 10460
    functionLinenumberEnd: 10497
    functionName: test_cil_resolve_call2_catset
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call2_catset(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10512,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10515,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10518,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10521,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10523,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10528,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10531
      start: 10499
    functionDepth: 2
    functionLinenumber: 10499
    functionLinenumberEnd: 10531
    functionName: test_cil_resolve_call2_catset_anon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call2_catset_anon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10593,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10596,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10599,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10602,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10604,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10610,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10614
      start: 10533
    functionDepth: 2
    functionLinenumber: 10533
    functionLinenumberEnd: 10614
    functionName: test_cil_resolve_call2_permset
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call2_permset(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10637,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10640,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10643,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10646,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10648,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10653,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10656
      start: 10616
    functionDepth: 2
    functionLinenumber: 10616
    functionLinenumberEnd: 10656
    functionName: test_cil_resolve_call2_permset_anon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call2_permset_anon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10710,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10713,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10716,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10719,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10721,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10726,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10729
      start: 10658
    functionDepth: 2
    functionLinenumber: 10658
    functionLinenumberEnd: 10729
    functionName: test_cil_resolve_call2_classpermset_named
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call2_classpermset_named(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10746,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10749,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10752,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10755,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10757,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10761,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10764
      start: 10731
    functionDepth: 2
    functionLinenumber: 10731
    functionLinenumberEnd: 10764
    functionName: test_cil_resolve_call2_classpermset_anon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call2_classpermset_anon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10779,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10782,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10785,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10788,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10790,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10794,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10797
      start: 10766
    functionDepth: 2
    functionLinenumber: 10766
    functionLinenumberEnd: 10797
    functionName: test_cil_resolve_call2_class
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call2_class(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10812,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10815,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10818,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10821,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10823,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10828,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10830,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10832
      start: 10799
    functionDepth: 2
    functionLinenumber: 10799
    functionLinenumberEnd: 10832
    functionName: test_cil_resolve_call2_classmap
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call2_classmap(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10856,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10859,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10862,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10865,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10867,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10873,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10877
      start: 10834
    functionDepth: 2
    functionLinenumber: 10834
    functionLinenumberEnd: 10877
    functionName: test_cil_resolve_call2_level
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call2_level(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10901,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10904,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10907,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10910,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10912,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10918,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10922
      start: 10879
    functionDepth: 2
    functionLinenumber: 10879
    functionLinenumberEnd: 10922
    functionName: test_cil_resolve_call2_level_anon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call2_level_anon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10948,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10951,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10954,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10957,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10959,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10965,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10970
      start: 10924
    functionDepth: 2
    functionLinenumber: 10924
    functionLinenumberEnd: 10970
    functionName: test_cil_resolve_call2_ipaddr
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call2_ipaddr(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10995,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:10998,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11001,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11004,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11006,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11012,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11017
      start: 10972
    functionDepth: 2
    functionLinenumber: 10972
    functionLinenumberEnd: 11017
    functionName: test_cil_resolve_call2_ipaddr_anon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call2_ipaddr_anon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11041,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11044,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11047,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11050,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11052,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11066,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11070
      start: 11019
    functionDepth: 2
    functionLinenumber: 11019
    functionLinenumberEnd: 11070
    functionName: test_cil_resolve_call2_unknown_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call2_unknown_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11084,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11087,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11090,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11093,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11095,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11099,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11102
      start: 11072
    functionDepth: 2
    functionLinenumber: 11072
    functionLinenumberEnd: 11102
    functionName: test_cil_resolve_call2_name_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_call2_name_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11116,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11119,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11122,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11125,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11128,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11130,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11134,1
    - Dst: cil_resolve_name_call_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11135,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11140
      start: 11104
    functionDepth: 2
    functionLinenumber: 11104
    functionLinenumberEnd: 11140
    functionName: test_cil_resolve_name_call_args
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_resolve_call1
    - cil_resolve_name_call_args
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_name_call_args(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11164,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11167,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11170,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11173,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11176,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11178,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11184,1
    - Dst: cil_resolve_name_call_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11187,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11192
      start: 11142
    functionDepth: 2
    functionLinenumber: 11142
    functionLinenumberEnd: 11192
    functionName: test_cil_resolve_name_call_args_multipleparams
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_resolve_call1
    - cil_resolve_name_call_args
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_name_call_args_multipleparams(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11206,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11209,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11212,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11214,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11217,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11219,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11223,1
    - Dst: cil_resolve_name_call_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11224,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11229
      start: 11194
    functionDepth: 2
    functionLinenumber: 11194
    functionLinenumberEnd: 11229
    functionName: test_cil_resolve_name_call_args_diffflavor
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_resolve_call1
    - cil_resolve_name_call_args
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_name_call_args_diffflavor(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11243,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11246,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11248,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11251,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11255,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11257,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11261,1
    - Dst: cil_resolve_name_call_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11262,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11264
      start: 11231
    functionDepth: 2
    functionLinenumber: 11231
    functionLinenumberEnd: 11264
    functionName: test_cil_resolve_name_call_args_callnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_resolve_call1
    - cil_resolve_name_call_args
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_name_call_args_callnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11278,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11281,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11284,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11287,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11290,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11292,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11296,1
    - Dst: cil_resolve_name_call_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11297,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11302
      start: 11266
    functionDepth: 2
    functionLinenumber: 11266
    functionLinenumberEnd: 11302
    functionName: test_cil_resolve_name_call_args_namenull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_resolve_call1
    - cil_resolve_name_call_args
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_name_call_args_namenull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11315,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11318,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11321,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11324,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11327,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11329,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11333,1
    - Dst: cil_resolve_name_call_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11334,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11339
      start: 11304
    functionDepth: 2
    functionLinenumber: 11304
    functionLinenumberEnd: 11339
    functionName: test_cil_resolve_name_call_args_callargsnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_resolve_call1
    - cil_resolve_name_call_args
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_name_call_args_callargsnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11353,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11356,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11359,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11362,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11367,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11371,1
    - Dst: cil_resolve_name_call_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11372,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11377
      start: 11341
    functionDepth: 2
    functionLinenumber: 11341
    functionLinenumberEnd: 11377
    functionName: test_cil_resolve_name_call_args_name_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_resolve_name_call_args
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_name_call_args_name_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11391,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11394,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11397,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11400,1
    - Dst: cil_resolve_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11406,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11410
      start: 11379
    functionDepth: 2
    functionLinenumber: 11379
    functionLinenumberEnd: 11410
    functionName: test_cil_resolve_expr_stack_bools
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - cil_resolve_expr_stack
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_expr_stack_bools(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11424,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11427,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11430,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11433,1
    - Dst: cil_resolve_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11439,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11443
      start: 11412
    functionDepth: 2
    functionLinenumber: 11412
    functionLinenumberEnd: 11443
    functionName: test_cil_resolve_expr_stack_tunables
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - cil_resolve_expr_stack
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_expr_stack_tunables(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11469,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11472,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11475,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11478,1
    - Dst: cil_resolve_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11484,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11488
      start: 11445
    functionDepth: 2
    functionLinenumber: 11445
    functionLinenumberEnd: 11488
    functionName: test_cil_resolve_expr_stack_type
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - cil_resolve_expr_stack
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_expr_stack_type(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11514,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11517,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11520,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11523,1
    - Dst: cil_resolve_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11529,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11533
      start: 11490
    functionDepth: 2
    functionLinenumber: 11490
    functionLinenumberEnd: 11533
    functionName: test_cil_resolve_expr_stack_role
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - cil_resolve_expr_stack
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_expr_stack_role(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11559,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11562,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11565,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11568,1
    - Dst: cil_resolve_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11574,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11578
      start: 11535
    functionDepth: 2
    functionLinenumber: 11535
    functionLinenumberEnd: 11578
    functionName: test_cil_resolve_expr_stack_user
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - cil_resolve_expr_stack
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_expr_stack_user(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11592,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11595,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11598,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11601,1
    - Dst: cil_resolve_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11607,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11611
      start: 11580
    functionDepth: 2
    functionLinenumber: 11580
    functionLinenumberEnd: 11611
    functionName: test_cil_resolve_expr_stack_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - cil_resolve_expr_stack
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_expr_stack_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11625,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11628,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11631,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11634,1
    - Dst: cil_resolve_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11641,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11645
      start: 11613
    functionDepth: 2
    functionLinenumber: 11613
    functionLinenumberEnd: 11645
    functionName: test_cil_resolve_expr_stack_emptystr_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - cil_resolve_expr_stack
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_expr_stack_emptystr_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11659,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11662,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11665,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11668,1
    - Dst: cil_resolve_boolif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11670,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11673
      start: 11647
    functionDepth: 2
    functionLinenumber: 11647
    functionLinenumberEnd: 11673
    functionName: test_cil_resolve_boolif
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_boolif
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_boolif(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11687,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11690,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11693,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11696,1
    - Dst: cil_resolve_boolif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11698,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11701
      start: 11675
    functionDepth: 2
    functionLinenumber: 11675
    functionLinenumberEnd: 11701
    functionName: test_cil_resolve_boolif_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_boolif
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_boolif_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11715,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11718,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11722,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11725,1
    - Dst: cil_resolve_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11731,1
    - Dst: cil_evaluate_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11734,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11736
      start: 11703
    functionDepth: 2
    functionLinenumber: 11703
    functionLinenumberEnd: 11736
    functionName: test_cil_evaluate_expr_stack_and
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - cil_resolve_expr_stack
    - gen_test_tree
    - cil_evaluate_expr_stack
    linkageType: ''
    returnType: void
    signature: void test_cil_evaluate_expr_stack_and(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11750,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11753,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11757,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11760,1
    - Dst: cil_resolve_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11766,1
    - Dst: cil_evaluate_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11769,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11771
      start: 11738
    functionDepth: 2
    functionLinenumber: 11738
    functionLinenumberEnd: 11771
    functionName: test_cil_evaluate_expr_stack_not
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - cil_resolve_expr_stack
    - gen_test_tree
    - cil_evaluate_expr_stack
    linkageType: ''
    returnType: void
    signature: void test_cil_evaluate_expr_stack_not(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11785,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11788,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11792,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11795,1
    - Dst: cil_resolve_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11801,1
    - Dst: cil_evaluate_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11804,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11806
      start: 11773
    functionDepth: 2
    functionLinenumber: 11773
    functionLinenumberEnd: 11806
    functionName: test_cil_evaluate_expr_stack_or
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - cil_resolve_expr_stack
    - gen_test_tree
    - cil_evaluate_expr_stack
    linkageType: ''
    returnType: void
    signature: void test_cil_evaluate_expr_stack_or(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11820,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11823,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11827,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11830,1
    - Dst: cil_resolve_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11836,1
    - Dst: cil_evaluate_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11839,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11841
      start: 11808
    functionDepth: 2
    functionLinenumber: 11808
    functionLinenumberEnd: 11841
    functionName: test_cil_evaluate_expr_stack_xor
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - cil_resolve_expr_stack
    - gen_test_tree
    - cil_evaluate_expr_stack
    linkageType: ''
    returnType: void
    signature: void test_cil_evaluate_expr_stack_xor(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11855,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11858,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11862,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11865,1
    - Dst: cil_resolve_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11871,1
    - Dst: cil_evaluate_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11874,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11876
      start: 11843
    functionDepth: 2
    functionLinenumber: 11843
    functionLinenumberEnd: 11876
    functionName: test_cil_evaluate_expr_stack_eq
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - cil_resolve_expr_stack
    - gen_test_tree
    - cil_evaluate_expr_stack
    linkageType: ''
    returnType: void
    signature: void test_cil_evaluate_expr_stack_eq(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11890,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11893,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11897,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11900,1
    - Dst: cil_resolve_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11906,1
    - Dst: cil_evaluate_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11909,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11911
      start: 11878
    functionDepth: 2
    functionLinenumber: 11878
    functionLinenumberEnd: 11911
    functionName: test_cil_evaluate_expr_stack_neq
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - cil_resolve_expr_stack
    - gen_test_tree
    - cil_evaluate_expr_stack
    linkageType: ''
    returnType: void
    signature: void test_cil_evaluate_expr_stack_neq(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11927,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11930,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11934,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11937,1
    - Dst: cil_resolve_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11943,1
    - Dst: cil_evaluate_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11946,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11948
      start: 11913
    functionDepth: 2
    functionLinenumber: 11913
    functionLinenumberEnd: 11948
    functionName: test_cil_evaluate_expr_stack_oper1
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - cil_resolve_expr_stack
    - gen_test_tree
    - cil_evaluate_expr_stack
    linkageType: ''
    returnType: void
    signature: void test_cil_evaluate_expr_stack_oper1(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11964,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11967,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11971,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11974,1
    - Dst: cil_resolve_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11980,1
    - Dst: cil_evaluate_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11983,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:11984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11985
      start: 11950
    functionDepth: 2
    functionLinenumber: 11950
    functionLinenumberEnd: 11985
    functionName: test_cil_evaluate_expr_stack_oper2
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - cil_resolve_expr_stack
    - gen_test_tree
    - cil_evaluate_expr_stack
    linkageType: ''
    returnType: void
    signature: void test_cil_evaluate_expr_stack_oper2(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12037,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12040,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12043,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12046,1
    - Dst: cil_resolve_tunif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12048,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12051
      start: 12025
    functionDepth: 2
    functionLinenumber: 12025
    functionLinenumberEnd: 12051
    functionName: test_cil_resolve_tunif_false
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_tunif
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_tunif_false(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12065,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12068,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12071,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12074,1
    - Dst: cil_resolve_tunif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12076,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12079
      start: 12053
    functionDepth: 2
    functionLinenumber: 12053
    functionLinenumberEnd: 12079
    functionName: test_cil_resolve_tunif_true
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_tunif
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_tunif_true(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12093,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12096,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12099,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12102,1
    - Dst: cil_resolve_tunif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12104,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12107
      start: 12081
    functionDepth: 2
    functionLinenumber: 12081
    functionLinenumberEnd: 12107
    functionName: test_cil_resolve_tunif_resolveexpr_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_tunif
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_tunif_resolveexpr_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12151,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12154,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12157,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12160,1
    - Dst: cil_resolve_userbounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12162,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12165
      start: 12144
    functionDepth: 2
    functionLinenumber: 12144
    functionLinenumberEnd: 12165
    functionName: test_cil_resolve_userbounds
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_userbounds
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_userbounds(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12174,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12177,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12180,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12183,1
    - Dst: cil_resolve_userbounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12185,1
    - Dst: cil_resolve_userbounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12186,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12189
      start: 12167
    functionDepth: 2
    functionLinenumber: 12167
    functionLinenumberEnd: 12189
    functionName: test_cil_resolve_userbounds_exists_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_userbounds
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_userbounds_exists_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12198,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12201,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12204,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12207,1
    - Dst: cil_resolve_userbounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12209,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12212
      start: 12191
    functionDepth: 2
    functionLinenumber: 12191
    functionLinenumberEnd: 12212
    functionName: test_cil_resolve_userbounds_user1_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_userbounds
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_userbounds_user1_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12221,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12224,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12227,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12230,1
    - Dst: cil_resolve_userbounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12232,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12235
      start: 12214
    functionDepth: 2
    functionLinenumber: 12214
    functionLinenumberEnd: 12235
    functionName: test_cil_resolve_userbounds_user2_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_userbounds
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_userbounds_user2_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12244,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12247,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12250,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12253,1
    - Dst: cil_resolve_roletype
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12255,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12258
      start: 12237
    functionDepth: 2
    functionLinenumber: 12237
    functionLinenumberEnd: 12258
    functionName: test_cil_resolve_roletype
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_roletype
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_roletype(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12266,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12269,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12272,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12275,1
    - Dst: cil_resolve_roletype
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12277,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12279
      start: 12260
    functionDepth: 2
    functionLinenumber: 12260
    functionLinenumberEnd: 12279
    functionName: test_cil_resolve_roletype_type_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_roletype
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_roletype_type_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12287,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12290,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12293,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12296,1
    - Dst: cil_resolve_roletype
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12298,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12300
      start: 12281
    functionDepth: 2
    functionLinenumber: 12281
    functionLinenumberEnd: 12300
    functionName: test_cil_resolve_roletype_role_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_roletype
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_roletype_role_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12309,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12312,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12314,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12317,1
    - Dst: cil_resolve_userrole
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12320,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12323
      start: 12302
    functionDepth: 2
    functionLinenumber: 12302
    functionLinenumberEnd: 12323
    functionName: test_cil_resolve_userrole
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_userrole
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_userrole(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12331,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12334,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12337,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12340,1
    - Dst: cil_resolve_userrole
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12342,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12344
      start: 12325
    functionDepth: 2
    functionLinenumber: 12325
    functionLinenumberEnd: 12344
    functionName: test_cil_resolve_userrole_user_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_userrole
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_userrole_user_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12352,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12355,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12358,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12361,1
    - Dst: cil_resolve_userrole
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12363,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12365
      start: 12346
    functionDepth: 2
    functionLinenumber: 12346
    functionLinenumberEnd: 12365
    functionName: test_cil_resolve_userrole_role_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_userrole
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_userrole_role_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12389,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12392,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12395,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12398,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12400,1
    - Dst: cil_resolve_userlevel
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12405,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12409
      start: 12367
    functionDepth: 2
    functionLinenumber: 12367
    functionLinenumberEnd: 12409
    functionName: test_cil_resolve_userlevel
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_userlevel
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_userlevel(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12439,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12442,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12445,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12448,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12452,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12458,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12464,1
    - Dst: cil_resolve_userlevel
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12471,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12474,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12475,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12477
      start: 12411
    functionDepth: 2
    functionLinenumber: 12411
    functionLinenumberEnd: 12477
    functionName: test_cil_resolve_userlevel_macro
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_userlevel
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_userlevel_macro(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12507,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12510,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12513,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12516,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12518,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12524,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12530,1
    - Dst: cil_resolve_userlevel
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12537,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12540,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12541,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12543
      start: 12479
    functionDepth: 2
    functionLinenumber: 12479
    functionLinenumberEnd: 12543
    functionName: test_cil_resolve_userlevel_macro_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_userlevel
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_userlevel_macro_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12564,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12567,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12570,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12573,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12575,1
    - Dst: cil_resolve_userlevel
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12580,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12583
      start: 12545
    functionDepth: 2
    functionLinenumber: 12545
    functionLinenumberEnd: 12583
    functionName: test_cil_resolve_userlevel_level_anon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_userlevel
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_userlevel_level_anon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12604,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12607,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12610,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12613,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12615,1
    - Dst: cil_resolve_userlevel
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12620,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12623
      start: 12585
    functionDepth: 2
    functionLinenumber: 12585
    functionLinenumberEnd: 12623
    functionName: test_cil_resolve_userlevel_level_anon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_userlevel
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_userlevel_level_anon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12647,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12650,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12653,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12656,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12658,1
    - Dst: cil_resolve_userlevel
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12663,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12667
      start: 12625
    functionDepth: 2
    functionLinenumber: 12625
    functionLinenumberEnd: 12667
    functionName: test_cil_resolve_userlevel_user_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_userlevel
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_userlevel_user_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12691,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12694,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12697,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12700,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12702,1
    - Dst: cil_resolve_userlevel
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12707,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12711
      start: 12669
    functionDepth: 2
    functionLinenumber: 12669
    functionLinenumberEnd: 12711
    functionName: test_cil_resolve_userlevel_level_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_userlevel
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_userlevel_level_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12739,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12742,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12745,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12748,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12750,1
    - Dst: cil_resolve_userrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12752,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12756
      start: 12713
    functionDepth: 2
    functionLinenumber: 12713
    functionLinenumberEnd: 12756
    functionName: test_cil_resolve_userrange
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_userrange
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_userrange(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12795,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12798,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12801,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12804,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12806,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12812,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12818,1
    - Dst: cil_resolve_userrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12825,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12829,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12830,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12832
      start: 12758
    functionDepth: 2
    functionLinenumber: 12758
    functionLinenumberEnd: 12832
    functionName: test_cil_resolve_userrange_macro
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - cil_resolve_userrange
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_userrange_macro(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12871,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12874,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12877,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12880,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12882,1
    - Dst: cil_resolve_call2
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12888,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12894,1
    - Dst: cil_resolve_userrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12901,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12905,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12906,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12908
      start: 12834
    functionDepth: 2
    functionLinenumber: 12834
    functionLinenumberEnd: 12908
    functionName: test_cil_resolve_userrange_macro_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - cil_resolve_call2
    - cil_resolve_userrange
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_userrange_macro_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12938,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12941,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12944,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12947,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12949,1
    - Dst: cil_resolve_userrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12954,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12958
      start: 12910
    functionDepth: 2
    functionLinenumber: 12910
    functionLinenumberEnd: 12958
    functionName: test_cil_resolve_userrange_range_anon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_userrange
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_userrange_range_anon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12988,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12991,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12994,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12997,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:12999,1
    - Dst: cil_resolve_userrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13004,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13008
      start: 12960
    functionDepth: 2
    functionLinenumber: 12960
    functionLinenumberEnd: 13008
    functionName: test_cil_resolve_userrange_range_anon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_userrange
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_userrange_range_anon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13036,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13039,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13042,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13045,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13047,1
    - Dst: cil_resolve_userrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13052,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13056
      start: 13010
    functionDepth: 2
    functionLinenumber: 13010
    functionLinenumberEnd: 13056
    functionName: test_cil_resolve_userrange_user_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_userrange
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_userrange_user_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13084,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13087,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13090,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13093,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13095,1
    - Dst: cil_resolve_userrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13100,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13104
      start: 13058
    functionDepth: 2
    functionLinenumber: 13058
    functionLinenumberEnd: 13104
    functionName: test_cil_resolve_userrange_range_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - cil_resolve_userrange
    - CuAssertIntEquals
    - cil_resolve_senscat
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_userrange_range_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13113,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13116,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13118,1
    - Dst: __cil_disable_children_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13122,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13125
      start: 13106
    functionDepth: 2
    functionLinenumber: 13106
    functionLinenumberEnd: 13125
    functionName: test_cil_disable_children_helper_optional_enabled
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_disable_children_helper
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_disable_children_helper_optional_enabled(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13134,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13137,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13139,1
    - Dst: __cil_disable_children_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13146,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13149
      start: 13127
    functionDepth: 2
    functionLinenumber: 13127
    functionLinenumberEnd: 13149
    functionName: test_cil_disable_children_helper_optional_disabled
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_disable_children_helper
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_disable_children_helper_optional_disabled(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13156,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13159,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13161,1
    - Dst: __cil_disable_children_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13165,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13168
      start: 13151
    functionDepth: 2
    functionLinenumber: 13151
    functionLinenumberEnd: 13168
    functionName: test_cil_disable_children_helper_block
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_disable_children_helper
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_disable_children_helper_block(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13175,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13178,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13180,1
    - Dst: __cil_disable_children_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13184,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13187
      start: 13170
    functionDepth: 2
    functionLinenumber: 13170
    functionLinenumberEnd: 13187
    functionName: test_cil_disable_children_helper_user
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_disable_children_helper
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_disable_children_helper_user(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13194,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13197,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13199,1
    - Dst: __cil_disable_children_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13203,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13206
      start: 13189
    functionDepth: 2
    functionLinenumber: 13189
    functionLinenumberEnd: 13206
    functionName: test_cil_disable_children_helper_role
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_disable_children_helper
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_disable_children_helper_role(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13213,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13216,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13218,1
    - Dst: __cil_disable_children_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13222,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13225
      start: 13208
    functionDepth: 2
    functionLinenumber: 13208
    functionLinenumberEnd: 13225
    functionName: test_cil_disable_children_helper_type
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_disable_children_helper
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_disable_children_helper_type(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13233,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13236,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13238,1
    - Dst: __cil_disable_children_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13242,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13245
      start: 13227
    functionDepth: 2
    functionLinenumber: 13227
    functionLinenumberEnd: 13245
    functionName: test_cil_disable_children_helper_typealias
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_disable_children_helper
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_disable_children_helper_typealias(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13252,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13255,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13257,1
    - Dst: __cil_disable_children_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13261,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13264
      start: 13247
    functionDepth: 2
    functionLinenumber: 13247
    functionLinenumberEnd: 13264
    functionName: test_cil_disable_children_helper_common
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_disable_children_helper
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_disable_children_helper_common(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13271,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13274,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13276,1
    - Dst: __cil_disable_children_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13280,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13283
      start: 13266
    functionDepth: 2
    functionLinenumber: 13266
    functionLinenumberEnd: 13283
    functionName: test_cil_disable_children_helper_class
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_disable_children_helper
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_disable_children_helper_class(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13290,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13293,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13295,1
    - Dst: __cil_disable_children_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13299,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13302
      start: 13285
    functionDepth: 2
    functionLinenumber: 13285
    functionLinenumberEnd: 13302
    functionName: test_cil_disable_children_helper_bool
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_disable_children_helper
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_disable_children_helper_bool(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13309,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13312,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13314,1
    - Dst: __cil_disable_children_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13318,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13321
      start: 13304
    functionDepth: 2
    functionLinenumber: 13304
    functionLinenumberEnd: 13321
    functionName: test_cil_disable_children_helper_sens
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_disable_children_helper
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_disable_children_helper_sens(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13328,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13331,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13333,1
    - Dst: __cil_disable_children_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13337,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13340
      start: 13323
    functionDepth: 2
    functionLinenumber: 13323
    functionLinenumberEnd: 13340
    functionName: test_cil_disable_children_helper_cat
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_disable_children_helper
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_disable_children_helper_cat(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13348,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13351,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13353,1
    - Dst: __cil_disable_children_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13357,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13360
      start: 13342
    functionDepth: 2
    functionLinenumber: 13342
    functionLinenumberEnd: 13360
    functionName: test_cil_disable_children_helper_catset
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_disable_children_helper
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_disable_children_helper_catset(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13367,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13370,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13372,1
    - Dst: __cil_disable_children_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13376,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13379
      start: 13362
    functionDepth: 2
    functionLinenumber: 13362
    functionLinenumberEnd: 13379
    functionName: test_cil_disable_children_helper_sid
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_disable_children_helper
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_disable_children_helper_sid(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13389,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13392,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13394,1
    - Dst: __cil_disable_children_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13398,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13401
      start: 13381
    functionDepth: 2
    functionLinenumber: 13381
    functionLinenumberEnd: 13401
    functionName: test_cil_disable_children_helper_macro
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_disable_children_helper
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_disable_children_helper_macro(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13410,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13413,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13415,1
    - Dst: __cil_disable_children_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13419,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13422
      start: 13403
    functionDepth: 2
    functionLinenumber: 13403
    functionLinenumberEnd: 13422
    functionName: test_cil_disable_children_helper_context
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_disable_children_helper
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_disable_children_helper_context(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13430,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13433,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13435,1
    - Dst: __cil_disable_children_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13439,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13442
      start: 13424
    functionDepth: 2
    functionLinenumber: 13424
    functionLinenumberEnd: 13442
    functionName: test_cil_disable_children_helper_level
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_disable_children_helper
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_disable_children_helper_level(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13449,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13452,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13454,1
    - Dst: __cil_disable_children_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13458,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13461
      start: 13444
    functionDepth: 2
    functionLinenumber: 13444
    functionLinenumberEnd: 13461
    functionName: test_cil_disable_children_helper_policycap
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_disable_children_helper
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_disable_children_helper_policycap(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13468,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13471,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13473,1
    - Dst: __cil_disable_children_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13477,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13480
      start: 13463
    functionDepth: 2
    functionLinenumber: 13463
    functionLinenumberEnd: 13480
    functionName: test_cil_disable_children_helper_perm
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_disable_children_helper
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_disable_children_helper_perm(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13487,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13490,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13492,1
    - Dst: __cil_disable_children_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13496,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13499
      start: 13482
    functionDepth: 2
    functionLinenumber: 13482
    functionLinenumberEnd: 13499
    functionName: test_cil_disable_children_helper_catalias
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_disable_children_helper
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_disable_children_helper_catalias(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13506,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13509,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13511,1
    - Dst: __cil_disable_children_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13515,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13518
      start: 13501
    functionDepth: 2
    functionLinenumber: 13501
    functionLinenumberEnd: 13518
    functionName: test_cil_disable_children_helper_sensalias
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_disable_children_helper
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_disable_children_helper_sensalias(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13525,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13528,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13530,1
    - Dst: __cil_disable_children_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13534,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13537
      start: 13520
    functionDepth: 2
    functionLinenumber: 13520
    functionLinenumberEnd: 13537
    functionName: test_cil_disable_children_helper_tunable
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_disable_children_helper
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_disable_children_helper_tunable(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13547,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13550,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13552,1
    - Dst: __cil_disable_children_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13556,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13559
      start: 13539
    functionDepth: 2
    functionLinenumber: 13539
    functionLinenumberEnd: 13559
    functionName: test_cil_disable_children_helper_unknown
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_disable_children_helper
    - cil_build_ast
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_disable_children_helper_unknown(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13577,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13580,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13583,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13588,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13590,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13592,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13594
      start: 13565
    functionDepth: 2
    functionLinenumber: 13565
    functionLinenumberEnd: 13594
    functionName: test_cil_resolve_ast_node_helper_call1
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_call1(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13608,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13611,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13614,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13619,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13621,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13623,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13625
      start: 13596
    functionDepth: 2
    functionLinenumber: 13596
    functionLinenumberEnd: 13625
    functionName: test_cil_resolve_ast_node_helper_call1_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_call1_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13639,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13642,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13645,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13650,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13652,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13656,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13658,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13660
      start: 13627
    functionDepth: 2
    functionLinenumber: 13627
    functionLinenumberEnd: 13660
    functionName: test_cil_resolve_ast_node_helper_call2
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_call2(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13674,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13677,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13680,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13684,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13686,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13690,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13693
      start: 13662
    functionDepth: 2
    functionLinenumber: 13662
    functionLinenumberEnd: 13693
    functionName: test_cil_resolve_ast_node_helper_call2_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_call1
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_call2_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13707,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13710,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13713,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13717,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13719,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13721,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13723
      start: 13695
    functionDepth: 2
    functionLinenumber: 13695
    functionLinenumberEnd: 13723
    functionName: test_cil_resolve_ast_node_helper_boolif
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_boolif(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13737,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13740,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13743,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13747,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13749,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13751,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13753
      start: 13725
    functionDepth: 2
    functionLinenumber: 13725
    functionLinenumberEnd: 13753
    functionName: test_cil_resolve_ast_node_helper_boolif_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_boolif_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13767,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13770,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13773,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13777,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13779,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13781,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13783
      start: 13755
    functionDepth: 2
    functionLinenumber: 13755
    functionLinenumberEnd: 13783
    functionName: test_cil_resolve_ast_node_helper_tunif
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_tunif(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13797,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13800,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13803,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13808,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13810,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13812,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13814
      start: 13785
    functionDepth: 2
    functionLinenumber: 13785
    functionLinenumberEnd: 13814
    functionName: test_cil_resolve_ast_node_helper_tunif_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_tunif_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13825,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13828,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13831,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13835,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13837,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13839,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13841
      start: 13816
    functionDepth: 2
    functionLinenumber: 13816
    functionLinenumberEnd: 13841
    functionName: test_cil_resolve_ast_node_helper_catorder
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_catorder(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13852,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13855,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13858,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13862,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13864,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13866,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13868
      start: 13843
    functionDepth: 2
    functionLinenumber: 13843
    functionLinenumberEnd: 13868
    functionName: test_cil_resolve_ast_node_helper_catorder_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_catorder_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13879,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13882,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13885,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13889,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13891,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13893,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13895
      start: 13870
    functionDepth: 2
    functionLinenumber: 13870
    functionLinenumberEnd: 13895
    functionName: test_cil_resolve_ast_node_helper_dominance
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_dominance(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13906,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13909,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13912,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13916,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13918,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13920,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13922
      start: 13897
    functionDepth: 2
    functionLinenumber: 13897
    functionLinenumberEnd: 13922
    functionName: test_cil_resolve_ast_node_helper_dominance_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_dominance_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13930,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13933,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13936,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13941,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13943,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13945,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13947
      start: 13924
    functionDepth: 2
    functionLinenumber: 13924
    functionLinenumberEnd: 13947
    functionName: test_cil_resolve_ast_node_helper_roleallow
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_roleallow(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13955,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13958,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13961,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13966,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13968,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13970,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13972
      start: 13949
    functionDepth: 2
    functionLinenumber: 13949
    functionLinenumberEnd: 13972
    functionName: test_cil_resolve_ast_node_helper_roleallow_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_roleallow_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13982,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13985,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13988,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13993,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13995,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13997,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:13998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13999
      start: 13974
    functionDepth: 2
    functionLinenumber: 13974
    functionLinenumberEnd: 13999
    functionName: test_cil_resolve_ast_node_helper_sensalias
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_sensalias(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14006,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14009,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14012,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14017,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14019,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14021,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14023
      start: 14001
    functionDepth: 2
    functionLinenumber: 14001
    functionLinenumberEnd: 14023
    functionName: test_cil_resolve_ast_node_helper_sensalias_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_sensalias_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14031,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14034,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14037,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14042,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14044,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14046,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14048
      start: 14025
    functionDepth: 2
    functionLinenumber: 14025
    functionLinenumberEnd: 14048
    functionName: test_cil_resolve_ast_node_helper_catalias
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_catalias(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14055,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14058,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14061,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14065,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14067,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14069,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14071
      start: 14050
    functionDepth: 2
    functionLinenumber: 14050
    functionLinenumberEnd: 14071
    functionName: test_cil_resolve_ast_node_helper_catalias_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_catalias_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14083,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14086,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14089,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14094,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14096,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14098,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14100
      start: 14073
    functionDepth: 2
    functionLinenumber: 14073
    functionLinenumberEnd: 14100
    functionName: test_cil_resolve_ast_node_helper_catset
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_catset(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14110,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14113,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14116,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14121,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14123,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14125,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14127
      start: 14102
    functionDepth: 2
    functionLinenumber: 14102
    functionLinenumberEnd: 14127
    functionName: test_cil_resolve_ast_node_helper_catset_catlist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_catset_catlist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14157,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14160,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14163,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14168,1
    - Dst: cil_resolve_catorder
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14169,1
    - Dst: __cil_verify_order
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14170,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14174,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14176,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14178
      start: 14129
    functionDepth: 2
    functionLinenumber: 14129
    functionLinenumberEnd: 14178
    functionName: test_cil_resolve_ast_node_helper_catrange
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - __cil_verify_order
    - gen_resolve_args
    - gen_test_tree
    - cil_resolve_catorder
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_catrange(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14208,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14211,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14214,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14219,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14221,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14223,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14225
      start: 14180
    functionDepth: 2
    functionLinenumber: 14180
    functionLinenumberEnd: 14225
    functionName: test_cil_resolve_ast_node_helper_catrange_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_catrange_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14239,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14242,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14245,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14250,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14252,1
    - Dst: __cil_verify_order
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14254,1
    - Dst: __cil_verify_order
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14256,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14259,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14263,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14267,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14269,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14271
      start: 14227
    functionDepth: 2
    functionLinenumber: 14227
    functionLinenumberEnd: 14271
    functionName: test_cil_resolve_ast_node_helper_level
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - cil_tree_walk
    - CuAssertIntEquals
    - __cil_verify_order
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_level(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14285,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14288,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14291,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14296,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14298,1
    - Dst: __cil_verify_order
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14300,1
    - Dst: __cil_verify_order
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14302,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14305,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14310,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14312,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14314
      start: 14273
    functionDepth: 2
    functionLinenumber: 14273
    functionLinenumberEnd: 14314
    functionName: test_cil_resolve_ast_node_helper_level_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - cil_tree_walk
    - CuAssertIntEquals
    - __cil_verify_order
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_level_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14343,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14346,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14349,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14354,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14356,1
    - Dst: __cil_verify_order
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14359,1
    - Dst: __cil_verify_order
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14361,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14364,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14368,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14372,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14375,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14377
      start: 14316
    functionDepth: 2
    functionLinenumber: 14316
    functionLinenumberEnd: 14377
    functionName: test_cil_resolve_ast_node_helper_levelrange
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - cil_tree_walk
    - CuAssertIntEquals
    - __cil_verify_order
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_levelrange(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14406,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14409,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14412,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14417,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14419,1
    - Dst: __cil_verify_order
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14421,1
    - Dst: __cil_verify_order
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14423,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14426,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14431,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14434,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14436
      start: 14379
    functionDepth: 2
    functionLinenumber: 14379
    functionLinenumberEnd: 14436
    functionName: test_cil_resolve_ast_node_helper_levelrange_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - cil_tree_walk
    - CuAssertIntEquals
    - __cil_verify_order
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_levelrange_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14466,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14469,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14472,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14477,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14479,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14482,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14484
      start: 14438
    functionDepth: 2
    functionLinenumber: 14438
    functionLinenumberEnd: 14484
    functionName: test_cil_resolve_ast_node_helper_constrain
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_constrain(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14502,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14505,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14508,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14513,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14515,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14518,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14520
      start: 14486
    functionDepth: 2
    functionLinenumber: 14486
    functionLinenumberEnd: 14520
    functionName: test_cil_resolve_ast_node_helper_constrain_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_constrain_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14556,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14559,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14562,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14567,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14569,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14572,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14574
      start: 14522
    functionDepth: 2
    functionLinenumber: 14522
    functionLinenumberEnd: 14574
    functionName: test_cil_resolve_ast_node_helper_mlsconstrain
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_mlsconstrain(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14595,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14598,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14601,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14606,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14608,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14611,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14613
      start: 14576
    functionDepth: 2
    functionLinenumber: 14576
    functionLinenumberEnd: 14613
    functionName: test_cil_resolve_ast_node_helper_mlsconstrain_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_mlsconstrain_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14649,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14652,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14655,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14660,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14662,1
    - Dst: __cil_verify_order
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14664,1
    - Dst: __cil_verify_order
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14666,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14669,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14674,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14678,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14680
      start: 14615
    functionDepth: 2
    functionLinenumber: 14615
    functionLinenumberEnd: 14680
    functionName: test_cil_resolve_ast_node_helper_context
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - cil_tree_walk
    - CuAssertIntEquals
    - __cil_verify_order
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_context(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14715,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14718,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14721,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14726,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14728,1
    - Dst: __cil_verify_order
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14730,1
    - Dst: __cil_verify_order
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14732,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14735,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14740,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14744,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14746
      start: 14682
    functionDepth: 2
    functionLinenumber: 14682
    functionLinenumberEnd: 14746
    functionName: test_cil_resolve_ast_node_helper_context_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - cil_tree_walk
    - CuAssertIntEquals
    - __cil_verify_order
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_context_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14791,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14794,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14797,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14802,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14804,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14807,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14809
      start: 14748
    functionDepth: 2
    functionLinenumber: 14748
    functionLinenumberEnd: 14809
    functionName: test_cil_resolve_ast_node_helper_senscat
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_senscat(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14851,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14854,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14857,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14862,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14864,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14867,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14869
      start: 14811
    functionDepth: 2
    functionLinenumber: 14811
    functionLinenumberEnd: 14869
    functionName: test_cil_resolve_ast_node_helper_senscat_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_senscat_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14884,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14887,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14890,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14895,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14897,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14900,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14901,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14902
      start: 14871
    functionDepth: 2
    functionLinenumber: 14871
    functionLinenumberEnd: 14902
    functionName: test_cil_resolve_ast_node_helper_roletransition
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_roletransition(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14931,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14934,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14937,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14942,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14944,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14946,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14948
      start: 14904
    functionDepth: 2
    functionLinenumber: 14904
    functionLinenumberEnd: 14948
    functionName: test_cil_resolve_ast_node_helper_roletransition_srcdecl_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_roletransition_srcdecl_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14977,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14980,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14983,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14988,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14990,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14992,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:14993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14994
      start: 14950
    functionDepth: 2
    functionLinenumber: 14950
    functionLinenumberEnd: 14994
    functionName: test_cil_resolve_ast_node_helper_roletransition_tgtdecl_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_roletransition_tgtdecl_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15023,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15026,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15029,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15034,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15036,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15038,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15040
      start: 14996
    functionDepth: 2
    functionLinenumber: 14996
    functionLinenumberEnd: 15040
    functionName: test_cil_resolve_ast_node_helper_roletransition_resultdecl_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_roletransition_resultdecl_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15057,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15060,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15063,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15068,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15070,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15072,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15074
      start: 15042
    functionDepth: 2
    functionLinenumber: 15042
    functionLinenumberEnd: 15074
    functionName: test_cil_resolve_ast_node_helper_typeattributeset
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_typeattributeset(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15089,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15092,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15095,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15100,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15102,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15104,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15106
      start: 15076
    functionDepth: 2
    functionLinenumber: 15076
    functionLinenumberEnd: 15106
    functionName: test_cil_resolve_ast_node_helper_typeattributeset_undef_type_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_typeattributeset_undef_type_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15115,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15118,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15121,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15126,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15128,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15130,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15132
      start: 15108
    functionDepth: 2
    functionLinenumber: 15108
    functionLinenumberEnd: 15132
    functionName: test_cil_resolve_ast_node_helper_typealias
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_typealias(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15140,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15143,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15146,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15151,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15153,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15155,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15157
      start: 15134
    functionDepth: 2
    functionLinenumber: 15134
    functionLinenumberEnd: 15157
    functionName: test_cil_resolve_ast_node_helper_typealias_notype_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_typealias_notype_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15166,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15169,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15172,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15177,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15179,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15181,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15183
      start: 15159
    functionDepth: 2
    functionLinenumber: 15159
    functionLinenumberEnd: 15183
    functionName: test_cil_resolve_ast_node_helper_typebounds
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_typebounds(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15191,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15194,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15197,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15202,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15204,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15206,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15208
      start: 15185
    functionDepth: 2
    functionLinenumber: 15185
    functionLinenumberEnd: 15208
    functionName: test_cil_resolve_ast_node_helper_typebounds_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_typebounds_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15216,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15219,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15222,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15226,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15228,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15230,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15232
      start: 15210
    functionDepth: 2
    functionLinenumber: 15210
    functionLinenumberEnd: 15232
    functionName: test_cil_resolve_ast_node_helper_typepermissive
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_typepermissive(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15240,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15243,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15246,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15251,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15253,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15255,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15257
      start: 15234
    functionDepth: 2
    functionLinenumber: 15234
    functionLinenumberEnd: 15257
    functionName: test_cil_resolve_ast_node_helper_typepermissive_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_typepermissive_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15281,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15284,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15287,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15292,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15294,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15298,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15300
      start: 15259
    functionDepth: 2
    functionLinenumber: 15259
    functionLinenumberEnd: 15300
    functionName: test_cil_resolve_ast_node_helper_rangetransition
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_rangetransition(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15324,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15327,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15330,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15335,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15337,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15341,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15343
      start: 15302
    functionDepth: 2
    functionLinenumber: 15302
    functionLinenumberEnd: 15343
    functionName: test_cil_resolve_ast_node_helper_rangetransition_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_rangetransition_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15359,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15362,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15365,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15370,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15372,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15375,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15377
      start: 15345
    functionDepth: 2
    functionLinenumber: 15345
    functionLinenumberEnd: 15377
    functionName: test_cil_resolve_ast_node_helper_nametypetransition
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_nametypetransition(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15393,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15396,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15399,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15404,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15406,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15409,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15411
      start: 15379
    functionDepth: 2
    functionLinenumber: 15379
    functionLinenumberEnd: 15411
    functionName: test_cil_resolve_ast_node_helper_nametypetransition_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_nametypetransition_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15422,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15425,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15428,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15433,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15435,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15437,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15439
      start: 15413
    functionDepth: 2
    functionLinenumber: 15413
    functionLinenumberEnd: 15439
    functionName: test_cil_resolve_ast_node_helper_avrule
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_avrule(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15447,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15450,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15453,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15458,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15460,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15462,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15464
      start: 15441
    functionDepth: 2
    functionLinenumber: 15441
    functionLinenumberEnd: 15464
    functionName: test_cil_resolve_ast_node_helper_avrule_src_nores_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_avrule_src_nores_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15473,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15476,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15479,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15484,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15486,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15488,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15490
      start: 15466
    functionDepth: 2
    functionLinenumber: 15466
    functionLinenumberEnd: 15490
    functionName: test_cil_resolve_ast_node_helper_avrule_tgt_nores_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_avrule_tgt_nores_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15499,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15502,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15505,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15510,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15512,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15514,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15516
      start: 15492
    functionDepth: 2
    functionLinenumber: 15492
    functionLinenumberEnd: 15516
    functionName: test_cil_resolve_ast_node_helper_avrule_class_nores_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_avrule_class_nores_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15527,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15530,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15533,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15538,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15540,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15542,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15544
      start: 15518
    functionDepth: 2
    functionLinenumber: 15518
    functionLinenumberEnd: 15544
    functionName: test_cil_resolve_ast_node_helper_avrule_datum_null_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_avrule_datum_null_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15559,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15562,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15565,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15570,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15572,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15575,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15577
      start: 15546
    functionDepth: 2
    functionLinenumber: 15546
    functionLinenumberEnd: 15577
    functionName: test_cil_resolve_ast_node_helper_type_rule_transition
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_type_rule_transition(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15606,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15609,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15612,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15617,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15619,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15621,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15623
      start: 15579
    functionDepth: 2
    functionLinenumber: 15579
    functionLinenumberEnd: 15623
    functionName: test_cil_resolve_ast_node_helper_type_rule_transition_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_type_rule_transition_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15635,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15638,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15641,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15646,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15648,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15651,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15653
      start: 15625
    functionDepth: 2
    functionLinenumber: 15625
    functionLinenumberEnd: 15653
    functionName: test_cil_resolve_ast_node_helper_type_rule_change
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_type_rule_change(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15663,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15666,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15669,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15674,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15676,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15678,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15680
      start: 15655
    functionDepth: 2
    functionLinenumber: 15655
    functionLinenumberEnd: 15680
    functionName: test_cil_resolve_ast_node_helper_type_rule_change_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_type_rule_change_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15692,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15695,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15698,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15703,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15705,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15708,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15710
      start: 15682
    functionDepth: 2
    functionLinenumber: 15682
    functionLinenumberEnd: 15710
    functionName: test_cil_resolve_ast_node_helper_type_rule_member
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_type_rule_member(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15720,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15723,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15726,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15731,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15733,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15735,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15737
      start: 15712
    functionDepth: 2
    functionLinenumber: 15712
    functionLinenumberEnd: 15737
    functionName: test_cil_resolve_ast_node_helper_type_rule_member_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_type_rule_member_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15746,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15749,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15752,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15757,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15760,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15762,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15764,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15766
      start: 15739
    functionDepth: 2
    functionLinenumber: 15739
    functionLinenumberEnd: 15766
    functionName: test_cil_resolve_ast_node_helper_userbounds
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_userbounds(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15774,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15777,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15780,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15785,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15788,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15790,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15792,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15794
      start: 15768
    functionDepth: 2
    functionLinenumber: 15768
    functionLinenumberEnd: 15794
    functionName: test_cil_resolve_ast_node_helper_userbounds_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_userbounds_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15803,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15806,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15809,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15814,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15817,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15819,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15821,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15823
      start: 15796
    functionDepth: 2
    functionLinenumber: 15796
    functionLinenumberEnd: 15823
    functionName: test_cil_resolve_ast_node_helper_roletype
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_roletype(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15831,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15834,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15837,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15842,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15845,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15847,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15849,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15851
      start: 15825
    functionDepth: 2
    functionLinenumber: 15825
    functionLinenumberEnd: 15851
    functionName: test_cil_resolve_ast_node_helper_roletype_role_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_roletype_role_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15859,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15862,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15865,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15870,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15873,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15875,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15877,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15879
      start: 15853
    functionDepth: 2
    functionLinenumber: 15853
    functionLinenumberEnd: 15879
    functionName: test_cil_resolve_ast_node_helper_roletype_type_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_roletype_type_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15888,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15891,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15894,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15899,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15902,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15904,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15906,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15908
      start: 15881
    functionDepth: 2
    functionLinenumber: 15881
    functionLinenumberEnd: 15908
    functionName: test_cil_resolve_ast_node_helper_userrole
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_userrole(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15916,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15919,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15922,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15927,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15930,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15932,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15934,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15936
      start: 15910
    functionDepth: 2
    functionLinenumber: 15910
    functionLinenumberEnd: 15936
    functionName: test_cil_resolve_ast_node_helper_userrole_user_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_userrole_user_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15944,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15947,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15950,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15955,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15958,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15960,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15962,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15964
      start: 15938
    functionDepth: 2
    functionLinenumber: 15938
    functionLinenumberEnd: 15964
    functionName: test_cil_resolve_ast_node_helper_userrole_role_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_userrole_role_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15988,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15991,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15994,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:15999,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16002,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16004,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16007,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16009
      start: 15966
    functionDepth: 2
    functionLinenumber: 15966
    functionLinenumberEnd: 16009
    functionName: test_cil_resolve_ast_node_helper_userlevel
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_userlevel(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16033,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16036,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16039,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16044,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16047,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16049,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16052,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16054
      start: 16011
    functionDepth: 2
    functionLinenumber: 16011
    functionLinenumberEnd: 16054
    functionName: test_cil_resolve_ast_node_helper_userlevel_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_userlevel_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16082,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16085,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16088,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16093,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16096,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16098,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16101,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16103
      start: 16056
    functionDepth: 2
    functionLinenumber: 16056
    functionLinenumberEnd: 16103
    functionName: test_cil_resolve_ast_node_helper_userrange
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_userrange(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16131,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16134,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16137,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16142,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16145,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16147,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16150,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16152
      start: 16105
    functionDepth: 2
    functionLinenumber: 16105
    functionLinenumberEnd: 16152
    functionName: test_cil_resolve_ast_node_helper_userrange_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_userrange_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16173,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16176,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16179,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16184,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16186,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16190,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16192
      start: 16154
    functionDepth: 2
    functionLinenumber: 16154
    functionLinenumberEnd: 16192
    functionName: test_cil_resolve_ast_node_helper_filecon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_filecon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16213,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16216,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16219,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16224,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16226,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16230,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16232
      start: 16194
    functionDepth: 2
    functionLinenumber: 16194
    functionLinenumberEnd: 16232
    functionName: test_cil_resolve_ast_node_helper_filecon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_filecon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16252,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16255,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16258,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16263,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16265,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16269,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16271
      start: 16234
    functionDepth: 2
    functionLinenumber: 16234
    functionLinenumberEnd: 16271
    functionName: test_cil_resolve_ast_node_helper_portcon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_portcon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16291,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16294,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16297,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16302,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16304,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16308,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16310
      start: 16273
    functionDepth: 2
    functionLinenumber: 16273
    functionLinenumberEnd: 16310
    functionName: test_cil_resolve_ast_node_helper_portcon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_portcon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16330,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16333,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16336,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16341,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16343,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16347,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16349
      start: 16312
    functionDepth: 2
    functionLinenumber: 16312
    functionLinenumberEnd: 16349
    functionName: test_cil_resolve_ast_node_helper_genfscon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_genfscon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16369,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16372,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16375,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16380,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16382,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16386,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16388
      start: 16351
    functionDepth: 2
    functionLinenumber: 16351
    functionLinenumberEnd: 16388
    functionName: test_cil_resolve_ast_node_helper_genfscon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_genfscon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16409,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16412,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16415,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16420,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16422,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16426,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16428
      start: 16390
    functionDepth: 2
    functionLinenumber: 16390
    functionLinenumberEnd: 16428
    functionName: test_cil_resolve_ast_node_helper_nodecon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_nodecon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16450,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16453,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16456,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16461,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16463,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16467,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16469
      start: 16430
    functionDepth: 2
    functionLinenumber: 16430
    functionLinenumberEnd: 16469
    functionName: test_cil_resolve_ast_node_helper_nodecon_ipaddr_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_nodecon_ipaddr_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16491,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16494,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16497,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16502,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16504,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16508,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16510
      start: 16471
    functionDepth: 2
    functionLinenumber: 16471
    functionLinenumberEnd: 16510
    functionName: test_cil_resolve_ast_node_helper_nodecon_netmask_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_nodecon_netmask_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16549,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16552,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16555,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16560,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16562,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16564,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16566
      start: 16512
    functionDepth: 2
    functionLinenumber: 16512
    functionLinenumberEnd: 16566
    functionName: test_cil_resolve_ast_node_helper_netifcon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_netifcon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16579,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16582,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16585,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16590,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16592,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16594,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16596
      start: 16568
    functionDepth: 2
    functionLinenumber: 16568
    functionLinenumberEnd: 16596
    functionName: test_cil_resolve_ast_node_helper_netifcon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_netifcon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16606,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16609,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16612,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16617,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16619,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16621,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16623
      start: 16598
    functionDepth: 2
    functionLinenumber: 16598
    functionLinenumberEnd: 16623
    functionName: test_cil_resolve_ast_node_helper_pirqcon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_pirqcon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16633,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16636,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16639,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16644,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16646,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16648,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16650
      start: 16625
    functionDepth: 2
    functionLinenumber: 16625
    functionLinenumberEnd: 16650
    functionName: test_cil_resolve_ast_node_helper_pirqcon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_pirqcon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16660,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16663,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16666,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16671,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16673,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16675,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16677
      start: 16652
    functionDepth: 2
    functionLinenumber: 16652
    functionLinenumberEnd: 16677
    functionName: test_cil_resolve_ast_node_helper_iomemcon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_iomemcon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16687,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16690,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16693,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16698,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16700,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16702,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16704
      start: 16679
    functionDepth: 2
    functionLinenumber: 16679
    functionLinenumberEnd: 16704
    functionName: test_cil_resolve_ast_node_helper_iomemcon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_iomemcon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16714,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16717,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16720,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16725,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16727,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16729,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16731
      start: 16706
    functionDepth: 2
    functionLinenumber: 16706
    functionLinenumberEnd: 16731
    functionName: test_cil_resolve_ast_node_helper_ioportcon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_ioportcon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16741,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16744,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16747,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16752,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16754,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16756,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16758
      start: 16733
    functionDepth: 2
    functionLinenumber: 16733
    functionLinenumberEnd: 16758
    functionName: test_cil_resolve_ast_node_helper_ioportcon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_ioportcon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16768,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16771,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16774,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16779,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16781,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16783,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16785
      start: 16760
    functionDepth: 2
    functionLinenumber: 16760
    functionLinenumberEnd: 16785
    functionName: test_cil_resolve_ast_node_helper_pcidevicecon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_pcidevicecon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16795,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16798,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16801,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16806,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16808,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16810,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16812
      start: 16787
    functionDepth: 2
    functionLinenumber: 16787
    functionLinenumberEnd: 16812
    functionName: test_cil_resolve_ast_node_helper_pcidevicecon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_pcidevicecon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16852,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16855,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16858,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16863,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16865,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16869,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16871
      start: 16814
    functionDepth: 2
    functionLinenumber: 16814
    functionLinenumberEnd: 16871
    functionName: test_cil_resolve_ast_node_helper_fsuse
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_fsuse(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16884,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16887,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16890,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16895,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16897,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16899,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16901
      start: 16873
    functionDepth: 2
    functionLinenumber: 16873
    functionLinenumberEnd: 16901
    functionName: test_cil_resolve_ast_node_helper_fsuse_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_fsuse_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16941,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16944,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16947,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16952,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16954,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16958,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16960
      start: 16903
    functionDepth: 2
    functionLinenumber: 16903
    functionLinenumberEnd: 16960
    functionName: test_cil_resolve_ast_node_helper_sidcontext
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_sidcontext(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16995,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:16998,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17001,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17006,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17008,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17012,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17014
      start: 16962
    functionDepth: 2
    functionLinenumber: 16962
    functionLinenumberEnd: 17014
    functionName: test_cil_resolve_ast_node_helper_sidcontext_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_sidcontext_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17024,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17027,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17030,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17035,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17037,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17040,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17042
      start: 17016
    functionDepth: 2
    functionLinenumber: 17016
    functionLinenumberEnd: 17042
    functionName: test_cil_resolve_ast_node_helper_blockinherit
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_blockinherit(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17051,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17054,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17057,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17062,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17064,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17066,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17068
      start: 17044
    functionDepth: 2
    functionLinenumber: 17044
    functionLinenumberEnd: 17068
    functionName: test_cil_resolve_ast_node_helper_classcommon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_classcommon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17076,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17079,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17082,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17087,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17089,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17091,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17093
      start: 17070
    functionDepth: 2
    functionLinenumber: 17070
    functionLinenumberEnd: 17093
    functionName: test_cil_resolve_ast_node_helper_classcommon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_classcommon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17102,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17105,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17108,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17113,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17116,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17118,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17120,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17122
      start: 17095
    functionDepth: 2
    functionLinenumber: 17095
    functionLinenumberEnd: 17122
    functionName: test_cil_resolve_ast_node_helper_rolebounds
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_rolebounds(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17130,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17133,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17136,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17141,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17144,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17146,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17148,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17150
      start: 17124
    functionDepth: 2
    functionLinenumber: 17124
    functionLinenumberEnd: 17150
    functionName: test_cil_resolve_ast_node_helper_rolebounds_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_rolebounds_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17157,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17160,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17163,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17166,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17172,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17175,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17177,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17179,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17182
      start: 17152
    functionDepth: 2
    functionLinenumber: 17152
    functionLinenumberEnd: 17182
    functionName: test_cil_resolve_ast_node_helper_callstack
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_callstack(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17189,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17192,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17195,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17198,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17204,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17207,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17209,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17212
      start: 17184
    functionDepth: 2
    functionLinenumber: 17184
    functionLinenumberEnd: 17212
    functionName: test_cil_resolve_ast_node_helper_call
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_call(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17221,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17224,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17227,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17230,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17236,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17239,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17245,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17248
      start: 17214
    functionDepth: 2
    functionLinenumber: 17214
    functionLinenumberEnd: 17248
    functionName: test_cil_resolve_ast_node_helper_optional
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_optional(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17258,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17261,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17264,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17269,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17272,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17274,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17277
      start: 17250
    functionDepth: 2
    functionLinenumber: 17250
    functionLinenumberEnd: 17277
    functionName: test_cil_resolve_ast_node_helper_macro
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_macro(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17289,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17292,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17295,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17298,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17304,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17307,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17309,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17311,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17314
      start: 17279
    functionDepth: 2
    functionLinenumber: 17279
    functionLinenumberEnd: 17314
    functionName: test_cil_resolve_ast_node_helper_optstack
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_optstack(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17321,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17324,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17327,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17331,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17336,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17338,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17341
      start: 17316
    functionDepth: 2
    functionLinenumber: 17316
    functionLinenumberEnd: 17341
    functionName: test_cil_resolve_ast_node_helper_optstack_tunable_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_optstack_tunable_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17355,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17358,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17361,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17366,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17371,1
    - Dst: cil_resolve_call1
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17373,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17377,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17379,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17381
      start: 17343
    functionDepth: 2
    functionLinenumber: 17343
    functionLinenumberEnd: 17381
    functionName: test_cil_resolve_ast_node_helper_optstack_macro_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_resolve_call1
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_optstack_macro_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17390,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17393,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17396,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17399,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17404,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17406,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17408
      start: 17383
    functionDepth: 2
    functionLinenumber: 17383
    functionLinenumberEnd: 17408
    functionName: test_cil_resolve_ast_node_helper_nodenull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_nodenull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17417,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17420,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17423,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17427,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17429,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17431,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17433
      start: 17410
    functionDepth: 2
    functionLinenumber: 17410
    functionLinenumberEnd: 17433
    functionName: test_cil_resolve_ast_node_helper_extraargsnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_extraargsnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17442,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17445,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17448,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17453,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17456,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17458,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17461
      start: 17435
    functionDepth: 2
    functionLinenumber: 17435
    functionLinenumberEnd: 17461
    functionName: test_cil_resolve_ast_node_helper_dbflavor_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_dbflavor_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17470,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17473,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17476,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17481,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17484,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17486,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17489
      start: 17463
    functionDepth: 2
    functionLinenumber: 17463
    functionLinenumberEnd: 17489
    functionName: test_cil_resolve_ast_node_helper_pass_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_pass_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17497,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17500,1
    - Dst: cil_optional_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17503,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17506,1
    - Dst: gen_resolve_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17512,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17517,1
    - Dst: __cil_resolve_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17519,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17521,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c:17522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17523
      start: 17491
    functionDepth: 2
    functionLinenumber: 17491
    functionLinenumberEnd: 17523
    functionName: test_cil_resolve_ast_node_helper_optfailedtoresolve
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_build_ast
    - cil_db_init
    - cil_optional_init
    - __cil_resolve_ast_node_helper
    - CuAssertIntEquals
    - gen_resolve_args
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_resolve_ast_node_helper_optfailedtoresolve(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:41,1
    - Dst: cil_symtab_array_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:43,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:45,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 48
    functionName: test_cil_symtab_array_init
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil.c
    functionUses: 0
    functionsReached:
    - CuAssertPtrNotNull
    - free
    - malloc
    - cil_symtab_array_init
    linkageType: ''
    returnType: void
    signature: void test_cil_symtab_array_init(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:54,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:56,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:57,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 59
    functionName: test_cil_db_init
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertPtrNotNull
    linkageType: ''
    returnType: void
    signature: void test_cil_db_init(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:68,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:71,1
    - Dst: cil_get_symtab
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:77,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:79,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 81
    functionName: test_cil_get_symtab_block
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_get_symtab
    - cil_db_init
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    linkageType: ''
    returnType: void
    signature: void test_cil_get_symtab_block(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:88,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:91,1
    - Dst: cil_get_symtab
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:97,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:99,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 101
    functionName: test_cil_get_symtab_class
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_get_symtab
    - cil_db_init
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    linkageType: ''
    returnType: void
    signature: void test_cil_get_symtab_class(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:108,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:111,1
    - Dst: cil_get_symtab
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:117,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:119,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 121
    functionName: test_cil_get_symtab_root
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_get_symtab
    - cil_db_init
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    linkageType: ''
    returnType: void
    signature: void test_cil_get_symtab_root(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:128,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:131,1
    - Dst: cil_get_symtab
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:137,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:139,1
    - Dst: CuAssertPtrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 141
    functionName: test_cil_get_symtab_flavor_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_get_symtab
    - cil_db_init
    - CuAssertPtrEquals
    - CuAssertIntEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_get_symtab_flavor_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:148,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:151,1
    - Dst: cil_get_symtab
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:156,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:158,1
    - Dst: CuAssertPtrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 160
    functionName: test_cil_get_symtab_null_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_get_symtab
    - cil_db_init
    - CuAssertPtrEquals
    - CuAssertIntEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_get_symtab_null_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:169,1
    - Dst: cil_get_symtab
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:172,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:173,1
    - Dst: CuAssertPtrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:174,1
    - Dst: CuAssertPtrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 176
    functionName: test_cil_get_symtab_node_null_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_get_symtab
    - CuAssertPtrEquals
    - CuAssertIntEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_get_symtab_node_null_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:183,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:186,1
    - Dst: cil_get_symtab
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:191,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:193,1
    - Dst: CuAssertPtrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 195
    functionName: test_cil_get_symtab_parent_null_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_get_symtab
    - cil_db_init
    - CuAssertPtrEquals
    - CuAssertIntEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_get_symtab_parent_null_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_symtab.c:43,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_symtab.c:46,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_symtab.c:49,1
    - Dst: cil_symtab_array_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_symtab.c:54,1
    - Dst: cil_get_symtab
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_symtab.c:59,1
    - Dst: cil_symtab_insert
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_symtab.c:62,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_symtab.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 66
    functionName: test_cil_symtab_insert
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_symtab.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_get_symtab
    - cil_db_init
    - cil_symtab_insert
    - malloc
    - CuAssertIntEquals
    - cil_symtab_array_init
    linkageType: ''
    returnType: void
    signature: void test_cil_symtab_insert(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:38,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:40,1
    - Dst: cil_permset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:41,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:43,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:44,1
    - Dst: cil_destroy_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 48
    functionName: test_cil_list_init
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_list.c
    functionUses: 0
    functionsReached:
    - malloc
    - cil_permset_init
    - cil_destroy_avrule
    - CuAssertPtrNotNull
    - cil_list_init
    - cil_classpermset_init
    linkageType: ''
    returnType: void
    signature: void test_cil_list_init(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:57,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:60,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:63,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:69,1
    - Dst: cil_list_item_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:72,1
    - Dst: cil_list_append_item
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:77,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 79
    functionName: test_cil_list_append_item
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_list.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_list_append_item
    - cil_db_init
    - cil_list_item_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_list_init
    linkageType: ''
    returnType: void
    signature: void test_cil_list_append_item(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:88,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:91,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:94,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:100,1
    - Dst: cil_list_item_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:103,1
    - Dst: cil_list_append_item
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:108,1
    - Dst: cil_list_item_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:110,1
    - Dst: cil_list_append_item
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:116,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:117,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 119
    functionName: test_cil_list_append_item_append
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_list.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_list_append_item
    - cil_db_init
    - cil_list_item_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_list_init
    linkageType: ''
    returnType: void
    signature: void test_cil_list_append_item_append(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:134,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:137,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:140,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:146,1
    - Dst: cil_list_item_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:149,1
    - Dst: cil_list_append_item
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:154,1
    - Dst: cil_list_item_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:156,1
    - Dst: cil_list_append_item
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:161,1
    - Dst: cil_list_item_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:163,1
    - Dst: cil_list_append_item
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:168,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:169,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:170,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 172
    functionName: test_cil_list_append_item_append_extra
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_list.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_list_append_item
    - cil_db_init
    - cil_list_item_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_list_init
    linkageType: ''
    returnType: void
    signature: void test_cil_list_append_item_append_extra(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:181,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:184,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:187,1
    - Dst: cil_list_item_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:195,1
    - Dst: cil_list_append_item
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:200,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 202
    functionName: test_cil_list_append_item_listnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_list.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_list_append_item
    - cil_db_init
    - cil_list_item_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_list_append_item_listnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:211,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:214,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:217,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:223,1
    - Dst: cil_list_append_item
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:227,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 229
    functionName: test_cil_list_append_item_itemnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_list.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_list_append_item
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_list_init
    linkageType: ''
    returnType: void
    signature: void test_cil_list_append_item_itemnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:238,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:241,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:244,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:250,1
    - Dst: cil_list_item_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:253,1
    - Dst: cil_list_prepend_item
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:258,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 260
    functionName: test_cil_list_prepend_item
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_list.c
    functionUses: 0
    functionsReached:
    - cil_list_prepend_item
    - cil_tree_node_init
    - cil_db_init
    - cil_list_item_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_list_init
    linkageType: ''
    returnType: void
    signature: void test_cil_list_prepend_item(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:269,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:272,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:275,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:281,1
    - Dst: cil_list_item_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:284,1
    - Dst: cil_list_prepend_item
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:289,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 292
    functionName: test_cil_list_prepend_item_prepend
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_list.c
    functionUses: 0
    functionsReached:
    - cil_list_prepend_item
    - cil_tree_node_init
    - cil_db_init
    - cil_list_item_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_list_init
    linkageType: ''
    returnType: void
    signature: void test_cil_list_prepend_item_prepend(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:307,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:310,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:313,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:319,1
    - Dst: cil_list_item_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:322,1
    - Dst: cil_list_item_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:328,1
    - Dst: cil_list_prepend_item
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:334,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 336
    functionName: test_cil_list_prepend_item_prepend_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_list.c
    functionUses: 0
    functionsReached:
    - cil_list_prepend_item
    - cil_tree_node_init
    - cil_db_init
    - cil_list_item_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_list_init
    linkageType: ''
    returnType: void
    signature: void test_cil_list_prepend_item_prepend_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:345,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:348,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:351,1
    - Dst: cil_list_item_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:359,1
    - Dst: cil_list_prepend_item
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:364,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 366
    functionName: test_cil_list_prepend_item_listnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_list.c
    functionUses: 0
    functionsReached:
    - cil_list_prepend_item
    - cil_tree_node_init
    - cil_db_init
    - cil_list_item_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_list_prepend_item_listnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:375,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:378,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:381,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:387,1
    - Dst: cil_list_prepend_item
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:391,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_list.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 393
    functionName: test_cil_list_prepend_item_itemnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_list.c
    functionUses: 0
    functionsReached:
    - cil_list_prepend_item
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_list_init
    linkageType: ''
    returnType: void
    signature: void test_cil_list_prepend_item_itemnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_parser.c:46,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_parser.c:49,1
    - Dst: set_cil_file_data
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_parser.c:51,1
    - Dst: cil_parser
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_parser.c:53,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_parser.c:55,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_parser.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 58
    functionName: test_cil_parser
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_parser.c
    functionUses: 0
    functionsReached:
    - set_cil_file_data
    - cil_db_init
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    - cil_parser
    - cil_tree_init
    linkageType: ''
    returnType: void
    signature: void test_cil_parser(CuTest *tc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: system
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:44,1
    - Dst: WIFSIGNALED
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:46,1
    - Dst: WTERMSIG
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:47,1
    - Dst: WTERMSIG
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:47,1
    - Dst: printf
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:48,1
    - Dst: system
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:50,1
    - Dst: WIFSIGNALED
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:53,1
    - Dst: WTERMSIG
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:54,1
    - Dst: WTERMSIG
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:54,1
    - Dst: printf
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:55,1
    - Dst: system
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:57,1
    - Dst: WIFSIGNALED
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:59,1
    - Dst: WTERMSIG
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:60,1
    - Dst: WTERMSIG
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:60,1
    - Dst: printf
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:61,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:63,1
    - Dst: WIFEXITED
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:63,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:64,1
    - Dst: WEXITSTATUS
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:64,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:65,1
    - Dst: WIFEXITED
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:65,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:66,1
    - Dst: WEXITSTATUS
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:66,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:67,1
    - Dst: WIFEXITED
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:67,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:68,1
    - Dst: WEXITSTATUS
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:68,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 69
    functionName: test_integration
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_integration.c
    functionUses: 0
    functionsReached:
    - WTERMSIG
    - system
    - CuAssertIntEquals
    - WIFEXITED
    - WIFSIGNALED
    - WEXITSTATUS
    - printf
    linkageType: ''
    returnType: void
    signature: void test_integration(CuTest *tc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: system
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:75,1
    - Dst: WIFSIGNALED
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:77,1
    - Dst: WTERMSIG
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:78,1
    - Dst: WTERMSIG
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:78,1
    - Dst: printf
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:79,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:81,1
    - Dst: WIFEXITED
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:81,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:82,1
    - Dst: WEXITSTATUS
      Src: /src/selinux/libsepol/cil/test/unit/test_integration.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 83
    functionName: test_min_policy
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_integration.c
    functionUses: 0
    functionsReached:
    - WTERMSIG
    - system
    - CuAssertIntEquals
    - WIFEXITED
    - WIFSIGNALED
    - WEXITSTATUS
    - printf
    linkageType: ''
    returnType: void
    signature: void test_min_policy(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - TYPE
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    functionName: CU_ALLOC
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CU_ALLOC(TYPE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tc
    - ','
    - ms
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: CuFail
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CuFail(tc, ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tc
    - ','
    - ms
    - ','
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: CuAssert
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CuAssert(tc, ms, cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tc
    - ','
    - cond
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: CuAssertTrue
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CuAssertTrue(tc, cond)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tc
    - ','
    - ex
    - ','
    - ac
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: CuAssertStrEquals
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CuAssertStrEquals(tc, ex, ac)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - tc
    - ','
    - ms
    - ','
    - ex
    - ','
    - ac
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: CuAssertStrEquals_Msg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CuAssertStrEquals_Msg(tc, ms, ex, ac)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tc
    - ','
    - ex
    - ','
    - ac
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: CuAssertIntEquals
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.h
    functionUses: 570
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CuAssertIntEquals(tc, ex, ac)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - tc
    - ','
    - ms
    - ','
    - ex
    - ','
    - ac
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: CuAssertIntEquals_Msg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CuAssertIntEquals_Msg(tc, ms, ex, ac)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - tc
    - ','
    - ex
    - ','
    - ac
    - ','
    - dl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: CuAssertDblEquals
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CuAssertDblEquals(tc, ex, ac, dl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - tc
    - ','
    - ms
    - ','
    - ex
    - ','
    - ac
    - ','
    - dl
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: CuAssertDblEquals_Msg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CuAssertDblEquals_Msg(tc, ms, ex, ac, dl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tc
    - ','
    - ex
    - ','
    - ac
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: CuAssertPtrEquals
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CuAssertPtrEquals(tc, ex, ac)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - tc
    - ','
    - ms
    - ','
    - ex
    - ','
    - ac
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: CuAssertPtrEquals_Msg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CuAssertPtrEquals_Msg(tc, ms, ex, ac)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - tc
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: CuAssertPtrNotNull
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CuAssertPtrNotNull(tc, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - tc
    - ','
    - msg
    - ','
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: CuAssertPtrNotNullMsg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CuAssertPtrNotNullMsg(tc, msg, p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - SUITE
    - ','
    - TEST
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    functionName: SUITE_ADD_TEST
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/CuTest.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUITE_ADD_TEST(SUITE, TEST)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_set_log_level
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:42,1
    - Dst: CuStringNew
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:44,1
    - Dst: CuSuiteNew
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:45,1
    - Dst: CuSuiteNew
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:46,1
    - Dst: CuSuiteNew
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:47,1
    - Dst: CuSuiteNew
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:48,1
    - Dst: CuSuiteAddSuite
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:50,1
    - Dst: CilTreeGetSuite
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:50,1
    - Dst: CuSuiteAddSuite
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:51,1
    - Dst: CilTreeGetResolveSuite
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:51,1
    - Dst: CuSuiteAddSuite
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:52,1
    - Dst: CilTreeGetBuildSuite
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:52,1
    - Dst: CuSuiteAddSuite
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:53,1
    - Dst: CilTestFullCil
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:53,1
    - Dst: CuSuiteRun
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:55,1
    - Dst: CuSuiteDetails
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:56,1
    - Dst: CuSuiteSummary
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:57,1
    - Dst: CuSuiteRun
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:59,1
    - Dst: CuSuiteDetails
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:60,1
    - Dst: CuSuiteSummary
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:61,1
    - Dst: CuSuiteRun
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:63,1
    - Dst: CuSuiteDetails
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:64,1
    - Dst: CuSuiteSummary
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:65,1
    - Dst: CuSuiteRun
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:67,1
    - Dst: CuSuiteDetails
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:68,1
    - Dst: CuSuiteSummary
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:69,1
    - Dst: printf
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 39
    functionDepth: 4
    functionLinenumber: 39
    functionLinenumberEnd: 71
    functionName: RunAllTests
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/AllTests.c
    functionUses: 0
    functionsReached:
    - CuSuiteSummary
    - CuSuiteNew
    - CuSuiteDetails
    - CuSuiteRun
    - cil_set_log_level
    - CuSuiteAddSuite
    - CilTreeGetSuite
    - CilTreeGetBuildSuite
    - CuStringNew
    - printf
    - CilTestFullCil
    - CilTreeGetResolveSuite
    linkageType: ''
    returnType: void
    signature: void RunAllTests(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RunAllTests
      Src: /src/selinux/libsepol/cil/test/unit/AllTests.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 5
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: main
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/AllTests.c
    functionUses: 0
    functionsReached:
    - RunAllTests
    linkageType: ''
    returnType: int
    signature: int main(__attribute__((unused)) int argc, __attribute__((unused))
      char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - node
    - db
    - macro
    - tifstack
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 64
    functionName: gen_build_args
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: struct cil_args_build
    signature: "struct cil_args_build *gen_build_args(struct cil_tree_node *node,\n\t\t\t\t
      \     struct cil_db *db,\n\t\t\t\t      struct cil_tree_node *macro,\n\t\t\t\t
      \     struct cil_tree_node *tifstack)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:73,1
    - Dst: cil_avrule_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:79,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:81,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:82,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:84,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:87,1
    - Dst: cil_permset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:89,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:91,1
    - Dst: cil_parse_to_list
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:95,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:99,1
    - Dst: cil_destroy_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 102
    functionName: test_cil_parse_to_list
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_strdup
    - CuAssertIntEquals
    - cil_permset_init
    - cil_parse_to_list
    - cil_destroy_avrule
    - cil_avrule_init
    - gen_test_tree
    - cil_list_init
    - cil_classpermset_init
    linkageType: ''
    returnType: void
    signature: void test_cil_parse_to_list(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:110,1
    - Dst: cil_avrule_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:116,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:118,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:119,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:121,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:124,1
    - Dst: cil_permset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:126,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:128,1
    - Dst: cil_parse_to_list
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:132,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:136,1
    - Dst: cil_destroy_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 139
    functionName: test_cil_parse_to_list_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_strdup
    - CuAssertIntEquals
    - cil_permset_init
    - cil_parse_to_list
    - cil_destroy_avrule
    - cil_avrule_init
    - gen_test_tree
    - cil_list_init
    - cil_classpermset_init
    linkageType: ''
    returnType: void
    signature: void test_cil_parse_to_list_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:147,1
    - Dst: cil_avrule_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:153,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:155,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:156,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:158,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:161,1
    - Dst: cil_permset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:163,1
    - Dst: cil_parse_to_list
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:167,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:171,1
    - Dst: cil_destroy_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 174
    functionName: test_cil_parse_to_list_listnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_strdup
    - CuAssertIntEquals
    - cil_permset_init
    - cil_parse_to_list
    - cil_destroy_avrule
    - cil_avrule_init
    - gen_test_tree
    - cil_classpermset_init
    linkageType: ''
    returnType: void
    signature: void test_cil_parse_to_list_listnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:184,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:185,1
    - Dst: cil_set_to_list
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:187,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:190,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:191,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:192,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 194
    functionName: test_cil_set_to_list
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_set_to_list
    - CuAssertStrEquals
    - CuAssertIntEquals
    - gen_test_tree
    - cil_list_init
    linkageType: ''
    returnType: void
    signature: void test_cil_set_to_list(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_set_to_list
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:199,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: test_cil_set_to_list_tree_node_null_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_set_to_list
    - CuAssertIntEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_set_to_list_tree_node_null_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:211,1
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:212,1
    - Dst: cil_set_to_list
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:215,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 218
    functionName: test_cil_set_to_list_cl_head_null_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_init
    - cil_set_to_list
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_set_to_list_cl_head_null_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:225,1
    - Dst: cil_set_to_list
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:227,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 230
    functionName: test_cil_set_to_list_listnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_set_to_list
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_set_to_list_listnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:237,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:240,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:243,1
    - Dst: cil_gen_block
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:248,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:250,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:251,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:252,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 255
    functionName: test_cil_gen_block
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_block
    - cil_db_init
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_block(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:262,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:265,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:268,1
    - Dst: cil_gen_block
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:273,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 276
    functionName: test_cil_gen_block_justblock_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_block
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_block_justblock_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:283,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:286,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:289,1
    - Dst: cil_gen_block
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:294,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 297
    functionName: test_cil_gen_block_noname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_block
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_block_noname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:306,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:309,1
    - Dst: cil_gen_block
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:313,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 316
    functionName: test_cil_gen_block_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - CuAssertIntEquals
    - cil_tree_node_init
    - cil_gen_block
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_block_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:325,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:328,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:333,1
    - Dst: cil_gen_block
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:338,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 341
    functionName: test_cil_gen_block_treenull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_block
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_block_treenull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:350,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:355,1
    - Dst: cil_gen_block
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:357,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 360
    functionName: test_cil_gen_block_nodenull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_block
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_block_nodenull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:369,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:372,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:375,1
    - Dst: cil_gen_block
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:380,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 383
    functionName: test_cil_gen_block_nodeparentnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_block
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_block_nodeparentnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:390,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:393,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:396,1
    - Dst: cil_gen_block
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:401,1
    - Dst: cil_destroy_block
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:404,1
    - Dst: CuAssertPtrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 406
    functionName: test_cil_destroy_block
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_block
    - cil_db_init
    - CuAssertPtrEquals
    - cil_destroy_block
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_destroy_block(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:413,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:416,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:419,1
    - Dst: cil_gen_blockinherit
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:424,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 427
    functionName: test_cil_gen_blockinherit
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_blockinherit
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_blockinherit(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:434,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:437,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:440,1
    - Dst: cil_gen_blockinherit
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:445,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 448
    functionName: test_cil_gen_blockinherit_namelist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_blockinherit
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_blockinherit_namelist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:455,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:458,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:461,1
    - Dst: cil_gen_blockinherit
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:466,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 450
    functionDepth: 2
    functionLinenumber: 450
    functionLinenumberEnd: 469
    functionName: test_cil_gen_blockinherit_namenull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_blockinherit
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_blockinherit_namenull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:476,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:479,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:482,1
    - Dst: cil_gen_blockinherit
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:487,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 490
    functionName: test_cil_gen_blockinherit_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_blockinherit
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_blockinherit_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:497,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:500,1
    - Dst: cil_gen_blockinherit
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:504,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 507
    functionName: test_cil_gen_blockinherit_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_blockinherit
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_blockinherit_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:514,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:517,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:520,1
    - Dst: cil_gen_blockinherit
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:525,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 528
    functionName: test_cil_gen_blockinherit_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_blockinherit
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_blockinherit_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:535,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:540,1
    - Dst: cil_gen_blockinherit
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:542,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 545
    functionName: test_cil_gen_blockinherit_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_blockinherit
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_blockinherit_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:553,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:556,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:559,1
    - Dst: cil_class_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:562,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:565,1
    - Dst: cil_gen_perm
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:572,1
    - Dst: cil_gen_perm
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:575,1
    - Dst: cil_gen_perm
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:579,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:583,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:584,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 586
    functionName: test_cil_gen_perm
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_perm
    - cil_db_init
    - CuAssertIntEquals
    - cil_class_init
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_perm(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:595,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:600,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:607,1
    - Dst: cil_gen_perm
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:611,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 613
    functionName: test_cil_gen_perm_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_perm
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_perm_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:622,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:627,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:630,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:637,1
    - Dst: cil_gen_perm
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:640,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 642
    functionName: test_cil_gen_perm_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_perm
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_perm_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:650,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:655,1
    - Dst: cil_class_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:658,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:661,1
    - Dst: cil_gen_perm
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:665,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 644
    functionDepth: 2
    functionLinenumber: 644
    functionLinenumberEnd: 669
    functionName: test_cil_gen_perm_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_perm
    - cil_db_init
    - CuAssertIntEquals
    - cil_class_init
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_perm_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:678,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:685,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:690,1
    - Dst: cil_gen_perm
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:694,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 671
    functionDepth: 2
    functionLinenumber: 671
    functionLinenumberEnd: 696
    functionName: test_cil_gen_perm_nodenull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_perm
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_perm_nodenull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:705,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:708,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:711,1
    - Dst: cil_gen_permset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:716,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 698
    functionDepth: 2
    functionLinenumber: 698
    functionLinenumberEnd: 719
    functionName: test_cil_gen_permset
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_permset
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_permset(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:726,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:729,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:732,1
    - Dst: cil_gen_permset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:737,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 721
    functionDepth: 2
    functionLinenumber: 721
    functionLinenumberEnd: 740
    functionName: test_cil_gen_permset_noname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_permset
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_permset_noname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:748,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:751,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:754,1
    - Dst: cil_gen_permset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:759,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 742
    functionDepth: 2
    functionLinenumber: 742
    functionLinenumberEnd: 762
    functionName: test_cil_gen_permset_nameinparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_permset
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_permset_nameinparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:769,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:772,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:775,1
    - Dst: cil_gen_permset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:780,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 764
    functionDepth: 2
    functionLinenumber: 764
    functionLinenumberEnd: 783
    functionName: test_cil_gen_permset_noperms_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_permset
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_permset_noperms_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:790,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:793,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:796,1
    - Dst: cil_gen_permset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:801,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 785
    functionDepth: 2
    functionLinenumber: 785
    functionLinenumberEnd: 804
    functionName: test_cil_gen_permset_emptyperms_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_permset
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_permset_emptyperms_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:812,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:815,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:818,1
    - Dst: cil_gen_permset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:823,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 806
    functionDepth: 2
    functionLinenumber: 806
    functionLinenumberEnd: 826
    functionName: test_cil_gen_permset_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_permset
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_permset_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:835,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:838,1
    - Dst: cil_gen_permset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:842,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 828
    functionDepth: 2
    functionLinenumber: 828
    functionLinenumberEnd: 845
    functionName: test_cil_gen_permset_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_permset
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_permset_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:852,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:855,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:858,1
    - Dst: cil_gen_permset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:863,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 847
    functionDepth: 2
    functionLinenumber: 847
    functionLinenumberEnd: 866
    functionName: test_cil_gen_permset_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_permset
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_permset_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:875,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:880,1
    - Dst: cil_gen_permset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:882,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 868
    functionDepth: 2
    functionLinenumber: 868
    functionLinenumberEnd: 885
    functionName: test_cil_gen_permset_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_permset
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_permset_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:893,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:896,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:899,1
    - Dst: cil_class_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:903,1
    - Dst: cil_symtab_insert
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:908,1
    - Dst: cil_gen_perm_nodes
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:915,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 887
    functionDepth: 2
    functionLinenumber: 887
    functionLinenumberEnd: 919
    functionName: test_cil_gen_perm_nodes
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_perm_nodes
    - CuAssertIntEquals
    - cil_class_init
    - gen_test_tree
    - cil_symtab_insert
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_perm_nodes(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:927,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:930,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:933,1
    - Dst: cil_class_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:937,1
    - Dst: cil_symtab_destroy
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:939,1
    - Dst: cil_symtab_insert
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:944,1
    - Dst: cil_gen_perm_nodes
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:951,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 921
    functionDepth: 2
    functionLinenumber: 921
    functionLinenumberEnd: 955
    functionName: test_cil_gen_perm_nodes_failgen_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_symtab_destroy
    - cil_db_init
    - cil_gen_perm_nodes
    - CuAssertIntEquals
    - cil_class_init
    - gen_test_tree
    - cil_symtab_insert
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_perm_nodes_failgen_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:963,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:966,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:969,1
    - Dst: cil_class_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:973,1
    - Dst: cil_symtab_insert
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:978,1
    - Dst: cil_gen_perm_nodes
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:985,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 957
    functionDepth: 2
    functionLinenumber: 957
    functionLinenumberEnd: 989
    functionName: test_cil_gen_perm_nodes_inval_perm_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_perm_nodes
    - CuAssertIntEquals
    - cil_class_init
    - gen_test_tree
    - cil_symtab_insert
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_perm_nodes_inval_perm_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:998,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1001,1
    - Dst: cil_permset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1004,1
    - Dst: cil_fill_permset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1006,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 991
    functionDepth: 2
    functionLinenumber: 991
    functionLinenumberEnd: 1010
    functionName: test_cil_fill_permset
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_permset
    - CuAssertIntEquals
    - cil_permset_init
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_permset(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1019,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1022,1
    - Dst: cil_permset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1025,1
    - Dst: cil_fill_permset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1027,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1012
    functionDepth: 2
    functionLinenumber: 1012
    functionLinenumberEnd: 1031
    functionName: test_cil_fill_permset_sublist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_permset
    - CuAssertIntEquals
    - cil_permset_init
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_permset_sublist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1038,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1041,1
    - Dst: cil_permset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1044,1
    - Dst: cil_fill_permset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1046,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1033
    functionDepth: 2
    functionLinenumber: 1033
    functionLinenumberEnd: 1050
    functionName: test_cil_fill_permset_startpermnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_permset
    - CuAssertIntEquals
    - cil_permset_init
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_permset_startpermnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1059,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1062,1
    - Dst: cil_fill_permset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1066,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1052
    functionDepth: 2
    functionLinenumber: 1052
    functionLinenumberEnd: 1070
    functionName: test_cil_fill_permset_permsetnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_fill_permset
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_permset_permsetnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1080,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1083,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1086,1
    - Dst: cil_gen_in
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1091,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1072
    functionDepth: 2
    functionLinenumber: 1072
    functionLinenumberEnd: 1094
    functionName: test_cil_gen_in
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_in
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_in(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1101,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1104,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1107,1
    - Dst: cil_gen_in
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1112,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1096
    functionDepth: 2
    functionLinenumber: 1096
    functionLinenumberEnd: 1115
    functionName: test_cil_gen_in_blockstrnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_in
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_in_blockstrnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1124,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1127,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1130,1
    - Dst: cil_gen_in
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1135,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1117
    functionDepth: 2
    functionLinenumber: 1117
    functionLinenumberEnd: 1138
    functionName: test_cil_gen_in_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_in
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_in_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1148,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1151,1
    - Dst: cil_gen_in
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1155,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1140
    functionDepth: 2
    functionLinenumber: 1140
    functionLinenumberEnd: 1158
    functionName: test_cil_gen_in_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_in
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_in_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1165,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1168,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1171,1
    - Dst: cil_gen_in
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1176,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1160
    functionDepth: 2
    functionLinenumber: 1160
    functionLinenumberEnd: 1179
    functionName: test_cil_gen_in_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_in
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_in_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1189,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1194,1
    - Dst: cil_gen_in
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1196,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1181
    functionDepth: 2
    functionLinenumber: 1181
    functionLinenumberEnd: 1199
    functionName: test_cil_gen_in_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_in
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_in_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1207,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1210,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1213,1
    - Dst: cil_gen_class
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1218,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1220,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1221,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1222,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1201
    functionDepth: 2
    functionLinenumber: 1201
    functionLinenumberEnd: 1224
    functionName: test_cil_gen_class
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_class
    - cil_db_init
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_class(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1232,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1235,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1238,1
    - Dst: cil_gen_class
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1243,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1246
      start: 1226
    functionDepth: 2
    functionLinenumber: 1226
    functionLinenumberEnd: 1246
    functionName: test_cil_gen_class_noname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_class
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_class_noname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1254,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1259,1
    - Dst: cil_gen_class
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1261,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1248
    functionDepth: 2
    functionLinenumber: 1248
    functionLinenumberEnd: 1264
    functionName: test_cil_gen_class_nodenull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_class
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_class_nodenull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1272,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1275,1
    - Dst: cil_gen_class
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1279,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1266
    functionDepth: 2
    functionLinenumber: 1266
    functionLinenumberEnd: 1282
    functionName: test_cil_gen_class_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_class
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_class_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1290,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1293,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1296,1
    - Dst: cil_gen_class
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1300,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1284
    functionDepth: 2
    functionLinenumber: 1284
    functionLinenumberEnd: 1303
    functionName: test_cil_gen_class_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_class
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_class_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1310,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1313,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1316,1
    - Dst: cil_gen_class
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1321,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1305
    functionDepth: 2
    functionLinenumber: 1305
    functionLinenumberEnd: 1324
    functionName: test_cil_gen_class_noclass_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_class
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_class_noclass_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1331,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1334,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1337,1
    - Dst: cil_gen_class
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1342,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1326
    functionDepth: 2
    functionLinenumber: 1326
    functionLinenumberEnd: 1345
    functionName: test_cil_gen_class_noclassname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_class
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_class_noclassname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1352,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1355,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1358,1
    - Dst: cil_gen_class
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1363,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1347
    functionDepth: 2
    functionLinenumber: 1347
    functionLinenumberEnd: 1366
    functionName: test_cil_gen_class_namesublist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_class
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_class_namesublist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1373,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1376,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1379,1
    - Dst: cil_gen_class
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1384,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1368
    functionDepth: 2
    functionLinenumber: 1368
    functionLinenumberEnd: 1387
    functionName: test_cil_gen_class_noperms
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_class
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_class_noperms(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1394,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1397,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1400,1
    - Dst: cil_gen_class
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1405,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1389
    functionDepth: 2
    functionLinenumber: 1389
    functionLinenumberEnd: 1408
    functionName: test_cil_gen_class_permsnotinlist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_class
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_class_permsnotinlist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1416,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1419,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1422,1
    - Dst: cil_gen_class
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1427,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1430
      start: 1410
    functionDepth: 2
    functionLinenumber: 1410
    functionLinenumberEnd: 1430
    functionName: test_cil_gen_class_extrapermlist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_class
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_class_extrapermlist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1438,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1441,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1444,1
    - Dst: cil_gen_class
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1449,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1432
    functionDepth: 2
    functionLinenumber: 1432
    functionLinenumberEnd: 1452
    functionName: test_cil_gen_class_listinlist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_class
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_class_listinlist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1464,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1467,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1470,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1472,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1475
      start: 1454
    functionDepth: 2
    functionLinenumber: 1454
    functionLinenumberEnd: 1475
    functionName: test_cil_fill_classpermset_anonperms
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_classpermset_anonperms(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1488,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1491,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1494,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1496,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1477
    functionDepth: 2
    functionLinenumber: 1477
    functionLinenumberEnd: 1499
    functionName: test_cil_fill_classpermset_anonperms_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_classpermset_anonperms_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1510,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1513,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1516,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1518,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1501
    functionDepth: 2
    functionLinenumber: 1501
    functionLinenumberEnd: 1521
    functionName: test_cil_fill_classpermset_namedperms
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_classpermset_namedperms(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1533,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1536,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1539,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1541,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1523
    functionDepth: 2
    functionLinenumber: 1523
    functionLinenumberEnd: 1544
    functionName: test_cil_fill_classpermset_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_classpermset_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1555,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1558,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1561,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1563,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1546
    functionDepth: 2
    functionLinenumber: 1546
    functionLinenumberEnd: 1566
    functionName: test_cil_fill_classpermset_emptypermslist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_classpermset_emptypermslist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1575,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1578,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1581,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1583,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1568
    functionDepth: 2
    functionLinenumber: 1568
    functionLinenumberEnd: 1586
    functionName: test_cil_fill_classpermset_noperms_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_classpermset_noperms_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1597,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1600,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1603,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1605,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1588
    functionDepth: 2
    functionLinenumber: 1588
    functionLinenumberEnd: 1608
    functionName: test_cil_fill_classpermset_noclass_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_classpermset_noclass_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1616,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1619,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1622,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1624,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1627
      start: 1610
    functionDepth: 2
    functionLinenumber: 1610
    functionLinenumberEnd: 1627
    functionName: test_cil_fill_classpermset_classnodenull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_classpermset_classnodenull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1639,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1642,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1646,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1629
    functionDepth: 2
    functionLinenumber: 1629
    functionLinenumberEnd: 1649
    functionName: test_cil_fill_classpermset_cpsnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_classpermset_cpsnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1661,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1664,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1667,1
    - Dst: cil_gen_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1672,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1651
    functionDepth: 2
    functionLinenumber: 1651
    functionLinenumberEnd: 1675
    functionName: test_cil_gen_classpermset
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_classpermset
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classpermset(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1682,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1685,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1688,1
    - Dst: cil_gen_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1693,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1677
    functionDepth: 2
    functionLinenumber: 1677
    functionLinenumberEnd: 1696
    functionName: test_cil_gen_classpermset_noname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_classpermset
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classpermset_noname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1709,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1712,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1715,1
    - Dst: cil_gen_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1720,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1698
    functionDepth: 2
    functionLinenumber: 1698
    functionLinenumberEnd: 1723
    functionName: test_cil_gen_classpermset_nameinparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_classpermset
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classpermset_nameinparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1730,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1733,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1736,1
    - Dst: cil_gen_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1741,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1725
    functionDepth: 2
    functionLinenumber: 1725
    functionLinenumberEnd: 1744
    functionName: test_cil_gen_classpermset_noclass_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_classpermset
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classpermset_noclass_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1754,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1757,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1760,1
    - Dst: cil_gen_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1765,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1768
      start: 1746
    functionDepth: 2
    functionLinenumber: 1746
    functionLinenumberEnd: 1768
    functionName: test_cil_gen_classpermset_noperms_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_classpermset
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classpermset_noperms_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1775,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1778,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1781,1
    - Dst: cil_gen_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1786,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1770
    functionDepth: 2
    functionLinenumber: 1770
    functionLinenumberEnd: 1789
    functionName: test_cil_gen_classpermset_emptyperms_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_classpermset
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classpermset_emptyperms_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1801,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1804,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1807,1
    - Dst: cil_gen_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1812,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1815
      start: 1791
    functionDepth: 2
    functionLinenumber: 1791
    functionLinenumberEnd: 1815
    functionName: test_cil_gen_classpermset_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_classpermset
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classpermset_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1827,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1830,1
    - Dst: cil_gen_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1834,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1837
      start: 1817
    functionDepth: 2
    functionLinenumber: 1817
    functionLinenumberEnd: 1837
    functionName: test_cil_gen_classpermset_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_classpermset
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classpermset_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1844,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1847,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1850,1
    - Dst: cil_gen_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1855,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1839
    functionDepth: 2
    functionLinenumber: 1839
    functionLinenumberEnd: 1858
    functionName: test_cil_gen_classpermset_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_classpermset
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classpermset_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1870,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1875,1
    - Dst: cil_gen_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1877,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1880
      start: 1860
    functionDepth: 2
    functionLinenumber: 1860
    functionLinenumberEnd: 1880
    functionName: test_cil_gen_classpermset_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_classpermset
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classpermset_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1887,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1890,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1893,1
    - Dst: cil_classmap_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1899,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1905,1
    - Dst: cil_gen_classmap_perm
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1913,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1882
    functionDepth: 2
    functionLinenumber: 1882
    functionLinenumberEnd: 1917
    functionName: test_cil_gen_classmap_perm
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_classmap_perm
    - cil_db_init
    - CuAssertIntEquals
    - cil_classmap_init
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classmap_perm(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1924,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1927,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1930,1
    - Dst: cil_gen_classmap
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1935,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1939,1
    - Dst: cil_gen_classmap_perm
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1947,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1919
    functionDepth: 2
    functionLinenumber: 1919
    functionLinenumberEnd: 1951
    functionName: test_cil_gen_classmap_perm_dupeperm_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_classmap
    - cil_tree_node_init
    - cil_gen_classmap_perm
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classmap_perm_dupeperm_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1958,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1961,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1964,1
    - Dst: cil_gen_classmap
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1969,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1973,1
    - Dst: cil_gen_classmap_perm
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1981,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1953
    functionDepth: 2
    functionLinenumber: 1953
    functionLinenumberEnd: 1985
    functionName: test_cil_gen_classmap_perm_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_classmap
    - cil_tree_node_init
    - cil_gen_classmap_perm
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classmap_perm_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1992,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1995,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:1998,1
    - Dst: cil_gen_classmap
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2003,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2007,1
    - Dst: cil_gen_classmap_perm
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2013,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1987
    functionDepth: 2
    functionLinenumber: 1987
    functionLinenumberEnd: 2017
    functionName: test_cil_gen_classmap_perm_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_classmap
    - cil_tree_node_init
    - cil_gen_classmap_perm
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classmap_perm_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2024,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2027,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2030,1
    - Dst: cil_gen_classmap
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2035,1
    - Dst: cil_gen_classmap_perm
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2040,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 2019
    functionDepth: 2
    functionLinenumber: 2019
    functionLinenumberEnd: 2044
    functionName: test_cil_gen_classmap_perm_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_classmap
    - cil_tree_node_init
    - cil_gen_classmap_perm
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classmap_perm_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2051,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2054,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2057,1
    - Dst: cil_gen_classmap
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2062,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2046
    functionDepth: 2
    functionLinenumber: 2046
    functionLinenumberEnd: 2065
    functionName: test_cil_gen_classmap
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_classmap
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classmap(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2073,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2076,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2079,1
    - Dst: cil_gen_classmap
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2084,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2087
      start: 2067
    functionDepth: 2
    functionLinenumber: 2067
    functionLinenumberEnd: 2087
    functionName: test_cil_gen_classmap_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_classmap
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classmap_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2094,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2097,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2100,1
    - Dst: cil_gen_classmap
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2105,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2108
      start: 2089
    functionDepth: 2
    functionLinenumber: 2089
    functionLinenumberEnd: 2108
    functionName: test_cil_gen_classmap_noname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_classmap
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classmap_noname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2115,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2118,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2121,1
    - Dst: cil_gen_classmap
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2126,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2129
      start: 2110
    functionDepth: 2
    functionLinenumber: 2110
    functionLinenumberEnd: 2129
    functionName: test_cil_gen_classmap_emptyperms_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_classmap
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classmap_emptyperms_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2136,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2139,1
    - Dst: cil_gen_classmap
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2143,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2146
      start: 2131
    functionDepth: 2
    functionLinenumber: 2131
    functionLinenumberEnd: 2146
    functionName: test_cil_gen_classmap_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_classmap
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classmap_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2153,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2156,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2159,1
    - Dst: cil_gen_classmap
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2164,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2167
      start: 2148
    functionDepth: 2
    functionLinenumber: 2148
    functionLinenumberEnd: 2167
    functionName: test_cil_gen_classmap_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_classmap
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classmap_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2174,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2179,1
    - Dst: cil_gen_classmap
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2181,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2184
      start: 2169
    functionDepth: 2
    functionLinenumber: 2169
    functionLinenumberEnd: 2184
    functionName: test_cil_gen_classmap_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_classmap
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classmap_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2193,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2196,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2199,1
    - Dst: cil_gen_classmapping
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2204,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2207
      start: 2186
    functionDepth: 2
    functionLinenumber: 2186
    functionLinenumberEnd: 2207
    functionName: test_cil_gen_classmapping_anonpermset
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_classmapping
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classmapping_anonpermset(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2219,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2222,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2225,1
    - Dst: cil_gen_classmapping
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2230,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2209
    functionDepth: 2
    functionLinenumber: 2209
    functionLinenumberEnd: 2233
    functionName: test_cil_gen_classmapping_anonpermset_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_classmapping
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classmapping_anonpermset_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2241,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2244,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2247,1
    - Dst: cil_gen_classmapping
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2252,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2235
    functionDepth: 2
    functionLinenumber: 2235
    functionLinenumberEnd: 2255
    functionName: test_cil_gen_classmapping_namedpermset
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_classmapping
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classmapping_namedpermset(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2262,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2265,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2268,1
    - Dst: cil_gen_classmapping
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2273,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2257
    functionDepth: 2
    functionLinenumber: 2257
    functionLinenumberEnd: 2276
    functionName: test_cil_gen_classmapping_noclassmapname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_classmapping
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classmapping_noclassmapname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2283,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2286,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2289,1
    - Dst: cil_gen_classmapping
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2294,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2297
      start: 2278
    functionDepth: 2
    functionLinenumber: 2278
    functionLinenumberEnd: 2297
    functionName: test_cil_gen_classmapping_noclassmapperm_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_classmapping
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classmapping_noclassmapperm_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2304,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2307,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2310,1
    - Dst: cil_gen_classmapping
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2315,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2318
      start: 2299
    functionDepth: 2
    functionLinenumber: 2299
    functionLinenumberEnd: 2318
    functionName: test_cil_gen_classmapping_nopermissionsets_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_classmapping
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classmapping_nopermissionsets_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2327,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2330,1
    - Dst: cil_gen_classmapping
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2334,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2337
      start: 2320
    functionDepth: 2
    functionLinenumber: 2320
    functionLinenumberEnd: 2337
    functionName: test_cil_gen_classmapping_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_classmapping
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classmapping_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2344,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2347,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2350,1
    - Dst: cil_gen_classmapping
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2355,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2358
      start: 2339
    functionDepth: 2
    functionLinenumber: 2339
    functionLinenumberEnd: 2358
    functionName: test_cil_gen_classmapping_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_classmapping
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classmapping_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2367,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2372,1
    - Dst: cil_gen_classmapping
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2374,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2360
    functionDepth: 2
    functionLinenumber: 2360
    functionLinenumberEnd: 2377
    functionName: test_cil_gen_classmapping_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_classmapping
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classmapping_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2385,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2388,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2391,1
    - Dst: cil_gen_common
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2396,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2398,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2399,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2401
      start: 2379
    functionDepth: 2
    functionLinenumber: 2379
    functionLinenumberEnd: 2401
    functionName: test_cil_gen_common
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    - gen_test_tree
    - cil_gen_common
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_common(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2409,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2412,1
    - Dst: cil_gen_common
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2416,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2420
      start: 2403
    functionDepth: 2
    functionLinenumber: 2403
    functionLinenumberEnd: 2420
    functionName: test_cil_gen_common_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - CuAssertIntEquals
    - cil_tree_node_init
    - cil_gen_common
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_common_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2427,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2430,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2433,1
    - Dst: cil_gen_common
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2435,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2439
      start: 2422
    functionDepth: 2
    functionLinenumber: 2422
    functionLinenumberEnd: 2439
    functionName: test_cil_gen_common_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_common
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_common_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2447,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2452,1
    - Dst: cil_gen_common
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2454,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2458
      start: 2441
    functionDepth: 2
    functionLinenumber: 2441
    functionLinenumberEnd: 2458
    functionName: test_cil_gen_common_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_common
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_common_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2465,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2468,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2471,1
    - Dst: cil_gen_common
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2476,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2480
      start: 2460
    functionDepth: 2
    functionLinenumber: 2460
    functionLinenumberEnd: 2480
    functionName: test_cil_gen_common_noname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_common
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_common_noname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2488,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2491,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2494,1
    - Dst: cil_gen_common
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2499,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2503
      start: 2482
    functionDepth: 2
    functionLinenumber: 2482
    functionLinenumberEnd: 2503
    functionName: test_cil_gen_common_twoperms_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_common
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_common_twoperms_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2511,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2514,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2517,1
    - Dst: cil_gen_common
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2522,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2526
      start: 2505
    functionDepth: 2
    functionLinenumber: 2505
    functionLinenumberEnd: 2526
    functionName: test_cil_gen_common_permsublist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_common
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_common_permsublist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2533,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2536,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2539,1
    - Dst: cil_gen_common
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2544,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2548
      start: 2528
    functionDepth: 2
    functionLinenumber: 2528
    functionLinenumberEnd: 2548
    functionName: test_cil_gen_common_noperms_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_common
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_common_noperms_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2555,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2558,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2561,1
    - Dst: cil_gen_sid
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2566,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2569
      start: 2550
    functionDepth: 2
    functionLinenumber: 2550
    functionLinenumberEnd: 2569
    functionName: test_cil_gen_sid
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_sid
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sid(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2576,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2579,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2582,1
    - Dst: cil_gen_sid
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2587,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2590
      start: 2571
    functionDepth: 2
    functionLinenumber: 2571
    functionLinenumberEnd: 2590
    functionName: test_cil_gen_sid_noname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_sid
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sid_noname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2597,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2600,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2603,1
    - Dst: cil_gen_sid
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2608,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2611
      start: 2592
    functionDepth: 2
    functionLinenumber: 2592
    functionLinenumberEnd: 2611
    functionName: test_cil_gen_sid_nameinparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_sid
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sid_nameinparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2618,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2621,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2624,1
    - Dst: cil_gen_sid
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2629,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2632
      start: 2613
    functionDepth: 2
    functionLinenumber: 2613
    functionLinenumberEnd: 2632
    functionName: test_cil_gen_sid_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_sid
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sid_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2639,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2642,1
    - Dst: cil_gen_sid
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2646,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2649
      start: 2634
    functionDepth: 2
    functionLinenumber: 2634
    functionLinenumberEnd: 2649
    functionName: test_cil_gen_sid_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - CuAssertIntEquals
    - cil_tree_node_init
    - cil_gen_sid
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sid_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2656,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2659,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2662,1
    - Dst: cil_gen_sid
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2667,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2670
      start: 2651
    functionDepth: 2
    functionLinenumber: 2651
    functionLinenumberEnd: 2670
    functionName: test_cil_gen_sid_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_sid
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sid_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2677,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2682,1
    - Dst: cil_gen_sid
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2684,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2687
      start: 2672
    functionDepth: 2
    functionLinenumber: 2672
    functionLinenumberEnd: 2687
    functionName: test_cil_gen_sid_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_sid
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sid_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2697,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2700,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2703,1
    - Dst: cil_gen_sidcontext
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2708,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2710,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2711,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2713
      start: 2689
    functionDepth: 2
    functionLinenumber: 2689
    functionLinenumberEnd: 2713
    functionName: test_cil_gen_sidcontext
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    - cil_gen_sidcontext
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sidcontext(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2720,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2723,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2726,1
    - Dst: cil_gen_sidcontext
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2731,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2733,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2734,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2736
      start: 2715
    functionDepth: 2
    functionLinenumber: 2715
    functionLinenumberEnd: 2736
    functionName: test_cil_gen_sidcontext_namedcontext
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    - cil_gen_sidcontext
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sidcontext_namedcontext(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2745,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2748,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2751,1
    - Dst: cil_gen_sidcontext
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2756,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2759
      start: 2738
    functionDepth: 2
    functionLinenumber: 2738
    functionLinenumberEnd: 2759
    functionName: test_cil_gen_sidcontext_halfcontext_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_sidcontext
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sidcontext_halfcontext_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2770,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2773,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2776,1
    - Dst: cil_gen_sidcontext
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2781,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2784
      start: 2761
    functionDepth: 2
    functionLinenumber: 2761
    functionLinenumberEnd: 2784
    functionName: test_cil_gen_sidcontext_noname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_sidcontext
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sidcontext_noname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2791,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2794,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2797,1
    - Dst: cil_gen_sidcontext
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2802,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2805
      start: 2786
    functionDepth: 2
    functionLinenumber: 2786
    functionLinenumberEnd: 2805
    functionName: test_cil_gen_sidcontext_empty_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_sidcontext
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sidcontext_empty_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2812,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2815,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2818,1
    - Dst: cil_gen_sidcontext
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2823,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2826
      start: 2807
    functionDepth: 2
    functionLinenumber: 2807
    functionLinenumberEnd: 2826
    functionName: test_cil_gen_sidcontext_nocontext_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_sidcontext
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sidcontext_nocontext_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2836,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2839,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2842,1
    - Dst: cil_gen_sidcontext
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2847,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2850
      start: 2828
    functionDepth: 2
    functionLinenumber: 2828
    functionLinenumberEnd: 2850
    functionName: test_cil_gen_sidcontext_dblname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_sidcontext
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sidcontext_dblname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2860,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2863,1
    - Dst: cil_gen_sidcontext
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2867,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2870
      start: 2852
    functionDepth: 2
    functionLinenumber: 2852
    functionLinenumberEnd: 2870
    functionName: test_cil_gen_sidcontext_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_sidcontext
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sidcontext_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2875,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2878,1
    - Dst: cil_gen_sidcontext
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2883,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2885
      start: 2872
    functionDepth: 1
    functionLinenumber: 2872
    functionLinenumberEnd: 2885
    functionName: test_cil_gen_sidcontext_pcurrnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_tree_node_init
    - cil_gen_sidcontext
    - CuAssertIntEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sidcontext_pcurrnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2895,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2898,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2901,1
    - Dst: cil_gen_sidcontext
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2906,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2909
      start: 2887
    functionDepth: 2
    functionLinenumber: 2887
    functionLinenumberEnd: 2909
    functionName: test_cil_gen_sidcontext_astnodenull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_sidcontext
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sidcontext_astnodenull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2916,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2919,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2922,1
    - Dst: cil_gen_type
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2927,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2929,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2930,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2932
      start: 2911
    functionDepth: 2
    functionLinenumber: 2911
    functionLinenumberEnd: 2932
    functionName: test_cil_gen_type
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    - gen_test_tree
    - cil_gen_type
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2939,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2942,1
    - Dst: cil_gen_type
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2946,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2949
      start: 2934
    functionDepth: 2
    functionLinenumber: 2934
    functionLinenumberEnd: 2949
    functionName: test_cil_gen_type_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - CuAssertIntEquals
    - cil_tree_node_init
    - cil_gen_type
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2956,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2959,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2962,1
    - Dst: cil_gen_type
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2967,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2970
      start: 2951
    functionDepth: 2
    functionLinenumber: 2951
    functionLinenumberEnd: 2970
    functionName: test_cil_gen_type_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_type
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2977,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2982,1
    - Dst: cil_gen_type
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2984,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2987
      start: 2972
    functionDepth: 2
    functionLinenumber: 2972
    functionLinenumberEnd: 2987
    functionName: test_cil_gen_type_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_type
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:2997,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3000,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3003,1
    - Dst: cil_gen_type
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3008,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3011
      start: 2989
    functionDepth: 2
    functionLinenumber: 2989
    functionLinenumberEnd: 3011
    functionName: test_cil_gen_type_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_type
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3018,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3021,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3024,1
    - Dst: cil_gen_typeattribute
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3029,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3031,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3032,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3034
      start: 3013
    functionDepth: 2
    functionLinenumber: 3013
    functionLinenumberEnd: 3034
    functionName: test_cil_gen_typeattribute
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_typeattribute
    - CuAssertPtrNotNull
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typeattribute(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3041,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3044,1
    - Dst: cil_gen_typeattribute
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3048,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3051
      start: 3036
    functionDepth: 2
    functionLinenumber: 3036
    functionLinenumberEnd: 3051
    functionName: test_cil_gen_typeattribute_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_typeattribute
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typeattribute_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3058,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3061,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3064,1
    - Dst: cil_gen_typeattribute
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3069,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3072
      start: 3053
    functionDepth: 2
    functionLinenumber: 3053
    functionLinenumberEnd: 3072
    functionName: test_cil_gen_typeattribute_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_typeattribute
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typeattribute_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3079,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3084,1
    - Dst: cil_gen_typeattribute
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3086,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3089
      start: 3074
    functionDepth: 2
    functionLinenumber: 3074
    functionLinenumberEnd: 3089
    functionName: test_cil_gen_typeattribute_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_typeattribute
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typeattribute_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3099,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3102,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3105,1
    - Dst: cil_gen_typeattribute
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3110,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3113
      start: 3091
    functionDepth: 2
    functionLinenumber: 3091
    functionLinenumberEnd: 3113
    functionName: test_cil_gen_typeattribute_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_typeattribute
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typeattribute_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3120,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3123,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3126,1
    - Dst: cil_gen_typebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3131,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3134
      start: 3115
    functionDepth: 2
    functionLinenumber: 3115
    functionLinenumberEnd: 3134
    functionName: test_cil_gen_typebounds
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_typebounds
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typebounds(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3141,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3144,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3147,1
    - Dst: cil_gen_typebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3152,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3155
      start: 3136
    functionDepth: 2
    functionLinenumber: 3136
    functionLinenumberEnd: 3155
    functionName: test_cil_gen_typebounds_notype1_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_typebounds
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typebounds_notype1_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3163,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3166,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3169,1
    - Dst: cil_gen_typebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3174,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3177
      start: 3157
    functionDepth: 2
    functionLinenumber: 3157
    functionLinenumberEnd: 3177
    functionName: test_cil_gen_typebounds_type1inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_typebounds
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typebounds_type1inparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3184,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3187,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3190,1
    - Dst: cil_gen_typebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3195,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3198
      start: 3179
    functionDepth: 2
    functionLinenumber: 3179
    functionLinenumberEnd: 3198
    functionName: test_cil_gen_typebounds_notype2_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_typebounds
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typebounds_notype2_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3206,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3209,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3212,1
    - Dst: cil_gen_typebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3217,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3220
      start: 3200
    functionDepth: 2
    functionLinenumber: 3200
    functionLinenumberEnd: 3220
    functionName: test_cil_gen_typebounds_type2inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_typebounds
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typebounds_type2inparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3228,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3231,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3234,1
    - Dst: cil_gen_typebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3239,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3242
      start: 3222
    functionDepth: 2
    functionLinenumber: 3222
    functionLinenumberEnd: 3242
    functionName: test_cil_gen_typebounds_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_typebounds
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typebounds_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3249,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3252,1
    - Dst: cil_gen_typebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3256,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3259
      start: 3244
    functionDepth: 2
    functionLinenumber: 3244
    functionLinenumberEnd: 3259
    functionName: test_cil_gen_typebounds_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_typebounds
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typebounds_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3266,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3269,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3272,1
    - Dst: cil_gen_typebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3277,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3280
      start: 3261
    functionDepth: 2
    functionLinenumber: 3261
    functionLinenumberEnd: 3280
    functionName: test_cil_gen_typebounds_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_typebounds
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typebounds_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3287,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3292,1
    - Dst: cil_gen_typebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3294,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3297
      start: 3282
    functionDepth: 2
    functionLinenumber: 3282
    functionLinenumberEnd: 3297
    functionName: test_cil_gen_typebounds_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_typebounds
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typebounds_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3304,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3307,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3310,1
    - Dst: cil_gen_typepermissive
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3315,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3318
      start: 3299
    functionDepth: 2
    functionLinenumber: 3299
    functionLinenumberEnd: 3318
    functionName: test_cil_gen_typepermissive
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_typepermissive
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typepermissive(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3325,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3328,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3331,1
    - Dst: cil_gen_typepermissive
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3336,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3339
      start: 3320
    functionDepth: 2
    functionLinenumber: 3320
    functionLinenumberEnd: 3339
    functionName: test_cil_gen_typepermissive_noname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_typepermissive
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typepermissive_noname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3346,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3349,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3352,1
    - Dst: cil_gen_typepermissive
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3357,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3360
      start: 3341
    functionDepth: 2
    functionLinenumber: 3341
    functionLinenumberEnd: 3360
    functionName: test_cil_gen_typepermissive_typeinparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_typepermissive
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typepermissive_typeinparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3367,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3370,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3373,1
    - Dst: cil_gen_typepermissive
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3378,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3381
      start: 3362
    functionDepth: 2
    functionLinenumber: 3362
    functionLinenumberEnd: 3381
    functionName: test_cil_gen_typepermissive_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_typepermissive
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typepermissive_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3388,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3391,1
    - Dst: cil_gen_typepermissive
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3395,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3398
      start: 3383
    functionDepth: 2
    functionLinenumber: 3383
    functionLinenumberEnd: 3398
    functionName: test_cil_gen_typepermissive_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - CuAssertIntEquals
    - cil_tree_node_init
    - cil_gen_typepermissive
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typepermissive_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3405,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3408,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3411,1
    - Dst: cil_gen_typepermissive
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3416,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3419
      start: 3400
    functionDepth: 2
    functionLinenumber: 3400
    functionLinenumberEnd: 3419
    functionName: test_cil_gen_typepermissive_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_typepermissive
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typepermissive_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3426,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3431,1
    - Dst: cil_gen_typepermissive
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3433,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3436
      start: 3421
    functionDepth: 2
    functionLinenumber: 3421
    functionLinenumberEnd: 3436
    functionName: test_cil_gen_typepermissive_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_typepermissive
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typepermissive_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3447,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3450,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3453,1
    - Dst: cil_gen_nametypetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3458,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3461
      start: 3438
    functionDepth: 2
    functionLinenumber: 3438
    functionLinenumberEnd: 3461
    functionName: test_cil_gen_nametypetransition
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_nametypetransition
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nametypetransition(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3473,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3476,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3479,1
    - Dst: cil_gen_nametypetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3484,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3487
      start: 3463
    functionDepth: 2
    functionLinenumber: 3463
    functionLinenumberEnd: 3487
    functionName: test_cil_gen_nametypetransition_strinparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_nametypetransition
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nametypetransition_strinparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3494,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3497,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3500,1
    - Dst: cil_gen_nametypetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3505,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3508
      start: 3489
    functionDepth: 2
    functionLinenumber: 3489
    functionLinenumberEnd: 3508
    functionName: test_cil_gen_nametypetransition_nostr_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_nametypetransition
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nametypetransition_nostr_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3520,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3523,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3526,1
    - Dst: cil_gen_nametypetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3531,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3534
      start: 3510
    functionDepth: 2
    functionLinenumber: 3510
    functionLinenumberEnd: 3534
    functionName: test_cil_gen_nametypetransition_srcinparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_nametypetransition
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nametypetransition_srcinparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3541,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3544,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3547,1
    - Dst: cil_gen_nametypetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3552,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3555
      start: 3536
    functionDepth: 2
    functionLinenumber: 3536
    functionLinenumberEnd: 3555
    functionName: test_cil_gen_nametypetransition_nosrc_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_nametypetransition
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nametypetransition_nosrc_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3567,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3570,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3573,1
    - Dst: cil_gen_nametypetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3578,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3581
      start: 3557
    functionDepth: 2
    functionLinenumber: 3557
    functionLinenumberEnd: 3581
    functionName: test_cil_gen_nametypetransition_tgtinparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_nametypetransition
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nametypetransition_tgtinparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3588,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3591,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3594,1
    - Dst: cil_gen_nametypetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3599,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3602
      start: 3583
    functionDepth: 2
    functionLinenumber: 3583
    functionLinenumberEnd: 3602
    functionName: test_cil_gen_nametypetransition_notgt_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_nametypetransition
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nametypetransition_notgt_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3614,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3617,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3620,1
    - Dst: cil_gen_nametypetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3625,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3628
      start: 3604
    functionDepth: 2
    functionLinenumber: 3604
    functionLinenumberEnd: 3628
    functionName: test_cil_gen_nametypetransition_classinparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_nametypetransition
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nametypetransition_classinparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3636,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3639,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3642,1
    - Dst: cil_gen_nametypetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3647,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3650
      start: 3630
    functionDepth: 2
    functionLinenumber: 3630
    functionLinenumberEnd: 3650
    functionName: test_cil_gen_nametypetransition_noclass_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_nametypetransition
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nametypetransition_noclass_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3662,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3665,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3668,1
    - Dst: cil_gen_nametypetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3673,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3676
      start: 3652
    functionDepth: 2
    functionLinenumber: 3652
    functionLinenumberEnd: 3676
    functionName: test_cil_gen_nametypetransition_destinparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_nametypetransition
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nametypetransition_destinparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3686,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3689,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3692,1
    - Dst: cil_gen_nametypetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3697,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3700
      start: 3678
    functionDepth: 2
    functionLinenumber: 3678
    functionLinenumberEnd: 3700
    functionName: test_cil_gen_nametypetransition_nodest_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_nametypetransition
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nametypetransition_nodest_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3711,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3714,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3717,1
    - Dst: cil_gen_nametypetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3722,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3725
      start: 3702
    functionDepth: 2
    functionLinenumber: 3702
    functionLinenumberEnd: 3725
    functionName: test_cil_gen_nametypetransition_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_nametypetransition
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nametypetransition_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3736,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3739,1
    - Dst: cil_gen_nametypetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3743,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3746
      start: 3727
    functionDepth: 2
    functionLinenumber: 3727
    functionLinenumberEnd: 3746
    functionName: test_cil_gen_nametypetransition_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_nametypetransition
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nametypetransition_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3753,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3756,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3759,1
    - Dst: cil_gen_nametypetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3764,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3767
      start: 3748
    functionDepth: 2
    functionLinenumber: 3748
    functionLinenumberEnd: 3767
    functionName: test_cil_gen_nametypetransition_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_nametypetransition
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nametypetransition_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3778,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3783,1
    - Dst: cil_gen_nametypetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3785,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3788
      start: 3769
    functionDepth: 2
    functionLinenumber: 3769
    functionLinenumberEnd: 3788
    functionName: test_cil_gen_nametypetransition_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_nametypetransition
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nametypetransition_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3799,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3802,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3805,1
    - Dst: cil_gen_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3810,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3813
      start: 3790
    functionDepth: 2
    functionLinenumber: 3790
    functionLinenumberEnd: 3813
    functionName: test_cil_gen_rangetransition
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_rangetransition
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rangetransition(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3821,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3824,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3827,1
    - Dst: cil_gen_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3832,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3835
      start: 3815
    functionDepth: 2
    functionLinenumber: 3815
    functionLinenumberEnd: 3835
    functionName: test_cil_gen_rangetransition_namedtransition
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_rangetransition
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rangetransition_namedtransition(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3849,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3852,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3855,1
    - Dst: cil_gen_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3860,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3863
      start: 3837
    functionDepth: 2
    functionLinenumber: 3837
    functionLinenumberEnd: 3863
    functionName: test_cil_gen_rangetransition_anon_low_l
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_rangetransition
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rangetransition_anon_low_l(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3877,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3880,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3883,1
    - Dst: cil_gen_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3888,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3891
      start: 3865
    functionDepth: 2
    functionLinenumber: 3865
    functionLinenumberEnd: 3891
    functionName: test_cil_gen_rangetransition_anon_low_l_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_rangetransition
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rangetransition_anon_low_l_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3905,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3908,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3911,1
    - Dst: cil_gen_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3916,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3919
      start: 3893
    functionDepth: 2
    functionLinenumber: 3893
    functionLinenumberEnd: 3919
    functionName: test_cil_gen_rangetransition_anon_high_l
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_rangetransition
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rangetransition_anon_high_l(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3933,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3936,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3939,1
    - Dst: cil_gen_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3944,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3947
      start: 3921
    functionDepth: 2
    functionLinenumber: 3921
    functionLinenumberEnd: 3947
    functionName: test_cil_gen_rangetransition_anon_high_l_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_rangetransition
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rangetransition_anon_high_l_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3958,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3961,1
    - Dst: cil_gen_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3965,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3968
      start: 3949
    functionDepth: 2
    functionLinenumber: 3949
    functionLinenumberEnd: 3968
    functionName: test_cil_gen_rangetransition_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_rangetransition
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rangetransition_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3975,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3978,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3981,1
    - Dst: cil_gen_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3986,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:3988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3989
      start: 3970
    functionDepth: 2
    functionLinenumber: 3970
    functionLinenumberEnd: 3989
    functionName: test_cil_gen_rangetransition_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_rangetransition
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rangetransition_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4000,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4005,1
    - Dst: cil_gen_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4007,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4010
      start: 3991
    functionDepth: 2
    functionLinenumber: 3991
    functionLinenumberEnd: 4010
    functionName: test_cil_gen_rangetransition_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_rangetransition
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rangetransition_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4017,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4020,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4023,1
    - Dst: cil_gen_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4028,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4031
      start: 4012
    functionDepth: 2
    functionLinenumber: 4012
    functionLinenumberEnd: 4031
    functionName: test_cil_gen_rangetransition_nofirsttype_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_rangetransition
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rangetransition_nofirsttype_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4041,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4044,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4047,1
    - Dst: cil_gen_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4052,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4055
      start: 4033
    functionDepth: 2
    functionLinenumber: 4033
    functionLinenumberEnd: 4055
    functionName: test_cil_gen_rangetransition_firsttype_inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_rangetransition
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rangetransition_firsttype_inparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4062,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4065,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4068,1
    - Dst: cil_gen_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4073,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4076
      start: 4057
    functionDepth: 2
    functionLinenumber: 4057
    functionLinenumberEnd: 4076
    functionName: test_cil_gen_rangetransition_nosecondtype_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_rangetransition
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rangetransition_nosecondtype_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4089,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4092,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4095,1
    - Dst: cil_gen_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4100,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4103
      start: 4078
    functionDepth: 2
    functionLinenumber: 4078
    functionLinenumberEnd: 4103
    functionName: test_cil_gen_rangetransition_secondtype_inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_rangetransition
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rangetransition_secondtype_inparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4111,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4114,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4117,1
    - Dst: cil_gen_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4122,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4125
      start: 4105
    functionDepth: 2
    functionLinenumber: 4105
    functionLinenumberEnd: 4125
    functionName: test_cil_gen_rangetransition_noclass_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_rangetransition
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rangetransition_noclass_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4135,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4138,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4141,1
    - Dst: cil_gen_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4146,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4149
      start: 4127
    functionDepth: 2
    functionLinenumber: 4127
    functionLinenumberEnd: 4149
    functionName: test_cil_gen_rangetransition_class_inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_rangetransition
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rangetransition_class_inparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4158,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4161,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4164,1
    - Dst: cil_gen_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4169,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4172
      start: 4151
    functionDepth: 2
    functionLinenumber: 4151
    functionLinenumberEnd: 4172
    functionName: test_cil_gen_rangetransition_nolevel_l_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_rangetransition
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rangetransition_nolevel_l_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4182,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4185,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4188,1
    - Dst: cil_gen_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4193,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4196
      start: 4174
    functionDepth: 2
    functionLinenumber: 4174
    functionLinenumberEnd: 4196
    functionName: test_cil_gen_rangetransition_nolevel_h_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_rangetransition
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rangetransition_nolevel_h_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4208,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4211,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4214,1
    - Dst: cil_gen_rangetransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4219,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4222
      start: 4198
    functionDepth: 2
    functionLinenumber: 4198
    functionLinenumberEnd: 4222
    functionName: test_cil_gen_rangetransition_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_rangetransition
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rangetransition_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4231,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4234,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4237,1
    - Dst: cil_boolif_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4243,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4245,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4248
      start: 4224
    functionDepth: 2
    functionLinenumber: 4224
    functionLinenumberEnd: 4248
    functionName: test_cil_gen_expr_stack_and
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_boolif_init
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_expr_stack_and(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4257,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4260,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4263,1
    - Dst: cil_boolif_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4269,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4271,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4274
      start: 4250
    functionDepth: 2
    functionLinenumber: 4250
    functionLinenumberEnd: 4274
    functionName: test_cil_gen_expr_stack_or
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_boolif_init
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_expr_stack_or(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4283,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4286,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4289,1
    - Dst: cil_boolif_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4295,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4297,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4300
      start: 4276
    functionDepth: 2
    functionLinenumber: 4276
    functionLinenumberEnd: 4300
    functionName: test_cil_gen_expr_stack_xor
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_boolif_init
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_expr_stack_xor(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4309,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4312,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4315,1
    - Dst: cil_boolif_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4321,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4323,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4326
      start: 4302
    functionDepth: 2
    functionLinenumber: 4302
    functionLinenumberEnd: 4326
    functionName: test_cil_gen_expr_stack_not
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_boolif_init
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_expr_stack_not(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4335,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4338,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4341,1
    - Dst: cil_boolif_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4347,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4349,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4352
      start: 4328
    functionDepth: 2
    functionLinenumber: 4328
    functionLinenumberEnd: 4352
    functionName: test_cil_gen_expr_stack_not_noexpr_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_boolif_init
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_expr_stack_not_noexpr_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4361,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4364,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4367,1
    - Dst: cil_boolif_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4373,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4375,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4378
      start: 4354
    functionDepth: 2
    functionLinenumber: 4354
    functionLinenumberEnd: 4378
    functionName: test_cil_gen_expr_stack_not_extraexpr_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_boolif_init
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_expr_stack_not_extraexpr_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4387,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4390,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4393,1
    - Dst: cil_boolif_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4399,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4401,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4404
      start: 4380
    functionDepth: 2
    functionLinenumber: 4380
    functionLinenumberEnd: 4404
    functionName: test_cil_gen_expr_stack_eq
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_boolif_init
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_expr_stack_eq(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4413,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4416,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4419,1
    - Dst: cil_boolif_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4425,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4427,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4430
      start: 4406
    functionDepth: 2
    functionLinenumber: 4406
    functionLinenumberEnd: 4430
    functionName: test_cil_gen_expr_stack_neq
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_boolif_init
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_expr_stack_neq(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4441,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4444,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4447,1
    - Dst: cil_boolif_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4453,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4455,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4458
      start: 4432
    functionDepth: 2
    functionLinenumber: 4432
    functionLinenumberEnd: 4458
    functionName: test_cil_gen_expr_stack_nested
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_boolif_init
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_expr_stack_nested(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4468,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4471,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4474,1
    - Dst: cil_boolif_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4480,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4482,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4485
      start: 4460
    functionDepth: 2
    functionLinenumber: 4460
    functionLinenumberEnd: 4485
    functionName: test_cil_gen_expr_stack_nested_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_boolif_init
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_expr_stack_nested_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4495,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4498,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4501,1
    - Dst: cil_boolif_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4507,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4509,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4512
      start: 4487
    functionDepth: 2
    functionLinenumber: 4487
    functionLinenumberEnd: 4512
    functionName: test_cil_gen_expr_stack_nested_emptyargs_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_boolif_init
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_expr_stack_nested_emptyargs_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4522,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4525,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4528,1
    - Dst: cil_boolif_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4534,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4536,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4539
      start: 4514
    functionDepth: 2
    functionLinenumber: 4514
    functionLinenumberEnd: 4539
    functionName: test_cil_gen_expr_stack_nested_missingoperator_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_boolif_init
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_expr_stack_nested_missingoperator_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4548,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4551,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4554,1
    - Dst: cil_boolif_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4560,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4562,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4565
      start: 4541
    functionDepth: 2
    functionLinenumber: 4541
    functionLinenumberEnd: 4565
    functionName: test_cil_gen_expr_stack_arg1null_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_boolif_init
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_expr_stack_arg1null_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4574,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4577,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4580,1
    - Dst: cil_boolif_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4586,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4588,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4591
      start: 4567
    functionDepth: 2
    functionLinenumber: 4567
    functionLinenumberEnd: 4591
    functionName: test_cil_gen_expr_stack_arg2null_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_boolif_init
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_expr_stack_arg2null_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4601,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4604,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4607,1
    - Dst: cil_boolif_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4613,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4615,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4618
      start: 4593
    functionDepth: 2
    functionLinenumber: 4593
    functionLinenumberEnd: 4618
    functionName: test_cil_gen_expr_stack_extraarg_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_boolif_init
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_expr_stack_extraarg_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4625,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4628,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4631,1
    - Dst: cil_boolif_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4637,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4639,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4642
      start: 4620
    functionDepth: 2
    functionLinenumber: 4620
    functionLinenumberEnd: 4642
    functionName: test_cil_gen_expr_stack_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_boolif_init
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_expr_stack_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4651,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4654,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4657,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4662,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4665
      start: 4644
    functionDepth: 2
    functionLinenumber: 4644
    functionLinenumberEnd: 4665
    functionName: test_cil_gen_expr_stack_stacknull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_expr_stack_stacknull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4677,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4680,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4683,1
    - Dst: cil_gen_boolif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4688,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4691
      start: 4667
    functionDepth: 2
    functionLinenumber: 4667
    functionLinenumberEnd: 4691
    functionName: test_cil_gen_boolif_multiplebools_true
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_boolif
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_boolif_multiplebools_true(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4703,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4706,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4709,1
    - Dst: cil_gen_boolif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4714,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4717
      start: 4693
    functionDepth: 2
    functionLinenumber: 4693
    functionLinenumberEnd: 4717
    functionName: test_cil_gen_boolif_multiplebools_false
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_boolif
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_boolif_multiplebools_false(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4729,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4732,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4735,1
    - Dst: cil_gen_boolif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4740,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4743
      start: 4719
    functionDepth: 2
    functionLinenumber: 4719
    functionLinenumberEnd: 4743
    functionName: test_cil_gen_boolif_multiplebools_unknowncond_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_boolif
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_boolif_multiplebools_unknowncond_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4752,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4755,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4758,1
    - Dst: cil_gen_boolif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4763,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4766
      start: 4745
    functionDepth: 2
    functionLinenumber: 4745
    functionLinenumberEnd: 4766
    functionName: test_cil_gen_boolif_true
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_boolif
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_boolif_true(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4775,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4778,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4781,1
    - Dst: cil_gen_boolif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4786,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4789
      start: 4768
    functionDepth: 2
    functionLinenumber: 4768
    functionLinenumberEnd: 4789
    functionName: test_cil_gen_boolif_false
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_boolif
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_boolif_false(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4798,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4801,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4804,1
    - Dst: cil_gen_boolif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4809,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4812
      start: 4791
    functionDepth: 2
    functionLinenumber: 4791
    functionLinenumberEnd: 4812
    functionName: test_cil_gen_boolif_unknowncond_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_boolif
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_boolif_unknowncond_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4822,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4825,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4828,1
    - Dst: cil_gen_boolif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4833,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4836
      start: 4814
    functionDepth: 2
    functionLinenumber: 4814
    functionLinenumberEnd: 4836
    functionName: test_cil_gen_boolif_nested
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_boolif
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_boolif_nested(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4846,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4849,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4852,1
    - Dst: cil_gen_boolif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4857,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4860
      start: 4838
    functionDepth: 2
    functionLinenumber: 4838
    functionLinenumberEnd: 4860
    functionName: test_cil_gen_boolif_nested_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_boolif
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_boolif_nested_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4870,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4873,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4876,1
    - Dst: cil_gen_boolif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4881,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4884
      start: 4862
    functionDepth: 2
    functionLinenumber: 4862
    functionLinenumberEnd: 4884
    functionName: test_cil_gen_boolif_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_boolif
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_boolif_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4894,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4897,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4900,1
    - Dst: cil_gen_boolif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4905,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4908
      start: 4886
    functionDepth: 2
    functionLinenumber: 4886
    functionLinenumberEnd: 4908
    functionName: test_cil_gen_boolif_extra_parens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_boolif
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_boolif_extra_parens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4917,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4920,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4923,1
    - Dst: cil_gen_boolif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4928,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4931
      start: 4910
    functionDepth: 2
    functionLinenumber: 4910
    functionLinenumberEnd: 4931
    functionName: test_cil_gen_boolif_nocond
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_boolif
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_boolif_nocond(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4940,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4943,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4946,1
    - Dst: cil_gen_boolif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4951,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4954
      start: 4933
    functionDepth: 2
    functionLinenumber: 4933
    functionLinenumberEnd: 4954
    functionName: test_cil_gen_boolif_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_boolif
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_boolif_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4963,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4966,1
    - Dst: cil_gen_boolif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4970,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4973
      start: 4956
    functionDepth: 2
    functionLinenumber: 4956
    functionLinenumberEnd: 4973
    functionName: test_cil_gen_boolif_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_boolif
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_boolif_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4980,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4983,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4986,1
    - Dst: cil_gen_boolif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4991,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:4993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4994
      start: 4975
    functionDepth: 2
    functionLinenumber: 4975
    functionLinenumberEnd: 4994
    functionName: test_cil_gen_boolif_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_boolif
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_boolif_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5003,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5008,1
    - Dst: cil_gen_boolif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5010,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5013
      start: 4996
    functionDepth: 2
    functionLinenumber: 4996
    functionLinenumberEnd: 5013
    functionName: test_cil_gen_boolif_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_boolif
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_boolif_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5020,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5023,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5026,1
    - Dst: cil_gen_boolif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5031,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5034
      start: 5015
    functionDepth: 2
    functionLinenumber: 5015
    functionLinenumberEnd: 5034
    functionName: test_cil_gen_boolif_nocond_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_boolif
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_boolif_nocond_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5042,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5045,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5048,1
    - Dst: cil_gen_boolif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5053,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5056
      start: 5036
    functionDepth: 2
    functionLinenumber: 5036
    functionLinenumberEnd: 5056
    functionName: test_cil_gen_boolif_notruelist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_boolif
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_boolif_notruelist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5065,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5068,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5071,1
    - Dst: cil_gen_boolif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5076,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5079
      start: 5058
    functionDepth: 2
    functionLinenumber: 5058
    functionLinenumberEnd: 5079
    functionName: test_cil_gen_boolif_empty_cond_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_boolif
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_boolif_empty_cond_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5091,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5094,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5097,1
    - Dst: cil_gen_tunif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5102,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5105
      start: 5081
    functionDepth: 2
    functionLinenumber: 5081
    functionLinenumberEnd: 5105
    functionName: test_cil_gen_tunif_multiplebools_true
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_tunif
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_tunif_multiplebools_true(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5117,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5120,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5123,1
    - Dst: cil_gen_tunif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5128,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5131
      start: 5107
    functionDepth: 2
    functionLinenumber: 5107
    functionLinenumberEnd: 5131
    functionName: test_cil_gen_tunif_multiplebools_false
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_tunif
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_tunif_multiplebools_false(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5143,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5146,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5149,1
    - Dst: cil_gen_tunif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5154,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5157
      start: 5133
    functionDepth: 2
    functionLinenumber: 5133
    functionLinenumberEnd: 5157
    functionName: test_cil_gen_tunif_multiplebools_unknowncond_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_tunif
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_tunif_multiplebools_unknowncond_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5166,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5169,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5172,1
    - Dst: cil_gen_tunif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5177,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5180
      start: 5159
    functionDepth: 2
    functionLinenumber: 5159
    functionLinenumberEnd: 5180
    functionName: test_cil_gen_tunif_true
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_tunif
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_tunif_true(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5189,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5192,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5195,1
    - Dst: cil_gen_tunif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5200,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5203
      start: 5182
    functionDepth: 2
    functionLinenumber: 5182
    functionLinenumberEnd: 5203
    functionName: test_cil_gen_tunif_false
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_tunif
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_tunif_false(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5212,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5215,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5218,1
    - Dst: cil_gen_tunif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5223,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5226
      start: 5205
    functionDepth: 2
    functionLinenumber: 5205
    functionLinenumberEnd: 5226
    functionName: test_cil_gen_tunif_unknowncond_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_tunif
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_tunif_unknowncond_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5235,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5238,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5241,1
    - Dst: cil_gen_tunif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5246,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5249
      start: 5228
    functionDepth: 2
    functionLinenumber: 5228
    functionLinenumberEnd: 5249
    functionName: test_cil_gen_tunif_nocond
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_tunif
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_tunif_nocond(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5259,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5262,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5265,1
    - Dst: cil_gen_tunif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5270,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5273
      start: 5251
    functionDepth: 2
    functionLinenumber: 5251
    functionLinenumberEnd: 5273
    functionName: test_cil_gen_tunif_nested
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_tunif
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_tunif_nested(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5283,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5286,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5289,1
    - Dst: cil_gen_tunif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5294,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5297
      start: 5275
    functionDepth: 2
    functionLinenumber: 5275
    functionLinenumberEnd: 5297
    functionName: test_cil_gen_tunif_nested_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_tunif
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_tunif_nested_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5307,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5310,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5313,1
    - Dst: cil_gen_tunif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5318,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5321
      start: 5299
    functionDepth: 2
    functionLinenumber: 5299
    functionLinenumberEnd: 5321
    functionName: test_cil_gen_tunif_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_tunif
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_tunif_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5331,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5334,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5337,1
    - Dst: cil_gen_tunif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5342,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5345
      start: 5323
    functionDepth: 2
    functionLinenumber: 5323
    functionLinenumberEnd: 5345
    functionName: test_cil_gen_tunif_extra_parens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_tunif
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_tunif_extra_parens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5354,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5357,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5360,1
    - Dst: cil_gen_tunif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5365,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5368
      start: 5347
    functionDepth: 2
    functionLinenumber: 5347
    functionLinenumberEnd: 5368
    functionName: test_cil_gen_tunif_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_tunif
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_tunif_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5377,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5380,1
    - Dst: cil_gen_tunif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5384,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5387
      start: 5370
    functionDepth: 2
    functionLinenumber: 5370
    functionLinenumberEnd: 5387
    functionName: test_cil_gen_tunif_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_tunif
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_tunif_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5394,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5397,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5400,1
    - Dst: cil_gen_tunif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5405,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5408
      start: 5389
    functionDepth: 2
    functionLinenumber: 5389
    functionLinenumberEnd: 5408
    functionName: test_cil_gen_tunif_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_tunif
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_tunif_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5417,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5422,1
    - Dst: cil_gen_tunif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5424,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5427
      start: 5410
    functionDepth: 2
    functionLinenumber: 5410
    functionLinenumberEnd: 5427
    functionName: test_cil_gen_tunif_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_tunif
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_tunif_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5434,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5437,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5440,1
    - Dst: cil_gen_tunif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5445,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5448
      start: 5429
    functionDepth: 2
    functionLinenumber: 5429
    functionLinenumberEnd: 5448
    functionName: test_cil_gen_tunif_nocond_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_tunif
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_tunif_nocond_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5456,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5459,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5462,1
    - Dst: cil_gen_tunif
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5467,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5470
      start: 5450
    functionDepth: 2
    functionLinenumber: 5450
    functionLinenumberEnd: 5470
    functionName: test_cil_gen_tunif_notruelist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_tunif
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_tunif_notruelist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5478,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5481,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5484,1
    - Dst: cil_gen_condblock
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5489,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5492
      start: 5472
    functionDepth: 2
    functionLinenumber: 5472
    functionLinenumberEnd: 5492
    functionName: test_cil_gen_condblock_true
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_condblock
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_condblock_true(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5500,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5503,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5506,1
    - Dst: cil_gen_condblock
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5511,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5514
      start: 5494
    functionDepth: 2
    functionLinenumber: 5494
    functionLinenumberEnd: 5514
    functionName: test_cil_gen_condblock_false
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_condblock
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_condblock_false(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5522,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5525,1
    - Dst: cil_gen_condblock
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5529,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5532
      start: 5516
    functionDepth: 2
    functionLinenumber: 5516
    functionLinenumberEnd: 5532
    functionName: test_cil_gen_condblock_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_condblock
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_condblock_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5539,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5542,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5545,1
    - Dst: cil_gen_condblock
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5550,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5553
      start: 5534
    functionDepth: 2
    functionLinenumber: 5534
    functionLinenumberEnd: 5553
    functionName: test_cil_gen_condblock_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_condblock
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_condblock_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5561,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5566,1
    - Dst: cil_gen_condblock
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5568,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5571
      start: 5555
    functionDepth: 2
    functionLinenumber: 5555
    functionLinenumberEnd: 5571
    functionName: test_cil_gen_condblock_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_condblock
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_condblock_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5578,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5581,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5584,1
    - Dst: cil_gen_condblock
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5589,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5592
      start: 5573
    functionDepth: 2
    functionLinenumber: 5573
    functionLinenumberEnd: 5592
    functionName: test_cil_gen_condblock_nocond_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_condblock
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_condblock_nocond_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5600,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5603,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5606,1
    - Dst: cil_gen_condblock
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5611,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5614
      start: 5594
    functionDepth: 2
    functionLinenumber: 5594
    functionLinenumberEnd: 5614
    functionName: test_cil_gen_condblock_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_condblock
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_condblock_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5622,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5625,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5628,1
    - Dst: cil_gen_typealias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5633,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5635,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5636,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5637,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5641
      start: 5616
    functionDepth: 2
    functionLinenumber: 5616
    functionLinenumberEnd: 5641
    functionName: test_cil_gen_typealias
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    - cil_gen_typealias
    - gen_test_tree
    - CuAssertStrEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typealias(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5648,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5651,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5654,1
    - Dst: cil_gen_typealias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5659,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5662
      start: 5643
    functionDepth: 2
    functionLinenumber: 5643
    functionLinenumberEnd: 5662
    functionName: test_cil_gen_typealias_incomplete_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_typealias
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typealias_incomplete_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5669,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5672,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5675,1
    - Dst: cil_gen_typealias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5680,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5683
      start: 5664
    functionDepth: 2
    functionLinenumber: 5664
    functionLinenumberEnd: 5683
    functionName: test_cil_gen_typealias_incomplete_neg2
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_typealias
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typealias_incomplete_neg2(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5691,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5694,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5697,1
    - Dst: cil_gen_typealias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5702,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5705
      start: 5685
    functionDepth: 2
    functionLinenumber: 5685
    functionLinenumberEnd: 5705
    functionName: test_cil_gen_typealias_extratype_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_typealias
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typealias_extratype_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5713,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5716,1
    - Dst: cil_gen_typealias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5720,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5723
      start: 5707
    functionDepth: 2
    functionLinenumber: 5707
    functionLinenumberEnd: 5723
    functionName: test_cil_gen_typealias_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_typealias
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typealias_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5730,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5733,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5736,1
    - Dst: cil_gen_typealias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5741,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5744
      start: 5725
    functionDepth: 2
    functionLinenumber: 5725
    functionLinenumberEnd: 5744
    functionName: test_cil_gen_typealias_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_typealias
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typealias_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5752,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5757,1
    - Dst: cil_gen_typealias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5759,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5762
      start: 5746
    functionDepth: 2
    functionLinenumber: 5746
    functionLinenumberEnd: 5762
    functionName: test_cil_gen_typealias_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_typealias
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typealias_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5770,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5773,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5776,1
    - Dst: cil_gen_typeattributeset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5781,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5783,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5785
      start: 5764
    functionDepth: 2
    functionLinenumber: 5764
    functionLinenumberEnd: 5785
    functionName: test_cil_gen_typeattributeset
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_typeattributeset
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typeattributeset(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5793,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5796,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5799,1
    - Dst: cil_gen_typeattributeset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5804,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5806,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5808
      start: 5787
    functionDepth: 2
    functionLinenumber: 5787
    functionLinenumberEnd: 5808
    functionName: test_cil_gen_typeattributeset_and_two_types
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_typeattributeset
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typeattributeset_and_two_types(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5817,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5820,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5823,1
    - Dst: cil_gen_typeattributeset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5828,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5830,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5832
      start: 5810
    functionDepth: 2
    functionLinenumber: 5810
    functionLinenumberEnd: 5832
    functionName: test_cil_gen_typeattributeset_not
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_typeattributeset
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typeattributeset_not(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5843,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5846,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5849,1
    - Dst: cil_gen_typeattributeset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5854,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5856,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5858
      start: 5834
    functionDepth: 2
    functionLinenumber: 5834
    functionLinenumberEnd: 5858
    functionName: test_cil_gen_typeattributeset_exclude_attr
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_typeattributeset
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typeattributeset_exclude_attr(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5867,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5870,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5873,1
    - Dst: cil_gen_typeattributeset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5878,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5881
      start: 5860
    functionDepth: 2
    functionLinenumber: 5860
    functionLinenumberEnd: 5881
    functionName: test_cil_gen_typeattributeset_exclude_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_typeattributeset
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typeattributeset_exclude_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5890,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5893,1
    - Dst: cil_gen_typeattributeset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5897,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5900
      start: 5883
    functionDepth: 2
    functionLinenumber: 5883
    functionLinenumberEnd: 5900
    functionName: test_cil_gen_typeattributeset_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - CuAssertIntEquals
    - cil_tree_node_init
    - cil_gen_typeattributeset
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typeattributeset_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5907,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5910,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5913,1
    - Dst: cil_gen_typeattributeset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5918,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5921
      start: 5902
    functionDepth: 2
    functionLinenumber: 5902
    functionLinenumberEnd: 5921
    functionName: test_cil_gen_typeattributeset_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_typeattributeset
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typeattributeset_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5930,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5935,1
    - Dst: cil_gen_typeattributeset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5937,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5940
      start: 5923
    functionDepth: 2
    functionLinenumber: 5923
    functionLinenumberEnd: 5940
    functionName: test_cil_gen_typeattributeset_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_typeattributeset
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typeattributeset_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5947,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5950,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5953,1
    - Dst: cil_gen_typeattributeset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5958,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5961
      start: 5942
    functionDepth: 2
    functionLinenumber: 5942
    functionLinenumberEnd: 5961
    functionName: test_cil_gen_typeattributeset_noname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_typeattributeset
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typeattributeset_noname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5969,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5972,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5975,1
    - Dst: cil_gen_typeattributeset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5980,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5982,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5983
      start: 5963
    functionDepth: 2
    functionLinenumber: 5963
    functionLinenumberEnd: 5983
    functionName: test_cil_gen_typeattributeset_nameinparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_typeattributeset
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typeattributeset_nameinparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5991,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5994,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:5997,1
    - Dst: cil_gen_typeattributeset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6002,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6005
      start: 5985
    functionDepth: 2
    functionLinenumber: 5985
    functionLinenumberEnd: 6005
    functionName: test_cil_gen_typeattributeset_emptylists_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_typeattributeset
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typeattributeset_emptylists_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6016,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6019,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6022,1
    - Dst: cil_gen_typeattributeset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6027,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6030
      start: 6007
    functionDepth: 2
    functionLinenumber: 6007
    functionLinenumberEnd: 6030
    functionName: test_cil_gen_typeattributeset_listinparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_typeattributeset
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typeattributeset_listinparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6041,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6044,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6047,1
    - Dst: cil_gen_typeattributeset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6052,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6055
      start: 6032
    functionDepth: 2
    functionLinenumber: 6032
    functionLinenumberEnd: 6055
    functionName: test_cil_gen_typeattributeset_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_typeattributeset
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_typeattributeset_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6062,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6065,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6068,1
    - Dst: cil_gen_userbounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6073,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6076
      start: 6057
    functionDepth: 2
    functionLinenumber: 6057
    functionLinenumberEnd: 6076
    functionName: test_cil_gen_userbounds
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_userbounds
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userbounds(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6083,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6086,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6089,1
    - Dst: cil_gen_userbounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6094,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6097
      start: 6078
    functionDepth: 2
    functionLinenumber: 6078
    functionLinenumberEnd: 6097
    functionName: test_cil_gen_userbounds_notype1_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_userbounds
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userbounds_notype1_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6105,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6108,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6111,1
    - Dst: cil_gen_userbounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6116,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6119
      start: 6099
    functionDepth: 2
    functionLinenumber: 6099
    functionLinenumberEnd: 6119
    functionName: test_cil_gen_userbounds_type1_inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_userbounds
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userbounds_type1_inparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6126,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6129,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6132,1
    - Dst: cil_gen_userbounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6137,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6140
      start: 6121
    functionDepth: 2
    functionLinenumber: 6121
    functionLinenumberEnd: 6140
    functionName: test_cil_gen_userbounds_notype2_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_userbounds
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userbounds_notype2_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6148,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6151,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6154,1
    - Dst: cil_gen_userbounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6159,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6162
      start: 6142
    functionDepth: 2
    functionLinenumber: 6142
    functionLinenumberEnd: 6162
    functionName: test_cil_gen_userbounds_type2_inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_userbounds
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userbounds_type2_inparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6171,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6174,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6177,1
    - Dst: cil_gen_userbounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6182,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6185
      start: 6164
    functionDepth: 2
    functionLinenumber: 6164
    functionLinenumberEnd: 6185
    functionName: test_cil_gen_userbounds_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_userbounds
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userbounds_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6192,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6195,1
    - Dst: cil_gen_userbounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6199,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6202
      start: 6187
    functionDepth: 2
    functionLinenumber: 6187
    functionLinenumberEnd: 6202
    functionName: test_cil_gen_userbounds_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_userbounds
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userbounds_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6209,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6212,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6215,1
    - Dst: cil_gen_userbounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6220,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6223
      start: 6204
    functionDepth: 2
    functionLinenumber: 6204
    functionLinenumberEnd: 6223
    functionName: test_cil_gen_userbounds_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_userbounds
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userbounds_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6230,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6235,1
    - Dst: cil_gen_userbounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6237,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6240
      start: 6225
    functionDepth: 2
    functionLinenumber: 6225
    functionLinenumberEnd: 6240
    functionName: test_cil_gen_userbounds_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_userbounds
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userbounds_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6247,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6250,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6253,1
    - Dst: cil_gen_role
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6258,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6260,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6261,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6263
      start: 6242
    functionDepth: 2
    functionLinenumber: 6242
    functionLinenumberEnd: 6263
    functionName: test_cil_gen_role
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    - gen_test_tree
    - cil_gen_role
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_role(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6270,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6273,1
    - Dst: cil_gen_role
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6277,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6281
      start: 6265
    functionDepth: 2
    functionLinenumber: 6265
    functionLinenumberEnd: 6281
    functionName: test_cil_gen_role_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_role
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_role_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6288,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6291,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6294,1
    - Dst: cil_gen_role
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6296,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6300
      start: 6283
    functionDepth: 2
    functionLinenumber: 6283
    functionLinenumberEnd: 6300
    functionName: test_cil_gen_role_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_role
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_role_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6307,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6312,1
    - Dst: cil_gen_role
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6314,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6318
      start: 6302
    functionDepth: 2
    functionLinenumber: 6302
    functionLinenumberEnd: 6318
    functionName: test_cil_gen_role_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_role
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_role_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6325,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6328,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6331,1
    - Dst: cil_gen_role
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6336,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6340
      start: 6320
    functionDepth: 2
    functionLinenumber: 6320
    functionLinenumberEnd: 6340
    functionName: test_cil_gen_role_extrarole_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_role
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_role_extrarole_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6347,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6350,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6353,1
    - Dst: cil_gen_role
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6358,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6362
      start: 6342
    functionDepth: 2
    functionLinenumber: 6342
    functionLinenumberEnd: 6362
    functionName: test_cil_gen_role_noname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_role
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_role_noname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6370,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6373,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6376,1
    - Dst: cil_gen_roletransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6381,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6383,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6384,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6386
      start: 6364
    functionDepth: 2
    functionLinenumber: 6364
    functionLinenumberEnd: 6386
    functionName: test_cil_gen_roletransition
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_roletransition
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_roletransition(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6391,1
    - Dst: cil_gen_roletransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6393,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6395
      start: 6388
    functionDepth: 1
    functionLinenumber: 6388
    functionLinenumberEnd: 6395
    functionName: test_cil_gen_roletransition_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_roletransition
    - cil_tree_node_init
    - CuAssertIntEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_roletransition_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6409,1
    - Dst: cil_gen_roletransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6413,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6416
      start: 6397
    functionDepth: 2
    functionLinenumber: 6397
    functionLinenumberEnd: 6416
    functionName: test_cil_gen_roletransition_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_roletransition
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_roletransition_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6424,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6429,1
    - Dst: cil_gen_roletransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6431,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6434
      start: 6418
    functionDepth: 2
    functionLinenumber: 6418
    functionLinenumberEnd: 6434
    functionName: test_cil_gen_roletransition_srcnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_roletransition
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_roletransition_srcnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6442,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6447,1
    - Dst: cil_gen_roletransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6449,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6452
      start: 6436
    functionDepth: 2
    functionLinenumber: 6436
    functionLinenumberEnd: 6452
    functionName: test_cil_gen_roletransition_tgtnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_roletransition
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_roletransition_tgtnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6460,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6465,1
    - Dst: cil_gen_roletransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6467,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6470
      start: 6454
    functionDepth: 2
    functionLinenumber: 6454
    functionLinenumberEnd: 6470
    functionName: test_cil_gen_roletransition_resultnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_roletransition
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_roletransition_resultnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6479,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6482,1
    - Dst: cil_gen_roletransition
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6484,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6487
      start: 6472
    functionDepth: 2
    functionLinenumber: 6472
    functionLinenumberEnd: 6487
    functionName: test_cil_gen_roletransition_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_roletransition
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_roletransition_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6494,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6497,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6500,1
    - Dst: cil_gen_bool
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6505,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6507,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6508,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6509,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6512
      start: 6489
    functionDepth: 2
    functionLinenumber: 6489
    functionLinenumberEnd: 6512
    functionName: test_cil_gen_bool_true
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_bool
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_bool_true(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6519,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6522,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6525,1
    - Dst: cil_gen_bool
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6530,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6532,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6533,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6534,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6537
      start: 6514
    functionDepth: 2
    functionLinenumber: 6514
    functionLinenumberEnd: 6537
    functionName: test_cil_gen_bool_tunable_true
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_bool
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_bool_tunable_true(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6544,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6547,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6550,1
    - Dst: cil_gen_bool
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6555,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6557,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6558,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6559,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6562
      start: 6539
    functionDepth: 2
    functionLinenumber: 6539
    functionLinenumberEnd: 6562
    functionName: test_cil_gen_bool_false
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_bool
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_bool_false(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6569,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6572,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6575,1
    - Dst: cil_gen_bool
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6580,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6582,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6583,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6584,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6587
      start: 6564
    functionDepth: 2
    functionLinenumber: 6564
    functionLinenumberEnd: 6587
    functionName: test_cil_gen_bool_tunable_false
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_bool
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_bool_tunable_false(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6594,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6597,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6600,1
    - Dst: cil_gen_bool
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6605,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6608
      start: 6589
    functionDepth: 2
    functionLinenumber: 6589
    functionLinenumberEnd: 6608
    functionName: test_cil_gen_bool_none_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_bool
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_bool_none_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6615,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6618,1
    - Dst: cil_gen_bool
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6622,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6625
      start: 6610
    functionDepth: 2
    functionLinenumber: 6610
    functionLinenumberEnd: 6625
    functionName: test_cil_gen_bool_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_bool
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_bool_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6632,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6635,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6638,1
    - Dst: cil_gen_bool
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6643,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6646
      start: 6627
    functionDepth: 2
    functionLinenumber: 6627
    functionLinenumberEnd: 6646
    functionName: test_cil_gen_bool_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_bool
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_bool_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6653,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6658,1
    - Dst: cil_gen_bool
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6660,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6663
      start: 6648
    functionDepth: 2
    functionLinenumber: 6648
    functionLinenumberEnd: 6663
    functionName: test_cil_gen_bool_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_bool
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_bool_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6670,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6673,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6676,1
    - Dst: cil_gen_bool
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6681,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6684
      start: 6665
    functionDepth: 2
    functionLinenumber: 6665
    functionLinenumberEnd: 6684
    functionName: test_cil_gen_bool_notbool_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_bool
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_bool_notbool_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6691,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6694,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6697,1
    - Dst: cil_gen_bool
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6702,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6705
      start: 6686
    functionDepth: 2
    functionLinenumber: 6686
    functionLinenumberEnd: 6705
    functionName: test_cil_gen_bool_boolname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_bool
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_bool_boolname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6712,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6715,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6718,1
    - Dst: cil_gen_bool
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6723,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6726
      start: 6707
    functionDepth: 2
    functionLinenumber: 6707
    functionLinenumberEnd: 6726
    functionName: test_cil_gen_bool_extraname_false_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_bool
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_bool_extraname_false_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6733,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6736,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6739,1
    - Dst: cil_gen_bool
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6744,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6747
      start: 6728
    functionDepth: 2
    functionLinenumber: 6728
    functionLinenumberEnd: 6747
    functionName: test_cil_gen_bool_extraname_true_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_bool
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_bool_extraname_true_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6756,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6759,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6762,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6770,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6772,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6773,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6775,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6778
      start: 6749
    functionDepth: 2
    functionLinenumber: 6749
    functionLinenumberEnd: 6778
    functionName: test_cil_gen_constrain_expr_stack_eq2_t1type
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq2_t1type(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6787,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6790,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6793,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6801,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6802,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6803,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6805,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6808
      start: 6780
    functionDepth: 2
    functionLinenumber: 6780
    functionLinenumberEnd: 6808
    functionName: test_cil_gen_constrain_expr_stack_eq2_t1t1_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq2_t1t1_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6817,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6820,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6823,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6831,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6832,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6833,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6835,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6838
      start: 6810
    functionDepth: 2
    functionLinenumber: 6810
    functionLinenumberEnd: 6838
    functionName: test_cil_gen_constrain_expr_stack_eq2_t2type
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq2_t2type(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6847,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6850,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6853,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6861,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6862,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6863,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6865,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6868
      start: 6840
    functionDepth: 2
    functionLinenumber: 6840
    functionLinenumberEnd: 6868
    functionName: test_cil_gen_constrain_expr_stack_eq2_t2t2_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq2_t2t2_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6877,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6880,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6883,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6891,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6892,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6893,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6895,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6898
      start: 6870
    functionDepth: 2
    functionLinenumber: 6870
    functionLinenumberEnd: 6898
    functionName: test_cil_gen_constrain_expr_stack_eq2_r1role
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq2_r1role(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6907,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6910,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6913,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6921,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6922,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6923,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6925,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6928
      start: 6900
    functionDepth: 2
    functionLinenumber: 6900
    functionLinenumberEnd: 6928
    functionName: test_cil_gen_constrain_expr_stack_eq2_r1r1_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq2_r1r1_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6937,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6940,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6943,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6951,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6952,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6953,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6955,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6958
      start: 6930
    functionDepth: 2
    functionLinenumber: 6930
    functionLinenumberEnd: 6958
    functionName: test_cil_gen_constrain_expr_stack_eq2_r2role
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq2_r2role(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6967,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6970,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6973,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6981,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6982,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6983,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6985,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6988
      start: 6960
    functionDepth: 2
    functionLinenumber: 6960
    functionLinenumberEnd: 6988
    functionName: test_cil_gen_constrain_expr_stack_eq2_r2r2_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq2_r2r2_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:6997,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7000,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7003,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7011,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7012,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7013,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7015,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7018
      start: 6990
    functionDepth: 2
    functionLinenumber: 6990
    functionLinenumberEnd: 7018
    functionName: test_cil_gen_constrain_expr_stack_eq2_t1t2
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq2_t1t2(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7027,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7030,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7033,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7041,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7042,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7043,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7045,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7047,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7048
      start: 7020
    functionDepth: 2
    functionLinenumber: 7020
    functionLinenumberEnd: 7048
    functionName: test_cil_gen_constrain_expr_stack_eq_r1r2
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq_r1r2(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7057,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7060,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7063,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7071,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7072,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7073,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7075,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7078
      start: 7050
    functionDepth: 2
    functionLinenumber: 7050
    functionLinenumberEnd: 7078
    functionName: test_cil_gen_constrain_expr_stack_eq2_r1r2
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq2_r1r2(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7087,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7090,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7093,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7101,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7102,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7103,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7105,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7108
      start: 7080
    functionDepth: 2
    functionLinenumber: 7080
    functionLinenumberEnd: 7108
    functionName: test_cil_gen_constrain_expr_stack_eq2_u1u2
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq2_u1u2(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7117,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7120,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7123,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7131,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7132,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7133,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7135,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7138
      start: 7110
    functionDepth: 2
    functionLinenumber: 7110
    functionLinenumberEnd: 7138
    functionName: test_cil_gen_constrain_expr_stack_eq2_u1user
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq2_u1user(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7147,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7150,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7153,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7161,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7162,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7163,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7165,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7168
      start: 7140
    functionDepth: 2
    functionLinenumber: 7140
    functionLinenumberEnd: 7168
    functionName: test_cil_gen_constrain_expr_stack_eq2_u1u1_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq2_u1u1_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7177,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7180,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7183,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7191,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7192,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7193,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7195,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7198
      start: 7170
    functionDepth: 2
    functionLinenumber: 7170
    functionLinenumberEnd: 7198
    functionName: test_cil_gen_constrain_expr_stack_eq2_u2user
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq2_u2user(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7207,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7210,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7213,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7221,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7222,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7223,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7225,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7228
      start: 7200
    functionDepth: 2
    functionLinenumber: 7200
    functionLinenumberEnd: 7228
    functionName: test_cil_gen_constrain_expr_stack_eq2_u2u2_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq2_u2u2_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7237,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7240,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7243,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7251,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7252,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7253,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7255,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7258
      start: 7230
    functionDepth: 2
    functionLinenumber: 7230
    functionLinenumberEnd: 7258
    functionName: test_cil_gen_constrain_expr_stack_eq_l2h2
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq_l2h2(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7267,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7270,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7273,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7281,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7282,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7283,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7285,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7288
      start: 7260
    functionDepth: 2
    functionLinenumber: 7260
    functionLinenumberEnd: 7288
    functionName: test_cil_gen_constrain_expr_stack_eq_l2_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq_l2_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7297,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7300,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7303,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7311,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7312,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7313,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7315,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7318
      start: 7290
    functionDepth: 2
    functionLinenumber: 7290
    functionLinenumberEnd: 7318
    functionName: test_cil_gen_constrain_expr_stack_eq_l1l2
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq_l1l2(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7327,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7330,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7333,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7341,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7342,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7343,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7345,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7348
      start: 7320
    functionDepth: 2
    functionLinenumber: 7320
    functionLinenumberEnd: 7348
    functionName: test_cil_gen_constrain_expr_stack_eq_l1h1
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq_l1h1(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7357,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7360,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7363,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7371,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7372,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7373,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7375,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7378
      start: 7350
    functionDepth: 2
    functionLinenumber: 7350
    functionLinenumberEnd: 7378
    functionName: test_cil_gen_constrain_expr_stack_eq_l1h2
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq_l1h2(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7387,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7390,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7393,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7401,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7402,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7403,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7405,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7408
      start: 7380
    functionDepth: 2
    functionLinenumber: 7380
    functionLinenumberEnd: 7408
    functionName: test_cil_gen_constrain_expr_stack_eq_h1l2
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq_h1l2(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7417,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7420,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7423,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7431,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7432,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7433,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7435,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7438
      start: 7410
    functionDepth: 2
    functionLinenumber: 7410
    functionLinenumberEnd: 7438
    functionName: test_cil_gen_constrain_expr_stack_eq_h1h2
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq_h1h2(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7447,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7450,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7453,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7461,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7462,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7463,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7465,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7468
      start: 7440
    functionDepth: 2
    functionLinenumber: 7440
    functionLinenumberEnd: 7468
    functionName: test_cil_gen_constrain_expr_stack_eq_h1_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq_h1_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7477,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7480,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7483,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7491,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7492,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7493,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7495,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7498
      start: 7470
    functionDepth: 2
    functionLinenumber: 7470
    functionLinenumberEnd: 7498
    functionName: test_cil_gen_constrain_expr_stack_eq_l1l1_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq_l1l1_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7506,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7509,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7512,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7520,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7521,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7522,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7524,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7527
      start: 7500
    functionDepth: 2
    functionLinenumber: 7500
    functionLinenumberEnd: 7527
    functionName: test_cil_gen_constrain_expr_stack_eq2_l1l2_constrain_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq2_l1l2_constrain_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7535,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7538,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7541,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7549,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7550,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7551,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7553,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7556
      start: 7529
    functionDepth: 2
    functionLinenumber: 7529
    functionLinenumberEnd: 7556
    functionName: test_cil_gen_constrain_expr_stack_eq_l1l2_constrain_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq_l1l2_constrain_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7565,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7568,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7571,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7579,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7580,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7581,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7583,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7586
      start: 7558
    functionDepth: 2
    functionLinenumber: 7558
    functionLinenumberEnd: 7586
    functionName: test_cil_gen_constrain_expr_stack_eq_leftkeyword_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq_leftkeyword_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7599,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7602,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7605,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7613,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7614,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7615,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7617,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7620
      start: 7588
    functionDepth: 2
    functionLinenumber: 7588
    functionLinenumberEnd: 7620
    functionName: test_cil_gen_constrain_expr_stack_eq_noexpr1_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq_noexpr1_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7634,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7637,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7640,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7648,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7649,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7650,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7652,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7655
      start: 7622
    functionDepth: 2
    functionLinenumber: 7622
    functionLinenumberEnd: 7655
    functionName: test_cil_gen_constrain_expr_stack_eq_expr1inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq_expr1inparens_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7664,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7667,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7670,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7678,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7679,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7680,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7682,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7685
      start: 7657
    functionDepth: 2
    functionLinenumber: 7657
    functionLinenumberEnd: 7685
    functionName: test_cil_gen_constrain_expr_stack_eq_noexpr2_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq_noexpr2_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7699,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7702,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7705,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7713,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7714,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7715,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7717,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7720
      start: 7687
    functionDepth: 2
    functionLinenumber: 7687
    functionLinenumberEnd: 7720
    functionName: test_cil_gen_constrain_expr_stack_eq_expr2inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq_expr2inparens_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7734,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7737,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7740,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7748,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7749,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7750,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7752,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7755
      start: 7722
    functionDepth: 2
    functionLinenumber: 7722
    functionLinenumberEnd: 7755
    functionName: test_cil_gen_constrain_expr_stack_eq_extraexpr_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq_extraexpr_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7764,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7767,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7770,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7778,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7779,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7780,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7782,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7785
      start: 7757
    functionDepth: 2
    functionLinenumber: 7757
    functionLinenumberEnd: 7785
    functionName: test_cil_gen_constrain_expr_stack_eq2
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq2(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7798,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7801,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7804,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7812,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7813,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7814,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7816,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7819
      start: 7787
    functionDepth: 2
    functionLinenumber: 7787
    functionLinenumberEnd: 7819
    functionName: test_cil_gen_constrain_expr_stack_eq2_noexpr1_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq2_noexpr1_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7833,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7836,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7839,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7847,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7848,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7849,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7851,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7854
      start: 7821
    functionDepth: 2
    functionLinenumber: 7821
    functionLinenumberEnd: 7854
    functionName: test_cil_gen_constrain_expr_stack_eq2_expr1inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq2_expr1inparens_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7863,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7866,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7869,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7877,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7878,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7879,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7881,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7884
      start: 7856
    functionDepth: 2
    functionLinenumber: 7856
    functionLinenumberEnd: 7884
    functionName: test_cil_gen_constrain_expr_stack_eq2_noexpr2_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq2_noexpr2_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7898,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7901,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7904,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7912,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7913,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7914,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7916,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7919
      start: 7886
    functionDepth: 2
    functionLinenumber: 7886
    functionLinenumberEnd: 7919
    functionName: test_cil_gen_constrain_expr_stack_eq2_expr2inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq2_expr2inparens_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7933,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7936,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7939,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7947,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7948,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7949,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7951,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7954
      start: 7921
    functionDepth: 2
    functionLinenumber: 7921
    functionLinenumberEnd: 7954
    functionName: test_cil_gen_constrain_expr_stack_eq2_extraexpr_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_eq2_extraexpr_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7963,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7966,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7969,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7977,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7978,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7979,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7981,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7984
      start: 7956
    functionDepth: 2
    functionLinenumber: 7956
    functionLinenumberEnd: 7984
    functionName: test_cil_gen_constrain_expr_stack_noteq
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_noteq(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:7997,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8000,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8003,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8011,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8012,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8013,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8015,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8018
      start: 7986
    functionDepth: 2
    functionLinenumber: 7986
    functionLinenumberEnd: 8018
    functionName: test_cil_gen_constrain_expr_stack_noteq_noexpr1_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_noteq_noexpr1_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8032,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8035,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8038,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8046,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8047,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8048,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8050,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8053
      start: 8020
    functionDepth: 2
    functionLinenumber: 8020
    functionLinenumberEnd: 8053
    functionName: test_cil_gen_constrain_expr_stack_noteq_expr1inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_noteq_expr1inparens_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8062,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8065,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8068,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8076,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8077,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8078,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8080,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8083
      start: 8055
    functionDepth: 2
    functionLinenumber: 8055
    functionLinenumberEnd: 8083
    functionName: test_cil_gen_constrain_expr_stack_noteq_noexpr2_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_noteq_noexpr2_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8097,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8100,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8103,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8111,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8112,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8113,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8115,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8118
      start: 8085
    functionDepth: 2
    functionLinenumber: 8085
    functionLinenumberEnd: 8118
    functionName: test_cil_gen_constrain_expr_stack_noteq_expr2inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_noteq_expr2inparens_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8132,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8135,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8138,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8146,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8147,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8148,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8150,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8153
      start: 8120
    functionDepth: 2
    functionLinenumber: 8120
    functionLinenumberEnd: 8153
    functionName: test_cil_gen_constrain_expr_stack_noteq_extraexpr_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_noteq_extraexpr_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8168,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8171,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8174,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8182,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8183,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8184,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8186,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8189
      start: 8155
    functionDepth: 2
    functionLinenumber: 8155
    functionLinenumberEnd: 8189
    functionName: test_cil_gen_constrain_expr_stack_not
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_not(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8202,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8205,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8208,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8216,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8217,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8218,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8220,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8223
      start: 8191
    functionDepth: 2
    functionLinenumber: 8191
    functionLinenumberEnd: 8223
    functionName: test_cil_gen_constrain_expr_stack_not_noexpr_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_not_noexpr_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8236,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8239,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8242,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8250,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8251,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8252,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8254,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8257
      start: 8225
    functionDepth: 2
    functionLinenumber: 8225
    functionLinenumberEnd: 8257
    functionName: test_cil_gen_constrain_expr_stack_not_emptyparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_not_emptyparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8273,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8276,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8279,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8287,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8288,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8289,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8291,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8294
      start: 8259
    functionDepth: 2
    functionLinenumber: 8259
    functionLinenumberEnd: 8294
    functionName: test_cil_gen_constrain_expr_stack_not_extraparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_not_extraparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8311,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8314,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8317,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8325,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8326,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8327,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8329,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8332
      start: 8296
    functionDepth: 2
    functionLinenumber: 8296
    functionLinenumberEnd: 8332
    functionName: test_cil_gen_constrain_expr_stack_or
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_or(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8348,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8351,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8354,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8362,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8363,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8364,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8366,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8369
      start: 8334
    functionDepth: 2
    functionLinenumber: 8334
    functionLinenumberEnd: 8369
    functionName: test_cil_gen_constrain_expr_stack_or_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_or_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8382,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8385,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8388,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8396,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8397,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8398,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8400,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8403
      start: 8371
    functionDepth: 2
    functionLinenumber: 8371
    functionLinenumberEnd: 8403
    functionName: test_cil_gen_constrain_expr_stack_or_noexpr_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_or_noexpr_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8416,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8419,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8422,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8430,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8431,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8432,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8434,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8437
      start: 8405
    functionDepth: 2
    functionLinenumber: 8405
    functionLinenumberEnd: 8437
    functionName: test_cil_gen_constrain_expr_stack_or_emptyfirstparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_or_emptyfirstparens_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8451,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8454,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8457,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8465,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8466,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8467,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8469,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8472
      start: 8439
    functionDepth: 2
    functionLinenumber: 8439
    functionLinenumberEnd: 8472
    functionName: test_cil_gen_constrain_expr_stack_or_missingsecondexpr_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_or_missingsecondexpr_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8487,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8490,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8493,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8501,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8502,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8503,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8505,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8508
      start: 8474
    functionDepth: 2
    functionLinenumber: 8474
    functionLinenumberEnd: 8508
    functionName: test_cil_gen_constrain_expr_stack_or_emptysecondparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_or_emptysecondparens_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8524,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8527,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8530,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8538,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8539,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8540,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8542,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8545
      start: 8510
    functionDepth: 2
    functionLinenumber: 8510
    functionLinenumberEnd: 8545
    functionName: test_cil_gen_constrain_expr_stack_or_extraexpr_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_or_extraexpr_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8562,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8565,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8568,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8576,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8577,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8578,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8580,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8583
      start: 8547
    functionDepth: 2
    functionLinenumber: 8547
    functionLinenumberEnd: 8583
    functionName: test_cil_gen_constrain_expr_stack_and
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_and(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8599,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8602,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8605,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8613,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8614,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8615,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8617,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8620
      start: 8585
    functionDepth: 2
    functionLinenumber: 8585
    functionLinenumberEnd: 8620
    functionName: test_cil_gen_constrain_expr_stack_and_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_and_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8633,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8636,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8639,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8647,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8648,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8649,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8651,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8654
      start: 8622
    functionDepth: 2
    functionLinenumber: 8622
    functionLinenumberEnd: 8654
    functionName: test_cil_gen_constrain_expr_stack_and_noexpr_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_and_noexpr_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8667,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8670,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8673,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8681,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8682,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8683,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8685,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8688
      start: 8656
    functionDepth: 2
    functionLinenumber: 8656
    functionLinenumberEnd: 8688
    functionName: test_cil_gen_constrain_expr_stack_and_emptyfirstparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_and_emptyfirstparens_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8702,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8705,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8708,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8716,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8717,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8718,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8720,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8723
      start: 8690
    functionDepth: 2
    functionLinenumber: 8690
    functionLinenumberEnd: 8723
    functionName: test_cil_gen_constrain_expr_stack_and_missingsecondexpr_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_and_missingsecondexpr_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8738,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8741,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8744,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8752,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8753,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8754,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8756,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8759
      start: 8725
    functionDepth: 2
    functionLinenumber: 8725
    functionLinenumberEnd: 8759
    functionName: test_cil_gen_constrain_expr_stack_and_emptysecondparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_and_emptysecondparens_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8775,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8778,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8781,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8789,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8790,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8791,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8793,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8796
      start: 8761
    functionDepth: 2
    functionLinenumber: 8761
    functionLinenumberEnd: 8796
    functionName: test_cil_gen_constrain_expr_stack_and_extraexpr_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_and_extraexpr_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8805,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8808,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8811,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8819,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8820,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8821,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8823,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8826
      start: 8798
    functionDepth: 2
    functionLinenumber: 8798
    functionLinenumberEnd: 8826
    functionName: test_cil_gen_constrain_expr_stack_dom
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_dom(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8839,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8842,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8845,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8853,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8854,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8855,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8857,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8860
      start: 8828
    functionDepth: 2
    functionLinenumber: 8828
    functionLinenumberEnd: 8860
    functionName: test_cil_gen_constrain_expr_stack_dom_noexpr1_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_dom_noexpr1_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8874,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8877,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8880,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8888,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8889,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8890,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8892,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8895
      start: 8862
    functionDepth: 2
    functionLinenumber: 8862
    functionLinenumberEnd: 8895
    functionName: test_cil_gen_constrain_expr_stack_dom_expr1inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_dom_expr1inparens_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8904,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8907,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8910,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8918,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8919,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8920,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8922,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8925
      start: 8897
    functionDepth: 2
    functionLinenumber: 8897
    functionLinenumberEnd: 8925
    functionName: test_cil_gen_constrain_expr_stack_dom_noexpr2_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_dom_noexpr2_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8939,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8942,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8945,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8953,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8954,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8955,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8957,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8960
      start: 8927
    functionDepth: 2
    functionLinenumber: 8927
    functionLinenumberEnd: 8960
    functionName: test_cil_gen_constrain_expr_stack_dom_expr2inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_dom_expr2inparens_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8974,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8977,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8980,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8988,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8989,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8990,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8992,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:8994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8995
      start: 8962
    functionDepth: 2
    functionLinenumber: 8962
    functionLinenumberEnd: 8995
    functionName: test_cil_gen_constrain_expr_stack_dom_extraexpr_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_dom_extraexpr_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9004,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9007,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9010,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9018,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9019,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9020,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9022,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9025
      start: 8997
    functionDepth: 2
    functionLinenumber: 8997
    functionLinenumberEnd: 9025
    functionName: test_cil_gen_constrain_expr_stack_domby
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_domby(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9038,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9041,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9044,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9052,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9053,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9054,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9056,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9059
      start: 9027
    functionDepth: 2
    functionLinenumber: 9027
    functionLinenumberEnd: 9059
    functionName: test_cil_gen_constrain_expr_stack_domby_noexpr1_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_domby_noexpr1_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9073,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9076,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9079,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9087,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9088,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9089,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9091,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9094
      start: 9061
    functionDepth: 2
    functionLinenumber: 9061
    functionLinenumberEnd: 9094
    functionName: test_cil_gen_constrain_expr_stack_domby_expr1inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_domby_expr1inparens_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9103,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9106,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9109,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9117,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9118,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9119,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9121,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9124
      start: 9096
    functionDepth: 2
    functionLinenumber: 9096
    functionLinenumberEnd: 9124
    functionName: test_cil_gen_constrain_expr_stack_domby_noexpr2_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_domby_noexpr2_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9138,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9141,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9144,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9152,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9153,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9154,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9156,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9159
      start: 9126
    functionDepth: 2
    functionLinenumber: 9126
    functionLinenumberEnd: 9159
    functionName: test_cil_gen_constrain_expr_stack_domby_expr2inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_domby_expr2inparens_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9173,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9176,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9179,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9187,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9188,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9189,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9191,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9194
      start: 9161
    functionDepth: 2
    functionLinenumber: 9161
    functionLinenumberEnd: 9194
    functionName: test_cil_gen_constrain_expr_stack_domby_extraexpr_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_domby_extraexpr_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9203,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9206,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9209,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9217,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9218,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9219,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9221,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9224
      start: 9196
    functionDepth: 2
    functionLinenumber: 9196
    functionLinenumberEnd: 9224
    functionName: test_cil_gen_constrain_expr_stack_incomp
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_incomp(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9237,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9240,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9243,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9251,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9252,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9253,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9255,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9258
      start: 9226
    functionDepth: 2
    functionLinenumber: 9226
    functionLinenumberEnd: 9258
    functionName: test_cil_gen_constrain_expr_stack_incomp_noexpr1_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_incomp_noexpr1_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9272,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9275,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9278,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9286,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9287,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9288,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9290,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9293
      start: 9260
    functionDepth: 2
    functionLinenumber: 9260
    functionLinenumberEnd: 9293
    functionName: test_cil_gen_constrain_expr_stack_incomp_expr1inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_incomp_expr1inparens_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9302,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9305,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9308,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9316,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9317,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9318,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9320,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9323
      start: 9295
    functionDepth: 2
    functionLinenumber: 9295
    functionLinenumberEnd: 9323
    functionName: test_cil_gen_constrain_expr_stack_incomp_noexpr2_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_incomp_noexpr2_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9337,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9340,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9343,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9351,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9352,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9353,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9355,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9358
      start: 9325
    functionDepth: 2
    functionLinenumber: 9325
    functionLinenumberEnd: 9358
    functionName: test_cil_gen_constrain_expr_stack_incomp_expr2inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_incomp_expr2inparens_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9372,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9375,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9378,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9386,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9387,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9388,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9390,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9393
      start: 9360
    functionDepth: 2
    functionLinenumber: 9360
    functionLinenumberEnd: 9393
    functionName: test_cil_gen_constrain_expr_stack_incomp_extraexpr_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_incomp_extraexpr_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9405,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9408,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9411,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9419,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9420,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9421,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9423,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9426
      start: 9395
    functionDepth: 2
    functionLinenumber: 9395
    functionLinenumberEnd: 9426
    functionName: test_cil_gen_constrain_expr_stack_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9435,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9438,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9441,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9449,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9450,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9451,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9453,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9456
      start: 9428
    functionDepth: 2
    functionLinenumber: 9428
    functionLinenumberEnd: 9456
    functionName: test_cil_gen_constrain_expr_stack_stacknull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_stacknull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9470,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9473,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9476,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9484,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9485,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9486,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9488,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9491
      start: 9458
    functionDepth: 2
    functionLinenumber: 9458
    functionLinenumberEnd: 9491
    functionName: test_cil_gen_constrain_expr_stack_operatorinparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_operatorinparens_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9500,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9503,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9506,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9514,1
    - Dst: cil_classpermset_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9515,1
    - Dst: cil_fill_classpermset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9516,1
    - Dst: cil_gen_expr_stack
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9518,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9522
      start: 9493
    functionDepth: 2
    functionLinenumber: 9493
    functionLinenumberEnd: 9522
    functionName: test_cil_gen_constrain_expr_stack_incorrectcall_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_fill_classpermset
    - cil_db_init
    - cil_gen_expr_stack
    - CuAssertIntEquals
    - gen_test_tree
    - cil_classpermset_init
    - cil_constrain_init
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expr_stack_incorrectcall_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9529,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9532,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9535,1
    - Dst: cil_gen_roleallow
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9543,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9545,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9546,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9549,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9552,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9554
      start: 9524
    functionDepth: 2
    functionLinenumber: 9524
    functionLinenumberEnd: 9554
    functionName: test_cil_gen_roleallow
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_roleallow
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    - gen_test_tree
    - CuAssertStrEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_roleallow(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9561,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9564,1
    - Dst: cil_gen_roleallow
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9568,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9571
      start: 9556
    functionDepth: 2
    functionLinenumber: 9556
    functionLinenumberEnd: 9571
    functionName: test_cil_gen_roleallow_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_roleallow
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_roleallow_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9576,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9579,1
    - Dst: cil_gen_roleallow
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9581,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9583
      start: 9573
    functionDepth: 1
    functionLinenumber: 9573
    functionLinenumberEnd: 9583
    functionName: test_cil_gen_roleallow_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_roleallow
    - cil_tree_node_init
    - CuAssertIntEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_roleallow_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9590,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9593,1
    - Dst: cil_gen_roleallow
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9597,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9600
      start: 9585
    functionDepth: 2
    functionLinenumber: 9585
    functionLinenumberEnd: 9600
    functionName: test_cil_gen_roleallow_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_roleallow
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_roleallow_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9607,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9612,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9615,1
    - Dst: cil_gen_roleallow
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9617,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9620
      start: 9602
    functionDepth: 2
    functionLinenumber: 9602
    functionLinenumberEnd: 9620
    functionName: test_cil_gen_roleallow_srcnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_roleallow
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_roleallow_srcnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9627,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9632,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9635,1
    - Dst: cil_gen_roleallow
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9637,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9640
      start: 9622
    functionDepth: 2
    functionLinenumber: 9622
    functionLinenumberEnd: 9640
    functionName: test_cil_gen_roleallow_tgtnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_roleallow
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_roleallow_tgtnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9647,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9650,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9653,1
    - Dst: cil_gen_roleallow
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9655,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9658
      start: 9642
    functionDepth: 2
    functionLinenumber: 9642
    functionLinenumberEnd: 9658
    functionName: test_cil_gen_roleallow_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_roleallow
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_roleallow_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9665,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9668,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9671,1
    - Dst: cil_gen_rolebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9676,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9679
      start: 9660
    functionDepth: 2
    functionLinenumber: 9660
    functionLinenumberEnd: 9679
    functionName: test_cil_gen_rolebounds
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_rolebounds
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rolebounds(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9686,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9689,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9692,1
    - Dst: cil_gen_rolebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9697,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9700
      start: 9681
    functionDepth: 2
    functionLinenumber: 9681
    functionLinenumberEnd: 9700
    functionName: test_cil_gen_rolebounds_norole1_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_rolebounds
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rolebounds_norole1_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9708,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9711,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9714,1
    - Dst: cil_gen_rolebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9719,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9722
      start: 9702
    functionDepth: 2
    functionLinenumber: 9702
    functionLinenumberEnd: 9722
    functionName: test_cil_gen_rolebounds_role1_inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_rolebounds
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rolebounds_role1_inparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9729,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9732,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9735,1
    - Dst: cil_gen_rolebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9740,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9743
      start: 9724
    functionDepth: 2
    functionLinenumber: 9724
    functionLinenumberEnd: 9743
    functionName: test_cil_gen_rolebounds_norole2_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_rolebounds
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rolebounds_norole2_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9751,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9754,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9757,1
    - Dst: cil_gen_rolebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9762,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9765
      start: 9745
    functionDepth: 2
    functionLinenumber: 9745
    functionLinenumberEnd: 9765
    functionName: test_cil_gen_rolebounds_role2_inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_rolebounds
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rolebounds_role2_inparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9774,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9777,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9780,1
    - Dst: cil_gen_rolebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9785,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9788
      start: 9767
    functionDepth: 2
    functionLinenumber: 9767
    functionLinenumberEnd: 9788
    functionName: test_cil_gen_rolebounds_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_rolebounds
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rolebounds_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9795,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9798,1
    - Dst: cil_gen_rolebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9802,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9805
      start: 9790
    functionDepth: 2
    functionLinenumber: 9790
    functionLinenumberEnd: 9805
    functionName: test_cil_gen_rolebounds_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_rolebounds
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rolebounds_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9812,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9815,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9818,1
    - Dst: cil_gen_rolebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9823,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9826
      start: 9807
    functionDepth: 2
    functionLinenumber: 9807
    functionLinenumberEnd: 9826
    functionName: test_cil_gen_rolebounds_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_rolebounds
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rolebounds_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9833,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9838,1
    - Dst: cil_gen_rolebounds
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9840,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9843
      start: 9828
    functionDepth: 2
    functionLinenumber: 9828
    functionLinenumberEnd: 9843
    functionName: test_cil_gen_rolebounds_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_rolebounds
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_rolebounds_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9851,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9854,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9857,1
    - Dst: cil_gen_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9866,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9867,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9868,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9869,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9872,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9875,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9879,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9880,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9889,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9890,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9894
      start: 9845
    functionDepth: 2
    functionLinenumber: 9845
    functionLinenumberEnd: 9894
    functionName: test_cil_gen_avrule
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_avrule
    - CuAssertPtrNotNull
    - gen_test_tree
    - CuAssertStrEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_avrule(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9902,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9905,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9908,1
    - Dst: cil_gen_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9917,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9919
      start: 9896
    functionDepth: 2
    functionLinenumber: 9896
    functionLinenumberEnd: 9919
    functionName: test_cil_gen_avrule_permset
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_avrule
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_avrule_permset(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9927,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9930,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9933,1
    - Dst: cil_gen_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9942,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9944
      start: 9921
    functionDepth: 2
    functionLinenumber: 9921
    functionLinenumberEnd: 9944
    functionName: test_cil_gen_avrule_permset_anon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_avrule
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_avrule_permset_anon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9952,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9955,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9958,1
    - Dst: cil_gen_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9967,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9969
      start: 9946
    functionDepth: 2
    functionLinenumber: 9946
    functionLinenumberEnd: 9969
    functionName: test_cil_gen_avrule_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_avrule
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_avrule_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9977,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9980,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9983,1
    - Dst: cil_gen_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9992,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:9993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9994
      start: 9971
    functionDepth: 2
    functionLinenumber: 9971
    functionLinenumberEnd: 9994
    functionName: test_cil_gen_avrule_sourceparens
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_avrule
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_avrule_sourceparens(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10002,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10005,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10008,1
    - Dst: cil_gen_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10017,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10019
      start: 9996
    functionDepth: 2
    functionLinenumber: 9996
    functionLinenumberEnd: 10019
    functionName: test_cil_gen_avrule_sourceemptyparen_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_avrule
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_avrule_sourceemptyparen_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10027,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10030,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10033,1
    - Dst: cil_gen_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10042,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10044
      start: 10021
    functionDepth: 2
    functionLinenumber: 10021
    functionLinenumberEnd: 10044
    functionName: test_cil_gen_avrule_targetparens
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_avrule
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_avrule_targetparens(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10052,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10055,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10058,1
    - Dst: cil_gen_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10067,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10069
      start: 10046
    functionDepth: 2
    functionLinenumber: 10046
    functionLinenumberEnd: 10069
    functionName: test_cil_gen_avrule_targetemptyparen_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_avrule
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_avrule_targetemptyparen_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10076,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10079,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10082,1
    - Dst: cil_gen_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10091,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10093
      start: 10071
    functionDepth: 2
    functionLinenumber: 10071
    functionLinenumberEnd: 10093
    functionName: test_cil_gen_avrule_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_avrule
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_avrule_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10101,1
    - Dst: cil_gen_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10109,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10111
      start: 10095
    functionDepth: 2
    functionLinenumber: 10095
    functionLinenumberEnd: 10111
    functionName: test_cil_gen_avrule_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_avrule
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_avrule_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10118,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10121,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10124,1
    - Dst: cil_gen_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10133,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10135
      start: 10113
    functionDepth: 2
    functionLinenumber: 10113
    functionLinenumberEnd: 10135
    functionName: test_cil_gen_avrule_sourcedomainnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_avrule
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_avrule_sourcedomainnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10142,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10145,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10148,1
    - Dst: cil_gen_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10157,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10159
      start: 10137
    functionDepth: 2
    functionLinenumber: 10137
    functionLinenumberEnd: 10159
    functionName: test_cil_gen_avrule_targetdomainnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_avrule
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_avrule_targetdomainnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10166,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10169,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10172,1
    - Dst: cil_gen_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10181,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10183
      start: 10161
    functionDepth: 2
    functionLinenumber: 10161
    functionLinenumberEnd: 10183
    functionName: test_cil_gen_avrule_objectclassnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_avrule
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_avrule_objectclassnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10192,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10195,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10198,1
    - Dst: cil_gen_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10207,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10209
      start: 10185
    functionDepth: 2
    functionLinenumber: 10185
    functionLinenumberEnd: 10209
    functionName: test_cil_gen_avrule_permsnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_avrule
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_avrule_permsnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10217,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10220,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10223,1
    - Dst: cil_gen_avrule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10232,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10234
      start: 10211
    functionDepth: 2
    functionLinenumber: 10211
    functionLinenumberEnd: 10234
    functionName: test_cil_gen_avrule_twolists_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_avrule
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_avrule_twolists_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10242,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10245,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10248,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10253,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10255,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10256,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10259,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10262,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10265,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10268,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10272
      start: 10236
    functionDepth: 2
    functionLinenumber: 10236
    functionLinenumberEnd: 10272
    functionName: test_cil_gen_type_rule_transition
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - CuAssertStrEquals
    - cil_gen_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_rule_transition(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10277,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10279,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10281
      start: 10274
    functionDepth: 1
    functionLinenumber: 10274
    functionLinenumberEnd: 10281
    functionName: test_cil_gen_type_rule_transition_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - CuAssertIntEquals
    - cil_gen_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_rule_transition_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10289,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10293,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10296
      start: 10283
    functionDepth: 2
    functionLinenumber: 10283
    functionLinenumberEnd: 10296
    functionName: test_cil_gen_type_rule_transition_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - CuAssertIntEquals
    - cil_gen_type_rule
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_rule_transition_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10304,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10307,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10310,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10317,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10320
      start: 10298
    functionDepth: 2
    functionLinenumber: 10298
    functionLinenumberEnd: 10320
    functionName: test_cil_gen_type_rule_transition_srcnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_rule_transition_srcnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10328,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10331,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10334,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10341,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10344
      start: 10322
    functionDepth: 2
    functionLinenumber: 10322
    functionLinenumberEnd: 10344
    functionName: test_cil_gen_type_rule_transition_tgtnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_rule_transition_tgtnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10352,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10355,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10358,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10365,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10368
      start: 10346
    functionDepth: 2
    functionLinenumber: 10346
    functionLinenumberEnd: 10368
    functionName: test_cil_gen_type_rule_transition_objnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_rule_transition_objnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10376,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10379,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10382,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10389,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10392
      start: 10370
    functionDepth: 2
    functionLinenumber: 10370
    functionLinenumberEnd: 10392
    functionName: test_cil_gen_type_rule_transition_resultnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_rule_transition_resultnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10400,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10403,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10406,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10411,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10414
      start: 10394
    functionDepth: 2
    functionLinenumber: 10394
    functionLinenumberEnd: 10414
    functionName: test_cil_gen_type_rule_transition_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_rule_transition_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10422,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10425,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10428,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10433,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10435,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10436,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10439,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10442,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10445,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10448,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10452
      start: 10416
    functionDepth: 2
    functionLinenumber: 10416
    functionLinenumberEnd: 10452
    functionName: test_cil_gen_type_rule_change
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - CuAssertStrEquals
    - cil_gen_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_rule_change(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10457,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10459,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10461
      start: 10454
    functionDepth: 1
    functionLinenumber: 10454
    functionLinenumberEnd: 10461
    functionName: test_cil_gen_type_rule_change_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - CuAssertIntEquals
    - cil_gen_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_rule_change_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10469,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10473,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10476
      start: 10463
    functionDepth: 2
    functionLinenumber: 10463
    functionLinenumberEnd: 10476
    functionName: test_cil_gen_type_rule_change_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - CuAssertIntEquals
    - cil_gen_type_rule
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_rule_change_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10484,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10487,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10490,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10497,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10500
      start: 10478
    functionDepth: 2
    functionLinenumber: 10478
    functionLinenumberEnd: 10500
    functionName: test_cil_gen_type_rule_change_srcnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_rule_change_srcnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10508,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10511,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10514,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10521,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10524
      start: 10502
    functionDepth: 2
    functionLinenumber: 10502
    functionLinenumberEnd: 10524
    functionName: test_cil_gen_type_rule_change_tgtnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_rule_change_tgtnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10532,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10535,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10538,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10545,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10548
      start: 10526
    functionDepth: 2
    functionLinenumber: 10526
    functionLinenumberEnd: 10548
    functionName: test_cil_gen_type_rule_change_objnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_rule_change_objnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10556,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10559,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10562,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10569,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10572
      start: 10550
    functionDepth: 2
    functionLinenumber: 10550
    functionLinenumberEnd: 10572
    functionName: test_cil_gen_type_rule_change_resultnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_rule_change_resultnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10580,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10583,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10586,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10591,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10594
      start: 10574
    functionDepth: 2
    functionLinenumber: 10574
    functionLinenumberEnd: 10594
    functionName: test_cil_gen_type_rule_change_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_rule_change_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10602,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10605,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10608,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10613,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10615,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10616,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10619,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10622,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10625,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10628,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10632
      start: 10596
    functionDepth: 2
    functionLinenumber: 10596
    functionLinenumberEnd: 10632
    functionName: test_cil_gen_type_rule_member
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - CuAssertStrEquals
    - cil_gen_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_rule_member(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10637,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10639,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10641
      start: 10634
    functionDepth: 1
    functionLinenumber: 10634
    functionLinenumberEnd: 10641
    functionName: test_cil_gen_type_rule_member_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - CuAssertIntEquals
    - cil_gen_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_rule_member_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10649,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10653,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10656
      start: 10643
    functionDepth: 2
    functionLinenumber: 10643
    functionLinenumberEnd: 10656
    functionName: test_cil_gen_type_rule_member_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - CuAssertIntEquals
    - cil_gen_type_rule
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_rule_member_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10664,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10667,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10670,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10677,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10680
      start: 10658
    functionDepth: 2
    functionLinenumber: 10658
    functionLinenumberEnd: 10680
    functionName: test_cil_gen_type_rule_member_srcnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_rule_member_srcnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10688,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10691,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10694,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10701,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10704
      start: 10682
    functionDepth: 2
    functionLinenumber: 10682
    functionLinenumberEnd: 10704
    functionName: test_cil_gen_type_rule_member_tgtnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_rule_member_tgtnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10712,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10715,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10718,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10725,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10728
      start: 10706
    functionDepth: 2
    functionLinenumber: 10706
    functionLinenumberEnd: 10728
    functionName: test_cil_gen_type_rule_member_objnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_rule_member_objnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10736,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10739,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10742,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10749,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10752
      start: 10730
    functionDepth: 2
    functionLinenumber: 10730
    functionLinenumberEnd: 10752
    functionName: test_cil_gen_type_rule_member_resultnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_rule_member_resultnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10760,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10763,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10766,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10771,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10774
      start: 10754
    functionDepth: 2
    functionLinenumber: 10754
    functionLinenumberEnd: 10774
    functionName: test_cil_gen_type_rule_member_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_type_rule
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_type_rule_member_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10781,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10784,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10787,1
    - Dst: cil_gen_user
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10792,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10794,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10795,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10796,1
    - Dst: CuAssertPtrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10797,1
    - Dst: CuAssertStrEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10803
      start: 10776
    functionDepth: 2
    functionLinenumber: 10776
    functionLinenumberEnd: 10803
    functionName: test_cil_gen_user
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_user
    - cil_db_init
    - CuAssertPtrEquals
    - CuAssertIntEquals
    - CuAssertPtrNotNull
    - gen_test_tree
    - CuAssertStrEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_user(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10810,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10813,1
    - Dst: cil_gen_user
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10817,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10820
      start: 10805
    functionDepth: 2
    functionLinenumber: 10805
    functionLinenumberEnd: 10820
    functionName: test_cil_gen_user_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_user
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_user_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10827,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10830,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10833,1
    - Dst: cil_gen_user
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10838,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10841
      start: 10822
    functionDepth: 2
    functionLinenumber: 10822
    functionLinenumberEnd: 10841
    functionName: test_cil_gen_user_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_user
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_user_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10848,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10853,1
    - Dst: cil_gen_user
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10855,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10858
      start: 10843
    functionDepth: 2
    functionLinenumber: 10843
    functionLinenumberEnd: 10858
    functionName: test_cil_gen_user_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_user
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_user_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10865,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10868,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10871,1
    - Dst: cil_gen_user
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10876,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10879
      start: 10860
    functionDepth: 2
    functionLinenumber: 10860
    functionLinenumberEnd: 10879
    functionName: test_cil_gen_user_nouser_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_user
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_user_nouser_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10886,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10889,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10892,1
    - Dst: cil_gen_user
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10897,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10900
      start: 10881
    functionDepth: 2
    functionLinenumber: 10881
    functionLinenumberEnd: 10900
    functionName: test_cil_gen_user_xsinfo_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_user
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_user_xsinfo_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10907,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10910,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10913,1
    - Dst: cil_gen_userlevel
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10918,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10921
      start: 10902
    functionDepth: 2
    functionLinenumber: 10902
    functionLinenumberEnd: 10921
    functionName: test_cil_gen_userlevel
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_userlevel
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userlevel(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10929,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10932,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10935,1
    - Dst: cil_gen_userlevel
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10940,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10943
      start: 10923
    functionDepth: 2
    functionLinenumber: 10923
    functionLinenumberEnd: 10943
    functionName: test_cil_gen_userlevel_anon_level
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_userlevel
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userlevel_anon_level(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10951,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10954,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10957,1
    - Dst: cil_gen_userlevel
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10962,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10965
      start: 10945
    functionDepth: 2
    functionLinenumber: 10945
    functionLinenumberEnd: 10965
    functionName: test_cil_gen_userlevel_anon_level_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_userlevel
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userlevel_anon_level_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10972,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10975,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10978,1
    - Dst: cil_gen_userlevel
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10983,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10986
      start: 10967
    functionDepth: 2
    functionLinenumber: 10967
    functionLinenumberEnd: 10986
    functionName: test_cil_gen_userlevel_usernull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_userlevel
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userlevel_usernull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10995,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:10998,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11001,1
    - Dst: cil_gen_userlevel
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11006,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11009
      start: 10988
    functionDepth: 2
    functionLinenumber: 10988
    functionLinenumberEnd: 11009
    functionName: test_cil_gen_userlevel_userrange_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_userlevel
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userlevel_userrange_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11016,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11019,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11022,1
    - Dst: cil_gen_userlevel
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11027,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11030
      start: 11011
    functionDepth: 2
    functionLinenumber: 11011
    functionLinenumberEnd: 11030
    functionName: test_cil_gen_userlevel_levelnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_userlevel
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userlevel_levelnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11037,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11040,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11043,1
    - Dst: cil_gen_userlevel
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11048,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11051
      start: 11032
    functionDepth: 2
    functionLinenumber: 11032
    functionLinenumberEnd: 11051
    functionName: test_cil_gen_userlevel_levelrangeempty_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_userlevel
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userlevel_levelrangeempty_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11060,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11063,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11066,1
    - Dst: cil_gen_userlevel
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11071,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11074
      start: 11053
    functionDepth: 2
    functionLinenumber: 11053
    functionLinenumberEnd: 11074
    functionName: test_cil_gen_userlevel_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_userlevel
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userlevel_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11081,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11084,1
    - Dst: cil_gen_userlevel
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11088,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11091
      start: 11076
    functionDepth: 2
    functionLinenumber: 11076
    functionLinenumberEnd: 11091
    functionName: test_cil_gen_userlevel_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_userlevel
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userlevel_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11098,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11101,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11104,1
    - Dst: cil_gen_userlevel
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11109,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11112
      start: 11093
    functionDepth: 2
    functionLinenumber: 11093
    functionLinenumberEnd: 11112
    functionName: test_cil_gen_userlevel_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_userlevel
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userlevel_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11119,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11124,1
    - Dst: cil_gen_userlevel
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11126,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11129
      start: 11114
    functionDepth: 2
    functionLinenumber: 11114
    functionLinenumberEnd: 11129
    functionName: test_cil_gen_userlevel_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_userlevel
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userlevel_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11136,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11139,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11142,1
    - Dst: cil_gen_userrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11147,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11150
      start: 11131
    functionDepth: 2
    functionLinenumber: 11131
    functionLinenumberEnd: 11150
    functionName: test_cil_gen_userrange_named
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_userrange
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userrange_named(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11158,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11161,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11164,1
    - Dst: cil_gen_userrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11169,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11172
      start: 11152
    functionDepth: 2
    functionLinenumber: 11152
    functionLinenumberEnd: 11172
    functionName: test_cil_gen_userrange_anon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_userrange
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userrange_anon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11179,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11182,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11185,1
    - Dst: cil_gen_userrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11190,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11193
      start: 11174
    functionDepth: 2
    functionLinenumber: 11174
    functionLinenumberEnd: 11193
    functionName: test_cil_gen_userrange_usernull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_userrange
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userrange_usernull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11201,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11204,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11207,1
    - Dst: cil_gen_userrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11212,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11215
      start: 11195
    functionDepth: 2
    functionLinenumber: 11195
    functionLinenumberEnd: 11215
    functionName: test_cil_gen_userrange_anonuser_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_userrange
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userrange_anonuser_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11222,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11225,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11228,1
    - Dst: cil_gen_userrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11233,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11236
      start: 11217
    functionDepth: 2
    functionLinenumber: 11217
    functionLinenumberEnd: 11236
    functionName: test_cil_gen_userrange_rangenamenull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_userrange
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userrange_rangenamenull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11245,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11248,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11251,1
    - Dst: cil_gen_userrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11256,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11259
      start: 11238
    functionDepth: 2
    functionLinenumber: 11238
    functionLinenumberEnd: 11259
    functionName: test_cil_gen_userrange_anonrangeinvalid_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_userrange
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userrange_anonrangeinvalid_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11266,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11269,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11272,1
    - Dst: cil_gen_userrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11277,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11280
      start: 11261
    functionDepth: 2
    functionLinenumber: 11261
    functionLinenumberEnd: 11280
    functionName: test_cil_gen_userrange_anonrangeempty_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_userrange
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userrange_anonrangeempty_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11288,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11291,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11294,1
    - Dst: cil_gen_userrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11299,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11302
      start: 11282
    functionDepth: 2
    functionLinenumber: 11282
    functionLinenumberEnd: 11302
    functionName: test_cil_gen_userrange_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_userrange
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userrange_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11309,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11312,1
    - Dst: cil_gen_userrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11316,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11319
      start: 11304
    functionDepth: 2
    functionLinenumber: 11304
    functionLinenumberEnd: 11319
    functionName: test_cil_gen_userrange_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_userrange
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userrange_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11326,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11329,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11332,1
    - Dst: cil_gen_userrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11337,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11340
      start: 11321
    functionDepth: 2
    functionLinenumber: 11321
    functionLinenumberEnd: 11340
    functionName: test_cil_gen_userrange_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_userrange
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userrange_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11347,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11352,1
    - Dst: cil_gen_userrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11354,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11357
      start: 11342
    functionDepth: 2
    functionLinenumber: 11342
    functionLinenumberEnd: 11357
    functionName: test_cil_gen_userrange_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_userrange
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userrange_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11364,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11367,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11370,1
    - Dst: cil_gen_sensitivity
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11375,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11377,1
    - Dst: CuAssertPtrNotNull
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11378,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11380
      start: 11359
    functionDepth: 2
    functionLinenumber: 11359
    functionLinenumberEnd: 11380
    functionName: test_cil_gen_sensitivity
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_sensitivity
    - CuAssertPtrNotNull
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sensitivity(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11387,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11390,1
    - Dst: cil_gen_sensitivity
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11394,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11397
      start: 11382
    functionDepth: 2
    functionLinenumber: 11382
    functionLinenumberEnd: 11397
    functionName: test_cil_gen_sensitivity_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_sensitivity
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sensitivity_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11402,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11405,1
    - Dst: cil_gen_sensitivity
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11407,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11409
      start: 11399
    functionDepth: 1
    functionLinenumber: 11399
    functionLinenumberEnd: 11409
    functionName: test_cil_gen_sensitivity_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_tree_node_init
    - cil_gen_sensitivity
    - CuAssertIntEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sensitivity_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11416,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11419,1
    - Dst: cil_gen_sensitivity
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11423,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11426
      start: 11411
    functionDepth: 2
    functionLinenumber: 11411
    functionLinenumberEnd: 11426
    functionName: test_cil_gen_sensitivity_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_sensitivity
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sensitivity_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11433,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11438,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11441,1
    - Dst: cil_gen_sensitivity
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11443,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11446
      start: 11428
    functionDepth: 2
    functionLinenumber: 11428
    functionLinenumberEnd: 11446
    functionName: test_cil_gen_sensitivity_sensnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_sensitivity
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sensitivity_sensnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11453,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11456,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11459,1
    - Dst: cil_gen_sensitivity
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11461,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11464
      start: 11448
    functionDepth: 2
    functionLinenumber: 11448
    functionLinenumberEnd: 11464
    functionName: test_cil_gen_sensitivity_senslist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_sensitivity
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sensitivity_senslist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11471,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11474,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11477,1
    - Dst: cil_gen_sensitivity
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11479,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11482
      start: 11466
    functionDepth: 2
    functionLinenumber: 11466
    functionLinenumberEnd: 11482
    functionName: test_cil_gen_sensitivity_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_sensitivity
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sensitivity_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11489,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11492,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11495,1
    - Dst: cil_gen_sensalias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11500,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11503
      start: 11484
    functionDepth: 2
    functionLinenumber: 11484
    functionLinenumberEnd: 11503
    functionName: test_cil_gen_sensalias
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_sensalias
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sensalias(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11510,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11515,1
    - Dst: cil_gen_sensalias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11517,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11520
      start: 11505
    functionDepth: 2
    functionLinenumber: 11505
    functionLinenumberEnd: 11520
    functionName: test_cil_gen_sensalias_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_sensalias
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sensalias_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11525,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11528,1
    - Dst: cil_gen_sensalias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11530,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11532
      start: 11522
    functionDepth: 1
    functionLinenumber: 11522
    functionLinenumberEnd: 11532
    functionName: test_cil_gen_sensalias_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_tree_node_init
    - cil_gen_sensalias
    - CuAssertIntEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sensalias_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11539,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11542,1
    - Dst: cil_gen_sensalias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11546,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11549
      start: 11534
    functionDepth: 2
    functionLinenumber: 11534
    functionLinenumberEnd: 11549
    functionName: test_cil_gen_sensalias_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_sensalias
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sensalias_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11556,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11561,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11563,1
    - Dst: cil_gen_sensalias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11565,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11568
      start: 11551
    functionDepth: 2
    functionLinenumber: 11551
    functionLinenumberEnd: 11568
    functionName: test_cil_gen_sensalias_sensnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_sensalias
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sensalias_sensnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11578,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11581,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11584,1
    - Dst: cil_gen_sensalias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11586,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11589
      start: 11570
    functionDepth: 2
    functionLinenumber: 11570
    functionLinenumberEnd: 11589
    functionName: test_cil_gen_sensalias_senslist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_sensalias
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sensalias_senslist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11596,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11601,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11604,1
    - Dst: cil_gen_sensalias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11606,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11609
      start: 11591
    functionDepth: 2
    functionLinenumber: 11591
    functionLinenumberEnd: 11609
    functionName: test_cil_gen_sensalias_aliasnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_sensalias
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sensalias_aliasnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11618,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11621,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11624,1
    - Dst: cil_gen_sensalias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11626,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11629
      start: 11611
    functionDepth: 2
    functionLinenumber: 11611
    functionLinenumberEnd: 11629
    functionName: test_cil_gen_sensalias_aliaslist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_sensalias
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sensalias_aliaslist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11637,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11640,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11643,1
    - Dst: cil_gen_sensalias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11645,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11648
      start: 11631
    functionDepth: 2
    functionLinenumber: 11631
    functionLinenumberEnd: 11648
    functionName: test_cil_gen_sensalias_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_sensalias
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_sensalias_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11655,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11658,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11661,1
    - Dst: cil_gen_category
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11666,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11669
      start: 11650
    functionDepth: 2
    functionLinenumber: 11650
    functionLinenumberEnd: 11669
    functionName: test_cil_gen_category
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_category
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_category(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11676,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11681,1
    - Dst: cil_gen_category
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11683,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11686
      start: 11671
    functionDepth: 2
    functionLinenumber: 11671
    functionLinenumberEnd: 11686
    functionName: test_cil_gen_category_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_category
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_category_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11693,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11696,1
    - Dst: cil_gen_category
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11700,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11703
      start: 11688
    functionDepth: 2
    functionLinenumber: 11688
    functionLinenumberEnd: 11703
    functionName: test_cil_gen_category_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_category
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_category_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11710,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11713,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11716,1
    - Dst: cil_gen_category
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11721,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11723
      start: 11705
    functionDepth: 2
    functionLinenumber: 11705
    functionLinenumberEnd: 11723
    functionName: test_cil_gen_category_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_category
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_category_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11730,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11735,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11738,1
    - Dst: cil_gen_category
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11743,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11746
      start: 11725
    functionDepth: 2
    functionLinenumber: 11725
    functionLinenumberEnd: 11746
    functionName: test_cil_gen_category_catnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_category
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_category_catnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11753,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11756,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11759,1
    - Dst: cil_gen_category
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11764,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11767
      start: 11748
    functionDepth: 2
    functionLinenumber: 11748
    functionLinenumberEnd: 11767
    functionName: test_cil_gen_category_catlist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_category
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_category_catlist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11774,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11777,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11780,1
    - Dst: cil_gen_category
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11785,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11788
      start: 11769
    functionDepth: 2
    functionLinenumber: 11769
    functionLinenumberEnd: 11788
    functionName: test_cil_gen_category_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_category
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_category_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11796,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11799,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11802,1
    - Dst: cil_gen_catset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11807,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11810
      start: 11790
    functionDepth: 2
    functionLinenumber: 11790
    functionLinenumberEnd: 11810
    functionName: test_cil_gen_catset
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_catset
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catset(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11818,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11823,1
    - Dst: cil_gen_catset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11825,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11828
      start: 11812
    functionDepth: 2
    functionLinenumber: 11812
    functionLinenumberEnd: 11828
    functionName: test_cil_gen_catset_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_catset
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catset_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11836,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11839,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11842,1
    - Dst: cil_gen_catset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11847,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11849
      start: 11830
    functionDepth: 2
    functionLinenumber: 11830
    functionLinenumberEnd: 11849
    functionName: test_cil_gen_catset_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_catset
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catset_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11857,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11860,1
    - Dst: cil_gen_catset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11864,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11867
      start: 11851
    functionDepth: 2
    functionLinenumber: 11851
    functionLinenumberEnd: 11867
    functionName: test_cil_gen_catset_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_catset
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catset_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11875,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11880,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11883,1
    - Dst: cil_gen_catset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11888,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11891
      start: 11869
    functionDepth: 2
    functionLinenumber: 11869
    functionLinenumberEnd: 11891
    functionName: test_cil_gen_catset_namenull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_catset
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catset_namenull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11898,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11901,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11904,1
    - Dst: cil_gen_catset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11909,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11912
      start: 11893
    functionDepth: 2
    functionLinenumber: 11893
    functionLinenumberEnd: 11912
    functionName: test_cil_gen_catset_setnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_catset
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catset_setnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11921,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11924,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11927,1
    - Dst: cil_gen_catset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11932,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11935
      start: 11914
    functionDepth: 2
    functionLinenumber: 11914
    functionLinenumberEnd: 11935
    functionName: test_cil_gen_catset_namelist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_catset
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catset_namelist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11944,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11947,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11950,1
    - Dst: cil_gen_catset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11955,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11958
      start: 11937
    functionDepth: 2
    functionLinenumber: 11937
    functionLinenumberEnd: 11958
    functionName: test_cil_gen_catset_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_catset
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catset_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11965,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11968,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11971,1
    - Dst: cil_gen_catset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11976,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11979
      start: 11960
    functionDepth: 2
    functionLinenumber: 11960
    functionLinenumberEnd: 11979
    functionName: test_cil_gen_catset_notset_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_catset
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catset_notset_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11988,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11993,1
    - Dst: cil_gen_catset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11995,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:11997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11998
      start: 11982
    functionDepth: 2
    functionLinenumber: 11982
    functionLinenumberEnd: 11998
    functionName: test_cil_gen_catset_nodefail_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_catset
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catset_nodefail_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12005,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12008,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12011,1
    - Dst: cil_gen_catset
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12016,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12019
      start: 12000
    functionDepth: 2
    functionLinenumber: 12000
    functionLinenumberEnd: 12019
    functionName: test_cil_gen_catset_settolistfail_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_catset
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catset_settolistfail_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12026,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12029,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12032,1
    - Dst: cil_gen_catalias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12037,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12040
      start: 12021
    functionDepth: 2
    functionLinenumber: 12021
    functionLinenumberEnd: 12040
    functionName: test_cil_gen_catalias
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_catalias
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catalias(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12047,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12052,1
    - Dst: cil_gen_catalias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12054,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12057
      start: 12042
    functionDepth: 2
    functionLinenumber: 12042
    functionLinenumberEnd: 12057
    functionName: test_cil_gen_catalias_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_catalias
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catalias_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12064,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12067,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12070,1
    - Dst: cil_gen_catalias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12075,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12077
      start: 12059
    functionDepth: 2
    functionLinenumber: 12059
    functionLinenumberEnd: 12077
    functionName: test_cil_gen_catalias_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_catalias
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catalias_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12084,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12087,1
    - Dst: cil_gen_catalias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12091,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12094
      start: 12079
    functionDepth: 2
    functionLinenumber: 12079
    functionLinenumberEnd: 12094
    functionName: test_cil_gen_catalias_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_catalias
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catalias_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12101,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12106,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12109,1
    - Dst: cil_gen_catalias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12114,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12117
      start: 12096
    functionDepth: 2
    functionLinenumber: 12096
    functionLinenumberEnd: 12117
    functionName: test_cil_gen_catalias_catnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_catalias
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catalias_catnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12124,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12129,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12132,1
    - Dst: cil_gen_catalias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12137,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12140
      start: 12119
    functionDepth: 2
    functionLinenumber: 12119
    functionLinenumberEnd: 12140
    functionName: test_cil_gen_catalias_aliasnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_catalias
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catalias_aliasnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12147,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12150,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12153,1
    - Dst: cil_gen_catalias
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12158,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12161
      start: 12142
    functionDepth: 2
    functionLinenumber: 12142
    functionLinenumberEnd: 12161
    functionName: test_cil_gen_catalias_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_catalias
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catalias_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12170,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12173,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12176,1
    - Dst: cil_gen_catrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12181,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12184
      start: 12163
    functionDepth: 2
    functionLinenumber: 12163
    functionLinenumberEnd: 12184
    functionName: test_cil_gen_catrange
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_catrange
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catrange(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12191,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12194,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12197,1
    - Dst: cil_gen_catrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12202,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12205
      start: 12186
    functionDepth: 2
    functionLinenumber: 12186
    functionLinenumberEnd: 12205
    functionName: test_cil_gen_catrange_noname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_catrange
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catrange_noname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12212,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12215,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12218,1
    - Dst: cil_gen_catrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12223,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12226
      start: 12207
    functionDepth: 2
    functionLinenumber: 12207
    functionLinenumberEnd: 12226
    functionName: test_cil_gen_catrange_norange_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_catrange
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catrange_norange_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12233,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12236,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12239,1
    - Dst: cil_gen_catrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12244,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12247
      start: 12228
    functionDepth: 2
    functionLinenumber: 12228
    functionLinenumberEnd: 12247
    functionName: test_cil_gen_catrange_emptyrange_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_catrange
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catrange_emptyrange_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12257,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12260,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12263,1
    - Dst: cil_gen_catrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12268,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12271
      start: 12249
    functionDepth: 2
    functionLinenumber: 12249
    functionLinenumberEnd: 12271
    functionName: test_cil_gen_catrange_extrarange_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_catrange
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catrange_extrarange_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12280,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12285,1
    - Dst: cil_gen_catrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12287,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12290
      start: 12273
    functionDepth: 2
    functionLinenumber: 12273
    functionLinenumberEnd: 12290
    functionName: test_cil_gen_catrange_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_catrange
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catrange_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12297,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12300,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12303,1
    - Dst: cil_gen_catrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12308,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12310
      start: 12292
    functionDepth: 2
    functionLinenumber: 12292
    functionLinenumberEnd: 12310
    functionName: test_cil_gen_catrange_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_catrange
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catrange_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12319,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12322,1
    - Dst: cil_gen_catrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12326,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12329
      start: 12312
    functionDepth: 2
    functionLinenumber: 12312
    functionLinenumberEnd: 12329
    functionName: test_cil_gen_catrange_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_catrange
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catrange_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12337,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12340,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12343,1
    - Dst: cil_gen_catrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12348,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12351
      start: 12331
    functionDepth: 2
    functionLinenumber: 12331
    functionLinenumberEnd: 12351
    functionName: test_cil_gen_catrange_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_catrange
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catrange_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12358,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12361,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12364,1
    - Dst: cil_gen_roletype
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12366,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12370
      start: 12353
    functionDepth: 2
    functionLinenumber: 12353
    functionLinenumberEnd: 12370
    functionName: test_cil_gen_roletype
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_roletype
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_roletype(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12377,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12380,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12383,1
    - Dst: cil_gen_roletype
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12385,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12389
      start: 12372
    functionDepth: 2
    functionLinenumber: 12372
    functionLinenumberEnd: 12389
    functionName: test_cil_gen_roletype_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_roletype
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_roletype_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12396,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12401,1
    - Dst: cil_gen_roletype
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12403,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12407
      start: 12391
    functionDepth: 2
    functionLinenumber: 12391
    functionLinenumberEnd: 12407
    functionName: test_cil_gen_roletype_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_roletype
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_roletype_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12414,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12417,1
    - Dst: cil_gen_roletype
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12421,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12425
      start: 12409
    functionDepth: 2
    functionLinenumber: 12409
    functionLinenumberEnd: 12425
    functionName: test_cil_gen_roletype_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_roletype
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_roletype_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12432,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12435,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12438,1
    - Dst: cil_gen_roletype
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12440,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12444
      start: 12427
    functionDepth: 2
    functionLinenumber: 12427
    functionLinenumberEnd: 12444
    functionName: test_cil_gen_roletype_empty_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_roletype
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_roletype_empty_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12452,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12455,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12458,1
    - Dst: cil_gen_roletype
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12460,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12464
      start: 12446
    functionDepth: 2
    functionLinenumber: 12446
    functionLinenumberEnd: 12464
    functionName: test_cil_gen_roletype_rolelist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_roletype
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_roletype_rolelist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12475,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12478,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12481,1
    - Dst: cil_gen_roletype
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12483,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12487
      start: 12469
    functionDepth: 2
    functionLinenumber: 12469
    functionLinenumberEnd: 12487
    functionName: test_cil_gen_roletype_roletype_sublist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_roletype
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_roletype_roletype_sublist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12495,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12498,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12501,1
    - Dst: cil_gen_roletype
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12503,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12507
      start: 12489
    functionDepth: 2
    functionLinenumber: 12489
    functionLinenumberEnd: 12507
    functionName: test_cil_gen_roletype_typelist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_roletype
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_roletype_typelist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12514,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12517,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12520,1
    - Dst: cil_gen_userrole
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12522,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12526
      start: 12509
    functionDepth: 2
    functionLinenumber: 12509
    functionLinenumberEnd: 12526
    functionName: test_cil_gen_userrole
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_userrole
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userrole(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12533,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12536,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12539,1
    - Dst: cil_gen_userrole
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12541,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12545
      start: 12528
    functionDepth: 2
    functionLinenumber: 12528
    functionLinenumberEnd: 12545
    functionName: test_cil_gen_userrole_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_userrole
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userrole_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12552,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12557,1
    - Dst: cil_gen_userrole
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12559,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12563
      start: 12547
    functionDepth: 2
    functionLinenumber: 12547
    functionLinenumberEnd: 12563
    functionName: test_cil_gen_userrole_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_userrole
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userrole_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12570,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12573,1
    - Dst: cil_gen_userrole
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12577,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12581
      start: 12565
    functionDepth: 2
    functionLinenumber: 12565
    functionLinenumberEnd: 12581
    functionName: test_cil_gen_userrole_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_userrole
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userrole_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12588,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12591,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12594,1
    - Dst: cil_gen_userrole
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12596,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12599
      start: 12583
    functionDepth: 2
    functionLinenumber: 12583
    functionLinenumberEnd: 12599
    functionName: test_cil_gen_userrole_empty_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_userrole
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userrole_empty_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12607,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12610,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12613,1
    - Dst: cil_gen_userrole
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12615,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12619
      start: 12601
    functionDepth: 2
    functionLinenumber: 12601
    functionLinenumberEnd: 12619
    functionName: test_cil_gen_userrole_userlist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_userrole
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userrole_userlist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12628,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12631,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12634,1
    - Dst: cil_gen_userrole
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12636,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12640
      start: 12622
    functionDepth: 2
    functionLinenumber: 12622
    functionLinenumberEnd: 12640
    functionName: test_cil_gen_userrole_userrole_sublist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_userrole
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userrole_userrole_sublist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12648,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12651,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12654,1
    - Dst: cil_gen_userrole
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12656,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12660
      start: 12642
    functionDepth: 2
    functionLinenumber: 12642
    functionLinenumberEnd: 12660
    functionName: test_cil_gen_userrole_rolelist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_userrole
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_userrole_rolelist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12667,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12670,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12673,1
    - Dst: cil_class_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12677,1
    - Dst: cil_symtab_insert
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12682,1
    - Dst: cil_gen_classcommon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12689,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12692
      start: 12662
    functionDepth: 2
    functionLinenumber: 12662
    functionLinenumberEnd: 12692
    functionName: test_cil_gen_classcommon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_class_init
    - gen_test_tree
    - cil_gen_classcommon
    - cil_symtab_insert
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classcommon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12699,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12702,1
    - Dst: cil_gen_classcommon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12706,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12709
      start: 12694
    functionDepth: 2
    functionLinenumber: 12694
    functionLinenumberEnd: 12709
    functionName: test_cil_gen_classcommon_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_classcommon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classcommon_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12716,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12719,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12722,1
    - Dst: cil_gen_classcommon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12724,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12727
      start: 12711
    functionDepth: 2
    functionLinenumber: 12711
    functionLinenumberEnd: 12727
    functionName: test_cil_gen_classcommon_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_classcommon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classcommon_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12734,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12739,1
    - Dst: cil_gen_classcommon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12741,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12744
      start: 12729
    functionDepth: 2
    functionLinenumber: 12729
    functionLinenumberEnd: 12744
    functionName: test_cil_gen_classcommon_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_classcommon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classcommon_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12751,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12754,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12757,1
    - Dst: cil_gen_classcommon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12759,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12762
      start: 12746
    functionDepth: 2
    functionLinenumber: 12746
    functionLinenumberEnd: 12762
    functionName: test_cil_gen_classcommon_missingclassname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_classcommon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classcommon_missingclassname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12769,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12772,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12775,1
    - Dst: cil_class_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12779,1
    - Dst: cil_symtab_insert
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12784,1
    - Dst: cil_gen_classcommon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12791,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12794
      start: 12764
    functionDepth: 2
    functionLinenumber: 12764
    functionLinenumberEnd: 12794
    functionName: test_cil_gen_classcommon_noperms_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_class_init
    - gen_test_tree
    - cil_gen_classcommon
    - cil_symtab_insert
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classcommon_noperms_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12801,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12804,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12807,1
    - Dst: cil_class_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12811,1
    - Dst: cil_symtab_insert
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12816,1
    - Dst: cil_gen_classcommon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12823,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12826
      start: 12796
    functionDepth: 2
    functionLinenumber: 12796
    functionLinenumberEnd: 12826
    functionName: test_cil_gen_classcommon_extraperms_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_class_init
    - gen_test_tree
    - cil_gen_classcommon
    - cil_symtab_insert
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_classcommon_extraperms_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12836,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12839,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12842,1
    - Dst: cil_gen_catorder
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12847,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12851
      start: 12828
    functionDepth: 2
    functionLinenumber: 12828
    functionLinenumberEnd: 12851
    functionName: test_cil_gen_catorder
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_catorder
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catorder(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12861,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12866,1
    - Dst: cil_gen_catorder
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12868,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12872
      start: 12853
    functionDepth: 2
    functionLinenumber: 12853
    functionLinenumberEnd: 12872
    functionName: test_cil_gen_catorder_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_catorder
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catorder_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12880,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12883,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12886,1
    - Dst: cil_gen_catorder
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12891,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12895
      start: 12874
    functionDepth: 2
    functionLinenumber: 12874
    functionLinenumberEnd: 12895
    functionName: test_cil_gen_catorder_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_catorder
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catorder_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12905,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12908,1
    - Dst: cil_gen_catorder
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12912,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12916
      start: 12897
    functionDepth: 2
    functionLinenumber: 12897
    functionLinenumberEnd: 12916
    functionName: test_cil_gen_catorder_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_catorder
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catorder_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12925,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12928,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12931,1
    - Dst: cil_gen_catorder
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12936,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12939,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12940
      start: 12918
    functionDepth: 2
    functionLinenumber: 12918
    functionLinenumberEnd: 12940
    functionName: test_cil_gen_catorder_missingcats_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_catorder
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catorder_missingcats_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12949,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12952,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12955,1
    - Dst: cil_gen_catorder
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12960,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12964
      start: 12942
    functionDepth: 2
    functionLinenumber: 12942
    functionLinenumberEnd: 12964
    functionName: test_cil_gen_catorder_nosublist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_catorder
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catorder_nosublist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12974,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12977,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12980,1
    - Dst: cil_gen_catorder
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12985,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:12988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12989
      start: 12966
    functionDepth: 2
    functionLinenumber: 12966
    functionLinenumberEnd: 12989
    functionName: test_cil_gen_catorder_nestedcat_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_catorder
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_catorder_nestedcat_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13000,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13003,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13006,1
    - Dst: cil_gen_dominance
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13011,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13015
      start: 12991
    functionDepth: 2
    functionLinenumber: 12991
    functionLinenumberEnd: 13015
    functionName: test_cil_gen_dominance
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_dominance
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_dominance(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13026,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13029,1
    - Dst: cil_gen_dominance
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13033,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13037
      start: 13017
    functionDepth: 2
    functionLinenumber: 13017
    functionLinenumberEnd: 13037
    functionName: test_cil_gen_dominance_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_dominance
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_dominance_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13046,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13049,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13052,1
    - Dst: cil_gen_dominance
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13057,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13061
      start: 13039
    functionDepth: 2
    functionLinenumber: 13039
    functionLinenumberEnd: 13061
    functionName: test_cil_gen_dominance_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_dominance
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_dominance_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13072,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13077,1
    - Dst: cil_gen_dominance
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13079,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13083
      start: 13063
    functionDepth: 2
    functionLinenumber: 13063
    functionLinenumberEnd: 13083
    functionName: test_cil_gen_dominance_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_dominance
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_dominance_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13093,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13096,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13099,1
    - Dst: cil_gen_dominance
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13104,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13108
      start: 13085
    functionDepth: 2
    functionLinenumber: 13085
    functionLinenumberEnd: 13108
    functionName: test_cil_gen_dominance_nosensitivities_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_dominance
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_dominance_nosensitivities_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13119,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13122,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13125,1
    - Dst: cil_gen_dominance
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13130,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13134
      start: 13110
    functionDepth: 2
    functionLinenumber: 13110
    functionLinenumberEnd: 13134
    functionName: test_cil_gen_dominance_nosublist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_dominance
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_dominance_nosublist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13179,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13182,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13185,1
    - Dst: cil_gen_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13190,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13195
      start: 13136
    functionDepth: 2
    functionLinenumber: 13136
    functionLinenumberEnd: 13195
    functionName: test_cil_gen_senscat
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_senscat
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_senscat(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13203,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13206,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13209,1
    - Dst: cil_gen_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13214,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13217
      start: 13197
    functionDepth: 2
    functionLinenumber: 13197
    functionLinenumberEnd: 13217
    functionName: test_cil_gen_senscat_nosublist
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_senscat
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_senscat_nosublist(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13262,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13265,1
    - Dst: cil_gen_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13269,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13274
      start: 13219
    functionDepth: 2
    functionLinenumber: 13219
    functionLinenumberEnd: 13274
    functionName: test_cil_gen_senscat_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_senscat
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_senscat_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13289,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13292,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13295,1
    - Dst: cil_gen_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13300,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13305
      start: 13276
    functionDepth: 2
    functionLinenumber: 13276
    functionLinenumberEnd: 13305
    functionName: test_cil_gen_senscat_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_senscat
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_senscat_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13350,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13355,1
    - Dst: cil_gen_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13357,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13362
      start: 13307
    functionDepth: 2
    functionLinenumber: 13307
    functionLinenumberEnd: 13362
    functionName: test_cil_gen_senscat_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_senscat
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_senscat_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13402,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13405,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13408,1
    - Dst: cil_gen_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13413,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13418
      start: 13364
    functionDepth: 2
    functionLinenumber: 13364
    functionLinenumberEnd: 13418
    functionName: test_cil_gen_senscat_nosensitivities_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_senscat
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_senscat_nosensitivities_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13465,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13468,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13471,1
    - Dst: cil_gen_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13473,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13478
      start: 13420
    functionDepth: 2
    functionLinenumber: 13420
    functionLinenumberEnd: 13478
    functionName: test_cil_gen_senscat_sublist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_senscat
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_senscat_sublist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13485,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13488,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13491,1
    - Dst: cil_gen_senscat
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13493,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13496
      start: 13480
    functionDepth: 2
    functionLinenumber: 13480
    functionLinenumberEnd: 13496
    functionName: test_cil_gen_senscat_nocat_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_senscat
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_senscat_nocat_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13506,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13509,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13512,1
    - Dst: cil_level_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13518,1
    - Dst: cil_fill_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13520,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13524
      start: 13498
    functionDepth: 2
    functionLinenumber: 13498
    functionLinenumberEnd: 13524
    functionName: test_cil_fill_level
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_fill_level
    - gen_test_tree
    - cil_level_init
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_level(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13533,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13536,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13539,1
    - Dst: cil_level_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13545,1
    - Dst: cil_fill_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13547,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13551
      start: 13526
    functionDepth: 2
    functionLinenumber: 13526
    functionLinenumberEnd: 13551
    functionName: test_cil_fill_level_sensnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_fill_level
    - gen_test_tree
    - cil_level_init
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_level_sensnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13561,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13564,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13567,1
    - Dst: cil_fill_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13574,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13578
      start: 13553
    functionDepth: 2
    functionLinenumber: 13553
    functionLinenumberEnd: 13578
    functionName: test_cil_fill_level_levelnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_fill_level
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_level_levelnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13587,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13590,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13593,1
    - Dst: cil_level_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13599,1
    - Dst: cil_fill_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13601,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13605
      start: 13580
    functionDepth: 2
    functionLinenumber: 13580
    functionLinenumberEnd: 13605
    functionName: test_cil_fill_level_nocat
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_fill_level
    - gen_test_tree
    - cil_level_init
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_level_nocat(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13614,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13617,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13620,1
    - Dst: cil_level_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13626,1
    - Dst: cil_fill_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13628,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13632
      start: 13607
    functionDepth: 2
    functionLinenumber: 13607
    functionLinenumberEnd: 13632
    functionName: test_cil_fill_level_emptycat_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_fill_level
    - gen_test_tree
    - cil_level_init
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_level_emptycat_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13642,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13645,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13648,1
    - Dst: cil_gen_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13653,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13657
      start: 13634
    functionDepth: 2
    functionLinenumber: 13634
    functionLinenumberEnd: 13657
    functionName: test_cil_gen_level
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_level
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_level(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13664,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13667,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13670,1
    - Dst: cil_gen_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13675,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13678
      start: 13659
    functionDepth: 2
    functionLinenumber: 13659
    functionLinenumberEnd: 13678
    functionName: test_cil_gen_level_nameinparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_level
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_level_nameinparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13685,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13688,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13691,1
    - Dst: cil_gen_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13696,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13699
      start: 13680
    functionDepth: 2
    functionLinenumber: 13680
    functionLinenumberEnd: 13699
    functionName: test_cil_gen_level_emptysensparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_level
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_level_emptysensparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13707,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13710,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13713,1
    - Dst: cil_gen_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13718,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13721
      start: 13701
    functionDepth: 2
    functionLinenumber: 13701
    functionLinenumberEnd: 13721
    functionName: test_cil_gen_level_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_level
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_level_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13730,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13733,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13736,1
    - Dst: cil_gen_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13741,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13745
      start: 13723
    functionDepth: 2
    functionLinenumber: 13723
    functionLinenumberEnd: 13745
    functionName: test_cil_gen_level_emptycat_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_level
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_level_emptycat_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13753,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13756,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13759,1
    - Dst: cil_gen_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13764,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13768
      start: 13747
    functionDepth: 2
    functionLinenumber: 13747
    functionLinenumberEnd: 13768
    functionName: test_cil_gen_level_noname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_level
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_level_noname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13776,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13779,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13782,1
    - Dst: cil_gen_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13787,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13791
      start: 13770
    functionDepth: 2
    functionLinenumber: 13770
    functionLinenumberEnd: 13791
    functionName: test_cil_gen_level_nosens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_level
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_level_nosens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13801,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13804,1
    - Dst: cil_gen_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13808,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13812
      start: 13793
    functionDepth: 2
    functionLinenumber: 13793
    functionLinenumberEnd: 13812
    functionName: test_cil_gen_level_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_level
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_level_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13820,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13823,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13826,1
    - Dst: cil_gen_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13831,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13835
      start: 13814
    functionDepth: 2
    functionLinenumber: 13814
    functionLinenumberEnd: 13835
    functionName: test_cil_gen_level_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_level
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_level_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13845,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13850,1
    - Dst: cil_gen_level
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13852,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13855,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13856
      start: 13837
    functionDepth: 2
    functionLinenumber: 13837
    functionLinenumberEnd: 13856
    functionName: test_cil_gen_level_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_level
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_level_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13864,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13867,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13870,1
    - Dst: cil_gen_levelrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13875,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13878
      start: 13858
    functionDepth: 2
    functionLinenumber: 13858
    functionLinenumberEnd: 13878
    functionName: test_cil_gen_levelrange
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_levelrange
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_levelrange(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13886,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13889,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13892,1
    - Dst: cil_gen_levelrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13897,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13900
      start: 13880
    functionDepth: 2
    functionLinenumber: 13880
    functionLinenumberEnd: 13900
    functionName: test_cil_gen_levelrange_rangeinvalid_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_levelrange
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_levelrange_rangeinvalid_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13907,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13910,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13913,1
    - Dst: cil_gen_levelrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13918,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13921
      start: 13902
    functionDepth: 2
    functionLinenumber: 13902
    functionLinenumberEnd: 13921
    functionName: test_cil_gen_levelrange_namenull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_levelrange
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_levelrange_namenull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13928,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13931,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13934,1
    - Dst: cil_gen_levelrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13939,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13942
      start: 13923
    functionDepth: 2
    functionLinenumber: 13923
    functionLinenumberEnd: 13942
    functionName: test_cil_gen_levelrange_rangenull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_levelrange
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_levelrange_rangenull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13949,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13952,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13955,1
    - Dst: cil_gen_levelrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13960,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13963
      start: 13944
    functionDepth: 2
    functionLinenumber: 13944
    functionLinenumberEnd: 13963
    functionName: test_cil_gen_levelrange_rangeempty_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_levelrange
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_levelrange_rangeempty_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13971,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13974,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13977,1
    - Dst: cil_gen_levelrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13982,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13985
      start: 13965
    functionDepth: 2
    functionLinenumber: 13965
    functionLinenumberEnd: 13985
    functionName: test_cil_gen_levelrange_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_levelrange
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_levelrange_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13993,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:13996,1
    - Dst: cil_gen_levelrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14000,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14003
      start: 13987
    functionDepth: 2
    functionLinenumber: 13987
    functionLinenumberEnd: 14003
    functionName: test_cil_gen_levelrange_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_levelrange
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_levelrange_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14010,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14013,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14016,1
    - Dst: cil_gen_levelrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14021,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14024
      start: 14005
    functionDepth: 2
    functionLinenumber: 14005
    functionLinenumberEnd: 14024
    functionName: test_cil_gen_levelrange_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_levelrange
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_levelrange_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14032,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14037,1
    - Dst: cil_gen_levelrange
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14039,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14042
      start: 14026
    functionDepth: 2
    functionLinenumber: 14026
    functionLinenumberEnd: 14042
    functionName: test_cil_gen_levelrange_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_levelrange
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_levelrange_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14052,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14055,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14058,1
    - Dst: cil_gen_constrain
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14063,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14066
      start: 14044
    functionDepth: 2
    functionLinenumber: 14044
    functionLinenumberEnd: 14066
    functionName: test_cil_gen_constrain
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_constrain
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14076,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14079,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14082,1
    - Dst: cil_gen_constrain
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14087,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14090
      start: 14068
    functionDepth: 2
    functionLinenumber: 14068
    functionLinenumberEnd: 14090
    functionName: test_cil_gen_constrain_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_constrain
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14097,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14100,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14103,1
    - Dst: cil_gen_constrain
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14108,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14111
      start: 14092
    functionDepth: 2
    functionLinenumber: 14092
    functionLinenumberEnd: 14111
    functionName: test_cil_gen_constrain_classset_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_constrain
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_classset_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14118,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14121,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14124,1
    - Dst: cil_gen_constrain
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14129,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14132
      start: 14113
    functionDepth: 2
    functionLinenumber: 14113
    functionLinenumberEnd: 14132
    functionName: test_cil_gen_constrain_classset_noclass_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_constrain
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_classset_noclass_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14139,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14142,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14145,1
    - Dst: cil_gen_constrain
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14150,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14153
      start: 14134
    functionDepth: 2
    functionLinenumber: 14134
    functionLinenumberEnd: 14153
    functionName: test_cil_gen_constrain_classset_noperm_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_constrain
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_classset_noperm_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14162,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14165,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14168,1
    - Dst: cil_gen_constrain
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14173,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14176
      start: 14155
    functionDepth: 2
    functionLinenumber: 14155
    functionLinenumberEnd: 14176
    functionName: test_cil_gen_constrain_permset_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_constrain
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_permset_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14186,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14189,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14192,1
    - Dst: cil_gen_constrain
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14197,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14200
      start: 14178
    functionDepth: 2
    functionLinenumber: 14178
    functionLinenumberEnd: 14200
    functionName: test_cil_gen_constrain_permset_noclass_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_constrain
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_permset_noclass_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14208,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14211,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14214,1
    - Dst: cil_gen_constrain
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14219,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14222
      start: 14202
    functionDepth: 2
    functionLinenumber: 14202
    functionLinenumberEnd: 14222
    functionName: test_cil_gen_constrain_permset_noperm_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_constrain
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_permset_noperm_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14235,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14238,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14241,1
    - Dst: cil_gen_constrain
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14246,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14249
      start: 14224
    functionDepth: 2
    functionLinenumber: 14224
    functionLinenumberEnd: 14249
    functionName: test_cil_gen_constrain_expression_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_constrain
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_expression_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14259,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14262,1
    - Dst: cil_gen_constrain
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14266,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14269
      start: 14251
    functionDepth: 2
    functionLinenumber: 14251
    functionLinenumberEnd: 14269
    functionName: test_cil_gen_constrain_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_constrain
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14276,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14279,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14282,1
    - Dst: cil_gen_constrain
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14287,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14290
      start: 14271
    functionDepth: 2
    functionLinenumber: 14271
    functionLinenumberEnd: 14290
    functionName: test_cil_gen_constrain_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_constrain
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14300,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14305,1
    - Dst: cil_gen_constrain
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14307,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14310
      start: 14292
    functionDepth: 2
    functionLinenumber: 14292
    functionLinenumberEnd: 14310
    functionName: test_cil_gen_constrain_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_constrain
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_constrain_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14321,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14324,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14327,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14333,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14335,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14339
      start: 14312
    functionDepth: 2
    functionLinenumber: 14312
    functionLinenumberEnd: 14339
    functionName: test_cil_fill_context
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_fill_context
    - CuAssertIntEquals
    - cil_context_init
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_context(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14351,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14354,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14357,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14363,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14365,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14369
      start: 14341
    functionDepth: 2
    functionLinenumber: 14341
    functionLinenumberEnd: 14369
    functionName: test_cil_fill_context_unnamedlvl
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_fill_context
    - CuAssertIntEquals
    - cil_context_init
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_context_unnamedlvl(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14380,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14383,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14386,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14393,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14397
      start: 14371
    functionDepth: 2
    functionLinenumber: 14371
    functionLinenumberEnd: 14397
    functionName: test_cil_fill_context_nocontext_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_fill_context
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_context_nocontext_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14405,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14408,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14411,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14417,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14419,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14423
      start: 14399
    functionDepth: 2
    functionLinenumber: 14399
    functionLinenumberEnd: 14423
    functionName: test_cil_fill_context_nouser_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_fill_context
    - CuAssertIntEquals
    - cil_context_init
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_context_nouser_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14432,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14435,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14438,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14444,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14446,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14450
      start: 14425
    functionDepth: 2
    functionLinenumber: 14425
    functionLinenumberEnd: 14450
    functionName: test_cil_fill_context_norole_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_fill_context
    - CuAssertIntEquals
    - cil_context_init
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_context_norole_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14459,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14462,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14465,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14471,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14473,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14477
      start: 14452
    functionDepth: 2
    functionLinenumber: 14452
    functionLinenumberEnd: 14477
    functionName: test_cil_fill_context_notype_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_fill_context
    - CuAssertIntEquals
    - cil_context_init
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_context_notype_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14487,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14490,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14493,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14499,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14501,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14505
      start: 14479
    functionDepth: 2
    functionLinenumber: 14479
    functionLinenumberEnd: 14505
    functionName: test_cil_fill_context_nolowlvl_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_fill_context
    - CuAssertIntEquals
    - cil_context_init
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_context_nolowlvl_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14516,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14519,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14522,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14528,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14530,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14534
      start: 14507
    functionDepth: 2
    functionLinenumber: 14507
    functionLinenumberEnd: 14534
    functionName: test_cil_fill_context_nohighlvl_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_fill_context
    - CuAssertIntEquals
    - cil_context_init
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_context_nohighlvl_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14546,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14549,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14552,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14558,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14560,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14564
      start: 14536
    functionDepth: 2
    functionLinenumber: 14536
    functionLinenumberEnd: 14564
    functionName: test_cil_fill_context_unnamedlvl_nocontextlow_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_fill_context
    - CuAssertIntEquals
    - cil_context_init
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_context_unnamedlvl_nocontextlow_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14576,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14579,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14582,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14588,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14590,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14594
      start: 14566
    functionDepth: 2
    functionLinenumber: 14566
    functionLinenumberEnd: 14594
    functionName: test_cil_fill_context_unnamedlvl_nocontexthigh_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_fill_context
    - CuAssertIntEquals
    - cil_context_init
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_context_unnamedlvl_nocontexthigh_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14605,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14608,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14611,1
    - Dst: cil_gen_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14616,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14619
      start: 14596
    functionDepth: 2
    functionLinenumber: 14596
    functionLinenumberEnd: 14619
    functionName: test_cil_gen_context
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_context
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_context(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14629,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14632,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14635,1
    - Dst: cil_gen_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14640,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14643
      start: 14621
    functionDepth: 2
    functionLinenumber: 14621
    functionLinenumberEnd: 14643
    functionName: test_cil_gen_context_notinparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_context
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_context_notinparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14654,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14657,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14660,1
    - Dst: cil_gen_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14665,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14668
      start: 14645
    functionDepth: 2
    functionLinenumber: 14645
    functionLinenumberEnd: 14668
    functionName: test_cil_gen_context_extralevel_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_context
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_context_extralevel_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14675,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14678,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14681,1
    - Dst: cil_gen_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14686,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14689
      start: 14670
    functionDepth: 2
    functionLinenumber: 14670
    functionLinenumberEnd: 14689
    functionName: test_cil_gen_context_emptycontext_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_context
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_context_emptycontext_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14701,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14704,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14707,1
    - Dst: cil_gen_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14712,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14715
      start: 14691
    functionDepth: 2
    functionLinenumber: 14691
    functionLinenumberEnd: 14715
    functionName: test_cil_gen_context_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_context
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_context_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14725,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14728,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14731,1
    - Dst: cil_gen_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14736,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14739
      start: 14717
    functionDepth: 2
    functionLinenumber: 14717
    functionLinenumberEnd: 14739
    functionName: test_cil_gen_context_doubleparen_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_context
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_context_doubleparen_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14747,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14750,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14753,1
    - Dst: cil_gen_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14758,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14761
      start: 14741
    functionDepth: 2
    functionLinenumber: 14741
    functionLinenumberEnd: 14761
    functionName: test_cil_gen_context_norole_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_context
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_context_norole_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14771,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14774,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14777,1
    - Dst: cil_gen_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14782,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14785
      start: 14763
    functionDepth: 2
    functionLinenumber: 14763
    functionLinenumberEnd: 14785
    functionName: test_cil_gen_context_roleinparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_context
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_context_roleinparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14794,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14797,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14800,1
    - Dst: cil_gen_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14805,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14808
      start: 14787
    functionDepth: 2
    functionLinenumber: 14787
    functionLinenumberEnd: 14808
    functionName: test_cil_gen_context_notype_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_context
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_context_notype_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14817,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14820,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14823,1
    - Dst: cil_gen_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14828,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14831
      start: 14810
    functionDepth: 2
    functionLinenumber: 14810
    functionLinenumberEnd: 14831
    functionName: test_cil_gen_context_typeinparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_context
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_context_typeinparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14840,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14843,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14846,1
    - Dst: cil_gen_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14851,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14854
      start: 14833
    functionDepth: 2
    functionLinenumber: 14833
    functionLinenumberEnd: 14854
    functionName: test_cil_gen_context_nolevels_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_context
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_context_nolevels_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14865,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14868,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14871,1
    - Dst: cil_gen_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14876,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14879
      start: 14856
    functionDepth: 2
    functionLinenumber: 14856
    functionLinenumberEnd: 14879
    functionName: test_cil_gen_context_nosecondlevel_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_context
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_context_nosecondlevel_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14886,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14889,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14892,1
    - Dst: cil_gen_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14897,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14900
      start: 14881
    functionDepth: 2
    functionLinenumber: 14881
    functionLinenumberEnd: 14900
    functionName: test_cil_gen_context_noname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_context
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_context_noname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14907,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14910,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14913,1
    - Dst: cil_gen_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14918,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14921
      start: 14902
    functionDepth: 2
    functionLinenumber: 14902
    functionLinenumberEnd: 14921
    functionName: test_cil_gen_context_nouser_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_context
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_context_nouser_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14933,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14936,1
    - Dst: cil_gen_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14940,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14943
      start: 14923
    functionDepth: 2
    functionLinenumber: 14923
    functionLinenumberEnd: 14943
    functionName: test_cil_gen_context_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_context
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_context_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14950,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14953,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14956,1
    - Dst: cil_gen_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14961,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14964
      start: 14945
    functionDepth: 2
    functionLinenumber: 14945
    functionLinenumberEnd: 14964
    functionName: test_cil_gen_context_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_context
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_context_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14975,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14980,1
    - Dst: cil_gen_context
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14982,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14985
      start: 14966
    functionDepth: 2
    functionLinenumber: 14966
    functionLinenumberEnd: 14985
    functionName: test_cil_gen_context_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_context
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_context_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14994,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:14997,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15000,1
    - Dst: cil_gen_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15005,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15007,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15008
      start: 14987
    functionDepth: 2
    functionLinenumber: 14987
    functionLinenumberEnd: 15008
    functionName: test_cil_gen_filecon_dir
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_filecon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_filecon_dir(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15017,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15020,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15023,1
    - Dst: cil_gen_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15028,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15031
      start: 15010
    functionDepth: 2
    functionLinenumber: 15010
    functionLinenumberEnd: 15031
    functionName: test_cil_gen_filecon_file
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_filecon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_filecon_file(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15040,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15043,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15046,1
    - Dst: cil_gen_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15051,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15054
      start: 15033
    functionDepth: 2
    functionLinenumber: 15033
    functionLinenumberEnd: 15054
    functionName: test_cil_gen_filecon_char
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_filecon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_filecon_char(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15062,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15065,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15068,1
    - Dst: cil_gen_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15073,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15076
      start: 15056
    functionDepth: 2
    functionLinenumber: 15056
    functionLinenumberEnd: 15076
    functionName: test_cil_gen_filecon_block
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_filecon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_filecon_block(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15084,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15087,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15090,1
    - Dst: cil_gen_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15095,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15098
      start: 15078
    functionDepth: 2
    functionLinenumber: 15078
    functionLinenumberEnd: 15098
    functionName: test_cil_gen_filecon_socket
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_filecon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_filecon_socket(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15107,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15110,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15113,1
    - Dst: cil_gen_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15118,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15121
      start: 15100
    functionDepth: 2
    functionLinenumber: 15100
    functionLinenumberEnd: 15121
    functionName: test_cil_gen_filecon_pipe
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_filecon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_filecon_pipe(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15129,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15132,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15135,1
    - Dst: cil_gen_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15140,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15143
      start: 15123
    functionDepth: 2
    functionLinenumber: 15123
    functionLinenumberEnd: 15143
    functionName: test_cil_gen_filecon_symlink
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_filecon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_filecon_symlink(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15152,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15155,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15158,1
    - Dst: cil_gen_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15163,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15166
      start: 15145
    functionDepth: 2
    functionLinenumber: 15145
    functionLinenumberEnd: 15166
    functionName: test_cil_gen_filecon_any
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_filecon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_filecon_any(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15175,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15178,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15181,1
    - Dst: cil_gen_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15186,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15189
      start: 15168
    functionDepth: 2
    functionLinenumber: 15168
    functionLinenumberEnd: 15189
    functionName: test_cil_gen_filecon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_filecon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_filecon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15199,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15202,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15205,1
    - Dst: cil_gen_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15210,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15213
      start: 15191
    functionDepth: 2
    functionLinenumber: 15191
    functionLinenumberEnd: 15213
    functionName: test_cil_gen_filecon_anon_context
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_filecon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_filecon_anon_context(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15223,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15226,1
    - Dst: cil_gen_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15230,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15233
      start: 15215
    functionDepth: 2
    functionLinenumber: 15215
    functionLinenumberEnd: 15233
    functionName: test_cil_gen_filecon_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - CuAssertIntEquals
    - cil_tree_node_init
    - cil_gen_filecon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_filecon_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15240,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15243,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15246,1
    - Dst: cil_gen_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15251,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15254
      start: 15235
    functionDepth: 2
    functionLinenumber: 15235
    functionLinenumberEnd: 15254
    functionName: test_cil_gen_filecon_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_filecon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_filecon_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15264,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15269,1
    - Dst: cil_gen_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15271,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15274
      start: 15256
    functionDepth: 2
    functionLinenumber: 15256
    functionLinenumberEnd: 15274
    functionName: test_cil_gen_filecon_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_filecon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_filecon_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15281,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15284,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15287,1
    - Dst: cil_gen_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15292,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15295
      start: 15276
    functionDepth: 2
    functionLinenumber: 15276
    functionLinenumberEnd: 15295
    functionName: test_cil_gen_filecon_str1null_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_filecon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_filecon_str1null_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15302,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15305,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15308,1
    - Dst: cil_gen_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15313,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15316
      start: 15297
    functionDepth: 2
    functionLinenumber: 15297
    functionLinenumberEnd: 15316
    functionName: test_cil_gen_filecon_str1_inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_filecon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_filecon_str1_inparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15323,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15326,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15329,1
    - Dst: cil_gen_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15334,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15337
      start: 15318
    functionDepth: 2
    functionLinenumber: 15318
    functionLinenumberEnd: 15337
    functionName: test_cil_gen_filecon_str2null_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_filecon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_filecon_str2null_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15344,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15347,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15350,1
    - Dst: cil_gen_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15355,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15358
      start: 15339
    functionDepth: 2
    functionLinenumber: 15339
    functionLinenumberEnd: 15358
    functionName: test_cil_gen_filecon_str2_inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_filecon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_filecon_str2_inparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15365,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15368,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15371,1
    - Dst: cil_gen_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15376,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15379
      start: 15360
    functionDepth: 2
    functionLinenumber: 15360
    functionLinenumberEnd: 15379
    functionName: test_cil_gen_filecon_classnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_filecon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_filecon_classnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15387,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15390,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15393,1
    - Dst: cil_gen_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15398,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15401
      start: 15381
    functionDepth: 2
    functionLinenumber: 15381
    functionLinenumberEnd: 15401
    functionName: test_cil_gen_filecon_class_inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_filecon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_filecon_class_inparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15408,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15411,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15414,1
    - Dst: cil_gen_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15419,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15422
      start: 15403
    functionDepth: 2
    functionLinenumber: 15403
    functionLinenumberEnd: 15422
    functionName: test_cil_gen_filecon_contextnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_filecon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_filecon_contextnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15431,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15434,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15437,1
    - Dst: cil_gen_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15442,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15445
      start: 15424
    functionDepth: 2
    functionLinenumber: 15424
    functionLinenumberEnd: 15445
    functionName: test_cil_gen_filecon_context_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_filecon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_filecon_context_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15453,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15456,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15459,1
    - Dst: cil_gen_filecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15464,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15467
      start: 15447
    functionDepth: 2
    functionLinenumber: 15447
    functionLinenumberEnd: 15467
    functionName: test_cil_gen_filecon_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_filecon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_filecon_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15474,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15477,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15480,1
    - Dst: cil_gen_portcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15485,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15488
      start: 15469
    functionDepth: 2
    functionLinenumber: 15469
    functionLinenumberEnd: 15488
    functionName: test_cil_gen_portcon_udp
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_portcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_portcon_udp(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15495,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15498,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15501,1
    - Dst: cil_gen_portcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15506,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15509
      start: 15490
    functionDepth: 2
    functionLinenumber: 15490
    functionLinenumberEnd: 15509
    functionName: test_cil_gen_portcon_tcp
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_portcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_portcon_tcp(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15516,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15519,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15522,1
    - Dst: cil_gen_portcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15527,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15530
      start: 15511
    functionDepth: 2
    functionLinenumber: 15511
    functionLinenumberEnd: 15530
    functionName: test_cil_gen_portcon_unknownprotocol_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_portcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_portcon_unknownprotocol_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15539,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15542,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15545,1
    - Dst: cil_gen_portcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15550,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15553
      start: 15532
    functionDepth: 2
    functionLinenumber: 15532
    functionLinenumberEnd: 15553
    functionName: test_cil_gen_portcon_anon_context
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_portcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_portcon_anon_context(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15561,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15564,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15567,1
    - Dst: cil_gen_portcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15572,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15575
      start: 15555
    functionDepth: 2
    functionLinenumber: 15555
    functionLinenumberEnd: 15575
    functionName: test_cil_gen_portcon_portrange
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_portcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_portcon_portrange(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15584,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15587,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15590,1
    - Dst: cil_gen_portcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15595,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15598
      start: 15577
    functionDepth: 2
    functionLinenumber: 15577
    functionLinenumberEnd: 15598
    functionName: test_cil_gen_portcon_portrange_one_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_portcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_portcon_portrange_one_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15606,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15609,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15612,1
    - Dst: cil_gen_portcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15617,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15620
      start: 15600
    functionDepth: 2
    functionLinenumber: 15600
    functionLinenumberEnd: 15620
    functionName: test_cil_gen_portcon_portrange_morethanone_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_portcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_portcon_portrange_morethanone_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15627,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15630,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15633,1
    - Dst: cil_gen_portcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15638,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15641
      start: 15622
    functionDepth: 2
    functionLinenumber: 15622
    functionLinenumberEnd: 15641
    functionName: test_cil_gen_portcon_singleport_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_portcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_portcon_singleport_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15649,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15652,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15655,1
    - Dst: cil_gen_portcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15660,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15663
      start: 15643
    functionDepth: 2
    functionLinenumber: 15643
    functionLinenumberEnd: 15663
    functionName: test_cil_gen_portcon_lowport_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_portcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_portcon_lowport_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15671,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15674,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15677,1
    - Dst: cil_gen_portcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15682,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15685
      start: 15665
    functionDepth: 2
    functionLinenumber: 15665
    functionLinenumberEnd: 15685
    functionName: test_cil_gen_portcon_highport_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_portcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_portcon_highport_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15693,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15696,1
    - Dst: cil_gen_portcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15700,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15703
      start: 15687
    functionDepth: 2
    functionLinenumber: 15687
    functionLinenumberEnd: 15703
    functionName: test_cil_gen_portcon_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_portcon
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_portcon_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15710,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15713,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15716,1
    - Dst: cil_gen_portcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15721,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15724
      start: 15705
    functionDepth: 2
    functionLinenumber: 15705
    functionLinenumberEnd: 15724
    functionName: test_cil_gen_portcon_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_portcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_portcon_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15732,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15737,1
    - Dst: cil_gen_portcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15739,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15742
      start: 15726
    functionDepth: 2
    functionLinenumber: 15726
    functionLinenumberEnd: 15742
    functionName: test_cil_gen_portcon_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_portcon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_portcon_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15749,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15752,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15755,1
    - Dst: cil_gen_portcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15760,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15763
      start: 15744
    functionDepth: 2
    functionLinenumber: 15744
    functionLinenumberEnd: 15763
    functionName: test_cil_gen_portcon_str1null_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_portcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_portcon_str1null_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15771,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15774,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15777,1
    - Dst: cil_gen_portcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15782,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15785
      start: 15765
    functionDepth: 2
    functionLinenumber: 15765
    functionLinenumberEnd: 15785
    functionName: test_cil_gen_portcon_str1parens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_portcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_portcon_str1parens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15792,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15795,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15798,1
    - Dst: cil_gen_portcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15803,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15806
      start: 15787
    functionDepth: 2
    functionLinenumber: 15787
    functionLinenumberEnd: 15806
    functionName: test_cil_gen_portcon_portnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_portcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_portcon_portnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15813,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15816,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15819,1
    - Dst: cil_gen_portcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15824,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15827
      start: 15808
    functionDepth: 2
    functionLinenumber: 15808
    functionLinenumberEnd: 15827
    functionName: test_cil_gen_portcon_contextnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_portcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_portcon_contextnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15836,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15839,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15842,1
    - Dst: cil_gen_portcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15847,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15850
      start: 15829
    functionDepth: 2
    functionLinenumber: 15829
    functionLinenumberEnd: 15850
    functionName: test_cil_gen_portcon_context_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_portcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_portcon_context_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15859,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15862,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15865,1
    - Dst: cil_gen_portcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15870,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15873
      start: 15852
    functionDepth: 2
    functionLinenumber: 15852
    functionLinenumberEnd: 15873
    functionName: test_cil_gen_portcon_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_portcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_portcon_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15881,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15884,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15887,1
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15893,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15894,1
    - Dst: cil_fill_ipaddr
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15896,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15900
      start: 15875
    functionDepth: 2
    functionLinenumber: 15875
    functionLinenumberEnd: 15900
    functionName: test_cil_fill_ipaddr
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_fill_ipaddr
    - CuAssertIntEquals
    - gen_test_tree
    - cil_nodecon_init
    - cil_ipaddr_init
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_ipaddr(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15908,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15911,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15914,1
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15920,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15921,1
    - Dst: cil_fill_ipaddr
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15923,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15925
      start: 15902
    functionDepth: 2
    functionLinenumber: 15902
    functionLinenumberEnd: 15925
    functionName: test_cil_fill_ipaddr_addrnodenull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_fill_ipaddr
    - CuAssertIntEquals
    - gen_test_tree
    - cil_nodecon_init
    - cil_ipaddr_init
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_ipaddr_addrnodenull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15933,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15936,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15939,1
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15945,1
    - Dst: cil_fill_ipaddr
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15948,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15952
      start: 15927
    functionDepth: 2
    functionLinenumber: 15927
    functionLinenumberEnd: 15952
    functionName: test_cil_fill_ipaddr_addrnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_fill_ipaddr
    - CuAssertIntEquals
    - gen_test_tree
    - cil_nodecon_init
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_ipaddr_addrnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15960,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15963,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15966,1
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15972,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15973,1
    - Dst: cil_fill_ipaddr
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15975,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15979
      start: 15954
    functionDepth: 2
    functionLinenumber: 15954
    functionLinenumberEnd: 15979
    functionName: test_cil_fill_ipaddr_addrinparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_fill_ipaddr
    - CuAssertIntEquals
    - gen_test_tree
    - cil_nodecon_init
    - cil_ipaddr_init
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_ipaddr_addrinparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15987,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15990,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15993,1
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:15999,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16000,1
    - Dst: cil_fill_ipaddr
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16002,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16006
      start: 15981
    functionDepth: 2
    functionLinenumber: 15981
    functionLinenumberEnd: 16006
    functionName: test_cil_fill_ipaddr_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_fill_ipaddr
    - CuAssertIntEquals
    - gen_test_tree
    - cil_nodecon_init
    - cil_ipaddr_init
    linkageType: ''
    returnType: void
    signature: void test_cil_fill_ipaddr_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16013,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16016,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16019,1
    - Dst: cil_gen_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16024,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16027
      start: 16008
    functionDepth: 2
    functionLinenumber: 16008
    functionLinenumberEnd: 16027
    functionName: test_cil_gen_nodecon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_nodecon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nodecon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16036,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16039,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16042,1
    - Dst: cil_gen_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16047,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16050
      start: 16029
    functionDepth: 2
    functionLinenumber: 16029
    functionLinenumberEnd: 16050
    functionName: test_cil_gen_nodecon_anon_context
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_nodecon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nodecon_anon_context(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16057,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16060,1
    - Dst: cil_gen_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16064,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16067
      start: 16052
    functionDepth: 2
    functionLinenumber: 16052
    functionLinenumberEnd: 16067
    functionName: test_cil_gen_nodecon_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_nodecon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nodecon_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16074,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16077,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16080,1
    - Dst: cil_gen_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16085,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16088
      start: 16069
    functionDepth: 2
    functionLinenumber: 16069
    functionLinenumberEnd: 16088
    functionName: test_cil_gen_nodecon_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_nodecon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nodecon_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16095,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16100,1
    - Dst: cil_gen_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16102,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16105
      start: 16090
    functionDepth: 2
    functionLinenumber: 16090
    functionLinenumberEnd: 16105
    functionName: test_cil_gen_nodecon_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_nodecon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nodecon_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16112,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16115,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16118,1
    - Dst: cil_gen_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16123,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16126
      start: 16107
    functionDepth: 2
    functionLinenumber: 16107
    functionLinenumberEnd: 16126
    functionName: test_cil_gen_nodecon_ipnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_nodecon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nodecon_ipnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16134,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16137,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16140,1
    - Dst: cil_gen_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16145,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16148
      start: 16128
    functionDepth: 2
    functionLinenumber: 16128
    functionLinenumberEnd: 16148
    functionName: test_cil_gen_nodecon_ipanon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_nodecon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nodecon_ipanon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16156,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16159,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16162,1
    - Dst: cil_gen_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16167,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16170
      start: 16150
    functionDepth: 2
    functionLinenumber: 16150
    functionLinenumberEnd: 16170
    functionName: test_cil_gen_nodecon_ipanon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_nodecon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nodecon_ipanon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16177,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16180,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16183,1
    - Dst: cil_gen_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16188,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16191
      start: 16172
    functionDepth: 2
    functionLinenumber: 16172
    functionLinenumberEnd: 16191
    functionName: test_cil_gen_nodecon_netmasknull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_nodecon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nodecon_netmasknull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16199,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16202,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16205,1
    - Dst: cil_gen_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16210,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16213
      start: 16193
    functionDepth: 2
    functionLinenumber: 16193
    functionLinenumberEnd: 16213
    functionName: test_cil_gen_nodecon_netmaskanon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_nodecon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nodecon_netmaskanon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16221,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16224,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16227,1
    - Dst: cil_gen_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16232,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16235
      start: 16215
    functionDepth: 2
    functionLinenumber: 16215
    functionLinenumberEnd: 16235
    functionName: test_cil_gen_nodecon_netmaskanon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_nodecon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nodecon_netmaskanon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16242,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16245,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16248,1
    - Dst: cil_gen_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16253,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16256
      start: 16237
    functionDepth: 2
    functionLinenumber: 16237
    functionLinenumberEnd: 16256
    functionName: test_cil_gen_nodecon_contextnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_nodecon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nodecon_contextnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16265,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16268,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16271,1
    - Dst: cil_gen_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16276,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16279
      start: 16258
    functionDepth: 2
    functionLinenumber: 16258
    functionLinenumberEnd: 16279
    functionName: test_cil_gen_nodecon_context_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_nodecon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nodecon_context_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16289,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16292,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16295,1
    - Dst: cil_gen_nodecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16300,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16303
      start: 16281
    functionDepth: 2
    functionLinenumber: 16281
    functionLinenumberEnd: 16303
    functionName: test_cil_gen_nodecon_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_nodecon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_nodecon_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16310,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16313,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16316,1
    - Dst: cil_gen_genfscon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16321,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16324
      start: 16305
    functionDepth: 2
    functionLinenumber: 16305
    functionLinenumberEnd: 16324
    functionName: test_cil_gen_genfscon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_genfscon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_genfscon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16333,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16336,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16339,1
    - Dst: cil_gen_genfscon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16344,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16347
      start: 16326
    functionDepth: 2
    functionLinenumber: 16326
    functionLinenumberEnd: 16347
    functionName: test_cil_gen_genfscon_anon_context
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_genfscon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_genfscon_anon_context(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16354,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16357,1
    - Dst: cil_gen_genfscon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16361,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16364
      start: 16349
    functionDepth: 2
    functionLinenumber: 16349
    functionLinenumberEnd: 16364
    functionName: test_cil_gen_genfscon_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - CuAssertIntEquals
    - cil_tree_node_init
    - cil_gen_genfscon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_genfscon_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16371,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16374,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16377,1
    - Dst: cil_gen_genfscon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16382,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16385
      start: 16366
    functionDepth: 2
    functionLinenumber: 16366
    functionLinenumberEnd: 16385
    functionName: test_cil_gen_genfscon_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_genfscon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_genfscon_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16392,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16397,1
    - Dst: cil_gen_genfscon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16399,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16402
      start: 16387
    functionDepth: 2
    functionLinenumber: 16387
    functionLinenumberEnd: 16402
    functionName: test_cil_gen_genfscon_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_genfscon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_genfscon_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16409,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16412,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16415,1
    - Dst: cil_gen_genfscon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16420,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16423
      start: 16404
    functionDepth: 2
    functionLinenumber: 16404
    functionLinenumberEnd: 16423
    functionName: test_cil_gen_genfscon_typenull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_genfscon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_genfscon_typenull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16431,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16434,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16437,1
    - Dst: cil_gen_genfscon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16442,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16445
      start: 16425
    functionDepth: 2
    functionLinenumber: 16425
    functionLinenumberEnd: 16445
    functionName: test_cil_gen_genfscon_typeparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_genfscon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_genfscon_typeparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16452,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16455,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16458,1
    - Dst: cil_gen_genfscon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16463,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16466
      start: 16447
    functionDepth: 2
    functionLinenumber: 16447
    functionLinenumberEnd: 16466
    functionName: test_cil_gen_genfscon_pathnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_genfscon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_genfscon_pathnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16474,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16477,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16480,1
    - Dst: cil_gen_genfscon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16485,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16488
      start: 16468
    functionDepth: 2
    functionLinenumber: 16468
    functionLinenumberEnd: 16488
    functionName: test_cil_gen_genfscon_pathparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_genfscon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_genfscon_pathparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16495,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16498,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16501,1
    - Dst: cil_gen_genfscon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16506,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16509
      start: 16490
    functionDepth: 2
    functionLinenumber: 16490
    functionLinenumberEnd: 16509
    functionName: test_cil_gen_genfscon_contextnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_genfscon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_genfscon_contextnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16518,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16521,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16524,1
    - Dst: cil_gen_genfscon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16529,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16532
      start: 16511
    functionDepth: 2
    functionLinenumber: 16511
    functionLinenumberEnd: 16532
    functionName: test_cil_gen_genfscon_context_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_genfscon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_genfscon_context_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16540,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16543,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16546,1
    - Dst: cil_gen_genfscon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16551,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16554
      start: 16534
    functionDepth: 2
    functionLinenumber: 16534
    functionLinenumberEnd: 16554
    functionName: test_cil_gen_genfscon_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_genfscon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_genfscon_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16563,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16566,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16569,1
    - Dst: cil_gen_netifcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16574,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16577
      start: 16556
    functionDepth: 2
    functionLinenumber: 16556
    functionLinenumberEnd: 16577
    functionName: test_cil_gen_netifcon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_netifcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_netifcon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16588,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16591,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16594,1
    - Dst: cil_gen_netifcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16599,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16602
      start: 16579
    functionDepth: 2
    functionLinenumber: 16579
    functionLinenumberEnd: 16602
    functionName: test_cil_gen_netifcon_nested
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_netifcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_netifcon_nested(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16609,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16612,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16615,1
    - Dst: cil_gen_netifcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16620,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16623
      start: 16604
    functionDepth: 2
    functionLinenumber: 16604
    functionLinenumberEnd: 16623
    functionName: test_cil_gen_netifcon_nested_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_netifcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_netifcon_nested_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16633,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16636,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16639,1
    - Dst: cil_gen_netifcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16644,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16647
      start: 16625
    functionDepth: 2
    functionLinenumber: 16625
    functionLinenumberEnd: 16647
    functionName: test_cil_gen_netifcon_nested_emptysecondlist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_netifcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_netifcon_nested_emptysecondlist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16657,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16660,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16663,1
    - Dst: cil_gen_netifcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16668,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16671
      start: 16649
    functionDepth: 2
    functionLinenumber: 16649
    functionLinenumberEnd: 16671
    functionName: test_cil_gen_netifcon_extra_nested_secondlist_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_netifcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_netifcon_extra_nested_secondlist_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16681,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16684,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16687,1
    - Dst: cil_gen_netifcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16692,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16695
      start: 16673
    functionDepth: 2
    functionLinenumber: 16673
    functionLinenumberEnd: 16695
    functionName: test_cil_gen_netifcon_nested_missingobjects_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_netifcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_netifcon_nested_missingobjects_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16705,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16708,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16711,1
    - Dst: cil_gen_netifcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16716,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16719
      start: 16697
    functionDepth: 2
    functionLinenumber: 16697
    functionLinenumberEnd: 16719
    functionName: test_cil_gen_netifcon_nested_secondnested_missingobjects_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_netifcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_netifcon_nested_secondnested_missingobjects_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16728,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16731,1
    - Dst: cil_gen_netifcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16735,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16738
      start: 16721
    functionDepth: 2
    functionLinenumber: 16721
    functionLinenumberEnd: 16738
    functionName: test_cil_gen_netifcon_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - CuAssertIntEquals
    - cil_tree_node_init
    - cil_gen_netifcon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_netifcon_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16745,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16748,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16751,1
    - Dst: cil_gen_netifcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16756,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16759
      start: 16740
    functionDepth: 2
    functionLinenumber: 16740
    functionLinenumberEnd: 16759
    functionName: test_cil_gen_netifcon_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_netifcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_netifcon_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16768,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16773,1
    - Dst: cil_gen_netifcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16775,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16778
      start: 16761
    functionDepth: 2
    functionLinenumber: 16761
    functionLinenumberEnd: 16778
    functionName: test_cil_gen_netifcon_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_netifcon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_netifcon_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16785,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16788,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16791,1
    - Dst: cil_gen_netifcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16796,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16799
      start: 16780
    functionDepth: 2
    functionLinenumber: 16780
    functionLinenumberEnd: 16799
    functionName: test_cil_gen_netifcon_ethmissing_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_netifcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_netifcon_ethmissing_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16806,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16809,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16812,1
    - Dst: cil_gen_netifcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16817,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16820
      start: 16801
    functionDepth: 2
    functionLinenumber: 16801
    functionLinenumberEnd: 16820
    functionName: test_cil_gen_netifcon_interfacemissing_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_netifcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_netifcon_interfacemissing_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16827,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16830,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16833,1
    - Dst: cil_gen_netifcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16838,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16841
      start: 16822
    functionDepth: 2
    functionLinenumber: 16822
    functionLinenumberEnd: 16841
    functionName: test_cil_gen_netifcon_packetmissing_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_netifcon
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_netifcon_packetmissing_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16848,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16851,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16854,1
    - Dst: cil_gen_pirqcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16859,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16862
      start: 16843
    functionDepth: 2
    functionLinenumber: 16843
    functionLinenumberEnd: 16862
    functionName: test_cil_gen_pirqcon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_pirqcon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_pirqcon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16869,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16872,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16875,1
    - Dst: cil_gen_pirqcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16880,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16883
      start: 16864
    functionDepth: 2
    functionLinenumber: 16864
    functionLinenumberEnd: 16883
    functionName: test_cil_gen_pirqcon_pirqnotint_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_pirqcon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_pirqcon_pirqnotint_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16890,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16893,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16896,1
    - Dst: cil_gen_pirqcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16901,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16904
      start: 16885
    functionDepth: 2
    functionLinenumber: 16885
    functionLinenumberEnd: 16904
    functionName: test_cil_gen_pirqcon_nopirq_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_pirqcon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_pirqcon_nopirq_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16911,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16914,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16917,1
    - Dst: cil_gen_pirqcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16922,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16925
      start: 16906
    functionDepth: 2
    functionLinenumber: 16906
    functionLinenumberEnd: 16925
    functionName: test_cil_gen_pirqcon_pirqrange_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_pirqcon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_pirqcon_pirqrange_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16932,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16935,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16938,1
    - Dst: cil_gen_pirqcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16943,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16946
      start: 16927
    functionDepth: 2
    functionLinenumber: 16927
    functionLinenumberEnd: 16946
    functionName: test_cil_gen_pirqcon_nocontext_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_pirqcon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_pirqcon_nocontext_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16953,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16956,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16959,1
    - Dst: cil_gen_pirqcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16964,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16967
      start: 16948
    functionDepth: 2
    functionLinenumber: 16948
    functionLinenumberEnd: 16967
    functionName: test_cil_gen_pirqcon_anoncontext_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_pirqcon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_pirqcon_anoncontext_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16974,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16977,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16980,1
    - Dst: cil_gen_pirqcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16985,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16988
      start: 16969
    functionDepth: 2
    functionLinenumber: 16969
    functionLinenumberEnd: 16988
    functionName: test_cil_gen_pirqcon_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_pirqcon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_pirqcon_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16995,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:16998,1
    - Dst: cil_gen_pirqcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17002,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17005
      start: 16990
    functionDepth: 2
    functionLinenumber: 16990
    functionLinenumberEnd: 17005
    functionName: test_cil_gen_pirqcon_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_pirqcon
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_pirqcon_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17012,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17015,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17018,1
    - Dst: cil_gen_pirqcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17023,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17026
      start: 17007
    functionDepth: 2
    functionLinenumber: 17007
    functionLinenumberEnd: 17026
    functionName: test_cil_gen_pirqcon_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_pirqcon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_pirqcon_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17033,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17038,1
    - Dst: cil_gen_pirqcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17040,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17043
      start: 17028
    functionDepth: 2
    functionLinenumber: 17028
    functionLinenumberEnd: 17043
    functionName: test_cil_gen_pirqcon_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_pirqcon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_pirqcon_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17050,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17053,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17056,1
    - Dst: cil_gen_iomemcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17061,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17064
      start: 17045
    functionDepth: 2
    functionLinenumber: 17045
    functionLinenumberEnd: 17064
    functionName: test_cil_gen_iomemcon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_iomemcon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_iomemcon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17071,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17074,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17077,1
    - Dst: cil_gen_iomemcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17082,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17085
      start: 17066
    functionDepth: 2
    functionLinenumber: 17066
    functionLinenumberEnd: 17085
    functionName: test_cil_gen_iomemcon_iomemrange
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_iomemcon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_iomemcon_iomemrange(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17094,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17097,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17100,1
    - Dst: cil_gen_iomemcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17105,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17108
      start: 17087
    functionDepth: 2
    functionLinenumber: 17087
    functionLinenumberEnd: 17108
    functionName: test_cil_gen_iomemcon_iomemrange_firstnotint_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_iomemcon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_iomemcon_iomemrange_firstnotint_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17117,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17120,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17123,1
    - Dst: cil_gen_iomemcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17128,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17131
      start: 17110
    functionDepth: 2
    functionLinenumber: 17110
    functionLinenumberEnd: 17131
    functionName: test_cil_gen_iomemcon_iomemrange_secondnotint_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_iomemcon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_iomemcon_iomemrange_secondnotint_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17138,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17141,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17144,1
    - Dst: cil_gen_iomemcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17149,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17152
      start: 17133
    functionDepth: 2
    functionLinenumber: 17133
    functionLinenumberEnd: 17152
    functionName: test_cil_gen_iomemcon_iomemrange_empty_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_iomemcon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_iomemcon_iomemrange_empty_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17159,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17162,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17165,1
    - Dst: cil_gen_iomemcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17170,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17173
      start: 17154
    functionDepth: 2
    functionLinenumber: 17154
    functionLinenumberEnd: 17173
    functionName: test_cil_gen_iomemcon_iomemrange_singleiomem_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_iomemcon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_iomemcon_iomemrange_singleiomem_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17181,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17184,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17187,1
    - Dst: cil_gen_iomemcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17192,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17195
      start: 17175
    functionDepth: 2
    functionLinenumber: 17175
    functionLinenumberEnd: 17195
    functionName: test_cil_gen_iomemcon_iomemrange_morethantwoiomem_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_iomemcon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_iomemcon_iomemrange_morethantwoiomem_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17202,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17205,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17208,1
    - Dst: cil_gen_iomemcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17213,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17216
      start: 17197
    functionDepth: 2
    functionLinenumber: 17197
    functionLinenumberEnd: 17216
    functionName: test_cil_gen_iomemcon_iomemnotint_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_iomemcon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_iomemcon_iomemnotint_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17223,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17226,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17229,1
    - Dst: cil_gen_iomemcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17234,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17237
      start: 17218
    functionDepth: 2
    functionLinenumber: 17218
    functionLinenumberEnd: 17237
    functionName: test_cil_gen_iomemcon_noiomem_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_iomemcon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_iomemcon_noiomem_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17244,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17247,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17250,1
    - Dst: cil_gen_iomemcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17255,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17258
      start: 17239
    functionDepth: 2
    functionLinenumber: 17239
    functionLinenumberEnd: 17258
    functionName: test_cil_gen_iomemcon_nocontext_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_iomemcon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_iomemcon_nocontext_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17265,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17268,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17271,1
    - Dst: cil_gen_iomemcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17276,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17279
      start: 17260
    functionDepth: 2
    functionLinenumber: 17260
    functionLinenumberEnd: 17279
    functionName: test_cil_gen_iomemcon_anoncontext_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_iomemcon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_iomemcon_anoncontext_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17286,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17289,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17292,1
    - Dst: cil_gen_iomemcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17297,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17300
      start: 17281
    functionDepth: 2
    functionLinenumber: 17281
    functionLinenumberEnd: 17300
    functionName: test_cil_gen_iomemcon_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_iomemcon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_iomemcon_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17307,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17310,1
    - Dst: cil_gen_iomemcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17314,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17317
      start: 17302
    functionDepth: 2
    functionLinenumber: 17302
    functionLinenumberEnd: 17317
    functionName: test_cil_gen_iomemcon_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_iomemcon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_iomemcon_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17324,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17327,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17330,1
    - Dst: cil_gen_iomemcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17335,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17338
      start: 17319
    functionDepth: 2
    functionLinenumber: 17319
    functionLinenumberEnd: 17338
    functionName: test_cil_gen_iomemcon_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_iomemcon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_iomemcon_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17345,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17350,1
    - Dst: cil_gen_iomemcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17352,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17355
      start: 17340
    functionDepth: 2
    functionLinenumber: 17340
    functionLinenumberEnd: 17355
    functionName: test_cil_gen_iomemcon_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_iomemcon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_iomemcon_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17362,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17365,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17368,1
    - Dst: cil_gen_ioportcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17373,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17376
      start: 17357
    functionDepth: 2
    functionLinenumber: 17357
    functionLinenumberEnd: 17376
    functionName: test_cil_gen_ioportcon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_ioportcon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ioportcon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17385,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17388,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17391,1
    - Dst: cil_gen_ioportcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17396,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17399
      start: 17378
    functionDepth: 2
    functionLinenumber: 17378
    functionLinenumberEnd: 17399
    functionName: test_cil_gen_ioportcon_ioportrange
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_ioportcon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ioportcon_ioportrange(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17407,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17410,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17413,1
    - Dst: cil_gen_ioportcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17418,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17421
      start: 17401
    functionDepth: 2
    functionLinenumber: 17401
    functionLinenumberEnd: 17421
    functionName: test_cil_gen_ioportcon_ioportrange_firstnotint_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_ioportcon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ioportcon_ioportrange_firstnotint_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17429,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17432,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17435,1
    - Dst: cil_gen_ioportcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17440,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17443
      start: 17423
    functionDepth: 2
    functionLinenumber: 17423
    functionLinenumberEnd: 17443
    functionName: test_cil_gen_ioportcon_ioportrange_secondnotint_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_ioportcon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ioportcon_ioportrange_secondnotint_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17450,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17453,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17456,1
    - Dst: cil_gen_ioportcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17461,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17464
      start: 17445
    functionDepth: 2
    functionLinenumber: 17445
    functionLinenumberEnd: 17464
    functionName: test_cil_gen_ioportcon_ioportrange_empty_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_ioportcon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ioportcon_ioportrange_empty_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17471,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17474,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17477,1
    - Dst: cil_gen_ioportcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17482,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17485
      start: 17466
    functionDepth: 2
    functionLinenumber: 17466
    functionLinenumberEnd: 17485
    functionName: test_cil_gen_ioportcon_ioportrange_singleioport_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_ioportcon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ioportcon_ioportrange_singleioport_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17493,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17496,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17499,1
    - Dst: cil_gen_ioportcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17504,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17507
      start: 17487
    functionDepth: 2
    functionLinenumber: 17487
    functionLinenumberEnd: 17507
    functionName: test_cil_gen_ioportcon_ioportrange_morethantwoioport_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_ioportcon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ioportcon_ioportrange_morethantwoioport_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17514,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17517,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17520,1
    - Dst: cil_gen_ioportcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17525,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17528
      start: 17509
    functionDepth: 2
    functionLinenumber: 17509
    functionLinenumberEnd: 17528
    functionName: test_cil_gen_ioportcon_ioportnotint_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_ioportcon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ioportcon_ioportnotint_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17535,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17538,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17541,1
    - Dst: cil_gen_ioportcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17546,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17549
      start: 17530
    functionDepth: 2
    functionLinenumber: 17530
    functionLinenumberEnd: 17549
    functionName: test_cil_gen_ioportcon_noioport_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_ioportcon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ioportcon_noioport_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17556,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17559,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17562,1
    - Dst: cil_gen_ioportcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17567,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17570
      start: 17551
    functionDepth: 2
    functionLinenumber: 17551
    functionLinenumberEnd: 17570
    functionName: test_cil_gen_ioportcon_nocontext_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_ioportcon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ioportcon_nocontext_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17577,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17580,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17583,1
    - Dst: cil_gen_ioportcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17588,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17591
      start: 17572
    functionDepth: 2
    functionLinenumber: 17572
    functionLinenumberEnd: 17591
    functionName: test_cil_gen_ioportcon_anoncontext_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_ioportcon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ioportcon_anoncontext_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17598,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17601,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17604,1
    - Dst: cil_gen_ioportcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17609,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17612
      start: 17593
    functionDepth: 2
    functionLinenumber: 17593
    functionLinenumberEnd: 17612
    functionName: test_cil_gen_ioportcon_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_ioportcon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ioportcon_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17619,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17622,1
    - Dst: cil_gen_ioportcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17626,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17629
      start: 17614
    functionDepth: 2
    functionLinenumber: 17614
    functionLinenumberEnd: 17629
    functionName: test_cil_gen_ioportcon_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - CuAssertIntEquals
    - cil_tree_node_init
    - cil_gen_ioportcon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ioportcon_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17636,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17639,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17642,1
    - Dst: cil_gen_ioportcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17647,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17650
      start: 17631
    functionDepth: 2
    functionLinenumber: 17631
    functionLinenumberEnd: 17650
    functionName: test_cil_gen_ioportcon_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_ioportcon
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ioportcon_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17657,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17662,1
    - Dst: cil_gen_ioportcon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17664,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17667
      start: 17652
    functionDepth: 2
    functionLinenumber: 17652
    functionLinenumberEnd: 17667
    functionName: test_cil_gen_ioportcon_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_ioportcon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ioportcon_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17674,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17677,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17680,1
    - Dst: cil_gen_pcidevicecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17685,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17688
      start: 17669
    functionDepth: 2
    functionLinenumber: 17669
    functionLinenumberEnd: 17688
    functionName: test_cil_gen_pcidevicecon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_pcidevicecon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_pcidevicecon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17695,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17698,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17701,1
    - Dst: cil_gen_pcidevicecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17706,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17709
      start: 17690
    functionDepth: 2
    functionLinenumber: 17690
    functionLinenumberEnd: 17709
    functionName: test_cil_gen_pcidevicecon_pcidevicenotint_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_pcidevicecon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_pcidevicecon_pcidevicenotint_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17716,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17719,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17722,1
    - Dst: cil_gen_pcidevicecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17727,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17730
      start: 17711
    functionDepth: 2
    functionLinenumber: 17711
    functionLinenumberEnd: 17730
    functionName: test_cil_gen_pcidevicecon_nopcidevice_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_pcidevicecon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_pcidevicecon_nopcidevice_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17737,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17740,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17743,1
    - Dst: cil_gen_pcidevicecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17748,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17751
      start: 17732
    functionDepth: 2
    functionLinenumber: 17732
    functionLinenumberEnd: 17751
    functionName: test_cil_gen_pcidevicecon_pcidevicerange_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_pcidevicecon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_pcidevicecon_pcidevicerange_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17758,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17761,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17764,1
    - Dst: cil_gen_pcidevicecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17769,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17772
      start: 17753
    functionDepth: 2
    functionLinenumber: 17753
    functionLinenumberEnd: 17772
    functionName: test_cil_gen_pcidevicecon_nocontext_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_pcidevicecon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_pcidevicecon_nocontext_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17779,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17782,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17785,1
    - Dst: cil_gen_pcidevicecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17790,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17793
      start: 17774
    functionDepth: 2
    functionLinenumber: 17774
    functionLinenumberEnd: 17793
    functionName: test_cil_gen_pcidevicecon_anoncontext_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_pcidevicecon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_pcidevicecon_anoncontext_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17800,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17803,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17806,1
    - Dst: cil_gen_pcidevicecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17811,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17814
      start: 17795
    functionDepth: 2
    functionLinenumber: 17795
    functionLinenumberEnd: 17814
    functionName: test_cil_gen_pcidevicecon_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_pcidevicecon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_pcidevicecon_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17821,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17824,1
    - Dst: cil_gen_pcidevicecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17828,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17831
      start: 17816
    functionDepth: 2
    functionLinenumber: 17816
    functionLinenumberEnd: 17831
    functionName: test_cil_gen_pcidevicecon_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_pcidevicecon
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_pcidevicecon_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17838,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17841,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17844,1
    - Dst: cil_gen_pcidevicecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17849,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17852
      start: 17833
    functionDepth: 2
    functionLinenumber: 17833
    functionLinenumberEnd: 17852
    functionName: test_cil_gen_pcidevicecon_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - cil_gen_pcidevicecon
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_pcidevicecon_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17859,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17864,1
    - Dst: cil_gen_pcidevicecon
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17866,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17869
      start: 17854
    functionDepth: 2
    functionLinenumber: 17854
    functionLinenumberEnd: 17869
    functionName: test_cil_gen_pcidevicecon_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_pcidevicecon
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_pcidevicecon_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17878,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17881,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17884,1
    - Dst: cil_gen_fsuse
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17889,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17892
      start: 17871
    functionDepth: 2
    functionLinenumber: 17871
    functionLinenumberEnd: 17892
    functionName: test_cil_gen_fsuse_anoncontext
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_fsuse
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_fsuse_anoncontext(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17901,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17904,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17907,1
    - Dst: cil_gen_fsuse
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17912,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17915
      start: 17894
    functionDepth: 2
    functionLinenumber: 17894
    functionLinenumberEnd: 17915
    functionName: test_cil_gen_fsuse_anoncontext_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_fsuse
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_fsuse_anoncontext_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17922,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17925,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17928,1
    - Dst: cil_gen_fsuse
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17933,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17936
      start: 17917
    functionDepth: 2
    functionLinenumber: 17917
    functionLinenumberEnd: 17936
    functionName: test_cil_gen_fsuse_xattr
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_fsuse
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_fsuse_xattr(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17943,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17946,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17949,1
    - Dst: cil_gen_fsuse
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17954,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17957
      start: 17938
    functionDepth: 2
    functionLinenumber: 17938
    functionLinenumberEnd: 17957
    functionName: test_cil_gen_fsuse_task
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_fsuse
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_fsuse_task(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17964,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17967,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17970,1
    - Dst: cil_gen_fsuse
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17975,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17978
      start: 17959
    functionDepth: 2
    functionLinenumber: 17959
    functionLinenumberEnd: 17978
    functionName: test_cil_gen_fsuse_transition
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_fsuse
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_fsuse_transition(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17985,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17988,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17991,1
    - Dst: cil_gen_fsuse
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17996,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:17998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17999
      start: 17980
    functionDepth: 2
    functionLinenumber: 17980
    functionLinenumberEnd: 17999
    functionName: test_cil_gen_fsuse_invalidtype_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_fsuse
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_fsuse_invalidtype_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18006,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18009,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18012,1
    - Dst: cil_gen_fsuse
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18017,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18020
      start: 18001
    functionDepth: 2
    functionLinenumber: 18001
    functionLinenumberEnd: 18020
    functionName: test_cil_gen_fsuse_notype_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_fsuse
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_fsuse_notype_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18028,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18031,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18034,1
    - Dst: cil_gen_fsuse
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18039,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18042
      start: 18022
    functionDepth: 2
    functionLinenumber: 18022
    functionLinenumberEnd: 18042
    functionName: test_cil_gen_fsuse_typeinparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_fsuse
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_fsuse_typeinparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18049,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18052,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18055,1
    - Dst: cil_gen_fsuse
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18060,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18063
      start: 18044
    functionDepth: 2
    functionLinenumber: 18044
    functionLinenumberEnd: 18063
    functionName: test_cil_gen_fsuse_nofilesystem_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_fsuse
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_fsuse_nofilesystem_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18071,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18074,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18077,1
    - Dst: cil_gen_fsuse
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18082,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18085
      start: 18065
    functionDepth: 2
    functionLinenumber: 18065
    functionLinenumberEnd: 18085
    functionName: test_cil_gen_fsuse_filesysteminparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_fsuse
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_fsuse_filesysteminparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18092,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18095,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18098,1
    - Dst: cil_gen_fsuse
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18103,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18106
      start: 18087
    functionDepth: 2
    functionLinenumber: 18087
    functionLinenumberEnd: 18106
    functionName: test_cil_gen_fsuse_nocontext_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_fsuse
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_fsuse_nocontext_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18113,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18116,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18119,1
    - Dst: cil_gen_fsuse
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18124,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18127
      start: 18108
    functionDepth: 2
    functionLinenumber: 18108
    functionLinenumberEnd: 18127
    functionName: test_cil_gen_fsuse_emptyconparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_fsuse
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_fsuse_emptyconparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18135,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18138,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18141,1
    - Dst: cil_gen_fsuse
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18146,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18149
      start: 18129
    functionDepth: 2
    functionLinenumber: 18129
    functionLinenumberEnd: 18149
    functionName: test_cil_gen_fsuse_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_fsuse
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_fsuse_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18156,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18159,1
    - Dst: cil_gen_fsuse
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18163,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18166
      start: 18151
    functionDepth: 2
    functionLinenumber: 18151
    functionLinenumberEnd: 18166
    functionName: test_cil_gen_fsuse_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_fsuse
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_fsuse_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18173,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18176,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18179,1
    - Dst: cil_gen_fsuse
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18184,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18187
      start: 18168
    functionDepth: 2
    functionLinenumber: 18168
    functionLinenumberEnd: 18187
    functionName: test_cil_gen_fsuse_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_fsuse
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_fsuse_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18194,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18199,1
    - Dst: cil_gen_fsuse
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18201,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18204
      start: 18189
    functionDepth: 2
    functionLinenumber: 18189
    functionLinenumberEnd: 18204
    functionName: test_cil_gen_fsuse_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_fsuse
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_fsuse_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18212,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18215,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18218,1
    - Dst: cil_gen_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18223,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18226
      start: 18206
    functionDepth: 2
    functionLinenumber: 18206
    functionLinenumberEnd: 18226
    functionName: test_cil_gen_macro_noparams
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_macro
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_macro_noparams(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18234,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18237,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18240,1
    - Dst: cil_gen_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18245,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18248
      start: 18228
    functionDepth: 2
    functionLinenumber: 18228
    functionLinenumberEnd: 18248
    functionName: test_cil_gen_macro_type
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_macro
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_macro_type(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18256,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18259,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18262,1
    - Dst: cil_gen_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18267,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18270
      start: 18250
    functionDepth: 2
    functionLinenumber: 18250
    functionLinenumberEnd: 18270
    functionName: test_cil_gen_macro_role
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_macro
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_macro_role(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18278,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18281,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18284,1
    - Dst: cil_gen_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18289,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18292
      start: 18272
    functionDepth: 2
    functionLinenumber: 18272
    functionLinenumberEnd: 18292
    functionName: test_cil_gen_macro_user
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_macro
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_macro_user(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18301,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18304,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18307,1
    - Dst: cil_gen_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18312,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18315
      start: 18294
    functionDepth: 2
    functionLinenumber: 18294
    functionLinenumberEnd: 18315
    functionName: test_cil_gen_macro_sensitivity
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_macro
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_macro_sensitivity(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18324,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18327,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18330,1
    - Dst: cil_gen_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18335,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18338
      start: 18317
    functionDepth: 2
    functionLinenumber: 18317
    functionLinenumberEnd: 18338
    functionName: test_cil_gen_macro_category
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_macro
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_macro_category(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18347,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18350,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18353,1
    - Dst: cil_gen_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18358,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18361
      start: 18340
    functionDepth: 2
    functionLinenumber: 18340
    functionLinenumberEnd: 18361
    functionName: test_cil_gen_macro_catset
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_macro
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_macro_catset(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18369,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18372,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18375,1
    - Dst: cil_gen_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18380,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18383
      start: 18363
    functionDepth: 2
    functionLinenumber: 18363
    functionLinenumberEnd: 18383
    functionName: test_cil_gen_macro_level
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_macro
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_macro_level(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18391,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18394,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18397,1
    - Dst: cil_gen_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18402,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18405
      start: 18385
    functionDepth: 2
    functionLinenumber: 18385
    functionLinenumberEnd: 18405
    functionName: test_cil_gen_macro_class
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_macro
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_macro_class(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18414,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18417,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18420,1
    - Dst: cil_gen_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18425,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18428
      start: 18407
    functionDepth: 2
    functionLinenumber: 18407
    functionLinenumberEnd: 18428
    functionName: test_cil_gen_macro_classmap
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_macro
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_macro_classmap(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18437,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18440,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18443,1
    - Dst: cil_gen_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18448,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18451
      start: 18430
    functionDepth: 2
    functionLinenumber: 18430
    functionLinenumberEnd: 18451
    functionName: test_cil_gen_macro_permset
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_macro
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_macro_permset(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18460,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18463,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18466,1
    - Dst: cil_gen_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18471,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18474
      start: 18453
    functionDepth: 2
    functionLinenumber: 18453
    functionLinenumberEnd: 18474
    functionName: test_cil_gen_macro_duplicate
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_macro
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_macro_duplicate(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18503,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18506,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18509,1
    - Dst: cil_gen_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18514,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18517
      start: 18476
    functionDepth: 2
    functionLinenumber: 18476
    functionLinenumberEnd: 18517
    functionName: test_cil_gen_macro_duplicate_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_macro
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_macro_duplicate_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18525,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18528,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18531,1
    - Dst: cil_gen_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18536,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18539
      start: 18519
    functionDepth: 2
    functionLinenumber: 18519
    functionLinenumberEnd: 18539
    functionName: test_cil_gen_macro_unknown_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_macro
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_macro_unknown_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18547,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18550,1
    - Dst: cil_gen_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18554,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18557
      start: 18541
    functionDepth: 2
    functionLinenumber: 18541
    functionLinenumberEnd: 18557
    functionName: test_cil_gen_macro_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_macro
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_macro_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18564,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18567,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18570,1
    - Dst: cil_gen_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18575,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18578
      start: 18559
    functionDepth: 2
    functionLinenumber: 18559
    functionLinenumberEnd: 18578
    functionName: test_cil_gen_macro_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_macro
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_macro_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18586,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18589,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18592,1
    - Dst: cil_gen_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18596,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18599
      start: 18580
    functionDepth: 2
    functionLinenumber: 18580
    functionLinenumberEnd: 18599
    functionName: test_cil_gen_macro_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_macro
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_macro_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18606,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18609,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18612,1
    - Dst: cil_gen_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18617,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18620
      start: 18601
    functionDepth: 2
    functionLinenumber: 18601
    functionLinenumberEnd: 18620
    functionName: test_cil_gen_macro_unnamed_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_macro
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_macro_unnamed_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18627,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18630,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18633,1
    - Dst: cil_gen_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18638,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18641
      start: 18622
    functionDepth: 2
    functionLinenumber: 18622
    functionLinenumberEnd: 18641
    functionName: test_cil_gen_macro_noparam_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_macro
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_macro_noparam_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18649,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18652,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18655,1
    - Dst: cil_gen_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18660,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18663
      start: 18643
    functionDepth: 2
    functionLinenumber: 18643
    functionLinenumberEnd: 18663
    functionName: test_cil_gen_macro_nosecondparam_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_macro
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_macro_nosecondparam_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18671,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18674,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18677,1
    - Dst: cil_gen_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18682,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18685
      start: 18665
    functionDepth: 2
    functionLinenumber: 18665
    functionLinenumberEnd: 18685
    functionName: test_cil_gen_macro_noparam_name_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_macro
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_macro_noparam_name_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18693,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18696,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18699,1
    - Dst: cil_gen_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18704,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18707
      start: 18687
    functionDepth: 2
    functionLinenumber: 18687
    functionLinenumberEnd: 18707
    functionName: test_cil_gen_macro_emptyparam_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_macro
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_macro_emptyparam_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18715,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18718,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18721,1
    - Dst: cil_gen_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18726,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18729
      start: 18709
    functionDepth: 2
    functionLinenumber: 18709
    functionLinenumberEnd: 18729
    functionName: test_cil_gen_macro_paramcontainsperiod_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_macro
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_macro_paramcontainsperiod_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18736,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18739,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18742,1
    - Dst: cil_gen_call
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18747,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18750
      start: 18731
    functionDepth: 2
    functionLinenumber: 18731
    functionLinenumberEnd: 18750
    functionName: test_cil_gen_call
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_call
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_call(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18757,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18760,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18763,1
    - Dst: cil_gen_call
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18768,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18771
      start: 18752
    functionDepth: 2
    functionLinenumber: 18752
    functionLinenumberEnd: 18771
    functionName: test_cil_gen_call_noargs
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_call
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_call_noargs(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18779,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18782,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18785,1
    - Dst: cil_gen_call
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18790,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18793
      start: 18773
    functionDepth: 2
    functionLinenumber: 18773
    functionLinenumberEnd: 18793
    functionName: test_cil_gen_call_anon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_call
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_call_anon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18800,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18803,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18806,1
    - Dst: cil_gen_call
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18811,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18814
      start: 18795
    functionDepth: 2
    functionLinenumber: 18795
    functionLinenumberEnd: 18814
    functionName: test_cil_gen_call_empty_call_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_call
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_call_empty_call_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18821,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18824,1
    - Dst: cil_gen_call
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18828,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18831
      start: 18816
    functionDepth: 2
    functionLinenumber: 18816
    functionLinenumberEnd: 18831
    functionName: test_cil_gen_call_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_call
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_call_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18838,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18841,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18844,1
    - Dst: cil_gen_call
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18849,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18852
      start: 18833
    functionDepth: 2
    functionLinenumber: 18833
    functionLinenumberEnd: 18852
    functionName: test_cil_gen_call_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_call
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_call_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18859,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18864,1
    - Dst: cil_gen_call
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18866,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18869
      start: 18854
    functionDepth: 2
    functionLinenumber: 18854
    functionLinenumberEnd: 18869
    functionName: test_cil_gen_call_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_call
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_call_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18878,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18881,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18884,1
    - Dst: cil_gen_call
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18889,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18892
      start: 18871
    functionDepth: 2
    functionLinenumber: 18871
    functionLinenumberEnd: 18892
    functionName: test_cil_gen_call_name_inparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_call
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_call_name_inparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18899,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18902,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18905,1
    - Dst: cil_gen_call
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18910,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18913
      start: 18894
    functionDepth: 2
    functionLinenumber: 18894
    functionLinenumberEnd: 18913
    functionName: test_cil_gen_call_noname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_call
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_call_noname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18922,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18925,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18928,1
    - Dst: cil_gen_optional
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18933,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18936
      start: 18915
    functionDepth: 2
    functionLinenumber: 18915
    functionLinenumberEnd: 18936
    functionName: test_cil_gen_optional
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_optional
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_optional(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18945,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18948,1
    - Dst: cil_gen_optional
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18952,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18955
      start: 18938
    functionDepth: 2
    functionLinenumber: 18938
    functionLinenumberEnd: 18955
    functionName: test_cil_gen_optional_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - CuAssertIntEquals
    - cil_tree_node_init
    - cil_gen_optional
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_optional_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18962,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18965,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18968,1
    - Dst: cil_gen_optional
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18973,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18976
      start: 18957
    functionDepth: 2
    functionLinenumber: 18957
    functionLinenumberEnd: 18976
    functionName: test_cil_gen_optional_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_optional
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_optional_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18985,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18990,1
    - Dst: cil_gen_optional
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18992,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:18994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18995
      start: 18978
    functionDepth: 2
    functionLinenumber: 18978
    functionLinenumberEnd: 18995
    functionName: test_cil_gen_optional_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_optional
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_optional_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19002,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19005,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19008,1
    - Dst: cil_gen_optional
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19013,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19016
      start: 18997
    functionDepth: 2
    functionLinenumber: 18997
    functionLinenumberEnd: 19016
    functionName: test_cil_gen_optional_unnamed_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_optional
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_optional_unnamed_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19025,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19028,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19031,1
    - Dst: cil_gen_optional
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19036,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19039
      start: 19018
    functionDepth: 2
    functionLinenumber: 19018
    functionLinenumberEnd: 19039
    functionName: test_cil_gen_optional_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_optional
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_optional_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19046,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19049,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19052,1
    - Dst: cil_gen_optional
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19057,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19060
      start: 19041
    functionDepth: 2
    functionLinenumber: 19041
    functionLinenumberEnd: 19060
    functionName: test_cil_gen_optional_nameinparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_optional
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_optional_nameinparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19067,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19070,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19073,1
    - Dst: cil_gen_optional
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19078,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19081
      start: 19062
    functionDepth: 2
    functionLinenumber: 19062
    functionLinenumberEnd: 19081
    functionName: test_cil_gen_optional_emptyoptional
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_optional
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_optional_emptyoptional(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19088,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19091,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19094,1
    - Dst: cil_gen_optional
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19099,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19102
      start: 19083
    functionDepth: 2
    functionLinenumber: 19083
    functionLinenumberEnd: 19102
    functionName: test_cil_gen_optional_norule_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_optional
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_optional_norule_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19109,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19112,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19115,1
    - Dst: cil_gen_policycap
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19120,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19123
      start: 19104
    functionDepth: 2
    functionLinenumber: 19104
    functionLinenumberEnd: 19123
    functionName: test_cil_gen_policycap
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_policycap
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_policycap(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19130,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19133,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19136,1
    - Dst: cil_gen_policycap
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19141,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19144
      start: 19125
    functionDepth: 2
    functionLinenumber: 19125
    functionLinenumberEnd: 19144
    functionName: test_cil_gen_policycap_noname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_policycap
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_policycap_noname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19151,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19154,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19157,1
    - Dst: cil_gen_policycap
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19162,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19165
      start: 19146
    functionDepth: 2
    functionLinenumber: 19146
    functionLinenumberEnd: 19165
    functionName: test_cil_gen_policycap_nameinparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_policycap
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_policycap_nameinparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19172,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19175,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19178,1
    - Dst: cil_gen_policycap
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19183,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19186
      start: 19167
    functionDepth: 2
    functionLinenumber: 19167
    functionLinenumberEnd: 19186
    functionName: test_cil_gen_policycap_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_policycap
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_policycap_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19193,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19196,1
    - Dst: cil_gen_policycap
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19200,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19203
      start: 19188
    functionDepth: 2
    functionLinenumber: 19188
    functionLinenumberEnd: 19203
    functionName: test_cil_gen_policycap_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_policycap
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_policycap_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19210,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19213,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19216,1
    - Dst: cil_gen_policycap
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19221,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19224
      start: 19205
    functionDepth: 2
    functionLinenumber: 19205
    functionLinenumberEnd: 19224
    functionName: test_cil_gen_policycap_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_policycap
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_policycap_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19231,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19236,1
    - Dst: cil_gen_policycap
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19238,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19241
      start: 19226
    functionDepth: 2
    functionLinenumber: 19226
    functionLinenumberEnd: 19241
    functionName: test_cil_gen_policycap_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_policycap
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_policycap_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19248,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19251,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19254,1
    - Dst: cil_gen_policycap
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19259,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19262
      start: 19243
    functionDepth: 2
    functionLinenumber: 19243
    functionLinenumberEnd: 19262
    functionName: test_cil_gen_policycap_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_gen_policycap
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_policycap_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19269,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19272,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19275,1
    - Dst: cil_gen_ipaddr
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19280,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19283
      start: 19264
    functionDepth: 2
    functionLinenumber: 19264
    functionLinenumberEnd: 19283
    functionName: test_cil_gen_ipaddr_ipv4
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_ipaddr
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ipaddr_ipv4(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19290,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19293,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19296,1
    - Dst: cil_gen_ipaddr
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19301,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19304
      start: 19285
    functionDepth: 2
    functionLinenumber: 19285
    functionLinenumberEnd: 19304
    functionName: test_cil_gen_ipaddr_ipv4_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_ipaddr
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ipaddr_ipv4_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19313,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19316,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19319,1
    - Dst: cil_gen_ipaddr
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19324,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19327
      start: 19306
    functionDepth: 2
    functionLinenumber: 19306
    functionLinenumberEnd: 19327
    functionName: test_cil_gen_ipaddr_ipv6
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_ipaddr
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ipaddr_ipv6(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19336,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19339,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19342,1
    - Dst: cil_gen_ipaddr
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19347,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19350
      start: 19329
    functionDepth: 2
    functionLinenumber: 19329
    functionLinenumberEnd: 19350
    functionName: test_cil_gen_ipaddr_ipv6_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_ipaddr
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ipaddr_ipv6_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19357,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19360,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19363,1
    - Dst: cil_gen_ipaddr
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19368,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19371
      start: 19352
    functionDepth: 2
    functionLinenumber: 19352
    functionLinenumberEnd: 19371
    functionName: test_cil_gen_ipaddr_noname_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_ipaddr
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ipaddr_noname_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19380,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19383,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19386,1
    - Dst: cil_gen_ipaddr
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19391,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19394
      start: 19373
    functionDepth: 2
    functionLinenumber: 19373
    functionLinenumberEnd: 19394
    functionName: test_cil_gen_ipaddr_nameinparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_ipaddr
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ipaddr_nameinparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19401,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19404,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19407,1
    - Dst: cil_gen_ipaddr
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19412,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19415
      start: 19396
    functionDepth: 2
    functionLinenumber: 19396
    functionLinenumberEnd: 19415
    functionName: test_cil_gen_ipaddr_noip_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_ipaddr
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ipaddr_noip_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19424,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19427,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19430,1
    - Dst: cil_gen_ipaddr
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19435,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19438
      start: 19417
    functionDepth: 2
    functionLinenumber: 19417
    functionLinenumberEnd: 19438
    functionName: test_cil_gen_ipaddr_ipinparens_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_ipaddr
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ipaddr_ipinparens_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19447,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19450,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19453,1
    - Dst: cil_gen_ipaddr
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19458,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19461
      start: 19440
    functionDepth: 2
    functionLinenumber: 19440
    functionLinenumberEnd: 19461
    functionName: test_cil_gen_ipaddr_extra_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_ipaddr
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ipaddr_extra_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19468,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19471,1
    - Dst: cil_gen_ipaddr
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19475,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19478
      start: 19463
    functionDepth: 2
    functionLinenumber: 19463
    functionLinenumberEnd: 19478
    functionName: test_cil_gen_ipaddr_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_ipaddr
    - cil_tree_node_init
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ipaddr_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19485,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19488,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19491,1
    - Dst: cil_gen_ipaddr
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19496,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19499
      start: 19480
    functionDepth: 2
    functionLinenumber: 19480
    functionLinenumberEnd: 19499
    functionName: test_cil_gen_ipaddr_currnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - CuAssertIntEquals
    - cil_gen_ipaddr
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ipaddr_currnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19506,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19511,1
    - Dst: cil_gen_ipaddr
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19513,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19516
      start: 19501
    functionDepth: 2
    functionLinenumber: 19501
    functionLinenumberEnd: 19516
    functionName: test_cil_gen_ipaddr_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_gen_ipaddr
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_gen_ipaddr_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19527,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19530,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19532,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19534
      start: 19522
    functionDepth: 2
    functionLinenumber: 19522
    functionLinenumberEnd: 19534
    functionName: test_cil_build_ast
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_build_ast
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19541,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19546,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19548,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19550
      start: 19536
    functionDepth: 2
    functionLinenumber: 19536
    functionLinenumberEnd: 19550
    functionName: test_cil_build_ast_dbnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_build_ast
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_dbnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19557,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19560,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19564,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19566
      start: 19552
    functionDepth: 2
    functionLinenumber: 19552
    functionLinenumberEnd: 19566
    functionName: test_cil_build_ast_astnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_build_ast
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_astnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19574,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19577,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19579,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19581
      start: 19568
    functionDepth: 2
    functionLinenumber: 19568
    functionLinenumberEnd: 19581
    functionName: test_cil_build_ast_suberr_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_build_ast
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_suberr_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19589,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19594,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19598,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19600
      start: 19583
    functionDepth: 2
    functionLinenumber: 19583
    functionLinenumberEnd: 19600
    functionName: test_cil_build_ast_treenull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - cil_build_ast
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_treenull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19608,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19611,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19616,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19618,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19620,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19622
      start: 19602
    functionDepth: 2
    functionLinenumber: 19602
    functionLinenumberEnd: 19622
    functionName: test_cil_build_ast_node_helper_block
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_block(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19629,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19632,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19637,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19639,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19641,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19643
      start: 19624
    functionDepth: 2
    functionLinenumber: 19624
    functionLinenumberEnd: 19643
    functionName: test_cil_build_ast_node_helper_block_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_block_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19650,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19653,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19658,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19660,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19662,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19664
      start: 19645
    functionDepth: 2
    functionLinenumber: 19645
    functionLinenumberEnd: 19664
    functionName: test_cil_build_ast_node_helper_blockinherit
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_blockinherit(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19671,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19674,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19679,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19681,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19683,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19685
      start: 19666
    functionDepth: 2
    functionLinenumber: 19666
    functionLinenumberEnd: 19685
    functionName: test_cil_build_ast_node_helper_blockinherit_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_blockinherit_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19694,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19697,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19702,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19704,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19706,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19708
      start: 19687
    functionDepth: 2
    functionLinenumber: 19687
    functionLinenumberEnd: 19708
    functionName: test_cil_build_ast_node_helper_permset
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_permset(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19715,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19718,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19723,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19725,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19727,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19729
      start: 19710
    functionDepth: 2
    functionLinenumber: 19710
    functionLinenumberEnd: 19729
    functionName: test_cil_build_ast_node_helper_permset_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_permset_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19739,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19742,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19747,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19749,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19751,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19753
      start: 19731
    functionDepth: 2
    functionLinenumber: 19731
    functionLinenumberEnd: 19753
    functionName: test_cil_build_ast_node_helper_in
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_in(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19760,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19763,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19768,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19770,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19772,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19774
      start: 19755
    functionDepth: 2
    functionLinenumber: 19755
    functionLinenumberEnd: 19774
    functionName: test_cil_build_ast_node_helper_in_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_in_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19782,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19785,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19790,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19792,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19794,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19796
      start: 19776
    functionDepth: 2
    functionLinenumber: 19776
    functionLinenumberEnd: 19796
    functionName: test_cil_build_ast_node_helper_class
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_class(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19804,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19807,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19812,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19814,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19816,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19818
      start: 19798
    functionDepth: 2
    functionLinenumber: 19798
    functionLinenumberEnd: 19818
    functionName: test_cil_build_ast_node_helper_class_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_class_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19830,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19833,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19838,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19840,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19842,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19844
      start: 19820
    functionDepth: 2
    functionLinenumber: 19820
    functionLinenumberEnd: 19844
    functionName: test_cil_build_ast_node_helper_classpermset
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_classpermset(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19851,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19854,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19859,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19861,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19863,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19865
      start: 19846
    functionDepth: 2
    functionLinenumber: 19846
    functionLinenumberEnd: 19865
    functionName: test_cil_build_ast_node_helper_classpermset_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_classpermset_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19873,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19876,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19881,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19883,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19885,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19887
      start: 19867
    functionDepth: 2
    functionLinenumber: 19867
    functionLinenumberEnd: 19887
    functionName: test_cil_build_ast_node_helper_classmap
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_classmap(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19894,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19897,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19902,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19904,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19906,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19908
      start: 19889
    functionDepth: 2
    functionLinenumber: 19889
    functionLinenumberEnd: 19908
    functionName: test_cil_build_ast_node_helper_classmap_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_classmap_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19916,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19919,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19924,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19926,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19928,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19930
      start: 19910
    functionDepth: 2
    functionLinenumber: 19910
    functionLinenumberEnd: 19930
    functionName: test_cil_build_ast_node_helper_classmapping
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_classmapping(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19937,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19940,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19945,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19947,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19949,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19951
      start: 19932
    functionDepth: 2
    functionLinenumber: 19932
    functionLinenumberEnd: 19951
    functionName: test_cil_build_ast_node_helper_classmapping_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_classmapping_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19959,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19962,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19967,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19969,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19971,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19973
      start: 19953
    functionDepth: 2
    functionLinenumber: 19953
    functionLinenumberEnd: 19973
    functionName: test_cil_build_ast_node_helper_common
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_common(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19980,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19983,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19988,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19990,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19992,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:19993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19994
      start: 19975
    functionDepth: 2
    functionLinenumber: 19975
    functionLinenumberEnd: 19994
    functionName: test_cil_build_ast_node_helper_common_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_common_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20001,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20004,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20009,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20011,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20013,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20015
      start: 19996
    functionDepth: 2
    functionLinenumber: 19996
    functionLinenumberEnd: 20015
    functionName: test_cil_build_ast_node_helper_sid
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_sid(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20022,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20025,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20030,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20032,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20034,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20036
      start: 20017
    functionDepth: 2
    functionLinenumber: 20017
    functionLinenumberEnd: 20036
    functionName: test_cil_build_ast_node_helper_sid_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_sid_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20046,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20049,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20054,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20056,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20058,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20060
      start: 20038
    functionDepth: 2
    functionLinenumber: 20038
    functionLinenumberEnd: 20060
    functionName: test_cil_build_ast_node_helper_sidcontext
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_sidcontext(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20069,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20072,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20077,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20079,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20081,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20083
      start: 20062
    functionDepth: 2
    functionLinenumber: 20062
    functionLinenumberEnd: 20083
    functionName: test_cil_build_ast_node_helper_sidcontext_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_sidcontext_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20090,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20093,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20098,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20100,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20102,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20104
      start: 20085
    functionDepth: 2
    functionLinenumber: 20085
    functionLinenumberEnd: 20104
    functionName: test_cil_build_ast_node_helper_user
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_user(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20111,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20114,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20119,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20121,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20123,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20125
      start: 20106
    functionDepth: 2
    functionLinenumber: 20106
    functionLinenumberEnd: 20125
    functionName: test_cil_build_ast_node_helper_user_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_user_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20132,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20135,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20140,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20142,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20144,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20146
      start: 20127
    functionDepth: 2
    functionLinenumber: 20127
    functionLinenumberEnd: 20146
    functionName: test_cil_build_ast_node_helper_userlevel
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_userlevel(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20153,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20156,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20161,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20163,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20165,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20167
      start: 20148
    functionDepth: 2
    functionLinenumber: 20148
    functionLinenumberEnd: 20167
    functionName: test_cil_build_ast_node_helper_userlevel_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_userlevel_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20174,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20177,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20182,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20184,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20186,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20188
      start: 20169
    functionDepth: 2
    functionLinenumber: 20169
    functionLinenumberEnd: 20188
    functionName: test_cil_build_ast_node_helper_userrange
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_userrange(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20195,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20198,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20203,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20205,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20207,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20209
      start: 20190
    functionDepth: 2
    functionLinenumber: 20190
    functionLinenumberEnd: 20209
    functionName: test_cil_build_ast_node_helper_userrange_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_userrange_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20216,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20219,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20224,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20226,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20228,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20230
      start: 20211
    functionDepth: 2
    functionLinenumber: 20211
    functionLinenumberEnd: 20230
    functionName: test_cil_build_ast_node_helper_type
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_type(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20237,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20240,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20245,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20247,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20249,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20251
      start: 20232
    functionDepth: 2
    functionLinenumber: 20232
    functionLinenumberEnd: 20251
    functionName: test_cil_build_ast_node_helper_type_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_type_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20258,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20261,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20266,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20268,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20270,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20272
      start: 20253
    functionDepth: 2
    functionLinenumber: 20253
    functionLinenumberEnd: 20272
    functionName: test_cil_build_ast_node_helper_attribute
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_attribute(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20279,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20282,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20287,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20289,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20291,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20293
      start: 20274
    functionDepth: 2
    functionLinenumber: 20274
    functionLinenumberEnd: 20293
    functionName: test_cil_build_ast_node_helper_attribute_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_attribute_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20299,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20302,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20307,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20309,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20311,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20313
      start: 20295
    functionDepth: 2
    functionLinenumber: 20295
    functionLinenumberEnd: 20313
    functionName: test_cil_build_ast_node_helper_typebounds
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_typebounds(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20320,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20323,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20328,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20330,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20332,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20334
      start: 20315
    functionDepth: 2
    functionLinenumber: 20315
    functionLinenumberEnd: 20334
    functionName: test_cil_build_ast_node_helper_typebounds_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_typebounds_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20340,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20343,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20348,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20350,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20352,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20354
      start: 20336
    functionDepth: 2
    functionLinenumber: 20336
    functionLinenumberEnd: 20354
    functionName: test_cil_build_ast_node_helper_typepermissive
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_typepermissive(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20361,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20364,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20369,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20371,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20373,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20375
      start: 20356
    functionDepth: 2
    functionLinenumber: 20356
    functionLinenumberEnd: 20375
    functionName: test_cil_build_ast_node_helper_typepermissive_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_typepermissive_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20386,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20389,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20394,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20396,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20398,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20400
      start: 20377
    functionDepth: 2
    functionLinenumber: 20377
    functionLinenumberEnd: 20400
    functionName: test_cil_build_ast_node_helper_nametypetransition
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_nametypetransition(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20410,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20413,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20418,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20420,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20422,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20424
      start: 20402
    functionDepth: 2
    functionLinenumber: 20402
    functionLinenumberEnd: 20424
    functionName: test_cil_build_ast_node_helper_nametypetransition_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_nametypetransition_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20433,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20436,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20441,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20443,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20445,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20447
      start: 20426
    functionDepth: 2
    functionLinenumber: 20426
    functionLinenumberEnd: 20447
    functionName: test_cil_build_ast_node_helper_rangetransition
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_rangetransition(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20454,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20457,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20462,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20464,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20466,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20468
      start: 20449
    functionDepth: 2
    functionLinenumber: 20449
    functionLinenumberEnd: 20468
    functionName: test_cil_build_ast_node_helper_rangetransition_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_rangetransition_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20477,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20480,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20485,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20487,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20489,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20491
      start: 20470
    functionDepth: 2
    functionLinenumber: 20470
    functionLinenumberEnd: 20491
    functionName: test_cil_build_ast_node_helper_boolif
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_boolif(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20500,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20503,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20508,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20510,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20512,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20514
      start: 20493
    functionDepth: 2
    functionLinenumber: 20493
    functionLinenumberEnd: 20514
    functionName: test_cil_build_ast_node_helper_boolif_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_boolif_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20522,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20525,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20530,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20532,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20534,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20536
      start: 20516
    functionDepth: 2
    functionLinenumber: 20516
    functionLinenumberEnd: 20536
    functionName: test_cil_build_ast_node_helper_condblock_true
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_condblock_true(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20543,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20546,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20551,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20553,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20555,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20557
      start: 20538
    functionDepth: 2
    functionLinenumber: 20538
    functionLinenumberEnd: 20557
    functionName: test_cil_build_ast_node_helper_condblock_true_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_condblock_true_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20565,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20568,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20573,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20575,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20577,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20579
      start: 20559
    functionDepth: 2
    functionLinenumber: 20559
    functionLinenumberEnd: 20579
    functionName: test_cil_build_ast_node_helper_condblock_false
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_condblock_false(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20586,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20589,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20594,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20596,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20598,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20600
      start: 20581
    functionDepth: 2
    functionLinenumber: 20581
    functionLinenumberEnd: 20600
    functionName: test_cil_build_ast_node_helper_condblock_false_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_condblock_false_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20609,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20612,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20617,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20619,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20621,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20623
      start: 20602
    functionDepth: 2
    functionLinenumber: 20602
    functionLinenumberEnd: 20623
    functionName: test_cil_build_ast_node_helper_tunif
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_tunif(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20632,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20635,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20640,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20642,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20644,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20646
      start: 20625
    functionDepth: 2
    functionLinenumber: 20625
    functionLinenumberEnd: 20646
    functionName: test_cil_build_ast_node_helper_tunif_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_tunif_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20654,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20657,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20662,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20664,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20666,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20668
      start: 20648
    functionDepth: 2
    functionLinenumber: 20648
    functionLinenumberEnd: 20668
    functionName: test_cil_build_ast_node_helper_typealias
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_typealias(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20675,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20678,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20683,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20685,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20687,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20689
      start: 20670
    functionDepth: 2
    functionLinenumber: 20670
    functionLinenumberEnd: 20689
    functionName: test_cil_build_ast_node_helper_typealias_notype_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_typealias_notype_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20696,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20699,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20704,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20706,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20708,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20710
      start: 20691
    functionDepth: 2
    functionLinenumber: 20691
    functionLinenumberEnd: 20710
    functionName: test_cil_build_ast_node_helper_typeattribute
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_typeattribute(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20717,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20720,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20725,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20727,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20729,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20731
      start: 20712
    functionDepth: 2
    functionLinenumber: 20712
    functionLinenumberEnd: 20731
    functionName: test_cil_build_ast_node_helper_typeattribute_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_typeattribute_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20739,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20742,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20747,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20749,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20751,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20753
      start: 20733
    functionDepth: 2
    functionLinenumber: 20733
    functionLinenumberEnd: 20753
    functionName: test_cil_build_ast_node_helper_typeattributeset
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_typeattributeset(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20760,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20763,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20768,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20770,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20772,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20774
      start: 20755
    functionDepth: 2
    functionLinenumber: 20755
    functionLinenumberEnd: 20774
    functionName: test_cil_build_ast_node_helper_typeattributeset_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_typeattributeset_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20781,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20784,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20789,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20791,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20793,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20795
      start: 20776
    functionDepth: 2
    functionLinenumber: 20776
    functionLinenumberEnd: 20795
    functionName: test_cil_build_ast_node_helper_userbounds
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_userbounds(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20802,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20805,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20810,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20812,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20814,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20816
      start: 20797
    functionDepth: 2
    functionLinenumber: 20797
    functionLinenumberEnd: 20816
    functionName: test_cil_build_ast_node_helper_userbounds_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_userbounds_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20823,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20826,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20831,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20833,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20835,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20837
      start: 20818
    functionDepth: 2
    functionLinenumber: 20818
    functionLinenumberEnd: 20837
    functionName: test_cil_build_ast_node_helper_role
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_role(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20844,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20847,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20852,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20854,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20856,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20858
      start: 20839
    functionDepth: 2
    functionLinenumber: 20839
    functionLinenumberEnd: 20858
    functionName: test_cil_build_ast_node_helper_role_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_role_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20866,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20869,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20874,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20876,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20878,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20880
      start: 20860
    functionDepth: 2
    functionLinenumber: 20860
    functionLinenumberEnd: 20880
    functionName: test_cil_build_ast_node_helper_roletransition
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_roletransition(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20887,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20890,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20895,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20897,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20899,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20901
      start: 20882
    functionDepth: 2
    functionLinenumber: 20882
    functionLinenumberEnd: 20901
    functionName: test_cil_build_ast_node_helper_roletransition_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_roletransition_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20908,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20911,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20916,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20918,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20920,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20922
      start: 20903
    functionDepth: 2
    functionLinenumber: 20903
    functionLinenumberEnd: 20922
    functionName: test_cil_build_ast_node_helper_roleallow
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_roleallow(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20929,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20932,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20937,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20939,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20941,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20943
      start: 20924
    functionDepth: 2
    functionLinenumber: 20924
    functionLinenumberEnd: 20943
    functionName: test_cil_build_ast_node_helper_roleallow_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_roleallow_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20950,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20953,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20958,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20960,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20962,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20964
      start: 20945
    functionDepth: 2
    functionLinenumber: 20945
    functionLinenumberEnd: 20964
    functionName: test_cil_build_ast_node_helper_rolebounds
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_rolebounds(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20971,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20974,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20979,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20981,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20983,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20985
      start: 20966
    functionDepth: 2
    functionLinenumber: 20966
    functionLinenumberEnd: 20985
    functionName: test_cil_build_ast_node_helper_rolebounds_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_rolebounds_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20993,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:20996,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21001,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21003,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21005,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21006,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21007
      start: 20987
    functionDepth: 2
    functionLinenumber: 20987
    functionLinenumberEnd: 21007
    functionName: test_cil_build_ast_node_helper_avrule_allow
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_avrule_allow(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21015,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21018,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21023,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21025,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21027,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21029
      start: 21009
    functionDepth: 2
    functionLinenumber: 21009
    functionLinenumberEnd: 21029
    functionName: test_cil_build_ast_node_helper_avrule_allow_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_avrule_allow_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21037,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21040,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21045,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21047,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21049,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21051
      start: 21031
    functionDepth: 2
    functionLinenumber: 21031
    functionLinenumberEnd: 21051
    functionName: test_cil_build_ast_node_helper_avrule_auditallow
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_avrule_auditallow(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21059,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21062,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21067,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21069,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21071,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21073
      start: 21053
    functionDepth: 2
    functionLinenumber: 21053
    functionLinenumberEnd: 21073
    functionName: test_cil_build_ast_node_helper_avrule_auditallow_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_avrule_auditallow_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21081,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21084,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21089,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21091,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21093,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21095
      start: 21075
    functionDepth: 2
    functionLinenumber: 21075
    functionLinenumberEnd: 21095
    functionName: test_cil_build_ast_node_helper_avrule_dontaudit
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_avrule_dontaudit(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21103,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21106,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21111,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21113,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21115,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21117
      start: 21097
    functionDepth: 2
    functionLinenumber: 21097
    functionLinenumberEnd: 21117
    functionName: test_cil_build_ast_node_helper_avrule_dontaudit_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_avrule_dontaudit_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21125,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21128,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21133,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21135,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21137,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21139
      start: 21119
    functionDepth: 2
    functionLinenumber: 21119
    functionLinenumberEnd: 21139
    functionName: test_cil_build_ast_node_helper_avrule_neverallow
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_avrule_neverallow(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21147,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21150,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21155,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21157,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21159,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21161
      start: 21141
    functionDepth: 2
    functionLinenumber: 21141
    functionLinenumberEnd: 21161
    functionName: test_cil_build_ast_node_helper_avrule_neverallow_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_avrule_neverallow_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21169,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21172,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21177,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21179,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21181,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21183
      start: 21163
    functionDepth: 2
    functionLinenumber: 21163
    functionLinenumberEnd: 21183
    functionName: test_cil_build_ast_node_helper_type_rule_transition
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_type_rule_transition(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21191,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21194,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21199,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21201,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21203,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21205
      start: 21185
    functionDepth: 2
    functionLinenumber: 21185
    functionLinenumberEnd: 21205
    functionName: test_cil_build_ast_node_helper_type_rule_transition_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_type_rule_transition_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21213,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21216,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21221,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21223,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21225,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21227
      start: 21207
    functionDepth: 2
    functionLinenumber: 21207
    functionLinenumberEnd: 21227
    functionName: test_cil_build_ast_node_helper_type_rule_change
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_type_rule_change(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21235,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21238,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21243,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21245,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21247,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21249
      start: 21229
    functionDepth: 2
    functionLinenumber: 21229
    functionLinenumberEnd: 21249
    functionName: test_cil_build_ast_node_helper_type_rule_change_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_type_rule_change_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21257,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21260,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21265,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21267,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21269,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21271
      start: 21251
    functionDepth: 2
    functionLinenumber: 21251
    functionLinenumberEnd: 21271
    functionName: test_cil_build_ast_node_helper_type_rule_member
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_type_rule_member(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21279,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21282,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21287,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21289,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21291,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21293
      start: 21273
    functionDepth: 2
    functionLinenumber: 21273
    functionLinenumberEnd: 21293
    functionName: test_cil_build_ast_node_helper_type_rule_member_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_type_rule_member_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21300,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21303,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21308,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21310,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21312,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21314
      start: 21295
    functionDepth: 2
    functionLinenumber: 21295
    functionLinenumberEnd: 21314
    functionName: test_cil_build_ast_node_helper_bool
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_bool(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21321,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21324,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21329,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21331,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21333,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21335
      start: 21316
    functionDepth: 2
    functionLinenumber: 21316
    functionLinenumberEnd: 21335
    functionName: test_cil_build_ast_node_helper_bool_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_bool_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21342,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21345,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21350,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21352,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21354,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21356
      start: 21337
    functionDepth: 2
    functionLinenumber: 21337
    functionLinenumberEnd: 21356
    functionName: test_cil_build_ast_node_helper_bool_tunable
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_bool_tunable(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21363,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21366,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21371,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21373,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21375,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21377
      start: 21358
    functionDepth: 2
    functionLinenumber: 21358
    functionLinenumberEnd: 21377
    functionName: test_cil_build_ast_node_helper_bool_tunable_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_bool_tunable_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21384,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21387,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21392,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21394,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21396,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21398
      start: 21379
    functionDepth: 2
    functionLinenumber: 21379
    functionLinenumberEnd: 21398
    functionName: test_cil_build_ast_node_helper_sensitivity
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_sensitivity(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21405,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21408,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21413,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21415,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21417,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21419
      start: 21400
    functionDepth: 2
    functionLinenumber: 21400
    functionLinenumberEnd: 21419
    functionName: test_cil_build_ast_node_helper_sensitivity_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_sensitivity_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21426,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21429,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21434,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21436,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21438,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21440
      start: 21421
    functionDepth: 2
    functionLinenumber: 21421
    functionLinenumberEnd: 21440
    functionName: test_cil_build_ast_node_helper_sensalias
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_sensalias(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21448,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21451,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21456,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21458,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21460,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21462
      start: 21442
    functionDepth: 2
    functionLinenumber: 21442
    functionLinenumberEnd: 21462
    functionName: test_cil_build_ast_node_helper_sensalias_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_sensalias_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21469,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21472,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21477,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21479,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21481,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21483
      start: 21464
    functionDepth: 2
    functionLinenumber: 21464
    functionLinenumberEnd: 21483
    functionName: test_cil_build_ast_node_helper_category
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_category(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21490,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21493,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21498,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21500,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21502,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21504
      start: 21485
    functionDepth: 2
    functionLinenumber: 21485
    functionLinenumberEnd: 21504
    functionName: test_cil_build_ast_node_helper_category_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_category_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21512,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21515,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21520,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21522,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21524,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21526
      start: 21506
    functionDepth: 2
    functionLinenumber: 21506
    functionLinenumberEnd: 21526
    functionName: test_cil_build_ast_node_helper_catset
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_catset(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21534,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21537,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21542,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21544,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21546,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21548
      start: 21528
    functionDepth: 2
    functionLinenumber: 21528
    functionLinenumberEnd: 21548
    functionName: test_cil_build_ast_node_helper_catset_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_catset_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21556,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21559,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21564,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21566,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21568,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21570
      start: 21550
    functionDepth: 2
    functionLinenumber: 21550
    functionLinenumberEnd: 21570
    functionName: test_cil_build_ast_node_helper_catorder
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_catorder(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21578,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21581,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21586,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21588,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21590,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21592
      start: 21572
    functionDepth: 2
    functionLinenumber: 21572
    functionLinenumberEnd: 21592
    functionName: test_cil_build_ast_node_helper_catorder_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_catorder_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21599,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21602,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21607,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21609,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21611,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21613
      start: 21594
    functionDepth: 2
    functionLinenumber: 21594
    functionLinenumberEnd: 21613
    functionName: test_cil_build_ast_node_helper_catalias
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_catalias(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21622,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21625,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21630,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21632,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21634,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21636
      start: 21615
    functionDepth: 2
    functionLinenumber: 21615
    functionLinenumberEnd: 21636
    functionName: test_cil_build_ast_node_helper_catalias_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_catalias_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21645,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21648,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21653,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21655,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21657,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21659
      start: 21638
    functionDepth: 2
    functionLinenumber: 21638
    functionLinenumberEnd: 21659
    functionName: test_cil_build_ast_node_helper_catrange
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_catrange(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21666,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21669,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21674,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21676,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21678,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21680
      start: 21661
    functionDepth: 2
    functionLinenumber: 21661
    functionLinenumberEnd: 21680
    functionName: test_cil_build_ast_node_helper_catrange_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_catrange_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21687,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21690,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21695,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21697,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21699,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21701
      start: 21682
    functionDepth: 2
    functionLinenumber: 21682
    functionLinenumberEnd: 21701
    functionName: test_cil_build_ast_node_helper_roletype
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_roletype(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21709,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21712,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21717,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21719,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21721,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21723
      start: 21703
    functionDepth: 2
    functionLinenumber: 21703
    functionLinenumberEnd: 21723
    functionName: test_cil_build_ast_node_helper_roletype_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_roletype_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21730,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21733,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21738,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21740,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21742,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21744
      start: 21725
    functionDepth: 2
    functionLinenumber: 21725
    functionLinenumberEnd: 21744
    functionName: test_cil_build_ast_node_helper_userrole
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_userrole(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21752,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21755,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21760,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21762,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21764,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21766
      start: 21746
    functionDepth: 2
    functionLinenumber: 21746
    functionLinenumberEnd: 21766
    functionName: test_cil_build_ast_node_helper_userrole_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_userrole_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21773,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21776,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21781,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21783,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21785,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21787
      start: 21768
    functionDepth: 2
    functionLinenumber: 21768
    functionLinenumberEnd: 21787
    functionName: test_cil_build_ast_node_helper_gen_classcommon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_classcommon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21794,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21797,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21802,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21804,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21806,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21808
      start: 21789
    functionDepth: 2
    functionLinenumber: 21789
    functionLinenumberEnd: 21808
    functionName: test_cil_build_ast_node_helper_gen_classcommon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_classcommon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21819,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21822,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21827,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21829,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21832,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21834
      start: 21810
    functionDepth: 2
    functionLinenumber: 21810
    functionLinenumberEnd: 21834
    functionName: test_cil_build_ast_node_helper_gen_dominance
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_dominance(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21845,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21848,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21853,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21855,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21858,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21860
      start: 21836
    functionDepth: 2
    functionLinenumber: 21836
    functionLinenumberEnd: 21860
    functionName: test_cil_build_ast_node_helper_gen_dominance_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_dominance_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21905,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21908,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21913,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21915,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21919,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21921
      start: 21862
    functionDepth: 2
    functionLinenumber: 21862
    functionLinenumberEnd: 21921
    functionName: test_cil_build_ast_node_helper_gen_senscat
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_senscat(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21962,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21965,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21970,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21972,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21976,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21978
      start: 21923
    functionDepth: 2
    functionLinenumber: 21923
    functionLinenumberEnd: 21978
    functionName: test_cil_build_ast_node_helper_gen_senscat_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_senscat_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21988,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21991,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21996,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:21998,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22001,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22003
      start: 21980
    functionDepth: 2
    functionLinenumber: 21980
    functionLinenumberEnd: 22003
    functionName: test_cil_build_ast_node_helper_gen_level
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_level(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22012,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22015,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22020,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22022,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22025,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22027
      start: 22005
    functionDepth: 2
    functionLinenumber: 22005
    functionLinenumberEnd: 22027
    functionName: test_cil_build_ast_node_helper_gen_level_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_level_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22035,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22038,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22043,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22045,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22047,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22049
      start: 22029
    functionDepth: 2
    functionLinenumber: 22029
    functionLinenumberEnd: 22049
    functionName: test_cil_build_ast_node_helper_gen_levelrange
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_levelrange(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22056,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22059,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22064,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22066,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22068,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22070
      start: 22051
    functionDepth: 2
    functionLinenumber: 22051
    functionLinenumberEnd: 22070
    functionName: test_cil_build_ast_node_helper_gen_levelrange_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_levelrange_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22079,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22082,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22087,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22089,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22091,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22093
      start: 22072
    functionDepth: 2
    functionLinenumber: 22072
    functionLinenumberEnd: 22093
    functionName: test_cil_build_ast_node_helper_gen_constrain
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_constrain(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22100,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22103,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22108,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22110,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22112,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22114
      start: 22095
    functionDepth: 2
    functionLinenumber: 22095
    functionLinenumberEnd: 22114
    functionName: test_cil_build_ast_node_helper_gen_constrain_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_constrain_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22124,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22127,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22132,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22134,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22136,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22138
      start: 22116
    functionDepth: 2
    functionLinenumber: 22116
    functionLinenumberEnd: 22138
    functionName: test_cil_build_ast_node_helper_gen_mlsconstrain
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_mlsconstrain(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22145,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22148,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22153,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22155,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22157,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22159
      start: 22140
    functionDepth: 2
    functionLinenumber: 22140
    functionLinenumberEnd: 22159
    functionName: test_cil_build_ast_node_helper_gen_mlsconstrain_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_mlsconstrain_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22170,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22173,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22178,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22180,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22182,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22184
      start: 22161
    functionDepth: 2
    functionLinenumber: 22161
    functionLinenumberEnd: 22184
    functionName: test_cil_build_ast_node_helper_gen_context
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_context(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22193,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22196,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22201,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22203,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22205,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22207
      start: 22186
    functionDepth: 2
    functionLinenumber: 22186
    functionLinenumberEnd: 22207
    functionName: test_cil_build_ast_node_helper_gen_context_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_context_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22216,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22219,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22224,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22226,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22228,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22230
      start: 22209
    functionDepth: 2
    functionLinenumber: 22209
    functionLinenumberEnd: 22230
    functionName: test_cil_build_ast_node_helper_gen_filecon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_filecon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22237,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22240,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22245,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22247,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22249,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22251
      start: 22232
    functionDepth: 2
    functionLinenumber: 22232
    functionLinenumberEnd: 22251
    functionName: test_cil_build_ast_node_helper_gen_filecon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_filecon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22258,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22261,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22266,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22268,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22270,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22272
      start: 22253
    functionDepth: 2
    functionLinenumber: 22253
    functionLinenumberEnd: 22272
    functionName: test_cil_build_ast_node_helper_gen_portcon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_portcon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22279,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22282,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22287,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22289,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22291,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22293
      start: 22274
    functionDepth: 2
    functionLinenumber: 22274
    functionLinenumberEnd: 22293
    functionName: test_cil_build_ast_node_helper_gen_portcon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_portcon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22300,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22303,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22308,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22310,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22312,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22314
      start: 22295
    functionDepth: 2
    functionLinenumber: 22295
    functionLinenumberEnd: 22314
    functionName: test_cil_build_ast_node_helper_gen_nodecon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_nodecon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22321,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22324,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22329,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22331,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22333,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22335
      start: 22316
    functionDepth: 2
    functionLinenumber: 22316
    functionLinenumberEnd: 22335
    functionName: test_cil_build_ast_node_helper_gen_nodecon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_nodecon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22342,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22345,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22350,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22352,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22354,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22356
      start: 22337
    functionDepth: 2
    functionLinenumber: 22337
    functionLinenumberEnd: 22356
    functionName: test_cil_build_ast_node_helper_gen_genfscon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_genfscon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22363,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22366,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22371,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22373,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22375,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22377
      start: 22358
    functionDepth: 2
    functionLinenumber: 22358
    functionLinenumberEnd: 22377
    functionName: test_cil_build_ast_node_helper_gen_genfscon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_genfscon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22388,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22391,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22396,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22398,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22400,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22402
      start: 22379
    functionDepth: 2
    functionLinenumber: 22379
    functionLinenumberEnd: 22402
    functionName: test_cil_build_ast_node_helper_gen_netifcon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_netifcon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22409,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22412,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22417,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22419,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22421,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22423
      start: 22404
    functionDepth: 2
    functionLinenumber: 22404
    functionLinenumberEnd: 22423
    functionName: test_cil_build_ast_node_helper_gen_netifcon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_netifcon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22430,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22433,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22438,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22440,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22442,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22444
      start: 22425
    functionDepth: 2
    functionLinenumber: 22425
    functionLinenumberEnd: 22444
    functionName: test_cil_build_ast_node_helper_gen_pirqcon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_pirqcon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22451,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22454,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22459,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22461,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22463,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22465
      start: 22446
    functionDepth: 2
    functionLinenumber: 22446
    functionLinenumberEnd: 22465
    functionName: test_cil_build_ast_node_helper_gen_pirqcon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_pirqcon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22472,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22475,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22480,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22482,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22484,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22486
      start: 22467
    functionDepth: 2
    functionLinenumber: 22467
    functionLinenumberEnd: 22486
    functionName: test_cil_build_ast_node_helper_gen_iomemcon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_iomemcon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22493,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22496,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22501,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22503,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22505,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22507
      start: 22488
    functionDepth: 2
    functionLinenumber: 22488
    functionLinenumberEnd: 22507
    functionName: test_cil_build_ast_node_helper_gen_iomemcon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_iomemcon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22514,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22517,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22522,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22524,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22526,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22528
      start: 22509
    functionDepth: 2
    functionLinenumber: 22509
    functionLinenumberEnd: 22528
    functionName: test_cil_build_ast_node_helper_gen_ioportcon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_ioportcon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22535,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22538,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22543,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22545,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22547,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22549
      start: 22530
    functionDepth: 2
    functionLinenumber: 22530
    functionLinenumberEnd: 22549
    functionName: test_cil_build_ast_node_helper_gen_ioportcon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_ioportcon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22556,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22559,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22564,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22566,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22568,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22570
      start: 22551
    functionDepth: 2
    functionLinenumber: 22551
    functionLinenumberEnd: 22570
    functionName: test_cil_build_ast_node_helper_gen_pcidevicecon
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_pcidevicecon(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22577,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22580,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22585,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22587,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22589,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22591
      start: 22572
    functionDepth: 2
    functionLinenumber: 22572
    functionLinenumberEnd: 22591
    functionName: test_cil_build_ast_node_helper_gen_pcidevicecon_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_pcidevicecon_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22598,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22601,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22606,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22608,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22610,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22612
      start: 22593
    functionDepth: 2
    functionLinenumber: 22593
    functionLinenumberEnd: 22612
    functionName: test_cil_build_ast_node_helper_gen_fsuse
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_fsuse(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22619,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22622,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22627,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22629,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22631,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22633
      start: 22614
    functionDepth: 2
    functionLinenumber: 22614
    functionLinenumberEnd: 22633
    functionName: test_cil_build_ast_node_helper_gen_fsuse_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_fsuse_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22641,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22644,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22649,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22651,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22653,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22655
      start: 22635
    functionDepth: 2
    functionLinenumber: 22635
    functionLinenumberEnd: 22655
    functionName: test_cil_build_ast_node_helper_gen_macro
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_macro(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22662,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22665,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22670,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22672,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22674,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22676
      start: 22657
    functionDepth: 2
    functionLinenumber: 22657
    functionLinenumberEnd: 22676
    functionName: test_cil_build_ast_node_helper_gen_macro_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_macro_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22684,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22687,1
    - Dst: cil_macro_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22690,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22693,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22700,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22702,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22704,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22705,1
    - Dst: cil_db_destroy
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22707,1
    - Dst: cil_destroy_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22709
      start: 22678
    functionDepth: 2
    functionLinenumber: 22678
    functionLinenumberEnd: 22709
    functionName: test_cil_build_ast_node_helper_gen_macro_nested_macro_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_macro_init
    - CuAssertIntEquals
    - cil_destroy_macro
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    - cil_db_destroy
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_macro_nested_macro_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22718,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22721,1
    - Dst: cil_macro_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22724,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22727,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22734,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22736,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22738,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22739,1
    - Dst: cil_db_destroy
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22741,1
    - Dst: cil_destroy_macro
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22743
      start: 22711
    functionDepth: 2
    functionLinenumber: 22711
    functionLinenumberEnd: 22743
    functionName: test_cil_build_ast_node_helper_gen_macro_nested_tunif_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_db_init
    - cil_macro_init
    - CuAssertIntEquals
    - cil_destroy_macro
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    - cil_db_destroy
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_macro_nested_tunif_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22750,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22753,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22758,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22760,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22762,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22763,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22764
      start: 22745
    functionDepth: 2
    functionLinenumber: 22745
    functionLinenumberEnd: 22764
    functionName: test_cil_build_ast_node_helper_gen_call
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_call(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22771,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22774,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22779,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22781,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22783,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22785
      start: 22766
    functionDepth: 2
    functionLinenumber: 22766
    functionLinenumberEnd: 22785
    functionName: test_cil_build_ast_node_helper_gen_call_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_call_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22794,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22797,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22802,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22804,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22806,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22808
      start: 22787
    functionDepth: 2
    functionLinenumber: 22787
    functionLinenumberEnd: 22808
    functionName: test_cil_build_ast_node_helper_gen_optional
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_optional(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22815,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22818,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22823,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22825,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22827,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22829
      start: 22810
    functionDepth: 2
    functionLinenumber: 22810
    functionLinenumberEnd: 22829
    functionName: test_cil_build_ast_node_helper_gen_optional_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_optional_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22836,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22839,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22844,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22846,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22848,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22850
      start: 22831
    functionDepth: 2
    functionLinenumber: 22831
    functionLinenumberEnd: 22850
    functionName: test_cil_build_ast_node_helper_gen_policycap
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_policycap(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22857,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22860,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22865,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22867,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22869,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22871
      start: 22852
    functionDepth: 2
    functionLinenumber: 22852
    functionLinenumberEnd: 22871
    functionName: test_cil_build_ast_node_helper_gen_policycap_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_policycap_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22878,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22881,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22886,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22888,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22890,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22892
      start: 22873
    functionDepth: 2
    functionLinenumber: 22873
    functionLinenumberEnd: 22892
    functionName: test_cil_build_ast_node_helper_gen_ipaddr
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_ipaddr(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22899,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22902,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22907,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22909,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22911,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22913
      start: 22894
    functionDepth: 2
    functionLinenumber: 22894
    functionLinenumberEnd: 22913
    functionName: test_cil_build_ast_node_helper_gen_ipaddr_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    - __cil_build_ast_node_helper
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_gen_ipaddr_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22920,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22923,1
    - Dst: __cil_build_ast_node_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22929,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22932
      start: 22915
    functionDepth: 2
    functionLinenumber: 22915
    functionLinenumberEnd: 22932
    functionName: test_cil_build_ast_node_helper_extraargsnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - __cil_build_ast_node_helper
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_node_helper_extraargsnull_neg(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22939,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22942,1
    - Dst: gen_build_args
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22945,1
    - Dst: __cil_build_ast_last_child_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22947,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22950
      start: 22934
    functionDepth: 2
    functionLinenumber: 22934
    functionLinenumberEnd: 22950
    functionName: test_cil_build_ast_last_child_helper
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - __cil_build_ast_last_child_helper
    - CuAssertIntEquals
    - gen_test_tree
    - gen_build_args
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_last_child_helper(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gen_test_tree
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22957,1
    - Dst: cil_db_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22960,1
    - Dst: __cil_build_ast_last_child_helper
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22962,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c:22964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22965
      start: 22952
    functionDepth: 2
    functionLinenumber: 22952
    functionLinenumberEnd: 22965
    functionName: test_cil_build_ast_last_child_helper_extraargsnull_neg
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_db_init
    - __cil_build_ast_last_child_helper
    - CuAssertIntEquals
    - gen_test_tree
    linkageType: ''
    returnType: void
    signature: void test_cil_build_ast_last_child_helper_extraargsnull_neg(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_filecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:42,1
    - Dst: cil_filecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:45,1
    - Dst: cil_post_filecon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:53,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 55
    functionName: test_cil_post_filecon_compare_meta_a_not_b
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_post_filecon_compare
    - CuAssertTrue
    - cil_filecon_init
    linkageType: ''
    returnType: void
    signature: void test_cil_post_filecon_compare_meta_a_not_b(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_filecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:60,1
    - Dst: cil_filecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:63,1
    - Dst: cil_post_filecon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:71,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 73
    functionName: test_cil_post_filecon_compare_meta_b_not_a
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_post_filecon_compare
    - CuAssertTrue
    - cil_filecon_init
    linkageType: ''
    returnType: void
    signature: void test_cil_post_filecon_compare_meta_b_not_a(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_filecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:78,1
    - Dst: cil_filecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:81,1
    - Dst: cil_post_filecon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:89,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 91
    functionName: test_cil_post_filecon_compare_meta_a_and_b_strlen_a_greater_b
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_post_filecon_compare
    - CuAssertTrue
    - cil_filecon_init
    linkageType: ''
    returnType: void
    signature: void test_cil_post_filecon_compare_meta_a_and_b_strlen_a_greater_b(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_filecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:96,1
    - Dst: cil_filecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:99,1
    - Dst: cil_post_filecon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:109,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 111
    functionName: test_cil_post_filecon_compare_type_atype_greater_btype
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_post_filecon_compare
    - CuAssertTrue
    - cil_filecon_init
    linkageType: ''
    returnType: void
    signature: void test_cil_post_filecon_compare_type_atype_greater_btype(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_filecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:116,1
    - Dst: cil_filecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:119,1
    - Dst: cil_post_filecon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:129,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 131
    functionName: test_cil_post_filecon_compare_type_btype_greater_atype
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_post_filecon_compare
    - CuAssertTrue
    - cil_filecon_init
    linkageType: ''
    returnType: void
    signature: void test_cil_post_filecon_compare_type_btype_greater_atype(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_filecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:136,1
    - Dst: cil_filecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:139,1
    - Dst: cil_post_filecon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:147,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 149
    functionName: test_cil_post_filecon_compare_meta_a_and_b_strlen_b_greater_a
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_post_filecon_compare
    - CuAssertTrue
    - cil_filecon_init
    linkageType: ''
    returnType: void
    signature: void test_cil_post_filecon_compare_meta_a_and_b_strlen_b_greater_a(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_filecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:154,1
    - Dst: cil_filecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:157,1
    - Dst: cil_post_filecon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:165,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 167
    functionName: test_cil_post_filecon_compare_stemlen_a_greater_b
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_post_filecon_compare
    - CuAssertTrue
    - cil_filecon_init
    linkageType: ''
    returnType: void
    signature: void test_cil_post_filecon_compare_stemlen_a_greater_b(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_filecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:172,1
    - Dst: cil_filecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:175,1
    - Dst: cil_post_filecon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:183,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 185
    functionName: test_cil_post_filecon_compare_stemlen_b_greater_a
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_post_filecon_compare
    - CuAssertTrue
    - cil_filecon_init
    linkageType: ''
    returnType: void
    signature: void test_cil_post_filecon_compare_stemlen_b_greater_a(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_filecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:190,1
    - Dst: cil_filecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:193,1
    - Dst: cil_post_filecon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:203,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 205
    functionName: test_cil_post_filecon_compare_equal
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_post_filecon_compare
    - cil_filecon_init
    - CuAssertIntEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_post_filecon_compare_equal(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_portcon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:210,1
    - Dst: cil_portcon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:213,1
    - Dst: cil_post_portcon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:221,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 223
    functionName: test_cil_post_portcon_compare_atotal_greater_btotal
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_post_portcon_compare
    - CuAssertTrue
    - cil_portcon_init
    linkageType: ''
    returnType: void
    signature: void test_cil_post_portcon_compare_atotal_greater_btotal(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_portcon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:228,1
    - Dst: cil_portcon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:231,1
    - Dst: cil_post_portcon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:239,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 241
    functionName: test_cil_post_portcon_compare_btotal_greater_atotal
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_post_portcon_compare
    - CuAssertTrue
    - cil_portcon_init
    linkageType: ''
    returnType: void
    signature: void test_cil_post_portcon_compare_btotal_greater_atotal(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_portcon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:246,1
    - Dst: cil_portcon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:249,1
    - Dst: cil_post_portcon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:257,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 259
    functionName: test_cil_post_portcon_compare_aportlow_greater_bportlow
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_post_portcon_compare
    - CuAssertTrue
    - cil_portcon_init
    linkageType: ''
    returnType: void
    signature: void test_cil_post_portcon_compare_aportlow_greater_bportlow(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_portcon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:264,1
    - Dst: cil_portcon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:267,1
    - Dst: cil_post_portcon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:275,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 277
    functionName: test_cil_post_portcon_compare_bportlow_greater_aportlow
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_post_portcon_compare
    - CuAssertTrue
    - cil_portcon_init
    linkageType: ''
    returnType: void
    signature: void test_cil_post_portcon_compare_bportlow_greater_aportlow(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_portcon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:282,1
    - Dst: cil_portcon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:285,1
    - Dst: cil_post_portcon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:293,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 295
    functionName: test_cil_post_portcon_compare_equal
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_post_portcon_compare
    - CuAssertTrue
    - cil_portcon_init
    linkageType: ''
    returnType: void
    signature: void test_cil_post_portcon_compare_equal(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_genfscon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:300,1
    - Dst: cil_genfscon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:304,1
    - Dst: cil_post_genfscon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:307,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 309
    functionName: test_cil_post_genfscon_compare_atypestr_greater_btypestr
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - CuAssertTrue
    - cil_genfscon_init
    - cil_post_genfscon_compare
    linkageType: ''
    returnType: void
    signature: void test_cil_post_genfscon_compare_atypestr_greater_btypestr(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_genfscon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:314,1
    - Dst: cil_genfscon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:318,1
    - Dst: cil_post_genfscon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:321,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 323
    functionName: test_cil_post_genfscon_compare_btypestr_greater_atypestr
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - CuAssertTrue
    - cil_genfscon_init
    - cil_post_genfscon_compare
    linkageType: ''
    returnType: void
    signature: void test_cil_post_genfscon_compare_btypestr_greater_atypestr(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_genfscon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:328,1
    - Dst: cil_genfscon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:333,1
    - Dst: cil_post_genfscon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:337,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 339
    functionName: test_cil_post_genfscon_compare_apathstr_greater_bpathstr
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - CuAssertTrue
    - cil_genfscon_init
    - cil_post_genfscon_compare
    linkageType: ''
    returnType: void
    signature: void test_cil_post_genfscon_compare_apathstr_greater_bpathstr(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_genfscon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:344,1
    - Dst: cil_genfscon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:349,1
    - Dst: cil_post_genfscon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:353,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 355
    functionName: test_cil_post_genfscon_compare_bpathstr_greater_apathstr
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - CuAssertTrue
    - cil_genfscon_init
    - cil_post_genfscon_compare
    linkageType: ''
    returnType: void
    signature: void test_cil_post_genfscon_compare_bpathstr_greater_apathstr(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_genfscon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:360,1
    - Dst: cil_genfscon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:365,1
    - Dst: cil_post_genfscon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:369,1
    - Dst: CuAssertIntEquals
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 371
    functionName: test_cil_post_genfscon_compare_equal
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_genfscon_init
    - cil_post_genfscon_compare
    - CuAssertIntEquals
    linkageType: ''
    returnType: void
    signature: void test_cil_post_genfscon_compare_equal(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_netifcon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:376,1
    - Dst: cil_netifcon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:380,1
    - Dst: cil_post_netifcon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:383,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 385
    functionName: test_cil_post_netifcon_compare_a_greater_b
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_post_netifcon_compare
    - cil_netifcon_init
    - CuAssertTrue
    linkageType: ''
    returnType: void
    signature: void test_cil_post_netifcon_compare_a_greater_b(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_netifcon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:390,1
    - Dst: cil_netifcon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:394,1
    - Dst: cil_post_netifcon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:397,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 399
    functionName: test_cil_post_netifcon_compare_b_greater_a
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_post_netifcon_compare
    - cil_netifcon_init
    - CuAssertTrue
    linkageType: ''
    returnType: void
    signature: void test_cil_post_netifcon_compare_b_greater_a(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_netifcon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:404,1
    - Dst: cil_netifcon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:408,1
    - Dst: cil_post_netifcon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:411,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 413
    functionName: test_cil_post_netifcon_compare_equal
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_post_netifcon_compare
    - cil_netifcon_init
    - CuAssertTrue
    linkageType: ''
    returnType: void
    signature: void test_cil_post_netifcon_compare_equal(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:418,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:419,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:420,1
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:423,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:424,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:425,1
    - Dst: cil_post_nodecon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:435,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 437
    functionName: test_cil_post_nodecon_compare_aipv4_bipv6
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_nodecon_init
    - cil_post_nodecon_compare
    - cil_ipaddr_init
    - CuAssertTrue
    linkageType: ''
    returnType: void
    signature: void test_cil_post_nodecon_compare_aipv4_bipv6(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:442,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:443,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:444,1
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:447,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:448,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:449,1
    - Dst: cil_post_nodecon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:459,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 461
    functionName: test_cil_post_nodecon_compare_aipv6_bipv4
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_nodecon_init
    - cil_post_nodecon_compare
    - cil_ipaddr_init
    - CuAssertTrue
    linkageType: ''
    returnType: void
    signature: void test_cil_post_nodecon_compare_aipv6_bipv4(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:466,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:467,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:468,1
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:471,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:472,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:473,1
    - Dst: cil_post_nodecon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:483,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 485
    functionName: test_cil_post_nodecon_compare_aipv4_greaterthan_bipv4
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_nodecon_init
    - cil_post_nodecon_compare
    - cil_ipaddr_init
    - CuAssertTrue
    linkageType: ''
    returnType: void
    signature: void test_cil_post_nodecon_compare_aipv4_greaterthan_bipv4(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:490,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:491,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:492,1
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:495,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:496,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:497,1
    - Dst: cil_post_nodecon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:507,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 509
    functionName: test_cil_post_nodecon_compare_aipv4_lessthan_bipv4
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_nodecon_init
    - cil_post_nodecon_compare
    - cil_ipaddr_init
    - CuAssertTrue
    linkageType: ''
    returnType: void
    signature: void test_cil_post_nodecon_compare_aipv4_lessthan_bipv4(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:514,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:515,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:516,1
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:519,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:520,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:521,1
    - Dst: cil_post_nodecon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:531,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 533
    functionName: test_cil_post_nodecon_compare_amaskipv4_greaterthan_bmaskipv4
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_nodecon_init
    - cil_post_nodecon_compare
    - cil_ipaddr_init
    - CuAssertTrue
    linkageType: ''
    returnType: void
    signature: void test_cil_post_nodecon_compare_amaskipv4_greaterthan_bmaskipv4(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:538,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:539,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:540,1
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:543,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:544,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:545,1
    - Dst: cil_post_nodecon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:555,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 557
    functionName: test_cil_post_nodecon_compare_amaskipv4_lessthan_bmaskipv4
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_nodecon_init
    - cil_post_nodecon_compare
    - cil_ipaddr_init
    - CuAssertTrue
    linkageType: ''
    returnType: void
    signature: void test_cil_post_nodecon_compare_amaskipv4_lessthan_bmaskipv4(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:562,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:563,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:564,1
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:567,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:568,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:569,1
    - Dst: cil_post_nodecon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:579,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 581
    functionName: test_cil_post_nodecon_compare_aipv6_greaterthan_bipv6
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_nodecon_init
    - cil_post_nodecon_compare
    - cil_ipaddr_init
    - CuAssertTrue
    linkageType: ''
    returnType: void
    signature: void test_cil_post_nodecon_compare_aipv6_greaterthan_bipv6(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:586,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:587,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:588,1
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:591,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:592,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:593,1
    - Dst: cil_post_nodecon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:603,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 605
    functionName: test_cil_post_nodecon_compare_aipv6_lessthan_bipv6
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_nodecon_init
    - cil_post_nodecon_compare
    - cil_ipaddr_init
    - CuAssertTrue
    linkageType: ''
    returnType: void
    signature: void test_cil_post_nodecon_compare_aipv6_lessthan_bipv6(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:610,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:611,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:612,1
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:615,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:616,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:617,1
    - Dst: cil_post_nodecon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:627,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 629
    functionName: test_cil_post_nodecon_compare_amaskipv6_greaterthan_bmaskipv6
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_nodecon_init
    - cil_post_nodecon_compare
    - cil_ipaddr_init
    - CuAssertTrue
    linkageType: ''
    returnType: void
    signature: void test_cil_post_nodecon_compare_amaskipv6_greaterthan_bmaskipv6(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:634,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:635,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:636,1
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:639,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:640,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:641,1
    - Dst: cil_post_nodecon_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:651,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 653
    functionName: test_cil_post_nodecon_compare_amaskipv6_lessthan_bmaskipv6
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_nodecon_init
    - cil_post_nodecon_compare
    - cil_ipaddr_init
    - CuAssertTrue
    linkageType: ''
    returnType: void
    signature: void test_cil_post_nodecon_compare_amaskipv6_lessthan_bmaskipv6(CuTest
      *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_fsuse_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:658,1
    - Dst: cil_fsuse_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:662,1
    - Dst: cil_post_fsuse_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:665,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 667
    functionName: test_cil_post_fsuse_compare_type_a_greater_b
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_post_fsuse_compare
    - cil_fsuse_init
    - CuAssertTrue
    linkageType: ''
    returnType: void
    signature: void test_cil_post_fsuse_compare_type_a_greater_b(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_fsuse_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:672,1
    - Dst: cil_fsuse_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:676,1
    - Dst: cil_post_fsuse_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:679,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 681
    functionName: test_cil_post_fsuse_compare_type_b_greater_a
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_post_fsuse_compare
    - cil_fsuse_init
    - CuAssertTrue
    linkageType: ''
    returnType: void
    signature: void test_cil_post_fsuse_compare_type_b_greater_a(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_fsuse_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:686,1
    - Dst: cil_fsuse_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:691,1
    - Dst: cil_post_fsuse_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:695,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 697
    functionName: test_cil_post_fsuse_compare_fsstr_a_greater_b
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_post_fsuse_compare
    - cil_fsuse_init
    - CuAssertTrue
    linkageType: ''
    returnType: void
    signature: void test_cil_post_fsuse_compare_fsstr_a_greater_b(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_fsuse_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:702,1
    - Dst: cil_fsuse_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:707,1
    - Dst: cil_post_fsuse_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:711,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 713
    functionName: test_cil_post_fsuse_compare_fsstr_b_greater_a
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_post_fsuse_compare
    - cil_fsuse_init
    - CuAssertTrue
    linkageType: ''
    returnType: void
    signature: void test_cil_post_fsuse_compare_fsstr_b_greater_a(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_fsuse_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:718,1
    - Dst: cil_fsuse_init
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:723,1
    - Dst: cil_post_fsuse_compare
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:727,1
    - Dst: CuAssertTrue
      Src: /src/selinux/libsepol/cil/test/unit/test_cil_post.c:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - tc
    argTypes:
    - CuTest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 729
    functionName: test_cil_post_fsuse_compare_equal
    functionSourceFile: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
    functionUses: 0
    functionsReached:
    - cil_post_fsuse_compare
    - cil_fsuse_init
    - CuAssertTrue
    linkageType: ''
    returnType: void
    signature: void test_cil_post_fsuse_compare_equal(CuTest *tc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - list
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: cil_list_is_empty
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cil_list_is_empty(list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - item
    - ','
    - list
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_list.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cil_list_for_each(item, list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/selinux/libsepol/cil/src/cil_list.c:38,1
    - Dst: va_start
      Src: /src/selinux/libsepol/cil/src/cil_list.c:42,1
    - Dst: cil_vlog
      Src: /src/selinux/libsepol/cil/src/cil_list.c:43,1
    - Dst: va_end
      Src: /src/selinux/libsepol/cil/src/cil_list.c:44,1
    - Dst: exit
      Src: /src/selinux/libsepol/cil/src/cil_list.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: cil_list_error
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_list.c
    functionUses: 0
    functionsReached:
    - va_end
    - cil_vlog
    - format
    - va_start
    - exit
    linkageType: ''
    returnType: void
    signature: void cil_list_error(const char *msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_list.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - list
    - flavor
    argTypes:
    - struct cil_list**
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: cil_list_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_list.c
    functionUses: 22
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_list_init(struct cil_list **list, enum cil_flavor flavor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_list.c:69,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_list.c:71,1
    - Dst: cil_list_item_destroy
      Src: /src/selinux/libsepol/cil/src/cil_list.c:73,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_list.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - list
    - destroy_data
    argTypes:
    - struct cil_list**
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 79
    functionName: cil_list_destroy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_list.c
    functionUses: 1
    functionsReached:
    - free
    - cil_list_item_destroy
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_list_destroy(struct cil_list **list, unsigned destroy_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_list.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - item
    argTypes:
    - struct cil_list_item**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: cil_list_item_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_list.c
    functionUses: 8
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_list_item_init(struct cil_list_item **item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_data
      Src: /src/selinux/libsepol/cil/src/cil_list.c:94,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_list.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - item
    - destroy_data
    argTypes:
    - struct cil_list_item**
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: cil_list_item_destroy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_list.c
    functionUses: 1
    functionsReached:
    - cil_destroy_data
    - free
    linkageType: ''
    returnType: void
    signature: void cil_list_item_destroy(struct cil_list_item **item, unsigned destroy_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_error
      Src: /src/selinux/libsepol/cil/src/cil_list.c:105,1
    - Dst: cil_list_item_init
      Src: /src/selinux/libsepol/cil/src/cil_list.c:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - list
    - flavor
    - data
    argTypes:
    - struct cil_list*
    - enum cil_flavor
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 120
    functionName: cil_list_append
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_list.c
    functionUses: 0
    functionsReached:
    - cil_list_error
    - cil_list_item_init
    linkageType: ''
    returnType: void
    signature: void cil_list_append(struct cil_list *list, enum cil_flavor flavor,
      void *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_error
      Src: /src/selinux/libsepol/cil/src/cil_list.c:127,1
    - Dst: cil_list_item_init
      Src: /src/selinux/libsepol/cil/src/cil_list.c:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - list
    - flavor
    - data
    argTypes:
    - struct cil_list*
    - enum cil_flavor
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 142
    functionName: cil_list_prepend
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_list.c
    functionUses: 0
    functionsReached:
    - cil_list_error
    - cil_list_item_init
    linkageType: ''
    returnType: void
    signature: void cil_list_prepend(struct cil_list *list, enum cil_flavor flavor,
      void *data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_error
      Src: /src/selinux/libsepol/cil/src/cil_list.c:151,1
    - Dst: cil_list_prepend
      Src: /src/selinux/libsepol/cil/src/cil_list.c:156,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_list.c:161,1
    - Dst: cil_list_item_init
      Src: /src/selinux/libsepol/cil/src/cil_list.c:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - list
    - curr
    - flavor
    - data
    argTypes:
    - struct cil_list*
    - struct cil_list_item*
    - enum cil_flavor
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 173
    functionName: cil_list_insert
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_list.c
    functionUses: 0
    functionsReached:
    - cil_list_error
    - cil_list_prepend
    - cil_list_item_init
    - cil_list_append
    linkageType: ''
    returnType: struct cil_list_item
    signature: "struct cil_list_item *cil_list_insert(struct cil_list *list,\n\t\t\t\t
      \     struct cil_list_item *curr,\n\t\t\t\t      enum cil_flavor flavor, void
      *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_error
      Src: /src/selinux/libsepol/cil/src/cil_list.c:180,1
    - Dst: cil_list_error
      Src: /src/selinux/libsepol/cil/src/cil_list.c:184,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - list
    - item
    argTypes:
    - struct cil_list*
    - struct cil_list_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 199
    functionName: cil_list_append_item
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_list.c
    functionUses: 5
    functionsReached:
    - cil_list_error
    linkageType: ''
    returnType: void
    signature: void cil_list_append_item(struct cil_list *list, struct cil_list_item
      *item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_error
      Src: /src/selinux/libsepol/cil/src/cil_list.c:206,1
    - Dst: cil_list_error
      Src: /src/selinux/libsepol/cil/src/cil_list.c:210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - list
    - item
    argTypes:
    - struct cil_list*
    - struct cil_list_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 225
    functionName: cil_list_prepend_item
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_list.c
    functionUses: 5
    functionsReached:
    - cil_list_error
    linkageType: ''
    returnType: void
    signature: void cil_list_prepend_item(struct cil_list *list, struct cil_list_item
      *item)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_error
      Src: /src/selinux/libsepol/cil/src/cil_list.c:234,1
    - Dst: cil_list_item_destroy
      Src: /src/selinux/libsepol/cil/src/cil_list.c:247,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - list
    - flavor
    - data
    - destroy_data
    argTypes:
    - struct cil_list*
    - enum cil_flavor
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 252
    functionName: cil_list_remove
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_list.c
    functionUses: 0
    functionsReached:
    - cil_list_error
    - cil_list_item_destroy
    linkageType: ''
    returnType: void
    signature: "void cil_list_remove(struct cil_list *list, enum cil_flavor flavor,
      void *data,\n\t\t     unsigned destroy_data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_item_destroy
      Src: /src/selinux/libsepol/cil/src/cil_list.c:247,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 251
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_list.c
    functionUses: 0
    functionsReached:
    - cil_list_item_destroy
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(item, list)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - list
    - data
    argTypes:
    - struct cil_list*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 265
    functionName: cil_list_contains
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_list.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cil_list_contains(struct cil_list *list, void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_list.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, list)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - l1
    - l2
    argTypes:
    - struct cil_list*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 281
    functionName: cil_list_match_any
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_list.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cil_list_match_any(struct cil_list *l1, struct cil_list *l2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 278
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_list.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, l1)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 277
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_list.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i2, l2)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:128,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:135,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:151,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:176,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 94
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 180
    functionName: __cil_gather_statements_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - strcmp
    - cil_list_append
    linkageType: ''
    returnType: int
    signature: "int __cil_gather_statements_helper(struct cil_tree_node *node,\n\t\t\t\t\t
      \ uint32_t *finished, void *extra_args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - start
    - lists
    argTypes:
    - struct cil_tree_node*
    - struct cil_list*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: cil_gather_statements
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_tree_walk
    linkageType: ''
    returnType: void
    signature: "void cil_gather_statements(struct cil_tree_node *start,\n\t\t\t\t
      \ struct cil_list *lists[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:194,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out
    - rules
    - kind
    argTypes:
    - FILE*
    - struct cil_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 196
    functionName: cil_simple_rules_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - DATUM
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void cil_simple_rules_to_policy(FILE *out, struct cil_list *rules,\n\t\t\t\t
      \      const char *kind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:194,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - DATUM
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, rules)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:204,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:212,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:212,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:219,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:219,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:222,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:224,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:226,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:226,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:232,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:232,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:235,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:237,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:239,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:239,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 2
    argNames:
    - out
    - cats
    argTypes:
    - FILE*
    - struct cil_cats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 242
    functionName: cil_cats_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - DATUM
    - cil_list_for_each
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_cats_to_policy(FILE *out, struct cil_cats *cats)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:246,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:246,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:248,1
    - Dst: cil_cats_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - out
    - level
    argTypes:
    - FILE*
    - struct cil_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 251
    functionName: cil_level_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - DATUM
    - cil_cats_to_policy
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_level_to_policy(FILE *out, struct cil_level *level)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - l1
    - l2
    argTypes:
    - struct cil_level*
    - struct cil_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 264
    functionName: cil_levels_simple_and_equal
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_levels_simple_and_equal(struct cil_level *l1,\n\t\t\t\t       struct
      cil_level *l2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_level_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:268,1
    - Dst: cil_levels_simple_and_equal
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:269,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:271,1
    - Dst: cil_level_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - out
    - lvlrange
    argTypes:
    - FILE*
    - struct cil_levelrange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 266
    functionDepth: 3
    functionLinenumber: 266
    functionLinenumberEnd: 274
    functionName: cil_levelrange_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_levels_simple_and_equal
    - fprintf
    - cil_level_to_policy
    linkageType: ''
    returnType: void
    signature: void cil_levelrange_to_policy(FILE *out, struct cil_levelrange *lvlrange)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:279,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:279,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:280,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:280,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:281,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:281,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:283,1
    - Dst: cil_levelrange_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - out
    - context
    - mls
    argTypes:
    - FILE*
    - struct cil_context*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 276
    functionDepth: 4
    functionLinenumber: 276
    functionLinenumberEnd: 286
    functionName: cil_context_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - DATUM
    - fprintf
    - cil_levelrange_to_policy
    linkageType: ''
    returnType: void
    signature: "void cil_context_to_policy(FILE *out, struct cil_context *context,\n\t\t\t\t
      \ int mls)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:294,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:297,1
    - Dst: cil_cond_expr_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:298,1
    - Dst: cil_cond_expr_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:301,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:302,1
    - Dst: cil_cond_expr_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:303,1
    - Dst: cil_cond_expr_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:307,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:308,1
    - Dst: cil_cond_expr_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:309,1
    - Dst: cil_cond_expr_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:313,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:314,1
    - Dst: cil_cond_expr_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:315,1
    - Dst: cil_cond_expr_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:319,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:320,1
    - Dst: cil_cond_expr_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:321,1
    - Dst: cil_cond_expr_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:325,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:326,1
    - Dst: cil_cond_expr_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:327,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:331,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:334,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:337,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:339,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:339,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:341,1
    - Dst: cil_cond_expr_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:344,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:346,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 53
    argCount: 3
    argNames:
    - out
    - expr
    - first
    argTypes:
    - FILE*
    - struct cil_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 348
    functionName: cil_cond_expr_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 1
    functionsReached:
    - DATUM
    - fprintf
    - cil_cond_expr_to_policy
    linkageType: ''
    returnType: void
    signature: void cil_cond_expr_to_policy(FILE *out, struct cil_list *expr, int
      first)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:357,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:358,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - db
    - attr
    argTypes:
    - struct cil_db*
    - struct cil_userattribute*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 363
    functionName: __cil_userattribute_len
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - ebitmap_for_each_positive_bit
    - DATUM
    - strlen
    linkageType: ''
    returnType: size_t
    signature: "size_t __cil_userattribute_len(struct cil_db *db,\n\t\t\t\t      struct
      cil_userattribute *attr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:375,1
    - Dst: __cil_userattribute_len
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:377,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:380,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:380,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:384,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:385,1
    - Dst: __cil_userattribute_len
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:387,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:389,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:389,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - db
    - operand
    argTypes:
    - struct cil_db*
    - struct cil_list_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 396
    functionName: __cil_cons_leaf_operand_len
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_list_for_each
    - DATUM
    - NODE
    - strlen
    - __cil_userattribute_len
    linkageType: ''
    returnType: size_t
    signature: "size_t __cil_cons_leaf_operand_len(struct cil_db *db,\n\t\t\t\t\t
      \ struct cil_list_item *operand)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct cil_list_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 425
    functionName: __cil_cons_leaf_op_len
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t __cil_cons_leaf_op_len(struct cil_list_item *op)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_cons_expr_len
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:439,1
    - Dst: cil_cons_expr_len
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:443,1
    - Dst: cil_cons_expr_len
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:444,1
    - Dst: cil_cons_expr_len
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:448,1
    - Dst: cil_cons_expr_len
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:449,1
    - Dst: __cil_cons_leaf_operand_len
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:453,1
    - Dst: __cil_cons_leaf_op_len
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:454,1
    - Dst: __cil_cons_leaf_operand_len
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:455,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - db
    - cons_expr
    argTypes:
    - struct cil_db*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 427
    functionDepth: 3
    functionLinenumber: 427
    functionLinenumberEnd: 459
    functionName: cil_cons_expr_len
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 1
    functionsReached:
    - cil_cons_expr_len
    - __cil_cons_leaf_operand_len
    - __cil_cons_leaf_op_len
    linkageType: ''
    returnType: size_t
    signature: size_t cil_cons_expr_len(struct cil_db *db, struct cil_list *cons_expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:470,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:471,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:472,1
    - Dst: len::len
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - db
    - attr
    - new
    argTypes:
    - struct cil_db*
    - struct cil_userattribute*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 479
    functionName: __cil_userattribute_to_string
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - ebitmap_for_each_positive_bit
    - DATUM
    - len::len
    - strlen
    linkageType: ''
    returnType: char
    signature: "char *__cil_userattribute_to_string(struct cil_db *db,\n\t\t\t\t\t
      \  struct cil_userattribute *attr,\n\t\t\t\t\t   char *new)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:540,1
    - Dst: __cil_userattribute_to_string::__cil_userattribute_to_string
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:543,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:548,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:549,1
    - Dst: o_len::o_len
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:551,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:555,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:556,1
    - Dst: __cil_userattribute_to_string::__cil_userattribute_to_string
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:558,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:561,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:562,1
    - Dst: o_len::o_len
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:564,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 78
    argCount: 3
    argNames:
    - db
    - operand
    - new
    argTypes:
    - struct cil_db*
    - struct cil_list_item*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 573
    functionName: __cil_cons_leaf_operand_to_string
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - __cil_userattribute_to_string::__cil_userattribute_to_string
    - cil_list_for_each
    - o_len::o_len
    - DATUM
    - NODE
    - strlen
    linkageType: ''
    returnType: char
    signature: "char *__cil_cons_leaf_operand_to_string(struct cil_db *db,\n\t\t\t\t\t
      \      struct cil_list_item *operand,\n\t\t\t\t\t       char *new)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: len::len
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:609,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - op
    - new
    argTypes:
    - struct cil_list_item*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 612
    functionName: __cil_cons_leaf_op_to_string
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - len::len
    linkageType: ''
    returnType: char
    signature: char *__cil_cons_leaf_op_to_string(struct cil_list_item *op, char *new)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:626,1
    - Dst: __cil_cons_expr_to_string::__cil_cons_expr_to_string
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:628,1
    - Dst: __cil_cons_expr_to_string::__cil_cons_expr_to_string
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:633,1
    - Dst: strcpy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:634,1
    - Dst: __cil_cons_expr_to_string::__cil_cons_expr_to_string
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:636,1
    - Dst: __cil_cons_expr_to_string::__cil_cons_expr_to_string
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:641,1
    - Dst: strcpy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:642,1
    - Dst: __cil_cons_expr_to_string::__cil_cons_expr_to_string
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:644,1
    - Dst: __cil_cons_leaf_operand_to_string::__cil_cons_leaf_operand_to_string
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:649,1
    - Dst: __cil_cons_leaf_op_to_string::__cil_cons_leaf_op_to_string
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:650,1
    - Dst: __cil_cons_leaf_operand_to_string::__cil_cons_leaf_operand_to_string
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:651,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 3
    argNames:
    - db
    - cons_expr
    - new
    argTypes:
    - struct cil_db*
    - struct cil_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 614
    functionDepth: 3
    functionLinenumber: 614
    functionLinenumberEnd: 657
    functionName: __cil_cons_expr_to_string
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 1
    functionsReached:
    - __cil_cons_expr_to_string::__cil_cons_expr_to_string
    - __cil_cons_leaf_operand_to_string::__cil_cons_leaf_operand_to_string
    - __cil_cons_leaf_op_to_string::__cil_cons_leaf_op_to_string
    - strcpy
    linkageType: ''
    returnType: char
    signature: "char *__cil_cons_expr_to_string(struct cil_db *db,\n\t\t\t\t       struct
      cil_list *cons_expr, char *new)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_cons_expr_len
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:663,1
    - Dst: cil_malloc::cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:665,1
    - Dst: __cil_cons_expr_to_string
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - db
    - cons_expr
    argTypes:
    - struct cil_db*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 659
    functionDepth: 4
    functionLinenumber: 659
    functionLinenumberEnd: 670
    functionName: cil_cons_expr_to_string
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 2
    functionsReached:
    - __cil_cons_expr_to_string
    - cil_cons_expr_len
    - cil_malloc::cil_malloc
    linkageType: ''
    returnType: char
    signature: "char *cil_cons_expr_to_string(struct cil_db *db,\n\t\t\t\t     struct
      cil_list *cons_expr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_is_empty
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:682,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:685,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:685,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:686,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:687,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:687,1
    - Dst: cil_malloc::cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:691,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:696,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:696,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:697,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:697,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:703,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:704,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:704,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:705,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 2
    argNames:
    - classperms
    - classperms_strs
    argTypes:
    - struct cil_classperms*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 712
    functionName: cil_classperms_to_string
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_list_for_each
    - cil_list_is_empty
    - cil_malloc::cil_malloc
    - memcpy
    - DATUM
    - strlen
    linkageType: ''
    returnType: void
    signature: "void cil_classperms_to_string(struct cil_classperms *classperms,\n\t\t\t\t
      \    struct cil_list *classperms_strs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:722,1
    - Dst: cil_classperms_to_string
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:723,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:726,1
    - Dst: cil_classperms_to_strings
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:728,1
    - Dst: cil_classperms_to_strings
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - classperms
    - classperms_strs
    argTypes:
    - struct cil_list*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 714
    functionDepth: 2
    functionLinenumber: 714
    functionLinenumberEnd: 740
    functionName: cil_classperms_to_strings
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 1
    functionsReached:
    - cil_list_for_each
    - cil_classperms_to_strings
    - FLAVOR
    - cil_classperms_to_string
    linkageType: ''
    returnType: void
    signature: "void cil_classperms_to_strings(struct cil_list *classperms,\n\t\t\t\t
      \     struct cil_list *classperms_strs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:722,1
    - Dst: cil_classperms_to_string
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:723,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:726,1
    - Dst: cil_classperms_to_strings
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:728,1
    - Dst: cil_classperms_to_strings
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:736,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 719
    functionDepth: 3
    functionLinenumber: 719
    functionLinenumberEnd: 739
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 6
    functionsReached:
    - cil_list_for_each
    - cil_classperms_to_strings
    - FLAVOR
    - cil_classperms_to_string
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, classperms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:747,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - classorder
    argTypes:
    - FILE*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 749
    functionName: cil_class_decls_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - DATUM
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_class_decls_to_policy(FILE *out, struct cil_list *classorder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:747,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 748
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 6
    functionsReached:
    - DATUM
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, classorder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:756,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - sidorder
    argTypes:
    - FILE*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 758
    functionName: cil_sid_decls_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - DATUM
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_sid_decls_to_policy(FILE *out, struct cil_list *sidorder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:756,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 757
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 6
    functionsReached:
    - DATUM
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, sidorder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:769,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:772,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:774,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:774,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - out
    - commons
    argTypes:
    - FILE*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 779
    functionName: cil_commons_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - fprintf
    - NODE
    - DATUM
    linkageType: ''
    returnType: void
    signature: void cil_commons_to_policy(FILE *out, struct cil_list *commons)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:769,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:772,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:774,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:774,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 778
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 6
    functionsReached:
    - fprintf
    - NODE
    - DATUM
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, commons)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:789,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:791,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:793,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:797,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:799,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:799,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:802,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:804,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - out
    - classorder
    argTypes:
    - FILE*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 806
    functionName: cil_classes_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - fprintf
    - NODE
    - DATUM
    linkageType: ''
    returnType: void
    signature: void cil_classes_to_policy(FILE *out, struct cil_list *classorder)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:789,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:791,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:793,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:797,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:799,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:799,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:802,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:804,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 805
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 6
    functionsReached:
    - fprintf
    - NODE
    - DATUM
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, classorder)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:817,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:818,1
    - Dst: cil_expand_class
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:819,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:821,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:821,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:823,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:825,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:827,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:829,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:831,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - out
    - defaults
    - kind
    argTypes:
    - FILE*
    - struct cil_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 808
    functionDepth: 2
    functionLinenumber: 808
    functionLinenumberEnd: 833
    functionName: cil_defaults_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_list_for_each
    - cil_list_destroy
    - cil_expand_class
    - DATUM
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void cil_defaults_to_policy(FILE *out, struct cil_list *defaults,\n\t\t\t\t
      \  const char *kind)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:817,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:818,1
    - Dst: cil_expand_class
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:819,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:821,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:821,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:823,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:825,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:827,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:829,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:831,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 815
    functionDepth: 2
    functionLinenumber: 815
    functionLinenumberEnd: 832
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 8
    functionsReached:
    - cil_list_for_each
    - cil_list_destroy
    - cil_expand_class
    - DATUM
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, defaults)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:821,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 822
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 8
    functionsReached:
    - DATUM
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i3, class_list)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:843,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:844,1
    - Dst: cil_expand_class
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:845,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:847,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:847,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:849,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:851,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:855,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:858,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:861,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:865,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:868,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:871,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:875,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:880,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - out
    - defaults
    argTypes:
    - FILE*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 835
    functionDepth: 2
    functionLinenumber: 835
    functionLinenumberEnd: 882
    functionName: cil_default_ranges_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_list_for_each
    - cil_list_destroy
    - cil_expand_class
    - DATUM
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_default_ranges_to_policy(FILE *out, struct cil_list *defaults)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:843,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:844,1
    - Dst: cil_expand_class
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:845,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:847,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:847,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:849,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:851,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:855,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:858,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:861,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:865,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:868,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:871,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:875,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:880,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 841
    functionDepth: 2
    functionLinenumber: 841
    functionLinenumberEnd: 881
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 10
    functionsReached:
    - cil_list_for_each
    - cil_list_destroy
    - cil_expand_class
    - DATUM
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, defaults)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:847,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 848
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 10
    functionsReached:
    - DATUM
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i3, class_list)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:902,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:904,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:908,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:910,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:912,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:916,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:919,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:921,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:923,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - out
    - sensorder
    - all_aliases
    argTypes:
    - FILE*
    - struct cil_list*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 884
    functionDepth: 3
    functionLinenumber: 884
    functionLinenumberEnd: 925
    functionName: cil_sensitivities_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_list_init
    - cil_list_destroy
    - fprintf
    - cil_list_append
    linkageType: ''
    returnType: void
    signature: "void cil_sensitivities_to_policy(FILE *out, struct cil_list *sensorder,\n\t\t\t\t\tstruct
      cil_list *all_aliases)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:902,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:904,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:908,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:910,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:912,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:916,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:919,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:921,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:923,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 894
    functionDepth: 3
    functionLinenumber: 894
    functionLinenumberEnd: 924
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 10
    functionsReached:
    - cil_list_init
    - cil_list_destroy
    - fprintf
    - cil_list_append
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, sensorder)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:902,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 897
    functionDepth: 3
    functionLinenumber: 897
    functionLinenumberEnd: 907
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 10
    functionsReached:
    - cil_list_init
    - cil_list_append
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i2, all_aliases)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 917
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 10
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i2, aliases)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:932,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:935,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - sensorder
    argTypes:
    - FILE*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 938
    functionName: cil_dominance_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_dominance_to_policy(FILE *out, struct cil_list *sensorder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 936
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 10
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(item, sensorder)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:958,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:960,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:964,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:966,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:968,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:972,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:975,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:977,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:979,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - out
    - catorder
    - all_aliases
    argTypes:
    - FILE*
    - struct cil_list*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 940
    functionDepth: 3
    functionLinenumber: 940
    functionLinenumberEnd: 981
    functionName: cil_categories_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_list_init
    - cil_list_destroy
    - fprintf
    - cil_list_append
    linkageType: ''
    returnType: void
    signature: "void cil_categories_to_policy(FILE *out, struct cil_list *catorder,\n\t\t\t\t
      \    struct cil_list *all_aliases)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:958,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:960,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:964,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:966,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:968,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:972,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:975,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:977,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:979,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 950
    functionDepth: 3
    functionLinenumber: 950
    functionLinenumberEnd: 980
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 10
    functionsReached:
    - cil_list_init
    - cil_list_destroy
    - fprintf
    - cil_list_append
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, catorder)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:958,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:960,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 953
    functionDepth: 3
    functionLinenumber: 953
    functionLinenumberEnd: 963
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 10
    functionsReached:
    - cil_list_init
    - cil_list_append
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i2, all_aliases)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 970
    functionDepth: 0
    functionLinenumber: 970
    functionLinenumberEnd: 973
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 10
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i2, aliases)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:991,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:992,1
    - Dst: cil_cats_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:993,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:994,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - out
    - sensorder
    argTypes:
    - FILE*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 983
    functionDepth: 2
    functionLinenumber: 983
    functionLinenumberEnd: 1000
    functionName: cil_levels_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_cats_to_policy
    - cil_list_for_each
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_levels_to_policy(FILE *out, struct cil_list *sensorder)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:991,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:992,1
    - Dst: cil_cats_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:993,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:994,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 999
      start: 988
    functionDepth: 2
    functionLinenumber: 988
    functionLinenumberEnd: 999
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - cil_cats_to_policy
    - cil_list_for_each
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, sensorder)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1013,1
    - Dst: cil_classperms_to_strings
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1014,1
    - Dst: cil_cons_expr_to_string
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1015,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1018,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1019,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1021,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - out
    - db
    - mlsconstrains
    argTypes:
    - FILE*
    - struct cil_db*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1002
    functionDepth: 5
    functionLinenumber: 1002
    functionLinenumberEnd: 1024
    functionName: cil_mlsconstrains_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_classperms_to_strings
    - cil_cons_expr_to_string
    - cil_list_destroy
    - free
    - cil_list_init
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void cil_mlsconstrains_to_policy(FILE *out, struct cil_db *db,\n\t\t\t\t\tstruct
      cil_list *mlsconstrains)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1013,1
    - Dst: cil_classperms_to_strings
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1014,1
    - Dst: cil_cons_expr_to_string
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1015,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1018,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1019,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1021,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1011
    functionDepth: 5
    functionLinenumber: 1011
    functionLinenumberEnd: 1023
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - cil_classperms_to_strings
    - cil_cons_expr_to_string
    - cil_list_destroy
    - free
    - cil_list_init
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, mlsconstrains)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1018,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1020
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - free
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i2, classperms_strs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_expand_class
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1038,1
    - Dst: cil_cons_expr_to_string
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1039,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1042,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1045,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - out
    - db
    - validatetrans
    - kind
    argTypes:
    - FILE*
    - struct cil_db*
    - struct cil_list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1026
    functionDepth: 5
    functionLinenumber: 1026
    functionLinenumberEnd: 1048
    functionName: cil_validatetrans_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_cons_expr_to_string
    - cil_list_destroy
    - free
    - cil_expand_class
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void cil_validatetrans_to_policy(FILE *out, struct cil_db *db,\n\t\t\t\t\tstruct
      cil_list *validatetrans,\n\t\t\t\t\tchar *kind)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_expand_class
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1038,1
    - Dst: cil_cons_expr_to_string
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1039,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1042,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1045,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1036
    functionDepth: 5
    functionLinenumber: 1036
    functionLinenumberEnd: 1047
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - cil_cons_expr_to_string
    - cil_list_destroy
    - free
    - cil_expand_class
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, validatetrans)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1040
    functionDepth: 0
    functionLinenumber: 1040
    functionLinenumberEnd: 1044
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i2, class_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - bools
    argTypes:
    - FILE*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1050
    functionDepth: 0
    functionLinenumber: 1050
    functionLinenumberEnd: 1061
    functionName: cil_bools_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_bools_to_policy(FILE *out, struct cil_list *bools)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1056
    functionDepth: 0
    functionLinenumber: 1056
    functionLinenumberEnd: 1060
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, bools)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1081,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1083,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1088,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1090,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1094,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1097,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1099,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - out
    - types
    - all_aliases
    argTypes:
    - FILE*
    - struct cil_list*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1063
    functionDepth: 3
    functionLinenumber: 1063
    functionLinenumberEnd: 1103
    functionName: cil_typealiases_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_list_init
    - cil_list_destroy
    - fprintf
    - cil_list_append
    linkageType: ''
    returnType: void
    signature: "void cil_typealiases_to_policy(FILE *out, struct cil_list *types,\n\t\t\t\t
      \     struct cil_list *all_aliases)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1081,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1083,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1088,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1090,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1094,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1097,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1099,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1100,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1073
    functionDepth: 3
    functionLinenumber: 1073
    functionLinenumberEnd: 1102
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - cil_list_init
    - cil_list_destroy
    - fprintf
    - cil_list_append
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, types)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1081,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1083,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1076
    functionDepth: 3
    functionLinenumber: 1076
    functionLinenumberEnd: 1086
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - cil_list_init
    - cil_list_append
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i2, all_aliases)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1095
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i2, aliases)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - out
    - types
    argTypes:
    - FILE*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1119
    functionName: cil_typebounds_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_typebounds_to_policy(FILE *out, struct cil_list *types)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1111
    functionDepth: 0
    functionLinenumber: 1111
    functionLinenumberEnd: 1118
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, types)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1135,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1137,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1142,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - out
    - types
    - attributes
    argTypes:
    - FILE*
    - struct cil_list*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1121
    functionDepth: 1
    functionLinenumber: 1121
    functionLinenumberEnd: 1152
    functionName: cil_typeattributes_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - fprintf
    - ebitmap_get_bit
    linkageType: ''
    returnType: void
    signature: "void cil_typeattributes_to_policy(FILE *out, struct cil_list *types,\n\t\t\t\t\t
      struct cil_list *attributes)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1135,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1137,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1142,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1151
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - fprintf
    - ebitmap_get_bit
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, types)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1135,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1137,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1131
    functionDepth: 1
    functionLinenumber: 1131
    functionLinenumberEnd: 1146
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - fprintf
    - ebitmap_get_bit
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i2, attributes)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1169,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1169,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1171,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1180,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1187,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1189,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1197,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1199,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1202,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 2
    argNames:
    - out
    - permx
    argTypes:
    - FILE*
    - struct cil_permissionx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1154
    functionDepth: 1
    functionLinenumber: 1154
    functionLinenumberEnd: 1203
    functionName: cil_xperms_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - ebitmap_for_each_positive_bit
    - DATUM
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_xperms_to_policy(FILE *out, struct cil_permissionx *permx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1231,1
    - Dst: cil_xperms_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1232,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1233,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - out
    - rule
    argTypes:
    - FILE*
    - struct cil_avrule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1205
    functionDepth: 2
    functionLinenumber: 1205
    functionLinenumberEnd: 1234
    functionName: cil_av_rulex_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_xperms_to_policy
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_av_rulex_to_policy(FILE *out, struct cil_avrule *rule)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1264,1
    - Dst: cil_classperms_to_strings
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1265,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1268,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1270,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1272,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - out
    - rule
    argTypes:
    - FILE*
    - struct cil_avrule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1236
    functionDepth: 3
    functionLinenumber: 1236
    functionLinenumberEnd: 1273
    functionName: cil_av_rule_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_classperms_to_strings
    - cil_list_destroy
    - free
    - cil_list_init
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_av_rule_to_policy(FILE *out, struct cil_avrule *rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1268,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1266
    functionDepth: 0
    functionLinenumber: 1266
    functionLinenumberEnd: 1271
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - free
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, classperms_strs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_expand_class
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1301,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1303,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1304,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1306,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - out
    - rule
    argTypes:
    - FILE*
    - struct cil_type_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1275
    functionDepth: 2
    functionLinenumber: 1275
    functionLinenumberEnd: 1307
    functionName: cil_type_rule_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - DATUM
    - fprintf
    - cil_expand_class
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_type_rule_to_policy(FILE *out, struct cil_type_rule *rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1303,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1305
      start: 1302
    functionDepth: 1
    functionLinenumber: 1302
    functionLinenumberEnd: 1305
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - DATUM
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, class_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_expand_class
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1322,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1324,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1325,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - out
    - trans
    argTypes:
    - FILE*
    - struct cil_nametypetransition*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1309
    functionDepth: 2
    functionLinenumber: 1309
    functionLinenumberEnd: 1329
    functionName: cil_nametypetransition_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - DATUM
    - fprintf
    - cil_expand_class
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: "void cil_nametypetransition_to_policy(FILE *out,\n\t\t\t\t struct
      cil_nametypetransition *trans)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1324,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1323
    functionDepth: 1
    functionLinenumber: 1323
    functionLinenumberEnd: 1327
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - DATUM
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, class_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_expand_class
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1341,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1343,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1344,1
    - Dst: cil_levelrange_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1345,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1346,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - out
    - trans
    argTypes:
    - FILE*
    - struct cil_rangetransition*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1349
      start: 1331
    functionDepth: 4
    functionLinenumber: 1331
    functionLinenumberEnd: 1349
    functionName: cil_rangetransition_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_levelrange_to_policy
    - cil_list_destroy
    - cil_expand_class
    - DATUM
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void cil_rangetransition_to_policy(FILE *out,\n\t\t\t\t\t  struct
      cil_rangetransition *trans)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1343,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1344,1
    - Dst: cil_levelrange_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1345,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1342
    functionDepth: 4
    functionLinenumber: 1342
    functionLinenumberEnd: 1347
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - DATUM
    - fprintf
    - cil_levelrange_to_policy
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, class_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1354,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - rule
    argTypes:
    - FILE*
    - struct cil_typepermissive*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1351
    functionDepth: 1
    functionLinenumber: 1351
    functionLinenumberEnd: 1355
    functionName: cil_typepermissive_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - DATUM
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void cil_typepermissive_to_policy(FILE *out,\n\t\t\t\t\t struct cil_typepermissive
      *rule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1360,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - rule
    argTypes:
    - FILE*
    - struct cil_typeneveraudit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1357
    functionDepth: 1
    functionLinenumber: 1357
    functionLinenumberEnd: 1361
    functionName: cil_typeneveraudit_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - DATUM
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void cil_typeneveraudit_to_policy(FILE *out,\n\t\t\t\t\t struct cil_typeneveraudit
      *rule)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: cil_av_rulex_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1395,1
    - Dst: cil_av_rule_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1397,1
    - Dst: cil_type_rule_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1406,1
    - Dst: cil_nametypetransition_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1413,1
    - Dst: cil_rangetransition_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1418,1
    - Dst: cil_typepermissive_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1424,1
    - Dst: cil_typeneveraudit_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1429,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 57
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1369
    functionDepth: 5
    functionLinenumber: 1369
    functionLinenumberEnd: 1437
    functionName: __cil_block_te_rules_to_policy_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_av_rulex_to_policy
    - cil_av_rule_to_policy
    - cil_typepermissive_to_policy
    - cil_nametypetransition_to_policy
    - cil_type_rule_to_policy
    - cil_typeneveraudit_to_policy
    - cil_rangetransition_to_policy
    linkageType: ''
    returnType: int
    signature: "int __cil_block_te_rules_to_policy_helper(struct cil_tree_node *node,\n\t\t\t\t\t\t
      uint32_t *finished,\n\t\t\t\t\t\t void *extra_args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1448,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1453,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1458,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1461,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1464,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1467,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1472,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1475,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1478,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1481,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1486,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1489,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1492,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1495,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1500,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1506,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 3
    argNames:
    - out
    - start
    - mls
    argTypes:
    - FILE*
    - struct cil_tree_node*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1439
    functionDepth: 1
    functionLinenumber: 1439
    functionLinenumberEnd: 1509
    functionName: cil_block_te_rules_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_tree_walk
    linkageType: ''
    returnType: void
    signature: "void cil_block_te_rules_to_policy(FILE *out, struct cil_tree_node
      *start,\n\t\t\t\t\t int mls)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1537,1
    - Dst: cil_cond_expr_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1538,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1540,1
    - Dst: cil_block_te_rules_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1544,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1549,1
    - Dst: cil_block_te_rules_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1550,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1552,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1516
    functionDepth: 2
    functionLinenumber: 1516
    functionLinenumberEnd: 1561
    functionName: __cil_te_rules_to_policy_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_block_te_rules_to_policy
    - fprintf
    - cil_cond_expr_to_policy
    linkageType: ''
    returnType: int
    signature: "int __cil_te_rules_to_policy_helper(struct cil_tree_node *node,\n\t\t\t\t\t
      \  uint32_t *finished, void *extra_args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_block_te_rules_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1571,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - out
    - head
    - mls
    argTypes:
    - FILE*
    - struct cil_tree_node*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1563
    functionDepth: 2
    functionLinenumber: 1563
    functionLinenumberEnd: 1573
    functionName: cil_te_rules_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_tree_walk
    - cil_block_te_rules_to_policy
    linkageType: ''
    returnType: void
    signature: "void cil_te_rules_to_policy(FILE *out, struct cil_tree_node *head,\n\t\t\t\t
      \  int mls)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1582,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - out
    - rules
    argTypes:
    - FILE*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1575
    functionDepth: 0
    functionLinenumber: 1575
    functionLinenumberEnd: 1586
    functionName: cil_roles_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - fprintf
    - strcmp
    linkageType: ''
    returnType: void
    signature: void cil_roles_to_policy(FILE *out, struct cil_list *rules)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1582,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1580
    functionDepth: 0
    functionLinenumber: 1580
    functionLinenumberEnd: 1585
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - fprintf
    - strcmp
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, rules)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1598,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1603,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1605,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1611,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1617,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1620,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - out
    - roles
    - types
    argTypes:
    - FILE*
    - struct cil_list*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1588
    functionDepth: 1
    functionLinenumber: 1588
    functionLinenumberEnd: 1623
    functionName: cil_role_types_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - fprintf
    - ebitmap_get_bit
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void cil_role_types_to_policy(FILE *out, struct cil_list *roles,\n\t\t\t\t
      \    struct cil_list *types)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1598,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1603,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1605,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1611,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1617,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1620,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1596
    functionDepth: 1
    functionLinenumber: 1596
    functionLinenumberEnd: 1622
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - fprintf
    - ebitmap_get_bit
    - strcmp
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, roles)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1603,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1605,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1611,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1601
    functionDepth: 1
    functionLinenumber: 1601
    functionLinenumberEnd: 1615
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - fprintf
    - ebitmap_get_bit
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i2, types)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1635,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1639,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1641,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1646,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1652,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - out
    - roles
    - attributes
    argTypes:
    - FILE*
    - struct cil_list*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1656
      start: 1625
    functionDepth: 1
    functionLinenumber: 1625
    functionLinenumberEnd: 1656
    functionName: cil_roleattributes_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - fprintf
    - ebitmap_get_bit
    - strcmp
    linkageType: ''
    returnType: void
    signature: "void cil_roleattributes_to_policy(FILE *out, struct cil_list *roles,\n\t\t\t\t\t
      struct cil_list *attributes)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1635,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1639,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1641,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1646,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1652,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1633
    functionDepth: 1
    functionLinenumber: 1633
    functionLinenumberEnd: 1655
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - fprintf
    - ebitmap_get_bit
    - strcmp
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, roles)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1639,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1641,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1646,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1637
    functionDepth: 1
    functionLinenumber: 1637
    functionLinenumberEnd: 1650
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - fprintf
    - ebitmap_get_bit
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i2, attributes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1665,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1665,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - out
    - roleallows
    argTypes:
    - FILE*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1658
    functionDepth: 1
    functionLinenumber: 1658
    functionLinenumberEnd: 1668
    functionName: cil_roleallows_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - DATUM
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_roleallows_to_policy(FILE *out, struct cil_list *roleallows)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1665,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1665,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1663
    functionDepth: 1
    functionLinenumber: 1663
    functionLinenumberEnd: 1667
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - DATUM
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, roleallows)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_expand_class
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1679,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1681,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1682,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1682,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1683,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1684,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - out
    - roletransitions
    argTypes:
    - FILE*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1670
    functionDepth: 2
    functionLinenumber: 1670
    functionLinenumberEnd: 1688
    functionName: cil_roletransitions_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - DATUM
    - fprintf
    - cil_expand_class
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: "void cil_roletransitions_to_policy(FILE *out,\n\t\t\t\t\t  struct
      cil_list *roletransitions)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_expand_class
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1679,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1681,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1682,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1682,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1683,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1684,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1677
    functionDepth: 2
    functionLinenumber: 1677
    functionLinenumberEnd: 1687
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - DATUM
    - fprintf
    - cil_expand_class
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, roletransitions)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1681,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1682,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1682,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1683,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1680
    functionDepth: 1
    functionLinenumber: 1680
    functionLinenumberEnd: 1685
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - DATUM
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i2, class_list)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1702,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1705,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1707,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1709,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1714,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1716,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1720,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1723,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1725,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1729,1
    - Dst: cil_level_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1730,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1734,1
    - Dst: cil_levelrange_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1735,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1738,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 4
    argNames:
    - out
    - mls
    - users
    - all_roles
    argTypes:
    - FILE*
    - int
    - struct cil_list*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1690
    functionDepth: 4
    functionLinenumber: 1690
    functionLinenumberEnd: 1740
    functionName: cil_users_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_levelrange_to_policy
    - cil_list_destroy
    - cil_list_append
    - cil_level_to_policy
    - ebitmap_get_bit
    - cil_list_init
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void cil_users_to_policy(FILE *out, int mls, struct cil_list *users,\n\t\t\t\tstruct
      cil_list *all_roles)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1702,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1705,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1707,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1709,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1714,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1716,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1720,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1723,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1725,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1729,1
    - Dst: cil_level_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1730,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1734,1
    - Dst: cil_levelrange_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1735,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1738,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1739
      start: 1699
    functionDepth: 4
    functionLinenumber: 1699
    functionLinenumberEnd: 1739
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - cil_levelrange_to_policy
    - cil_list_destroy
    - cil_list_append
    - cil_level_to_policy
    - ebitmap_get_bit
    - cil_list_init
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, users)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1705,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1707,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1709,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1703
    functionDepth: 3
    functionLinenumber: 1703
    functionLinenumberEnd: 1712
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - cil_list_init
    - ebitmap_get_bit
    - cil_list_append
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i2, all_roles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1718
    functionDepth: 0
    functionLinenumber: 1718
    functionLinenumberEnd: 1721
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i2, roles)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1753,1
    - Dst: cil_classperms_to_strings
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1754,1
    - Dst: cil_cons_expr_to_string
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1755,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1758,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1759,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1761,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 3
    argNames:
    - out
    - db
    - constrains
    argTypes:
    - FILE*
    - struct cil_db*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1742
    functionDepth: 5
    functionLinenumber: 1742
    functionLinenumberEnd: 1764
    functionName: cil_constrains_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_classperms_to_strings
    - cil_cons_expr_to_string
    - cil_list_destroy
    - free
    - cil_list_init
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void cil_constrains_to_policy(FILE *out, struct cil_db *db,\n\t\t\t\t
      \    struct cil_list *constrains)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1753,1
    - Dst: cil_classperms_to_strings
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1754,1
    - Dst: cil_cons_expr_to_string
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1755,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1758,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1759,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1761,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1763
      start: 1751
    functionDepth: 5
    functionLinenumber: 1751
    functionLinenumberEnd: 1763
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - cil_classperms_to_strings
    - cil_cons_expr_to_string
    - cil_list_destroy
    - free
    - cil_list_init
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, constrains)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1758,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1756
    functionDepth: 0
    functionLinenumber: 1756
    functionLinenumberEnd: 1760
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - free
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i2, classperms_strs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1775,1
    - Dst: cil_context_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1776,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - out
    - sids
    - mls
    argTypes:
    - FILE*
    - struct cil_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1780
      start: 1766
    functionDepth: 5
    functionLinenumber: 1766
    functionLinenumberEnd: 1780
    functionName: cil_sid_contexts_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_context_to_policy
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void cil_sid_contexts_to_policy(FILE *out, struct cil_list *sids,\n\t\t\t\t
      \      int mls)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1775,1
    - Dst: cil_context_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1776,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1779
      start: 1772
    functionDepth: 5
    functionLinenumber: 1772
    functionLinenumberEnd: 1779
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 12
    functionsReached:
    - cil_context_to_policy
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i1, sids)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1790,1
    - Dst: cil_context_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1791,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1792,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1799,1
    - Dst: cil_context_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1800,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1801,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1808,1
    - Dst: cil_context_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1809,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1810,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - out
    - fsuses
    - mls
    argTypes:
    - FILE*
    - struct cil_sort*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1813
      start: 1782
    functionDepth: 5
    functionLinenumber: 1782
    functionLinenumberEnd: 1813
    functionName: cil_fsuses_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_context_to_policy
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_fsuses_to_policy(FILE *out, struct cil_sort *fsuses, int mls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1823,1
    - Dst: cil_context_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1825,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1826,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - out
    - genfscons
    - mls
    argTypes:
    - FILE*
    - struct cil_sort*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1815
    functionDepth: 5
    functionLinenumber: 1815
    functionLinenumberEnd: 1828
    functionName: cil_genfscons_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_context_to_policy
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void cil_genfscons_to_policy(FILE *out, struct cil_sort *genfscons,\n\t\t\t\t
      \   int mls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1839,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1840,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1841,1
    - Dst: cil_context_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1842,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - out
    - ibpkeycons
    - mls
    argTypes:
    - FILE*
    - struct cil_sort*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1830
    functionDepth: 5
    functionLinenumber: 1830
    functionLinenumberEnd: 1845
    functionName: cil_ibpkeycons_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_context_to_policy
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void cil_ibpkeycons_to_policy(FILE *out, struct cil_sort *ibpkeycons,\n\t\t\t\t
      \    int mls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1856,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1857,1
    - Dst: cil_context_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1858,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1859,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - out
    - ibendportcons
    - mls
    argTypes:
    - FILE*
    - struct cil_sort*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1847
    functionDepth: 5
    functionLinenumber: 1847
    functionLinenumberEnd: 1861
    functionName: cil_ibendportcons_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_context_to_policy
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void cil_ibendportcons_to_policy(FILE *out,\n\t\t\t\t\tstruct cil_sort
      *ibendportcons, int mls)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1871,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1873,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1875,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1877,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1879,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1882,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1884,1
    - Dst: cil_context_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1887,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1888,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - out
    - portcons
    - mls
    argTypes:
    - FILE*
    - struct cil_sort*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1890
      start: 1863
    functionDepth: 5
    functionLinenumber: 1863
    functionLinenumberEnd: 1890
    functionName: cil_portcons_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_context_to_policy
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void cil_portcons_to_policy(FILE *out, struct cil_sort *portcons,\n\t\t\t\t
      \  int mls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1900,1
    - Dst: cil_context_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1901,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1902,1
    - Dst: cil_context_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1903,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - out
    - netifcons
    - mls
    argTypes:
    - FILE*
    - struct cil_sort*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1892
    functionDepth: 5
    functionLinenumber: 1892
    functionLinenumberEnd: 1906
    functionName: cil_netifcons_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_context_to_policy
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void cil_netifcons_to_policy(FILE *out, struct cil_sort *netifcons,\n\t\t\t\t
      \   int mls)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1917,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1921,1
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1922,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1925,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1927,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1929,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1932,1
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1933,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1936,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1938,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1940,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1943,1
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1944,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1947,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1949,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1951,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1954,1
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1955,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1958,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1960,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1962,1
    - Dst: cil_context_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1965,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1966,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 46
    argCount: 3
    argNames:
    - out
    - nodecons
    - mls
    argTypes:
    - FILE*
    - struct cil_sort*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1968
      start: 1908
    functionDepth: 5
    functionLinenumber: 1908
    functionLinenumberEnd: 1968
    functionName: cil_nodecons_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_context_to_policy
    - cil_malloc
    - inet_ntop
    - free
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void cil_nodecons_to_policy(FILE *out, struct cil_sort *nodecons,\n\t\t\t\t
      \  int mls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1978,1
    - Dst: cil_context_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1979,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1980,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - out
    - pirqcons
    - mls
    argTypes:
    - FILE*
    - struct cil_sort*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1970
    functionDepth: 5
    functionLinenumber: 1970
    functionLinenumberEnd: 1982
    functionName: cil_pirqcons_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_context_to_policy
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void cil_pirqcons_to_policy(FILE *out, struct cil_sort *pirqcons,\n\t\t\t\t
      \  int mls)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1993,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1996,1
    - Dst: cil_context_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:1999,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2000,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - out
    - iomemcons
    - mls
    argTypes:
    - FILE*
    - struct cil_sort*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2002
      start: 1984
    functionDepth: 5
    functionLinenumber: 1984
    functionLinenumberEnd: 2002
    functionName: cil_iomemcons_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_context_to_policy
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void cil_iomemcons_to_policy(FILE *out, struct cil_sort *iomemcons,\n\t\t\t\t
      \   int mls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2012,1
    - Dst: cil_context_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2014,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - out
    - ioportcons
    - mls
    argTypes:
    - FILE*
    - struct cil_sort*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 2004
    functionDepth: 5
    functionLinenumber: 2004
    functionLinenumberEnd: 2017
    functionName: cil_ioportcons_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_context_to_policy
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void cil_ioportcons_to_policy(FILE *out, struct cil_sort *ioportcons,\n\t\t\t\t
      \    int mls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2027,1
    - Dst: cil_context_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2028,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2029,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - out
    - pcidevicecons
    - mls
    argTypes:
    - FILE*
    - struct cil_sort*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 2019
    functionDepth: 5
    functionLinenumber: 2019
    functionLinenumberEnd: 2031
    functionName: cil_pcidevicecons_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_context_to_policy
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void cil_pcidevicecons_to_policy(FILE *out,\n\t\t\t\t\tstruct cil_sort
      *pcidevicecons, int mls)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2042,1
    - Dst: cil_context_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2043,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2044,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - out
    - devicetreecons
    - mls
    argTypes:
    - FILE*
    - struct cil_sort*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2033
    functionDepth: 5
    functionLinenumber: 2033
    functionLinenumberEnd: 2046
    functionName: cil_devicetreecons_to_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_context_to_policy
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void cil_devicetreecons_to_policy(FILE *out,\n\t\t\t\t\t struct cil_sort
      *devicetreecons,\n\t\t\t\t\t int mls)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2055,1
    - Dst: cil_gather_statements
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2058,1
    - Dst: cil_class_decls_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2060,1
    - Dst: cil_sid_decls_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2062,1
    - Dst: cil_commons_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2064,1
    - Dst: cil_classes_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2065,1
    - Dst: cil_defaults_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2067,1
    - Dst: cil_defaults_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2069,1
    - Dst: cil_defaults_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2071,1
    - Dst: cil_default_ranges_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2075,1
    - Dst: cil_sensitivities_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2077,1
    - Dst: cil_dominance_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2079,1
    - Dst: cil_categories_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2080,1
    - Dst: cil_levels_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2082,1
    - Dst: cil_mlsconstrains_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2083,1
    - Dst: cil_validatetrans_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2085,1
    - Dst: cil_simple_rules_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2090,1
    - Dst: cil_simple_rules_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2093,1
    - Dst: cil_simple_rules_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2095,1
    - Dst: cil_bools_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2098,1
    - Dst: cil_simple_rules_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2100,1
    - Dst: cil_typealiases_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2101,1
    - Dst: cil_typebounds_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2103,1
    - Dst: cil_typeattributes_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2104,1
    - Dst: cil_te_rules_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2106,1
    - Dst: cil_roles_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2108,1
    - Dst: cil_role_types_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2109,1
    - Dst: cil_roleattributes_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2111,1
    - Dst: cil_roleallows_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2113,1
    - Dst: cil_roletransitions_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2114,1
    - Dst: cil_users_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2116,1
    - Dst: cil_constrains_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2119,1
    - Dst: cil_validatetrans_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2120,1
    - Dst: cil_sid_contexts_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2123,1
    - Dst: cil_fsuses_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2124,1
    - Dst: cil_genfscons_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2125,1
    - Dst: cil_portcons_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2126,1
    - Dst: cil_netifcons_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2127,1
    - Dst: cil_ibpkeycons_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2128,1
    - Dst: cil_ibendportcons_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2129,1
    - Dst: cil_nodecons_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2130,1
    - Dst: cil_pirqcons_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2131,1
    - Dst: cil_iomemcons_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2132,1
    - Dst: cil_ioportcons_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2133,1
    - Dst: cil_pcidevicecons_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2134,1
    - Dst: cil_devicetreecons_to_policy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2135,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_policy.c:2138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 54
    argCount: 2
    argNames:
    - out
    - db
    argTypes:
    - FILE*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2048
    functionDepth: 6
    functionLinenumber: 2048
    functionLinenumberEnd: 2140
    functionName: cil_gen_policy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_policy.c
    functionUses: 0
    functionsReached:
    - cil_genfscons_to_policy
    - cil_ibpkeycons_to_policy
    - cil_iomemcons_to_policy
    - cil_typebounds_to_policy
    - cil_te_rules_to_policy
    - cil_roles_to_policy
    - cil_list_destroy
    - cil_roleattributes_to_policy
    - cil_list_init
    - cil_roletransitions_to_policy
    - cil_users_to_policy
    - cil_portcons_to_policy
    - cil_categories_to_policy
    - cil_pcidevicecons_to_policy
    - cil_mlsconstrains_to_policy
    - cil_sid_decls_to_policy
    - cil_sid_contexts_to_policy
    - cil_simple_rules_to_policy
    - cil_ioportcons_to_policy
    - cil_constrains_to_policy
    - cil_levels_to_policy
    - cil_nodecons_to_policy
    - cil_devicetreecons_to_policy
    - cil_ibendportcons_to_policy
    - cil_gather_statements
    - cil_roleallows_to_policy
    - cil_typeattributes_to_policy
    - cil_dominance_to_policy
    - cil_sensitivities_to_policy
    - cil_classes_to_policy
    - cil_role_types_to_policy
    - cil_pirqcons_to_policy
    - cil_validatetrans_to_policy
    - cil_commons_to_policy
    - cil_bools_to_policy
    - cil_defaults_to_policy
    - cil_fsuses_to_policy
    - cil_class_decls_to_policy
    - cil_typealiases_to_policy
    - cil_netifcons_to_policy
    - cil_default_ranges_to_policy
    linkageType: ''
    returnType: void
    signature: void cil_gen_policy(FILE *out, struct cil_db *db)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cil_string_to_uint32
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:70,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:90,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:93,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 4
    argNames:
    - node
    - info_kind
    - hll_line
    - path
    argTypes:
    - struct cil_tree_node*
    - char**
    - uint32_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 105
    functionName: cil_tree_get_next_path
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_tree.c
    functionUses: 0
    functionsReached:
    - NODE
    - cil_string_to_uint32
    linkageType: ''
    returnType: struct cil_tree_node
    signature: "struct cil_tree_node *cil_tree_get_next_path(struct cil_tree_node
      *node,\n\t\t\t\t\t     char **info_kind,\n\t\t\t\t\t     uint32_t *hll_line,
      char **path)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_get_next_path
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 122
    functionName: cil_tree_get_cil_path
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_tree.c
    functionUses: 0
    functionsReached:
    - cil_tree_get_next_path
    linkageType: ''
    returnType: char
    signature: char *cil_tree_get_cil_path(struct cil_tree_node *node)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:124,1
    - Dst: va_start
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:130,1
    - Dst: cil_vlog
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:131,1
    - Dst: va_end
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:132,1
    - Dst: cil_tree_get_cil_path
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:138,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:141,1
    - Dst: cil_tree_get_next_path
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:149,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:159,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:164,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - node
    - lvl
    - msg
    argTypes:
    - struct cil_tree_node*
    - enum cil_log_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 165
    functionName: cil_tree_log
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_tree.c
    functionUses: 0
    functionsReached:
    - va_end
    - cil_vlog
    - format
    - cil_log
    - cil_tree_get_next_path
    - cil_tree_get_cil_path
    - va_start
    linkageType: ''
    returnType: void
    signature: "void cil_tree_log(struct cil_tree_node *node, enum cil_log_level lvl,\n\t
      \    const char *msg, ...)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_subtree_has_decl
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 181
    functionName: cil_tree_subtree_has_decl
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_tree.c
    functionUses: 1
    functionsReached:
    - cil_tree_subtree_has_decl
    linkageType: ''
    returnType: int
    signature: int cil_tree_subtree_has_decl(struct cil_tree_node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:185,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tree
    argTypes:
    - struct cil_tree**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 192
    functionName: cil_tree_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_tree.c
    functionUses: 3
    functionsReached:
    - cil_malloc
    - cil_tree_node_init
    linkageType: ''
    returnType: int
    signature: int cil_tree_init(struct cil_tree **tree)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_subtree_destroy
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:200,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - tree
    argTypes:
    - struct cil_tree**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 203
    functionName: cil_tree_destroy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_tree.c
    functionUses: 0
    functionsReached:
    - free
    - cil_tree_subtree_destroy
    linkageType: ''
    returnType: void
    signature: void cil_tree_destroy(struct cil_tree **tree)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_children_destroy
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:207,1
    - Dst: cil_tree_node_destroy
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: cil_tree_subtree_destroy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_tree.c
    functionUses: 1
    functionsReached:
    - cil_tree_children_destroy
    - cil_tree_node_destroy
    linkageType: ''
    returnType: void
    signature: void cil_tree_subtree_destroy(struct cil_tree_node *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_children_destroy
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:222,1
    - Dst: cil_tree_node_destroy
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 228
    functionName: cil_tree_children_destroy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_tree.c
    functionUses: 2
    functionsReached:
    - cil_tree_children_destroy
    - cil_tree_node_destroy
    linkageType: ''
    returnType: void
    signature: void cil_tree_children_destroy(struct cil_tree_node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct cil_tree_node**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 243
    functionName: cil_tree_node_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_tree.c
    functionUses: 861
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_tree_node_init(struct cil_tree_node **node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_datum_remove_node
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:255,1
    - Dst: cil_destroy_data
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:257,1
    - Dst: cil_destroy_data
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:260,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct cil_tree_node**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 264
    functionName: cil_tree_node_destroy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_tree.c
    functionUses: 2
    functionsReached:
    - free
    - cil_destroy_data
    - cil_symtab_datum_remove_node
    linkageType: ''
    returnType: void
    signature: void cil_tree_node_destroy(struct cil_tree_node **node)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_node_destroy
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:281,1
    - Dst: cil_tree_node_destroy
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:298,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 299
    functionName: cil_tree_node_remove
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_tree.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_destroy
    linkageType: ''
    returnType: void
    signature: void cil_tree_node_remove(struct cil_tree_node *node)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:339,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:348,1
    - Dst: cil_tree_walk_helper
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:359,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - node
    - extra_args
    - depth
    - processed
    argTypes:
    - struct cil_tree_node*
    - void*
    - unsigned
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 325
    functionDepth: 4
    functionLinenumber: 325
    functionLinenumberEnd: 372
    functionName: cil_tree_walk_core
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_tree.c
    functionUses: 0
    functionsReached:
    - cil_tree_walk_helper
    - cil_tree_log
    linkageType: ''
    returnType: int
    signature: "int cil_tree_walk_core(\n\tstruct cil_tree_node *node,\n\tint (*process_node)(struct
      cil_tree_node *node, uint32_t *finished,\n\t\t\t    void *extra_args),\n\tint
      (*first_child)(struct cil_tree_node *node, void *extra_args),\n\tint (*last_child)(struct
      cil_tree_node *node, void *extra_args),\n\tvoid *extra_args, unsigned depth,
      unsigned *processed)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:385,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:397,1
    - Dst: cil_tree_walk_core
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:402,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:411,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 4
    argNames:
    - node
    - extra_args
    - depth
    - processed
    argTypes:
    - struct cil_tree_node*
    - void*
    - unsigned
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 374
    functionDepth: 5
    functionLinenumber: 374
    functionLinenumberEnd: 417
    functionName: cil_tree_walk_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_tree.c
    functionUses: 1
    functionsReached:
    - cil_tree_walk_core
    - cil_tree_log
    linkageType: ''
    returnType: int
    signature: "int cil_tree_walk_helper(\n\tstruct cil_tree_node *node,\n\tint (*process_node)(struct
      cil_tree_node *node, uint32_t *finished,\n\t\t\t    void *extra_args),\n\tint
      (*first_child)(struct cil_tree_node *node, void *extra_args),\n\tint (*last_child)(struct
      cil_tree_node *node, void *extra_args),\n\tvoid *extra_args, unsigned depth,
      unsigned *processed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_walk_helper
      Src: /src/selinux/libsepol/cil/src/cil_tree.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 419
    functionDepth: 6
    functionLinenumber: 419
    functionLinenumberEnd: 432
    functionName: cil_tree_walk
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_tree.c
    functionUses: 12
    functionsReached:
    - cil_tree_walk_helper
    linkageType: ''
    returnType: int
    signature: "int cil_tree_walk(struct cil_tree_node *node,\n\t\t  int (*process_node)(struct
      cil_tree_node *node,\n\t\t\t\t      uint32_t *finished, void *extra_args),\n\t\t
      \ int (*first_child)(struct cil_tree_node *node,\n\t\t\t\t     void *extra_args),\n\t\t
      \ int (*last_child)(struct cil_tree_node *node,\n\t\t\t\t    void *extra_args),\n\t\t
      \ void *extra_args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:238,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:239,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:240,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:241,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:242,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:243,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:244,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:245,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:246,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:247,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:248,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:249,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:250,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:251,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:252,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:253,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:254,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:255,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:256,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:257,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:258,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:259,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:260,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:261,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:262,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:263,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:264,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:265,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:266,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:267,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:268,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:269,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:270,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:271,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:272,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:273,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:274,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:275,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:276,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:277,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:278,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:279,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:280,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:281,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:282,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:283,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:284,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:285,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:286,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:287,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:288,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:289,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:290,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:291,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:292,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:293,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:294,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:295,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:296,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:297,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:298,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:299,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:300,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:301,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:302,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:303,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:304,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:305,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:306,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:307,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:308,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:309,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:310,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:311,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:312,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:313,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:314,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:315,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:316,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:317,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:318,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:319,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:320,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:321,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:322,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:323,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:324,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:325,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:326,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:327,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:328,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:329,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:330,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:331,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:332,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:333,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:334,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:335,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:336,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:337,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:338,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:339,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:340,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:341,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:342,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:343,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:344,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:345,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:346,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:347,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:348,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:349,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:350,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:351,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:352,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:353,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:354,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:355,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:356,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:357,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:358,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:359,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:360,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:361,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:362,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:363,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:364,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:365,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:366,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:367,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:368,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:369,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:370,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:371,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:372,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:373,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:374,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:375,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:376,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:377,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:378,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:379,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:380,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:381,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:382,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:383,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:384,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:385,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:386,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:387,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:388,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:389,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:390,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:391,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:392,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:393,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:394,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:395,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:396,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:397,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:398,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:399,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:400,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:401,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:402,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:403,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:404,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:405,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:406,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 171
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 408
    functionName: cil_init_keys
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_strpool_add
    linkageType: ''
    returnType: void
    signature: void cil_init_keys(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:412,1
    - Dst: cil_strpool_init
      Src: /src/selinux/libsepol/cil/src/cil.c:414,1
    - Dst: cil_init_keys
      Src: /src/selinux/libsepol/cil/src/cil.c:415,1
    - Dst: cil_tree_init
      Src: /src/selinux/libsepol/cil/src/cil.c:417,1
    - Dst: cil_tree_init
      Src: /src/selinux/libsepol/cil/src/cil.c:418,1
    - Dst: cil_root_init
      Src: /src/selinux/libsepol/cil/src/cil.c:419,1
    - Dst: cil_sort_init
      Src: /src/selinux/libsepol/cil/src/cil.c:424,1
    - Dst: cil_sort_init
      Src: /src/selinux/libsepol/cil/src/cil.c:425,1
    - Dst: cil_sort_init
      Src: /src/selinux/libsepol/cil/src/cil.c:426,1
    - Dst: cil_sort_init
      Src: /src/selinux/libsepol/cil/src/cil.c:427,1
    - Dst: cil_sort_init
      Src: /src/selinux/libsepol/cil/src/cil.c:428,1
    - Dst: cil_sort_init
      Src: /src/selinux/libsepol/cil/src/cil.c:429,1
    - Dst: cil_sort_init
      Src: /src/selinux/libsepol/cil/src/cil.c:430,1
    - Dst: cil_sort_init
      Src: /src/selinux/libsepol/cil/src/cil.c:431,1
    - Dst: cil_sort_init
      Src: /src/selinux/libsepol/cil/src/cil.c:432,1
    - Dst: cil_sort_init
      Src: /src/selinux/libsepol/cil/src/cil.c:433,1
    - Dst: cil_sort_init
      Src: /src/selinux/libsepol/cil/src/cil.c:434,1
    - Dst: cil_sort_init
      Src: /src/selinux/libsepol/cil/src/cil.c:435,1
    - Dst: cil_sort_init
      Src: /src/selinux/libsepol/cil/src/cil.c:436,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil.c:437,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil.c:438,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil.c:439,1
    - Dst: cil_type_init
      Src: /src/selinux/libsepol/cil/src/cil.c:441,1
    - Dst: cil_type_init
      Src: /src/selinux/libsepol/cil/src/cil.c:444,1
    - Dst: cil_type_init
      Src: /src/selinux/libsepol/cil/src/cil.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 1
    argNames:
    - db
    argTypes:
    - struct cil_db**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 471
    functionName: cil_db_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 1455
    functionsReached:
    - cil_malloc
    - cil_root_init
    - cil_strpool_init
    - cil_sort_init
    - cil_list_init
    - cil_tree_init
    - cil_type_init
    - cil_init_keys
    linkageType: ''
    returnType: void
    signature: void cil_db_init(struct cil_db **db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil.c:477,1
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:479,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil.c:480,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - strings
    argTypes:
    - struct cil_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 483
    functionName: cil_declared_strings_list_destroy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_symtab_datum_destroy
    - cil_list_for_each
    - free
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_declared_strings_list_destroy(struct cil_list **strings)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:491,1
    - Dst: cil_tree_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:492,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:493,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:494,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:495,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:496,1
    - Dst: cil_sort_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:497,1
    - Dst: cil_sort_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:498,1
    - Dst: cil_sort_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:499,1
    - Dst: cil_sort_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:500,1
    - Dst: cil_sort_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:501,1
    - Dst: cil_sort_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:502,1
    - Dst: cil_sort_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:503,1
    - Dst: cil_sort_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:504,1
    - Dst: cil_sort_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:505,1
    - Dst: cil_sort_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:506,1
    - Dst: cil_sort_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:507,1
    - Dst: cil_sort_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:508,1
    - Dst: cil_sort_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:509,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:510,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:511,1
    - Dst: cil_declared_strings_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:513,1
    - Dst: cil_destroy_type
      Src: /src/selinux/libsepol/cil/src/cil.c:515,1
    - Dst: cil_destroy_type
      Src: /src/selinux/libsepol/cil/src/cil.c:516,1
    - Dst: cil_destroy_type
      Src: /src/selinux/libsepol/cil/src/cil.c:517,1
    - Dst: cil_strpool_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:519,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil.c:520,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil.c:521,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil.c:522,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil.c:524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 1
    argNames:
    - db
    argTypes:
    - struct cil_db**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 485
    functionDepth: 3
    functionLinenumber: 485
    functionLinenumberEnd: 526
    functionName: cil_db_destroy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 3
    functionsReached:
    - cil_strpool_destroy
    - cil_sort_destroy
    - cil_list_destroy
    - cil_tree_destroy
    - free
    - cil_destroy_type
    - cil_declared_strings_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_db_destroy(struct cil_db **db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:530,1
    - Dst: cil_symtab_array_init
      Src: /src/selinux/libsepol/cil/src/cil.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct cil_root**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 534
    functionName: cil_root_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 1
    functionsReached:
    - cil_malloc
    - cil_symtab_array_init
    linkageType: ''
    returnType: void
    signature: void cil_root_init(struct cil_root **root)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_array_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:541,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil.c:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct cil_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 543
    functionName: cil_root_destroy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - free
    - cil_symtab_array_destroy
    linkageType: ''
    returnType: void
    signature: void cil_root_destroy(struct cil_root *root)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:550,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:553,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:557,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/cil/src/cil.c:558,1
    - Dst: memset
      Src: /src/selinux/libsepol/cil/src/cil.c:559,1
    - Dst: cil_parser
      Src: /src/selinux/libsepol/cil/src/cil.c:561,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:563,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil.c:567,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil.c:573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 4
    argNames:
    - db
    - name
    - data
    - size
    argTypes:
    - cil_db_t*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 576
    functionName: cil_add_file
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 1
    functionsReached:
    - cil_malloc
    - cil_log
    - free
    - memcpy
    - cil_parser
    - memset
    linkageType: ''
    returnType: int
    signature: int cil_add_file(cil_db_t *db, const char *name, const char *data,
      size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:586,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/src/cil.c:587,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:589,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:593,1
    - Dst: cil_tree_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:594,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:596,1
    - Dst: cil_resolve_ast
      Src: /src/selinux/libsepol/cil/src/cil.c:597,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:599,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:603,1
    - Dst: cil_fqn_qualify
      Src: /src/selinux/libsepol/cil/src/cil.c:604,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:606,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:610,1
    - Dst: cil_post_process
      Src: /src/selinux/libsepol/cil/src/cil.c:611,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:613,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 1
    argNames:
    - db
    argTypes:
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 620
    functionName: cil_compile
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 1
    functionsReached:
    - cil_build_ast
    - cil_fqn_qualify
    - cil_resolve_ast
    - cil_post_process
    - cil_tree_destroy
    - cil_log
    linkageType: ''
    returnType: int
    signature: int cil_compile(struct cil_db *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:630,1
    - Dst: cil_write_ast
      Src: /src/selinux/libsepol/cil/src/cil.c:631,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:633,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - out
    - db
    argTypes:
    - FILE*
    - cil_db_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 622
    functionDepth: 1
    functionLinenumber: 622
    functionLinenumberEnd: 639
    functionName: cil_write_parse_ast
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_log
    - cil_write_ast
    linkageType: ''
    returnType: int
    signature: int cil_write_parse_ast(FILE *out, cil_db_t *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:649,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/src/cil.c:650,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:652,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:656,1
    - Dst: cil_tree_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:657,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:659,1
    - Dst: cil_write_ast
      Src: /src/selinux/libsepol/cil/src/cil.c:660,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:662,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - out
    - db
    argTypes:
    - FILE*
    - cil_db_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 641
    functionDepth: 2
    functionLinenumber: 641
    functionLinenumberEnd: 668
    functionName: cil_write_build_ast
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_log
    - cil_build_ast
    - cil_write_ast
    - cil_tree_destroy
    linkageType: ''
    returnType: int
    signature: int cil_write_build_ast(FILE *out, cil_db_t *db)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:678,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/src/cil.c:679,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:681,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:685,1
    - Dst: cil_tree_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:686,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:688,1
    - Dst: cil_resolve_ast
      Src: /src/selinux/libsepol/cil/src/cil.c:689,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:691,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:695,1
    - Dst: cil_fqn_qualify
      Src: /src/selinux/libsepol/cil/src/cil.c:696,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:698,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:702,1
    - Dst: cil_write_ast
      Src: /src/selinux/libsepol/cil/src/cil.c:703,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:705,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 2
    argNames:
    - out
    - db
    argTypes:
    - FILE*
    - cil_db_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 711
    functionName: cil_write_resolve_ast
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_fqn_qualify
    - cil_resolve_ast
    - cil_tree_destroy
    - cil_log
    - cil_write_ast
    linkageType: ''
    returnType: int
    signature: int cil_write_resolve_ast(FILE *out, cil_db_t *db)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:721,1
    - Dst: cil_build_ast
      Src: /src/selinux/libsepol/cil/src/cil.c:722,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:724,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:728,1
    - Dst: cil_tree_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:729,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:731,1
    - Dst: cil_resolve_ast
      Src: /src/selinux/libsepol/cil/src/cil.c:732,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:734,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:738,1
    - Dst: cil_fqn_qualify
      Src: /src/selinux/libsepol/cil/src/cil.c:739,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:741,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:745,1
    - Dst: cil_post_process
      Src: /src/selinux/libsepol/cil/src/cil.c:746,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:748,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:752,1
    - Dst: cil_write_ast
      Src: /src/selinux/libsepol/cil/src/cil.c:753,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:755,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 2
    argNames:
    - out
    - db
    argTypes:
    - FILE*
    - cil_db_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 713
    functionDepth: 2
    functionLinenumber: 713
    functionLinenumberEnd: 761
    functionName: cil_write_post_ast
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_build_ast
    - cil_fqn_qualify
    - cil_resolve_ast
    - cil_post_process
    - cil_tree_destroy
    - cil_log
    - cil_write_ast
    linkageType: ''
    returnType: int
    signature: int cil_write_post_ast(FILE *out, cil_db_t *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:767,1
    - Dst: cil_binary_create
      Src: /src/selinux/libsepol/cil/src/cil.c:768,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:770,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - db
    - sepol_db
    argTypes:
    - cil_db_t*
    - sepol_policydb_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 776
    functionName: cil_build_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 1
    functionsReached:
    - cil_log
    - cil_binary_create
    linkageType: ''
    returnType: int
    signature: int cil_build_policydb(cil_db_t *db, sepol_policydb_t **sepol_db)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:780,1
    - Dst: cil_gen_policy
      Src: /src/selinux/libsepol/cil/src/cil.c:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out
    - db
    argTypes:
    - FILE*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 778
    functionDepth: 7
    functionLinenumber: 778
    functionLinenumberEnd: 782
    functionName: cil_write_policy_conf
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_log
    - cil_gen_policy
    linkageType: ''
    returnType: void
    signature: void cil_write_policy_conf(FILE *out, struct cil_db *db)
  - BBCount: 116
    BranchProfiles: []
    Callsites:
    - Dst: cil_root_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:794,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:803,1
    - Dst: cil_destroy_param
      Src: /src/selinux/libsepol/cil/src/cil.c:808,1
    - Dst: cil_destroy_args
      Src: /src/selinux/libsepol/cil/src/cil.c:811,1
    - Dst: cil_destroy_block
      Src: /src/selinux/libsepol/cil/src/cil.c:814,1
    - Dst: cil_destroy_blockinherit
      Src: /src/selinux/libsepol/cil/src/cil.c:817,1
    - Dst: cil_destroy_blockabstract
      Src: /src/selinux/libsepol/cil/src/cil.c:820,1
    - Dst: cil_destroy_in
      Src: /src/selinux/libsepol/cil/src/cil.c:823,1
    - Dst: cil_destroy_macro
      Src: /src/selinux/libsepol/cil/src/cil.c:826,1
    - Dst: cil_destroy_call
      Src: /src/selinux/libsepol/cil/src/cil.c:829,1
    - Dst: cil_destroy_optional
      Src: /src/selinux/libsepol/cil/src/cil.c:832,1
    - Dst: cil_destroy_bool
      Src: /src/selinux/libsepol/cil/src/cil.c:835,1
    - Dst: cil_destroy_boolif
      Src: /src/selinux/libsepol/cil/src/cil.c:838,1
    - Dst: cil_destroy_tunable
      Src: /src/selinux/libsepol/cil/src/cil.c:841,1
    - Dst: cil_destroy_tunif
      Src: /src/selinux/libsepol/cil/src/cil.c:844,1
    - Dst: cil_destroy_condblock
      Src: /src/selinux/libsepol/cil/src/cil.c:847,1
    - Dst: cil_destroy_perm
      Src: /src/selinux/libsepol/cil/src/cil.c:855,1
    - Dst: cil_destroy_class
      Src: /src/selinux/libsepol/cil/src/cil.c:860,1
    - Dst: cil_destroy_ordered
      Src: /src/selinux/libsepol/cil/src/cil.c:863,1
    - Dst: cil_destroy_classpermission
      Src: /src/selinux/libsepol/cil/src/cil.c:866,1
    - Dst: cil_destroy_classcommon
      Src: /src/selinux/libsepol/cil/src/cil.c:869,1
    - Dst: cil_destroy_classmapping
      Src: /src/selinux/libsepol/cil/src/cil.c:872,1
    - Dst: cil_destroy_classperms
      Src: /src/selinux/libsepol/cil/src/cil.c:875,1
    - Dst: cil_destroy_classperms_set
      Src: /src/selinux/libsepol/cil/src/cil.c:878,1
    - Dst: cil_destroy_classpermissionset
      Src: /src/selinux/libsepol/cil/src/cil.c:881,1
    - Dst: cil_destroy_user
      Src: /src/selinux/libsepol/cil/src/cil.c:884,1
    - Dst: cil_destroy_userattribute
      Src: /src/selinux/libsepol/cil/src/cil.c:887,1
    - Dst: cil_destroy_userattributeset
      Src: /src/selinux/libsepol/cil/src/cil.c:890,1
    - Dst: cil_destroy_userprefix
      Src: /src/selinux/libsepol/cil/src/cil.c:893,1
    - Dst: cil_destroy_userrole
      Src: /src/selinux/libsepol/cil/src/cil.c:896,1
    - Dst: cil_destroy_userlevel
      Src: /src/selinux/libsepol/cil/src/cil.c:899,1
    - Dst: cil_destroy_userrange
      Src: /src/selinux/libsepol/cil/src/cil.c:902,1
    - Dst: cil_destroy_bounds
      Src: /src/selinux/libsepol/cil/src/cil.c:905,1
    - Dst: cil_destroy_selinuxuser
      Src: /src/selinux/libsepol/cil/src/cil.c:909,1
    - Dst: cil_destroy_role
      Src: /src/selinux/libsepol/cil/src/cil.c:912,1
    - Dst: cil_destroy_roleattribute
      Src: /src/selinux/libsepol/cil/src/cil.c:915,1
    - Dst: cil_destroy_roleattributeset
      Src: /src/selinux/libsepol/cil/src/cil.c:918,1
    - Dst: cil_destroy_roletype
      Src: /src/selinux/libsepol/cil/src/cil.c:921,1
    - Dst: cil_destroy_bounds
      Src: /src/selinux/libsepol/cil/src/cil.c:924,1
    - Dst: cil_destroy_type
      Src: /src/selinux/libsepol/cil/src/cil.c:927,1
    - Dst: cil_destroy_typeattribute
      Src: /src/selinux/libsepol/cil/src/cil.c:930,1
    - Dst: cil_destroy_alias
      Src: /src/selinux/libsepol/cil/src/cil.c:933,1
    - Dst: cil_destroy_typeattributeset
      Src: /src/selinux/libsepol/cil/src/cil.c:936,1
    - Dst: cil_destroy_expandtypeattribute
      Src: /src/selinux/libsepol/cil/src/cil.c:939,1
    - Dst: cil_destroy_aliasactual
      Src: /src/selinux/libsepol/cil/src/cil.c:942,1
    - Dst: cil_destroy_bounds
      Src: /src/selinux/libsepol/cil/src/cil.c:945,1
    - Dst: cil_destroy_typepermissive
      Src: /src/selinux/libsepol/cil/src/cil.c:948,1
    - Dst: cil_destroy_typeneveraudit
      Src: /src/selinux/libsepol/cil/src/cil.c:951,1
    - Dst: cil_destroy_sensitivity
      Src: /src/selinux/libsepol/cil/src/cil.c:954,1
    - Dst: cil_destroy_alias
      Src: /src/selinux/libsepol/cil/src/cil.c:957,1
    - Dst: cil_destroy_aliasactual
      Src: /src/selinux/libsepol/cil/src/cil.c:960,1
    - Dst: cil_destroy_ordered
      Src: /src/selinux/libsepol/cil/src/cil.c:963,1
    - Dst: cil_destroy_senscat
      Src: /src/selinux/libsepol/cil/src/cil.c:966,1
    - Dst: cil_destroy_category
      Src: /src/selinux/libsepol/cil/src/cil.c:969,1
    - Dst: cil_destroy_catset
      Src: /src/selinux/libsepol/cil/src/cil.c:972,1
    - Dst: cil_destroy_alias
      Src: /src/selinux/libsepol/cil/src/cil.c:975,1
    - Dst: cil_destroy_aliasactual
      Src: /src/selinux/libsepol/cil/src/cil.c:978,1
    - Dst: cil_destroy_ordered
      Src: /src/selinux/libsepol/cil/src/cil.c:981,1
    - Dst: cil_destroy_level
      Src: /src/selinux/libsepol/cil/src/cil.c:984,1
    - Dst: cil_destroy_levelrange
      Src: /src/selinux/libsepol/cil/src/cil.c:987,1
    - Dst: cil_destroy_sid
      Src: /src/selinux/libsepol/cil/src/cil.c:990,1
    - Dst: cil_destroy_ordered
      Src: /src/selinux/libsepol/cil/src/cil.c:993,1
    - Dst: cil_destroy_roleallow
      Src: /src/selinux/libsepol/cil/src/cil.c:996,1
    - Dst: cil_destroy_avrule
      Src: /src/selinux/libsepol/cil/src/cil.c:1000,1
    - Dst: cil_destroy_permissionx
      Src: /src/selinux/libsepol/cil/src/cil.c:1003,1
    - Dst: cil_destroy_deny_rule
      Src: /src/selinux/libsepol/cil/src/cil.c:1006,1
    - Dst: cil_destroy_roletransition
      Src: /src/selinux/libsepol/cil/src/cil.c:1009,1
    - Dst: cil_destroy_type_rule
      Src: /src/selinux/libsepol/cil/src/cil.c:1012,1
    - Dst: cil_destroy_typetransition
      Src: /src/selinux/libsepol/cil/src/cil.c:1015,1
    - Dst: cil_destroy_rangetransition
      Src: /src/selinux/libsepol/cil/src/cil.c:1018,1
    - Dst: cil_destroy_constrain
      Src: /src/selinux/libsepol/cil/src/cil.c:1021,1
    - Dst: cil_destroy_constrain
      Src: /src/selinux/libsepol/cil/src/cil.c:1024,1
    - Dst: cil_destroy_validatetrans
      Src: /src/selinux/libsepol/cil/src/cil.c:1028,1
    - Dst: cil_destroy_context
      Src: /src/selinux/libsepol/cil/src/cil.c:1031,1
    - Dst: cil_destroy_ipaddr
      Src: /src/selinux/libsepol/cil/src/cil.c:1034,1
    - Dst: cil_destroy_sidcontext
      Src: /src/selinux/libsepol/cil/src/cil.c:1039,1
    - Dst: cil_destroy_fsuse
      Src: /src/selinux/libsepol/cil/src/cil.c:1042,1
    - Dst: cil_destroy_filecon
      Src: /src/selinux/libsepol/cil/src/cil.c:1045,1
    - Dst: cil_destroy_ibpkeycon
      Src: /src/selinux/libsepol/cil/src/cil.c:1048,1
    - Dst: cil_destroy_portcon
      Src: /src/selinux/libsepol/cil/src/cil.c:1051,1
    - Dst: cil_destroy_ibendportcon
      Src: /src/selinux/libsepol/cil/src/cil.c:1054,1
    - Dst: cil_destroy_nodecon
      Src: /src/selinux/libsepol/cil/src/cil.c:1057,1
    - Dst: cil_destroy_genfscon
      Src: /src/selinux/libsepol/cil/src/cil.c:1060,1
    - Dst: cil_destroy_netifcon
      Src: /src/selinux/libsepol/cil/src/cil.c:1063,1
    - Dst: cil_destroy_pirqcon
      Src: /src/selinux/libsepol/cil/src/cil.c:1066,1
    - Dst: cil_destroy_iomemcon
      Src: /src/selinux/libsepol/cil/src/cil.c:1069,1
    - Dst: cil_destroy_ioportcon
      Src: /src/selinux/libsepol/cil/src/cil.c:1072,1
    - Dst: cil_destroy_pcidevicecon
      Src: /src/selinux/libsepol/cil/src/cil.c:1075,1
    - Dst: cil_destroy_devicetreecon
      Src: /src/selinux/libsepol/cil/src/cil.c:1078,1
    - Dst: cil_destroy_policycap
      Src: /src/selinux/libsepol/cil/src/cil.c:1081,1
    - Dst: cil_destroy_default
      Src: /src/selinux/libsepol/cil/src/cil.c:1086,1
    - Dst: cil_destroy_defaultrange
      Src: /src/selinux/libsepol/cil/src/cil.c:1089,1
    - Dst: cil_destroy_handleunknown
      Src: /src/selinux/libsepol/cil/src/cil.c:1092,1
    - Dst: cil_destroy_mls
      Src: /src/selinux/libsepol/cil/src/cil.c:1095,1
    - Dst: cil_destroy_src_info
      Src: /src/selinux/libsepol/cil/src/cil.c:1098,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:1104,1
    CyclomaticComplexity: 107
    EdgeCount: 107
    ICount: 322
    argCount: 2
    argNames:
    - data
    - flavor
    argTypes:
    - void**
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 784
    functionDepth: 2
    functionLinenumber: 784
    functionLinenumberEnd: 1109
    functionName: cil_destroy_data
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 2
    functionsReached:
    - cil_destroy_ibpkeycon
    - cil_destroy_constrain
    - cil_destroy_sid
    - cil_log
    - cil_destroy_call
    - cil_destroy_portcon
    - cil_destroy_tunable
    - cil_destroy_selinuxuser
    - cil_destroy_in
    - cil_destroy_roleattributeset
    - cil_destroy_senscat
    - cil_destroy_level
    - cil_destroy_type_rule
    - cil_destroy_nodecon
    - cil_destroy_userrange
    - cil_destroy_user
    - cil_destroy_classmapping
    - cil_destroy_devicetreecon
    - cil_destroy_policycap
    - cil_destroy_iomemcon
    - cil_destroy_bool
    - cil_destroy_levelrange
    - cil_destroy_aliasactual
    - cil_destroy_deny_rule
    - cil_destroy_roleattribute
    - cil_destroy_roletype
    - cil_destroy_condblock
    - cil_destroy_ordered
    - cil_destroy_userrole
    - cil_destroy_blockinherit
    - cil_destroy_classperms
    - cil_destroy_filecon
    - cil_destroy_userattributeset
    - cil_destroy_class
    - cil_destroy_sidcontext
    - cil_destroy_blockabstract
    - cil_destroy_mls
    - cil_destroy_handleunknown
    - cil_destroy_ibendportcon
    - cil_destroy_optional
    - cil_destroy_default
    - cil_destroy_boolif
    - cil_destroy_ioportcon
    - cil_destroy_bounds
    - cil_destroy_netifcon
    - cil_destroy_context
    - cil_destroy_pirqcon
    - cil_destroy_roleallow
    - cil_root_destroy
    - cil_destroy_roletransition
    - cil_destroy_userlevel
    - cil_destroy_expandtypeattribute
    - cil_destroy_param
    - cil_destroy_classpermission
    - cil_destroy_rangetransition
    - cil_destroy_fsuse
    - cil_destroy_macro
    - cil_destroy_classpermissionset
    - cil_destroy_typeneveraudit
    - cil_destroy_pcidevicecon
    - cil_destroy_alias
    - cil_destroy_block
    - cil_destroy_type
    - cil_destroy_ipaddr
    - cil_destroy_args
    - cil_destroy_src_info
    - cil_destroy_sensitivity
    - cil_list_destroy
    - cil_destroy_avrule
    - cil_destroy_role
    - cil_destroy_userattribute
    - cil_destroy_genfscon
    - cil_destroy_category
    - cil_destroy_userprefix
    - cil_destroy_perm
    - cil_destroy_typeattribute
    - cil_destroy_typeattributeset
    - cil_destroy_classperms_set
    - cil_destroy_tunif
    - cil_destroy_validatetrans
    - cil_destroy_permissionx
    - cil_destroy_classcommon
    - cil_destroy_defaultrange
    - cil_destroy_typepermissive
    - cil_destroy_typetransition
    - cil_destroy_catset
    linkageType: ''
    returnType: void
    signature: void cil_destroy_data(void **data, enum cil_flavor flavor)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:1197,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 87
    argCount: 2
    argNames:
    - flavor
    - sym_index
    argTypes:
    - enum cil_flavor
    - enum cil_sym_index*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1111
    functionDepth: 1
    functionLinenumber: 1111
    functionLinenumberEnd: 1202
    functionName: cil_flavor_to_symtab_index
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_log
    linkageType: ''
    returnType: int
    signature: "int cil_flavor_to_symtab_index(enum cil_flavor flavor,\n\t\t\t       enum
      cil_sym_index *sym_index)"
  - BBCount: 150
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 310
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1204
    functionDepth: 0
    functionLinenumber: 1204
    functionLinenumberEnd: 1517
    functionName: cil_node_to_string
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *cil_node_to_string(struct cil_tree_node *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil.c:1537,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1540,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1540,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1541,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1541,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:1547,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil.c:1550,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/cil/src/cil.c:1554,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil.c:1557,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 3
    argNames:
    - db
    - out
    - size
    argTypes:
    - struct cil_db*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1519
    functionDepth: 1
    functionLinenumber: 1519
    functionLinenumberEnd: 1569
    functionName: cil_userprefixes_to_string
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_list_for_each
    - snprintf
    - cil_malloc
    - free
    - strlen
    linkageType: ''
    returnType: int
    signature: int cil_userprefixes_to_string(struct cil_db *db, char **out, size_t
      *size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil.c:1586,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil.c:1587,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil.c:1590,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil.c:1592,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil.c:1600,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - cats
    - cats_ebitmap
    argTypes:
    - struct cil_cats*
    - struct ebitmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1571
    functionDepth: 1
    functionLinenumber: 1571
    functionLinenumberEnd: 1611
    functionName: cil_cats_to_ebitmap
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_list_for_each
    - NODE
    - ebitmap_set_bit
    linkageType: ''
    returnType: int
    signature: "int cil_cats_to_ebitmap(struct cil_cats *cats,\n\t\t\t       struct
      ebitmap *cats_ebitmap)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil.c:1619,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil.c:1624,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil.c:1625,1
    - Dst: cil_cats_to_ebitmap
      Src: /src/selinux/libsepol/cil/src/cil.c:1627,1
    - Dst: cil_cats_to_ebitmap
      Src: /src/selinux/libsepol/cil/src/cil.c:1632,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/cil/src/cil.c:1637,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:1638,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:1639,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - low
    - high
    argTypes:
    - struct cil_level*
    - struct cil_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1643
      start: 1613
    functionDepth: 2
    functionLinenumber: 1613
    functionLinenumberEnd: 1643
    functionName: cil_level_equals
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - cil_cats_to_ebitmap
    - strcmp
    - ebitmap_cmp
    linkageType: ''
    returnType: int
    signature: int cil_level_equals(struct cil_level *low, struct cil_level *high)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1655,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil.c:1659,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1670,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1671,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1673,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1673,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1674,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1676,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1676,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1677,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1688,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1690,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1690,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1692,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1692,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - lvl
    argTypes:
    - struct cil_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1698
      start: 1645
    functionDepth: 0
    functionLinenumber: 1645
    functionLinenumberEnd: 1698
    functionName: __cil_level_strlen
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_list_for_each
    - strlen
    linkageType: ''
    returnType: int
    signature: int __cil_level_strlen(struct cil_level *lvl)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/selinux/libsepol/cil/src/cil.c:1711,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/cil/src/cil.c:1715,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil.c:1718,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/cil/src/cil.c:1729,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/cil/src/cil.c:1733,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/cil/src/cil.c:1738,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/cil/src/cil.c:1746,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/cil/src/cil.c:1753,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/cil/src/cil.c:1756,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/cil/src/cil.c:1759,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 2
    argNames:
    - lvl
    - out
    argTypes:
    - struct cil_level*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1700
    functionDepth: 0
    functionLinenumber: 1700
    functionLinenumberEnd: 1766
    functionName: __cil_level_to_string
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - sprintf
    - cil_list_for_each
    linkageType: ''
    returnType: int
    signature: int __cil_level_to_string(struct cil_level *lvl, char *out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil.c:1781,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1785,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1786,1
    - Dst: __cil_level_strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1790,1
    - Dst: __cil_level_strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1791,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:1798,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/cil/src/cil.c:1805,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/cil/src/cil.c:1811,1
    - Dst: __cil_level_to_string
      Src: /src/selinux/libsepol/cil/src/cil.c:1813,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/cil/src/cil.c:1815,1
    - Dst: __cil_level_to_string
      Src: /src/selinux/libsepol/cil/src/cil.c:1817,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/cil/src/cil.c:1821,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 3
    argNames:
    - db
    - out
    - size
    argTypes:
    - struct cil_db*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1768
    functionDepth: 1
    functionLinenumber: 1768
    functionLinenumberEnd: 1826
    functionName: cil_selinuxusers_to_string
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_list_for_each
    - cil_malloc
    - sprintf
    - __cil_level_to_string
    - __cil_level_strlen
    - strlen
    linkageType: ''
    returnType: int
    signature: int cil_selinuxusers_to_string(struct cil_db *db, char **out, size_t
      *size)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil.c:1839,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1841,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1854,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1855,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1856,1
    - Dst: cil_level_equals
      Src: /src/selinux/libsepol/cil/src/cil.c:1860,1
    - Dst: __cil_level_strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1862,1
    - Dst: __cil_level_strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1866,1
    - Dst: __cil_level_strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1867,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil.c:1873,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:1880,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil.c:1887,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/cil/src/cil.c:1889,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/cil/src/cil.c:1921,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/cil/src/cil.c:1929,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/cil/src/cil.c:1936,1
    - Dst: __cil_level_to_string
      Src: /src/selinux/libsepol/cil/src/cil.c:1938,1
    - Dst: cil_level_equals
      Src: /src/selinux/libsepol/cil/src/cil.c:1942,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/cil/src/cil.c:1944,1
    - Dst: __cil_level_to_string
      Src: /src/selinux/libsepol/cil/src/cil.c:1946,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/cil/src/cil.c:1952,1
    - Dst: sprintf
      Src: /src/selinux/libsepol/cil/src/cil.c:1956,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 80
    argCount: 3
    argNames:
    - db
    - out
    - size
    argTypes:
    - struct cil_db*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1828
    functionDepth: 3
    functionLinenumber: 1828
    functionLinenumberEnd: 1961
    functionName: cil_filecons_to_string
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - __cil_level_to_string
    - cil_malloc
    - sprintf
    - cil_level_equals
    - DATUM
    - __cil_level_strlen
    - strlen
    linkageType: ''
    returnType: int
    signature: int cil_filecons_to_string(struct cil_db *db, char **out, size_t *size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - disable_dontaudit
    argTypes:
    - struct cil_db*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1966
      start: 1963
    functionDepth: 0
    functionLinenumber: 1963
    functionLinenumberEnd: 1966
    functionName: cil_set_disable_dontaudit
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_set_disable_dontaudit(struct cil_db *db, int disable_dontaudit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - disable_neverallow
    argTypes:
    - struct cil_db*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1971
      start: 1968
    functionDepth: 0
    functionLinenumber: 1968
    functionLinenumberEnd: 1971
    functionName: cil_set_disable_neverallow
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_set_disable_neverallow(struct cil_db *db, int disable_neverallow)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - attrs_expand_generated
    argTypes:
    - struct cil_db*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1977
      start: 1973
    functionDepth: 0
    functionLinenumber: 1973
    functionLinenumberEnd: 1977
    functionName: cil_set_attrs_expand_generated
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void cil_set_attrs_expand_generated(struct cil_db *db,\n\t\t\t\t    int
      attrs_expand_generated)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - attrs_expand_size
    argTypes:
    - struct cil_db*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1979
    functionDepth: 0
    functionLinenumber: 1979
    functionLinenumberEnd: 1982
    functionName: cil_set_attrs_expand_size
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_set_attrs_expand_size(struct cil_db *db, unsigned attrs_expand_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - preserve_tunables
    argTypes:
    - struct cil_db*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1987
      start: 1984
    functionDepth: 0
    functionLinenumber: 1984
    functionLinenumberEnd: 1987
    functionName: cil_set_preserve_tunables
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_set_preserve_tunables(struct cil_db *db, int preserve_tunables)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:2000,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - db
    - handle_unknown
    argTypes:
    - struct cil_db*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2006
      start: 1989
    functionDepth: 1
    functionLinenumber: 1989
    functionLinenumberEnd: 2006
    functionName: cil_set_handle_unknown
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_log
    linkageType: ''
    returnType: int
    signature: int cil_set_handle_unknown(struct cil_db *db, int handle_unknown)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - mls
    argTypes:
    - struct cil_db*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 2008
    functionDepth: 0
    functionLinenumber: 2008
    functionLinenumberEnd: 2011
    functionName: cil_set_mls
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_set_mls(struct cil_db *db, int mls)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - multiple_decls
    argTypes:
    - struct cil_db*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2016
      start: 2013
    functionDepth: 0
    functionLinenumber: 2013
    functionLinenumberEnd: 2016
    functionName: cil_set_multiple_decls
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_set_multiple_decls(struct cil_db *db, int multiple_decls)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - qualified_names
    argTypes:
    - struct cil_db*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2021
      start: 2018
    functionDepth: 0
    functionLinenumber: 2018
    functionLinenumberEnd: 2021
    functionName: cil_set_qualified_names
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_set_qualified_names(struct cil_db *db, int qualified_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - target_platform
    argTypes:
    - struct cil_db*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2026
      start: 2023
    functionDepth: 0
    functionLinenumber: 2023
    functionLinenumberEnd: 2026
    functionName: cil_set_target_platform
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_set_target_platform(struct cil_db *db, int target_platform)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - db
    - policy_version
    argTypes:
    - struct cil_db*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 2028
    functionDepth: 0
    functionLinenumber: 2028
    functionLinenumberEnd: 2031
    functionName: cil_set_policy_version
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_set_policy_version(struct cil_db *db, int policy_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2038,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - symtab
    - symtab_sizes
    argTypes:
    - symtab_t[]
    - int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 2033
    functionDepth: 1
    functionLinenumber: 2033
    functionLinenumberEnd: 2040
    functionName: cil_symtab_array_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 3
    functionsReached:
    - cil_symtab_init
    linkageType: ''
    returnType: void
    signature: "void cil_symtab_array_init(symtab_t symtab[],\n\t\t\t   const int
      symtab_sizes[CIL_SYM_NUM])"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:2046,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - symtab
    argTypes:
    - symtab_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2048
      start: 2042
    functionDepth: 1
    functionLinenumber: 2042
    functionLinenumberEnd: 2048
    functionName: cil_symtab_array_destroy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 1
    functionsReached:
    - cil_symtab_destroy
    linkageType: ''
    returnType: void
    signature: void cil_symtab_array_destroy(symtab_t symtab[])
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_array_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:2055,1
    - Dst: cil_symtab_array_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:2059,1
    - Dst: cil_symtab_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:2065,1
    - Dst: cil_symtab_array_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:2069,1
    - Dst: cil_symtab_array_destroy
      Src: /src/selinux/libsepol/cil/src/cil.c:2073,1
    - Dst: cil_destroy_ast_symtabs
      Src: /src/selinux/libsepol/cil/src/cil.c:2081,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - current
    argTypes:
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2050
    functionDepth: 2
    functionLinenumber: 2050
    functionLinenumberEnd: 2086
    functionName: cil_destroy_ast_symtabs
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 1
    functionsReached:
    - cil_destroy_ast_symtabs
    - cil_symtab_destroy
    - cil_symtab_array_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_ast_symtabs(struct cil_tree_node *current)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:2106,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil.c:2151,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 3
    argNames:
    - ast_node
    - symtab
    - sym_index
    argTypes:
    - struct cil_tree_node*
    - symtab_t**
    - enum cil_sym_index
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2153
      start: 2088
    functionDepth: 4
    functionLinenumber: 2088
    functionLinenumberEnd: 2153
    functionName: cil_get_symtab
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 8
    functionsReached:
    - cil_log
    - cil_tree_log
    linkageType: ''
    returnType: int
    signature: "int cil_get_symtab(struct cil_tree_node *ast_node, symtab_t **symtab,\n\t\t
      \  enum cil_sym_index sym_index)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/selinux/libsepol/cil/src/cil.c:2166,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:2185,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - string
    - value
    - base
    argTypes:
    - char*
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2187
      start: 2155
    functionDepth: 1
    functionLinenumber: 2155
    functionLinenumberEnd: 2187
    functionName: cil_string_to_uint32
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 1
    functionsReached:
    - cil_log
    - strtoul
    linkageType: ''
    returnType: int
    signature: int cil_string_to_uint32(const char *string, uint32_t *value, int base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtoull
      Src: /src/selinux/libsepol/cil/src/cil.c:2199,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil.c:2208,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - string
    - value
    - base
    argTypes:
    - char*
    - uint64_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2189
    functionDepth: 1
    functionLinenumber: 2189
    functionLinenumberEnd: 2210
    functionName: cil_string_to_uint64
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_log
    - strtoull
    linkageType: ''
    returnType: int
    signature: int cil_string_to_uint64(const char *string, uint64_t *value, int base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - sort
    argTypes:
    - struct cil_sort**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2220
      start: 2212
    functionDepth: 1
    functionLinenumber: 2212
    functionLinenumberEnd: 2220
    functionName: cil_sort_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 1
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_sort_init(struct cil_sort **sort)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil.c:2228,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil.c:2232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - sort
    argTypes:
    - struct cil_sort**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2234
      start: 2222
    functionDepth: 0
    functionLinenumber: 2222
    functionLinenumberEnd: 2234
    functionName: cil_sort_destroy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cil_sort_destroy(struct cil_sort **sort)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ordered
    argTypes:
    - struct cil_ordered**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2242
      start: 2236
    functionDepth: 1
    functionLinenumber: 2236
    functionLinenumberEnd: 2242
    functionName: cil_ordered_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_ordered_init(struct cil_ordered **ordered)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - netifcon
    argTypes:
    - struct cil_netifcon**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2254
      start: 2244
    functionDepth: 1
    functionLinenumber: 2244
    functionLinenumberEnd: 2254
    functionName: cil_netifcon_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 3
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_netifcon_init(struct cil_netifcon **netifcon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ibendportcon
    argTypes:
    - struct cil_ibendportcon**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2264
      start: 2256
    functionDepth: 1
    functionLinenumber: 2256
    functionLinenumberEnd: 2264
    functionName: cil_ibendportcon_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_ibendportcon_init(struct cil_ibendportcon **ibendportcon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2268,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - context
    argTypes:
    - struct cil_context**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2279
      start: 2266
    functionDepth: 1
    functionLinenumber: 2266
    functionLinenumberEnd: 2279
    functionName: cil_context_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 11
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    linkageType: ''
    returnType: void
    signature: void cil_context_init(struct cil_context **context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2283,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - level
    argTypes:
    - struct cil_level**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2289
      start: 2281
    functionDepth: 1
    functionLinenumber: 2281
    functionLinenumberEnd: 2289
    functionName: cil_level_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 5
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    linkageType: ''
    returnType: void
    signature: void cil_level_init(struct cil_level **level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2293,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - range
    argTypes:
    - struct cil_levelrange**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2291
    functionDepth: 1
    functionLinenumber: 2291
    functionLinenumberEnd: 2300
    functionName: cil_levelrange_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    linkageType: ''
    returnType: void
    signature: void cil_levelrange_init(struct cil_levelrange **range)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2304,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sens
    argTypes:
    - struct cil_sens**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2311
      start: 2302
    functionDepth: 1
    functionLinenumber: 2302
    functionLinenumberEnd: 2311
    functionName: cil_sens_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 1
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    linkageType: ''
    returnType: void
    signature: void cil_sens_init(struct cil_sens **sens)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2315,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2317,1
    - Dst: cil_symtab_array_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - block
    argTypes:
    - struct cil_block**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2325
      start: 2313
    functionDepth: 2
    functionLinenumber: 2313
    functionLinenumberEnd: 2325
    functionName: cil_block_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    - cil_symtab_array_init
    linkageType: ''
    returnType: void
    signature: void cil_block_init(struct cil_block **block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - inherit
    argTypes:
    - struct cil_blockinherit**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2327
    functionDepth: 1
    functionLinenumber: 2327
    functionLinenumberEnd: 2332
    functionName: cil_blockinherit_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_blockinherit_init(struct cil_blockinherit **inherit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - abstract
    argTypes:
    - struct cil_blockabstract**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2339
      start: 2334
    functionDepth: 1
    functionLinenumber: 2334
    functionLinenumberEnd: 2339
    functionName: cil_blockabstract_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_blockabstract_init(struct cil_blockabstract **abstract)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2343,1
    - Dst: cil_symtab_array_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - struct cil_in**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2349
      start: 2341
    functionDepth: 2
    functionLinenumber: 2341
    functionLinenumberEnd: 2349
    functionName: cil_in_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - cil_symtab_array_init
    linkageType: ''
    returnType: void
    signature: void cil_in_init(struct cil_in **in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2353,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2355,1
    - Dst: cil_symtab_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - class
    argTypes:
    - struct cil_class**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2362
      start: 2351
    functionDepth: 1
    functionLinenumber: 2351
    functionLinenumberEnd: 2362
    functionName: cil_class_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 11
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    - cil_symtab_init
    linkageType: ''
    returnType: void
    signature: void cil_class_init(struct cil_class **class)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - classcommon
    argTypes:
    - struct cil_classcommon**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2372
      start: 2364
    functionDepth: 1
    functionLinenumber: 2364
    functionLinenumberEnd: 2372
    functionName: cil_classcommon_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 1
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_classcommon_init(struct cil_classcommon **classcommon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2376,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sid
    argTypes:
    - struct cil_sid**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2382
      start: 2374
    functionDepth: 1
    functionLinenumber: 2374
    functionLinenumberEnd: 2382
    functionName: cil_sid_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    linkageType: ''
    returnType: void
    signature: void cil_sid_init(struct cil_sid **sid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - sidcontext
    argTypes:
    - struct cil_sidcontext**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2392
      start: 2384
    functionDepth: 1
    functionLinenumber: 2384
    functionLinenumberEnd: 2392
    functionName: cil_sidcontext_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_sidcontext_init(struct cil_sidcontext **sidcontext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - userrole
    argTypes:
    - struct cil_userrole**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2402
      start: 2394
    functionDepth: 1
    functionLinenumber: 2394
    functionLinenumberEnd: 2402
    functionName: cil_userrole_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 1
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_userrole_init(struct cil_userrole **userrole)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - userprefix
    argTypes:
    - struct cil_userprefix**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2411
      start: 2404
    functionDepth: 1
    functionLinenumber: 2404
    functionLinenumberEnd: 2411
    functionName: cil_userprefix_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_userprefix_init(struct cil_userprefix **userprefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - selinuxuser
    argTypes:
    - struct cil_selinuxuser**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2422
      start: 2413
    functionDepth: 1
    functionLinenumber: 2413
    functionLinenumberEnd: 2422
    functionName: cil_selinuxuser_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_selinuxuser_init(struct cil_selinuxuser **selinuxuser)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - roletype
    argTypes:
    - struct cil_roletype**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2432
      start: 2424
    functionDepth: 1
    functionLinenumber: 2424
    functionLinenumberEnd: 2432
    functionName: cil_roletype_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_roletype_init(struct cil_roletype **roletype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2436,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - attr
    argTypes:
    - struct cil_roleattribute**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2442
      start: 2434
    functionDepth: 1
    functionLinenumber: 2434
    functionLinenumberEnd: 2442
    functionName: cil_roleattribute_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    linkageType: ''
    returnType: void
    signature: void cil_roleattribute_init(struct cil_roleattribute **attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - attrset
    argTypes:
    - struct cil_roleattributeset**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2452
      start: 2444
    functionDepth: 1
    functionLinenumber: 2444
    functionLinenumberEnd: 2452
    functionName: cil_roleattributeset_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_roleattributeset_init(struct cil_roleattributeset **attrset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2456,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - attr
    argTypes:
    - struct cil_typeattribute**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2464
      start: 2454
    functionDepth: 1
    functionLinenumber: 2454
    functionLinenumberEnd: 2464
    functionName: cil_typeattribute_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    linkageType: ''
    returnType: void
    signature: void cil_typeattribute_init(struct cil_typeattribute **attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - attrset
    argTypes:
    - struct cil_typeattributeset**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2474
      start: 2466
    functionDepth: 1
    functionLinenumber: 2466
    functionLinenumberEnd: 2474
    functionName: cil_typeattributeset_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_typeattributeset_init(struct cil_typeattributeset **attrset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - expandattr
    argTypes:
    - struct cil_expandtypeattribute**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2483
      start: 2476
    functionDepth: 1
    functionLinenumber: 2476
    functionLinenumberEnd: 2483
    functionName: cil_expandtypeattribute_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_expandtypeattribute_init(struct cil_expandtypeattribute **expandattr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2487,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - alias
    argTypes:
    - struct cil_alias**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2492
      start: 2485
    functionDepth: 1
    functionLinenumber: 2485
    functionLinenumberEnd: 2492
    functionName: cil_alias_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    linkageType: ''
    returnType: void
    signature: void cil_alias_init(struct cil_alias **alias)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - aliasactual
    argTypes:
    - struct cil_aliasactual**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2502
      start: 2494
    functionDepth: 1
    functionLinenumber: 2494
    functionLinenumberEnd: 2502
    functionName: cil_aliasactual_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_aliasactual_init(struct cil_aliasactual **aliasactual)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - typeperm
    argTypes:
    - struct cil_typepermissive**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2510
      start: 2504
    functionDepth: 1
    functionLinenumber: 2504
    functionLinenumberEnd: 2510
    functionName: cil_typepermissive_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_typepermissive_init(struct cil_typepermissive **typeperm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - typeperm
    argTypes:
    - struct cil_typeneveraudit**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2518
      start: 2512
    functionDepth: 1
    functionLinenumber: 2512
    functionLinenumberEnd: 2518
    functionName: cil_typeneveraudit_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_typeneveraudit_init(struct cil_typeneveraudit **typeperm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - nametypetrans
    argTypes:
    - struct cil_nametypetransition**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2534
      start: 2520
    functionDepth: 1
    functionLinenumber: 2520
    functionLinenumberEnd: 2534
    functionName: cil_nametypetransition_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_nametypetransition_init(struct cil_nametypetransition **nametypetrans)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - rangetrans
    argTypes:
    - struct cil_rangetransition**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2548
      start: 2536
    functionDepth: 1
    functionLinenumber: 2536
    functionLinenumberEnd: 2548
    functionName: cil_rangetransition_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_rangetransition_init(struct cil_rangetransition **rangetrans)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2552,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cilbool
    argTypes:
    - struct cil_bool**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2556
      start: 2550
    functionDepth: 1
    functionLinenumber: 2550
    functionLinenumberEnd: 2556
    functionName: cil_bool_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    linkageType: ''
    returnType: void
    signature: void cil_bool_init(struct cil_bool **cilbool)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2560,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ciltun
    argTypes:
    - struct cil_tunable**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2564
      start: 2558
    functionDepth: 1
    functionLinenumber: 2558
    functionLinenumberEnd: 2564
    functionName: cil_tunable_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    linkageType: ''
    returnType: void
    signature: void cil_tunable_init(struct cil_tunable **ciltun)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2568,1
    - Dst: cil_symtab_array_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cb
    argTypes:
    - struct cil_condblock**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2573
      start: 2566
    functionDepth: 2
    functionLinenumber: 2566
    functionLinenumberEnd: 2573
    functionName: cil_condblock_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - cil_symtab_array_init
    linkageType: ''
    returnType: void
    signature: void cil_condblock_init(struct cil_condblock **cb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bif
    argTypes:
    - struct cil_booleanif**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2581
      start: 2575
    functionDepth: 1
    functionLinenumber: 2575
    functionLinenumberEnd: 2581
    functionName: cil_boolif_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 16
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_boolif_init(struct cil_booleanif **bif)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tif
    argTypes:
    - struct cil_tunableif**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2589
      start: 2583
    functionDepth: 1
    functionLinenumber: 2583
    functionLinenumberEnd: 2589
    functionName: cil_tunif_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_tunif_init(struct cil_tunableif **tif)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2593,1
    - Dst: memset
      Src: /src/selinux/libsepol/cil/src/cil.c:2601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - avrule
    argTypes:
    - struct cil_avrule**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2602
      start: 2591
    functionDepth: 1
    functionLinenumber: 2591
    functionLinenumberEnd: 2602
    functionName: cil_avrule_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 4
    functionsReached:
    - cil_malloc
    - memset
    linkageType: ''
    returnType: void
    signature: void cil_avrule_init(struct cil_avrule **avrule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2606,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - permx
    argTypes:
    - struct cil_permissionx**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2614
      start: 2604
    functionDepth: 1
    functionLinenumber: 2604
    functionLinenumberEnd: 2614
    functionName: cil_permissionx_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    linkageType: ''
    returnType: void
    signature: void cil_permissionx_init(struct cil_permissionx **permx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct cil_deny_rule**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2625
      start: 2616
    functionDepth: 1
    functionLinenumber: 2616
    functionLinenumberEnd: 2625
    functionName: cil_deny_rule_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_deny_rule_init(struct cil_deny_rule **rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - type_rule
    argTypes:
    - struct cil_type_rule**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2640
      start: 2627
    functionDepth: 1
    functionLinenumber: 2627
    functionLinenumberEnd: 2640
    functionName: cil_type_rule_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 1
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_type_rule_init(struct cil_type_rule **type_rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - role_trans
    argTypes:
    - struct cil_roletransition**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2654
      start: 2642
    functionDepth: 1
    functionLinenumber: 2642
    functionLinenumberEnd: 2654
    functionName: cil_roletransition_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_roletransition_init(struct cil_roletransition **role_trans)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - roleallow
    argTypes:
    - struct cil_roleallow**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2664
      start: 2656
    functionDepth: 1
    functionLinenumber: 2656
    functionLinenumberEnd: 2664
    functionName: cil_roleallow_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_roleallow_init(struct cil_roleallow **roleallow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2668,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - catset
    argTypes:
    - struct cil_catset**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2672
      start: 2666
    functionDepth: 1
    functionLinenumber: 2666
    functionLinenumberEnd: 2672
    functionName: cil_catset_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    linkageType: ''
    returnType: void
    signature: void cil_catset_init(struct cil_catset **catset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - senscat
    argTypes:
    - struct cil_senscat**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2681
      start: 2674
    functionDepth: 1
    functionLinenumber: 2674
    functionLinenumberEnd: 2681
    functionName: cil_senscat_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 2
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_senscat_init(struct cil_senscat **senscat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cats
    argTypes:
    - struct cil_cats**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 2683
    functionDepth: 1
    functionLinenumber: 2683
    functionLinenumberEnd: 2690
    functionName: cil_cats_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_cats_init(struct cil_cats **cats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - filecon
    argTypes:
    - struct cil_filecon**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2700
      start: 2692
    functionDepth: 1
    functionLinenumber: 2692
    functionLinenumberEnd: 2700
    functionName: cil_filecon_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 9
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_filecon_init(struct cil_filecon **filecon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ibpkeycon
    argTypes:
    - struct cil_ibpkeycon**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2711
      start: 2702
    functionDepth: 1
    functionLinenumber: 2702
    functionLinenumberEnd: 2711
    functionName: cil_ibpkeycon_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_ibpkeycon_init(struct cil_ibpkeycon **ibpkeycon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - portcon
    argTypes:
    - struct cil_portcon**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2721
      start: 2713
    functionDepth: 1
    functionLinenumber: 2713
    functionLinenumberEnd: 2721
    functionName: cil_portcon_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 5
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_portcon_init(struct cil_portcon **portcon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - nodecon
    argTypes:
    - struct cil_nodecon**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2733
      start: 2723
    functionDepth: 1
    functionLinenumber: 2723
    functionLinenumberEnd: 2733
    functionName: cil_nodecon_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 15
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_nodecon_init(struct cil_nodecon **nodecon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - genfscon
    argTypes:
    - struct cil_genfscon**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2744
      start: 2735
    functionDepth: 1
    functionLinenumber: 2735
    functionLinenumberEnd: 2744
    functionName: cil_genfscon_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 5
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_genfscon_init(struct cil_genfscon **genfscon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pirqcon
    argTypes:
    - struct cil_pirqcon**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2753
      start: 2746
    functionDepth: 1
    functionLinenumber: 2746
    functionLinenumberEnd: 2753
    functionName: cil_pirqcon_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_pirqcon_init(struct cil_pirqcon **pirqcon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - iomemcon
    argTypes:
    - struct cil_iomemcon**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2763
      start: 2755
    functionDepth: 1
    functionLinenumber: 2755
    functionLinenumberEnd: 2763
    functionName: cil_iomemcon_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_iomemcon_init(struct cil_iomemcon **iomemcon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ioportcon
    argTypes:
    - struct cil_ioportcon**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2771
      start: 2765
    functionDepth: 1
    functionLinenumber: 2765
    functionLinenumberEnd: 2771
    functionName: cil_ioportcon_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_ioportcon_init(struct cil_ioportcon **ioportcon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pcidevicecon
    argTypes:
    - struct cil_pcidevicecon**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2780
      start: 2773
    functionDepth: 1
    functionLinenumber: 2773
    functionLinenumberEnd: 2780
    functionName: cil_pcidevicecon_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_pcidevicecon_init(struct cil_pcidevicecon **pcidevicecon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dtcon
    argTypes:
    - struct cil_devicetreecon**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2789
      start: 2782
    functionDepth: 1
    functionLinenumber: 2782
    functionLinenumberEnd: 2789
    functionName: cil_devicetreecon_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_devicetreecon_init(struct cil_devicetreecon **dtcon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - fsuse
    argTypes:
    - struct cil_fsuse**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2799
      start: 2791
    functionDepth: 1
    functionLinenumber: 2791
    functionLinenumberEnd: 2799
    functionName: cil_fsuse_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 5
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_fsuse_init(struct cil_fsuse **fsuse)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - constrain
    argTypes:
    - struct cil_constrain**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2808
      start: 2801
    functionDepth: 1
    functionLinenumber: 2801
    functionLinenumberEnd: 2808
    functionName: cil_constrain_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 85
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_constrain_init(struct cil_constrain **constrain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - validtrans
    argTypes:
    - struct cil_validatetrans**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2818
      start: 2810
    functionDepth: 1
    functionLinenumber: 2810
    functionLinenumberEnd: 2818
    functionName: cil_validatetrans_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_validatetrans_init(struct cil_validatetrans **validtrans)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2822,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2824,1
    - Dst: memset
      Src: /src/selinux/libsepol/cil/src/cil.c:2825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ipaddr
    argTypes:
    - struct cil_ipaddr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2826
      start: 2820
    functionDepth: 1
    functionLinenumber: 2820
    functionLinenumberEnd: 2826
    functionName: cil_ipaddr_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 14
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    - memset
    linkageType: ''
    returnType: void
    signature: void cil_ipaddr_init(struct cil_ipaddr **ipaddr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2830,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - perm
    argTypes:
    - struct cil_perm**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2835
      start: 2828
    functionDepth: 1
    functionLinenumber: 2828
    functionLinenumberEnd: 2835
    functionName: cil_perm_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    linkageType: ''
    returnType: void
    signature: void cil_perm_init(struct cil_perm **perm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2839,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cp
    argTypes:
    - struct cil_classpermission**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2843
      start: 2837
    functionDepth: 1
    functionLinenumber: 2837
    functionLinenumberEnd: 2843
    functionName: cil_classpermission_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    linkageType: ''
    returnType: void
    signature: void cil_classpermission_init(struct cil_classpermission **cp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cps
    argTypes:
    - struct cil_classpermissionset**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2852
      start: 2845
    functionDepth: 1
    functionLinenumber: 2845
    functionLinenumberEnd: 2852
    functionName: cil_classpermissionset_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_classpermissionset_init(struct cil_classpermissionset **cps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cp_set
    argTypes:
    - struct cil_classperms_set**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2859
      start: 2854
    functionDepth: 1
    functionLinenumber: 2854
    functionLinenumberEnd: 2859
    functionName: cil_classperms_set_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_classperms_set_init(struct cil_classperms_set **cp_set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - cp
    argTypes:
    - struct cil_classperms**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2868
      start: 2861
    functionDepth: 1
    functionLinenumber: 2861
    functionLinenumberEnd: 2868
    functionName: cil_classperms_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_classperms_init(struct cil_classperms **cp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - mapping
    argTypes:
    - struct cil_classmapping**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2879
      start: 2870
    functionDepth: 1
    functionLinenumber: 2870
    functionLinenumberEnd: 2879
    functionName: cil_classmapping_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_classmapping_init(struct cil_classmapping **mapping)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2883,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - user
    argTypes:
    - struct cil_user**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2891
      start: 2881
    functionDepth: 1
    functionLinenumber: 2881
    functionLinenumberEnd: 2891
    functionName: cil_user_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    linkageType: ''
    returnType: void
    signature: void cil_user_init(struct cil_user **user)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2895,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - attr
    argTypes:
    - struct cil_userattribute**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2901
      start: 2893
    functionDepth: 1
    functionLinenumber: 2893
    functionLinenumberEnd: 2901
    functionName: cil_userattribute_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    linkageType: ''
    returnType: void
    signature: void cil_userattribute_init(struct cil_userattribute **attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2905,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - attrset
    argTypes:
    - struct cil_userattributeset**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2911
      start: 2903
    functionDepth: 1
    functionLinenumber: 2903
    functionLinenumberEnd: 2911
    functionName: cil_userattributeset_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_userattributeset_init(struct cil_userattributeset **attrset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - usrlvl
    argTypes:
    - struct cil_userlevel**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2921
      start: 2913
    functionDepth: 1
    functionLinenumber: 2913
    functionLinenumberEnd: 2921
    functionName: cil_userlevel_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_userlevel_init(struct cil_userlevel **usrlvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - userrange
    argTypes:
    - struct cil_userrange**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2931
      start: 2923
    functionDepth: 1
    functionLinenumber: 2923
    functionLinenumberEnd: 2931
    functionName: cil_userrange_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_userrange_init(struct cil_userrange **userrange)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2935,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - role
    argTypes:
    - struct cil_role**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2941
      start: 2933
    functionDepth: 1
    functionLinenumber: 2933
    functionLinenumberEnd: 2941
    functionName: cil_role_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    linkageType: ''
    returnType: void
    signature: void cil_role_init(struct cil_role **role)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2945,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - struct cil_type**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2950
      start: 2943
    functionDepth: 1
    functionLinenumber: 2943
    functionLinenumberEnd: 2950
    functionName: cil_type_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 1
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    linkageType: ''
    returnType: void
    signature: void cil_type_init(struct cil_type **type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2954,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cat
    argTypes:
    - struct cil_cat**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2959
      start: 2952
    functionDepth: 1
    functionLinenumber: 2952
    functionLinenumberEnd: 2959
    functionName: cil_cat_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    linkageType: ''
    returnType: void
    signature: void cil_cat_init(struct cil_cat **cat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct cil_args**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2968
      start: 2961
    functionDepth: 1
    functionLinenumber: 2961
    functionLinenumberEnd: 2968
    functionName: cil_args_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_args_init(struct cil_args **args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - call
    argTypes:
    - struct cil_call**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2979
      start: 2970
    functionDepth: 1
    functionLinenumber: 2970
    functionLinenumberEnd: 2979
    functionName: cil_call_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_call_init(struct cil_call **call)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2983,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - optional
    argTypes:
    - struct cil_optional**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2985
      start: 2981
    functionDepth: 1
    functionLinenumber: 2981
    functionLinenumberEnd: 2985
    functionName: cil_optional_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 1
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    linkageType: ''
    returnType: void
    signature: void cil_optional_init(struct cil_optional **optional)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - param
    argTypes:
    - struct cil_param**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2993
      start: 2987
    functionDepth: 1
    functionLinenumber: 2987
    functionLinenumberEnd: 2993
    functionName: cil_param_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_param_init(struct cil_param **param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:2997,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:2999,1
    - Dst: cil_symtab_array_init
      Src: /src/selinux/libsepol/cil/src/cil.c:3000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - macro
    argTypes:
    - struct cil_macro**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3003
      start: 2995
    functionDepth: 2
    functionLinenumber: 2995
    functionLinenumberEnd: 3003
    functionName: cil_macro_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 2
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    - cil_symtab_array_init
    linkageType: ''
    returnType: void
    signature: void cil_macro_init(struct cil_macro **macro)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:3007,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil.c:3009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - policycap
    argTypes:
    - struct cil_policycap**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3010
      start: 3005
    functionDepth: 1
    functionLinenumber: 3005
    functionLinenumberEnd: 3010
    functionName: cil_policycap_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - cil_symtab_datum_init
    linkageType: ''
    returnType: void
    signature: void cil_policycap_init(struct cil_policycap **policycap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:3014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - bounds
    argTypes:
    - struct cil_bounds**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3020
      start: 3012
    functionDepth: 1
    functionLinenumber: 3012
    functionLinenumberEnd: 3020
    functionName: cil_bounds_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_bounds_init(struct cil_bounds **bounds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:3024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - def
    argTypes:
    - struct cil_default**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3029
      start: 3022
    functionDepth: 1
    functionLinenumber: 3022
    functionLinenumberEnd: 3029
    functionName: cil_default_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_default_init(struct cil_default **def)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:3033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - def
    argTypes:
    - struct cil_defaultrange**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3037
      start: 3031
    functionDepth: 1
    functionLinenumber: 3031
    functionLinenumberEnd: 3037
    functionName: cil_defaultrange_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_defaultrange_init(struct cil_defaultrange **def)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:3041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unk
    argTypes:
    - struct cil_handleunknown**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3042
      start: 3039
    functionDepth: 1
    functionLinenumber: 3039
    functionLinenumberEnd: 3042
    functionName: cil_handleunknown_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_handleunknown_init(struct cil_handleunknown **unk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:3046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mls
    argTypes:
    - struct cil_mls**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3048
      start: 3044
    functionDepth: 1
    functionLinenumber: 3044
    functionLinenumberEnd: 3048
    functionName: cil_mls_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_mls_init(struct cil_mls **mls)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil.c:3052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct cil_src_info**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3056
      start: 3050
    functionDepth: 1
    functionLinenumber: 3050
    functionLinenumberEnd: 3056
    functionName: cil_src_info_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_src_info_init(struct cil_src_info **info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - stack
    - ','
    - start
    - ','
    - pos
    - ','
    - item
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: cil_stack_for_each_starting_at
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_stack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cil_stack_for_each_starting_at(stack, start, pos, item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - stack
    - ','
    - pos
    - ','
    - item
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: cil_stack_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_stack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: cil_stack_for_each(stack, pos, item)
  - BBCount: 22
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 37
    argCount: 2
    argNames:
    - name
    - flavor
    argTypes:
    - char*
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 95
    functionName: __cil_is_reserved_name
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int __cil_is_reserved_name(const char *name, enum cil_flavor flavor)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:105,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:109,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:111,1
    - Dst: isalpha
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:118,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:119,1
    - Dst: isalnum
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:126,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:128,1
    - Dst: isalnum
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:136,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:139,1
    - Dst: __cil_is_reserved_name
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:147,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:148,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:155,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 45
    argCount: 3
    argNames:
    - db
    - name
    - flavor
    argTypes:
    - struct cil_db*
    - char*
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 157
    functionName: cil_verify_name
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 0
    functionsReached:
    - strlen
    - cil_log
    - isalpha
    - isalnum
    - __cil_is_reserved_name
    linkageType: ''
    returnType: int
    signature: "int cil_verify_name(const struct cil_db *db, const char *name,\n\t\t
      \   enum cil_flavor flavor)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:204,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 40
    argCount: 3
    argNames:
    - parse_current
    - s
    - len
    argTypes:
    - struct cil_tree_node*
    - enum cil_syntax[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 206
    functionName: __cil_verify_syntax
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 0
    functionsReached:
    - cil_log
    linkageType: ''
    returnType: int
    signature: "int __cil_verify_syntax(struct cil_tree_node *parse_current,\n\t\t\tenum
      cil_syntax s[], size_t len)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:230,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:238,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:248,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:262,1
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:268,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 3
    argNames:
    - current
    - op
    - expr_flavor
    argTypes:
    - struct cil_tree_node*
    - enum cil_flavor
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 277
    functionName: cil_verify_expr_syntax
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 0
    functionsReached:
    - cil_log
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_verify_expr_syntax(struct cil_tree_node *current, enum cil_flavor
      op,\n\t\t\t   enum cil_flavor expr_flavor)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:287,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:294,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:302,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:307,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:312,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:316,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:322,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:328,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:332,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:339,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:347,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:353,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 82
    argCount: 4
    argNames:
    - l_flavor
    - r_flavor
    - op
    - expr_flavor
    argTypes:
    - enum cil_flavor
    - enum cil_flavor
    - enum cil_flavor
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 364
    functionName: cil_verify_constraint_leaf_expr_syntax
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 0
    functionsReached:
    - cil_log
    linkageType: ''
    returnType: int
    signature: "int cil_verify_constraint_leaf_expr_syntax(enum cil_flavor l_flavor,\n\t\t\t\t\t
      \  enum cil_flavor r_flavor,\n\t\t\t\t\t   enum cil_flavor op,\n\t\t\t\t\t   enum
      cil_flavor expr_flavor)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:396,1
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:402,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:404,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - current
    - op
    argTypes:
    - struct cil_tree_node*
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 412
    functionName: cil_verify_constraint_expr_syntax
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 0
    functionsReached:
    - cil_log
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_verify_constraint_expr_syntax(struct cil_tree_node *current,\n\t\t\t\t
      \     enum cil_flavor op)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:424,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:433,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:440,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:446,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - current
    argTypes:
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 414
    functionDepth: 4
    functionLinenumber: 414
    functionLinenumberEnd: 454
    functionName: cil_verify_conditional_blocks
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 0
    functionsReached:
    - cil_tree_log
    linkageType: ''
    returnType: int
    signature: int cil_verify_conditional_blocks(struct cil_tree_node *current)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:467,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:469,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:472,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - macro
    - node
    - name
    argTypes:
    - struct cil_macro*
    - struct cil_tree_node*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 480
    functionName: cil_verify_decl_does_not_shadow_macro_parameter
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 0
    functionsReached:
    - cil_log
    - cil_node_to_string
    linkageType: ''
    returnType: int
    signature: "int cil_verify_decl_does_not_shadow_macro_parameter(struct cil_macro
      *macro,\n\t\t\t\t\t\t    struct cil_tree_node *node,\n\t\t\t\t\t\t    const
      char *name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:467,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:469,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:472,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:474,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 477
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 18
    functionsReached:
    - cil_log
    - cil_node_to_string
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(item, param_list)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_verify_no_self_reference
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:499,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:499,1
    - Dst: __verify_no_self_reference_in_expr
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:502,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - expr
    - stack
    argTypes:
    - struct cil_list*
    - struct cil_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 511
    functionName: __verify_no_self_reference_in_expr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - __verify_no_self_reference_in_expr
    - FLAVOR
    - cil_verify_no_self_reference
    linkageType: ''
    returnType: int
    signature: "int __verify_no_self_reference_in_expr(struct cil_list *expr,\n\t\t\t\t\t
      \     struct cil_stack *stack)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_verify_no_self_reference
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:499,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:499,1
    - Dst: __verify_no_self_reference_in_expr
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:502,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 508
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 18
    functionsReached:
    - __verify_no_self_reference_in_expr
    - FLAVOR
    - cil_verify_no_self_reference
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(item, expr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:524,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:524,1
    - Dst: cil_stack_push
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:535,1
    - Dst: __verify_no_self_reference_in_expr
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:536,1
    - Dst: cil_stack_pop
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:537,1
    - Dst: cil_stack_push
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:543,1
    - Dst: __verify_no_self_reference_in_expr
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:544,1
    - Dst: cil_stack_pop
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:545,1
    - Dst: cil_stack_push
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:551,1
    - Dst: __verify_no_self_reference_in_expr
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:552,1
    - Dst: cil_stack_pop
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:553,1
    - Dst: cil_stack_push
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:558,1
    - Dst: __verify_no_self_reference_in_expr
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:559,1
    - Dst: cil_stack_pop
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:561,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 3
    argNames:
    - flavor
    - datum
    - stack
    argTypes:
    - enum cil_flavor
    - struct cil_symtab_datum*
    - struct cil_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 513
    functionDepth: 4
    functionLinenumber: 513
    functionLinenumberEnd: 569
    functionName: cil_verify_no_self_reference
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 2
    functionsReached:
    - __verify_no_self_reference_in_expr
    - cil_stack_pop
    - cil_tree_log
    - cil_stack_push
    - NODE
    linkageType: ''
    returnType: int
    signature: "int cil_verify_no_self_reference(enum cil_flavor flavor,\n\t\t\t\t\tstruct
      cil_symtab_datum *datum,\n\t\t\t\t\tstruct cil_stack *stack)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:524,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 521
    functionDepth: 4
    functionLinenumber: 521
    functionLinenumberEnd: 529
    functionName: cil_stack_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 0
    functionsReached:
    - NODE
    - cil_tree_log
    linkageType: ''
    returnType: void
    signature: void cil_stack_for_each(stack, i, item)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:595,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 597
    functionName: __cil_verify_ranges
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 0
    functionsReached:
    - cil_log
    linkageType: ''
    returnType: int
    signature: int __cil_verify_ranges(struct cil_list *list)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 590
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, list)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:620,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:655,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:656,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:657,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:662,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:664,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 55
    argCount: 2
    argNames:
    - complete
    - ordered_lists
    argTypes:
    - struct cil_list*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 599
    functionDepth: 4
    functionLinenumber: 599
    functionLinenumberEnd: 678
    functionName: cil_verify_completed_ordered_list
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 0
    functionsReached:
    - cil_log
    - DATUM
    - cil_list_for_each
    - cil_tree_log
    linkageType: ''
    returnType: int
    signature: "int cil_verify_completed_ordered_list(struct cil_list *complete,\n\t\t\t\t
      \     struct cil_list *ordered_lists)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:620,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 652
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 20
    functionsReached:
    - cil_list_for_each
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr_list, ordered_lists)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:662,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:664,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 659
    functionDepth: 4
    functionLinenumber: 659
    functionLinenumberEnd: 668
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 21
    functionsReached:
    - cil_list_for_each
    - cil_tree_log
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr_list, ordered_lists)
  - BBCount: 185
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:695,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:703,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:712,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:721,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:740,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:752,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:762,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:776,1
    - Dst: __cil_is_cat_in_cats
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:788,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:789,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:809,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:815,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:818,1
    - Dst: __cil_is_cat_in_cats
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:819,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:826,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:844,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:861,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:881,1
    - Dst: __cil_verify_cat_in_cats
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:882,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:891,1
    - Dst: __cil_verify_levelrange_sensitivity
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:900,1
    - Dst: __cil_verify_levelrange_cats
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:906,1
    - Dst: __cil_verify_cats_associated_with_sens
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:911,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:914,1
    - Dst: __cil_verify_cats_associated_with_sens
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:919,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:922,1
    - Dst: __cil_verify_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:939,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:946,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:956,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:960,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:971,1
    - Dst: __builtin_smul_overflow
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:978,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:979,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:993,1
    - Dst: __cil_verify_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1005,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1013,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1028,1
    - Dst: __builtin_smul_overflow
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1034,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1035,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1048,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1063,1
    - Dst: __builtin_smul_overflow
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1069,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1070,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1083,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1102,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1103,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1109,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1116,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1117,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1123,1
    - Dst: __cil_verify_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1131,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1144,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1156,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1167,1
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1177,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1184,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1253,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1257,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1268,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1272,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1334,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1336,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1341,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1362,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1373,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1377,1
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1391,1
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1399,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1405,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1406,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1413,1
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1426,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1434,1
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1446,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1455,1
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1472,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1474,1
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1493,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1502,1
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1514,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1522,1
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1534,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1543,1
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1555,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1564,1
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1576,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1585,1
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1597,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1606,1
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1619,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1628,1
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1641,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1650,1
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1662,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1671,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1693,1
    - Dst: cil_expand_class
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1699,1
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1703,1
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1706,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1712,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1726,1
    - Dst: __cil_verify_permissionx
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1735,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1763,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1775,1
    - Dst: sepol_polcap_getnum
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1784,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1792,1
    - Dst: __cil_verify_user_post_eval
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1837,1
    - Dst: __cil_verify_role
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1844,1
    - Dst: __cil_verify_type
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1847,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1851,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1863,1
    - Dst: __cil_verify_booleanif
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1880,1
    - Dst: __cil_verify_named_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1884,1
    - Dst: __cil_verify_class
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1887,1
    - Dst: __cil_verify_policycap
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1890,1
    - Dst: __cil_verify_named_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1901,1
    - Dst: __cil_verify_netifcon
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1904,1
    - Dst: __cil_verify_genfscon
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1907,1
    - Dst: __cil_verify_filecon
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1910,1
    - Dst: __cil_verify_nodecon
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1913,1
    - Dst: __cil_verify_ibpkeycon
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1916,1
    - Dst: __cil_verify_ibendportcon
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1919,1
    - Dst: __cil_verify_portcon
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1922,1
    - Dst: __cil_verify_pirqcon
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1925,1
    - Dst: __cil_verify_iomemcon
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1928,1
    - Dst: __cil_verify_ioportcon
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1931,1
    - Dst: __cil_verify_pcidevicecon
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1934,1
    - Dst: __cil_verify_devicetreecon
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1937,1
    - Dst: __cil_verify_fsuse
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1940,1
    - Dst: __cil_verify_avrulex
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1943,1
    - Dst: __cil_verify_permissionx
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1946,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1970,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1987,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1988,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1990,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1990,1
    - Dst: __cil_verify_classperms
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1994,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1997,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1998,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2000,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2000,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2019,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2019,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2021,1
    - Dst: __cil_verify_perms
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2028,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2035,1
    - Dst: __cil_verify_map_perm
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2036,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2049,1
    - Dst: cil_symtab_map
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2050,1
    - Dst: cil_symtab_map
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2053,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2060,1
    - Dst: __cil_verify_map_perm
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2061,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2065,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2072,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2074,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2075,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2077,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2082,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2083,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2085,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2091,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2092,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2094,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2117,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2117,1
    - Dst: __builtin_umul_overflow
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2124,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2125,1
    - Dst: __cil_verify_perms
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2136,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2145,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2146,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2148,1
    - Dst: __cil_verify_classperms
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2150,1
    - Dst: __cil_verify_classperms
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2169,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2172,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2175,1
    - Dst: __cil_verify_classperms
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2194,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2197,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2198,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2200,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2200,1
    - Dst: cil_symtab_map
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2216,1
    - Dst: __cil_verify_user_pre_eval
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2243,1
    - Dst: __cil_verify_map_class
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2246,1
    - Dst: __cil_verify_classpermission
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2249,1
    - Dst: cil_stack_init
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2256,1
    - Dst: cil_verify_no_self_reference
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2257,1
    - Dst: cil_stack_destroy
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2259,1
    CyclomaticComplexity: 266
    EdgeCount: 266
    ICount: 961
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2268
      start: 684
    functionDepth: 7
    functionLinenumber: 684
    functionLinenumberEnd: 2268
    functionName: __cil_verify_ordered_node_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 0
    functionsReached:
    - cil_list_for_each
    - __cil_verify_role
    - __cil_verify_pcidevicecon
    - __cil_verify_type
    - __cil_verify_map_perm
    - strcmp
    - cil_list_destroy
    - cil_log
    - __cil_verify_filecon
    - sepol_polcap_getnum
    - __cil_verify_levelrange_sensitivity
    - __cil_verify_pirqcon
    - __cil_verify_fsuse
    - FLAVOR
    - cil_verify_no_self_reference
    - cil_list_init
    - __cil_verify_user_pre_eval
    - __cil_verify_genfscon
    - NODE
    - __cil_verify_named_context
    - __cil_verify_named_levelrange
    - cil_symtab_map
    - cil_node_to_string
    - __cil_verify_class
    - __cil_verify_policycap
    - __cil_verify_cats_associated_with_sens
    - __cil_verify_devicetreecon
    - __cil_verify_iomemcon
    - __cil_verify_classpermission
    - __builtin_smul_overflow
    - __cil_is_cat_in_cats
    - __cil_verify_permissionx
    - __cil_verify_classperms
    - __cil_verify_portcon
    - __cil_verify_map_class
    - __cil_verify_ibendportcon
    - cil_list_append
    - __cil_verify_avrulex
    - ebitmap_get_bit
    - __cil_verify_ibpkeycon
    - __cil_verify_levelrange_cats
    - __cil_verify_ioportcon
    - __builtin_umul_overflow
    - __cil_verify_booleanif
    - __cil_verify_netifcon
    - cil_stack_init
    - __cil_verify_cat_in_cats
    - cil_symtab_get_datum
    - __cil_verify_nodecon
    - cil_tree_walk
    - cil_stack_destroy
    - __cil_verify_perms
    - cil_tree_log
    - cil_expand_class
    - DATUM
    - __cil_verify_levelrange
    - __cil_verify_context
    - __cil_verify_user_post_eval
    linkageType: ''
    returnType: int
    signature: "int __cil_verify_ordered_node_helper(struct cil_tree_node *node,\n\t\t\t\t
      \    __attribute__((unused)) uint32_t *finished,\n\t\t\t\t     void *extra_args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - current
    - flavor
    argTypes:
    - struct cil_tree_node*
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 733
    functionDepth: 7
    functionLinenumber: 733
    functionLinenumberEnd: 744
    functionName: __cil_verify_ordered
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 0
    functionsReached:
    - cil_tree_walk
    linkageType: ''
    returnType: int
    signature: int __cil_verify_ordered(struct cil_tree_node *current, enum cil_flavor
      flavor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:752,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:762,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - sids
    argTypes:
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 746
    functionDepth: 4
    functionLinenumber: 746
    functionLinenumberEnd: 770
    functionName: __cil_verify_initsids
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 0
    functionsReached:
    - cil_log
    - cil_tree_log
    linkageType: ''
    returnType: int
    signature: int __cil_verify_initsids(struct cil_list *sids)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 757
    functionDepth: 4
    functionLinenumber: 757
    functionLinenumberEnd: 767
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 22
    functionsReached:
    - cil_tree_log
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i, sids)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:776,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cat
    - cats
    argTypes:
    - struct cil_cat*
    - struct cil_cats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 784
    functionName: __cil_is_cat_in_cats
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_list_for_each
    linkageType: ''
    returnType: int
    signature: int __cil_is_cat_in_cats(struct cil_cat *cat, struct cil_cats *cats)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __cil_is_cat_in_cats
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:788,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - cat
    - cats
    argTypes:
    - struct cil_cat*
    - struct cil_cats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 796
    functionName: __cil_verify_cat_in_cats
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_log
    - __cil_is_cat_in_cats
    linkageType: ''
    returnType: int
    signature: int __cil_verify_cat_in_cats(struct cil_cat *cat, struct cil_cats *cats)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:809,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:815,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:818,1
    - Dst: __cil_is_cat_in_cats
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:819,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:826,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - sens
    - cats
    argTypes:
    - struct cil_sens*
    - struct cil_cats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 798
    functionDepth: 1
    functionLinenumber: 798
    functionLinenumberEnd: 834
    functionName: __cil_verify_cats_associated_with_sens
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_log
    - cil_list_for_each
    - __cil_is_cat_in_cats
    linkageType: ''
    returnType: int
    signature: "int __cil_verify_cats_associated_with_sens(struct cil_sens *sens,\n\t\t\t\t\t\t
      \ struct cil_cats *cats)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:844,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:861,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - db
    - low
    - high
    argTypes:
    - struct cil_db*
    - struct cil_sens*
    - struct cil_sens*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 864
    functionName: __cil_verify_levelrange_sensitivity
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_log
    - cil_list_for_each
    linkageType: ''
    returnType: int
    signature: "int __cil_verify_levelrange_sensitivity(struct cil_db *db,\n\t\t\t\t\t
      \      struct cil_sens *low,\n\t\t\t\t\t       struct cil_sens *high)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:881,1
    - Dst: __cil_verify_cat_in_cats
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:882,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:891,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - low
    - high
    argTypes:
    - struct cil_cats*
    - struct cil_cats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 866
    functionDepth: 2
    functionLinenumber: 866
    functionLinenumberEnd: 894
    functionName: __cil_verify_levelrange_cats
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_log
    - cil_list_for_each
    - __cil_verify_cat_in_cats
    linkageType: ''
    returnType: int
    signature: "int __cil_verify_levelrange_cats(struct cil_cats *low,\n\t\t\t\t\tstruct
      cil_cats *high)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_levelrange_sensitivity
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:900,1
    - Dst: __cil_verify_levelrange_cats
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:906,1
    - Dst: __cil_verify_cats_associated_with_sens
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:911,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:914,1
    - Dst: __cil_verify_cats_associated_with_sens
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:919,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:922,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - db
    - lr
    argTypes:
    - struct cil_db*
    - struct cil_levelrange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 896
    functionDepth: 3
    functionLinenumber: 896
    functionLinenumberEnd: 931
    functionName: __cil_verify_levelrange
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_log
    - __cil_verify_cats_associated_with_sens
    - __cil_verify_levelrange_sensitivity
    - __cil_verify_levelrange_cats
    linkageType: ''
    returnType: int
    signature: int __cil_verify_levelrange(struct cil_db *db, struct cil_levelrange
      *lr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:939,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - db
    - node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 933
    functionDepth: 4
    functionLinenumber: 933
    functionLinenumberEnd: 948
    functionName: __cil_verify_named_levelrange
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_tree_log
    - __cil_verify_levelrange
    linkageType: ''
    returnType: int
    signature: "int __cil_verify_named_levelrange(struct cil_db *db,\n\t\t\t\t\t struct
      cil_tree_node *node)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:956,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:960,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:971,1
    - Dst: __builtin_smul_overflow
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:978,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:979,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:993,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 950
    functionDepth: 4
    functionLinenumber: 950
    functionLinenumberEnd: 995
    functionName: __cil_verify_user_pre_eval
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_log
    - cil_tree_log
    - __builtin_smul_overflow
    linkageType: ''
    returnType: int
    signature: int __cil_verify_user_pre_eval(struct cil_tree_node *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1005,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1013,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - db
    - node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 997
    functionDepth: 4
    functionLinenumber: 997
    functionLinenumberEnd: 1015
    functionName: __cil_verify_user_post_eval
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_tree_log
    - __cil_verify_levelrange
    linkageType: ''
    returnType: int
    signature: "int __cil_verify_user_post_eval(struct cil_db *db,\n\t\t\t\t       struct
      cil_tree_node *node)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1028,1
    - Dst: __builtin_smul_overflow
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1034,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1035,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1048,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1017
    functionDepth: 4
    functionLinenumber: 1017
    functionLinenumberEnd: 1050
    functionName: __cil_verify_role
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_log
    - cil_tree_log
    - __builtin_smul_overflow
    linkageType: ''
    returnType: int
    signature: int __cil_verify_role(struct cil_tree_node *node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1063,1
    - Dst: __builtin_smul_overflow
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1069,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1070,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1083,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1052
    functionDepth: 4
    functionLinenumber: 1052
    functionLinenumberEnd: 1085
    functionName: __cil_verify_type
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_log
    - cil_tree_log
    - __builtin_smul_overflow
    linkageType: ''
    returnType: int
    signature: int __cil_verify_type(struct cil_tree_node *node)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1102,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1103,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1109,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1116,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1117,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1123,1
    - Dst: __cil_verify_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1131,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1144,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1156,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1167,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    argCount: 2
    argNames:
    - db
    - ctx
    argTypes:
    - struct cil_db*
    - struct cil_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1087
    functionDepth: 4
    functionLinenumber: 1087
    functionLinenumberEnd: 1169
    functionName: __cil_verify_context
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_log
    - __cil_verify_levelrange
    - ebitmap_get_bit
    linkageType: ''
    returnType: int
    signature: int __cil_verify_context(struct cil_db *db, struct cil_context *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1177,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - db
    - node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1171
    functionDepth: 5
    functionLinenumber: 1171
    functionLinenumberEnd: 1186
    functionName: __cil_verify_named_context
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_tree_log
    - __cil_verify_context
    linkageType: ''
    returnType: int
    signature: "int __cil_verify_named_context(struct cil_db *db,\n\t\t\t\t      struct
      cil_tree_node *node)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1253,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1257,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1268,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1272,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1334,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1336,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1341,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1237
    functionDepth: 4
    functionLinenumber: 1237
    functionLinenumberEnd: 1352
    functionName: __cil_verify_booleanif_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 0
    functionsReached:
    - cil_node_to_string
    - cil_tree_log
    linkageType: ''
    returnType: int
    signature: "int __cil_verify_booleanif_helper(struct cil_tree_node *node,\n\t\t\t
      \     __attribute__((unused)) uint32_t *finished,\n\t\t\t      __attribute__((unused))
      void *extra_args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1362,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1373,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1377,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - node
    - symtab
    argTypes:
    - struct cil_tree_node*
    - struct cil_complex_symtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1354
    functionDepth: 7
    functionLinenumber: 1354
    functionLinenumberEnd: 1380
    functionName: __cil_verify_booleanif
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_tree_walk
    - cil_tree_log
    linkageType: ''
    returnType: int
    signature: "int __cil_verify_booleanif(struct cil_tree_node *node,\n\t\t\t\t  struct
      cil_complex_symtab *symtab)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1391,1
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1399,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1405,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1406,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1413,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - db
    - node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1382
    functionDepth: 5
    functionLinenumber: 1382
    functionLinenumberEnd: 1415
    functionName: __cil_verify_netifcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - strcmp
    - cil_tree_log
    - __cil_verify_context
    linkageType: ''
    returnType: int
    signature: int __cil_verify_netifcon(struct cil_db *db, struct cil_tree_node *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1426,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1434,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - db
    - node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1417
    functionDepth: 5
    functionLinenumber: 1417
    functionLinenumberEnd: 1436
    functionName: __cil_verify_ibendportcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_tree_log
    - __cil_verify_context
    linkageType: ''
    returnType: int
    signature: "int __cil_verify_ibendportcon(struct cil_db *db,\n\t\t\t\t     struct
      cil_tree_node *node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1446,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - db
    - node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1438
    functionDepth: 5
    functionLinenumber: 1438
    functionLinenumberEnd: 1457
    functionName: __cil_verify_genfscon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_tree_log
    - __cil_verify_context
    linkageType: ''
    returnType: int
    signature: int __cil_verify_genfscon(struct cil_db *db, struct cil_tree_node *node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1472,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1474,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - db
    - node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1459
    functionDepth: 5
    functionLinenumber: 1459
    functionLinenumberEnd: 1483
    functionName: __cil_verify_filecon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_tree_log
    - __cil_verify_context
    linkageType: ''
    returnType: int
    signature: int __cil_verify_filecon(struct cil_db *db, struct cil_tree_node *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1493,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1502,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - db
    - node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1485
    functionDepth: 5
    functionLinenumber: 1485
    functionLinenumberEnd: 1504
    functionName: __cil_verify_nodecon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_tree_log
    - __cil_verify_context
    linkageType: ''
    returnType: int
    signature: int __cil_verify_nodecon(struct cil_db *db, struct cil_tree_node *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1514,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1522,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - db
    - node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1506
    functionDepth: 5
    functionLinenumber: 1506
    functionLinenumberEnd: 1524
    functionName: __cil_verify_ibpkeycon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_tree_log
    - __cil_verify_context
    linkageType: ''
    returnType: int
    signature: int __cil_verify_ibpkeycon(struct cil_db *db, struct cil_tree_node
      *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1534,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1543,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - db
    - node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1545
      start: 1526
    functionDepth: 5
    functionLinenumber: 1526
    functionLinenumberEnd: 1545
    functionName: __cil_verify_portcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_tree_log
    - __cil_verify_context
    linkageType: ''
    returnType: int
    signature: int __cil_verify_portcon(struct cil_db *db, struct cil_tree_node *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1555,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1564,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - db
    - node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1547
    functionDepth: 5
    functionLinenumber: 1547
    functionLinenumberEnd: 1566
    functionName: __cil_verify_pirqcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_tree_log
    - __cil_verify_context
    linkageType: ''
    returnType: int
    signature: int __cil_verify_pirqcon(struct cil_db *db, struct cil_tree_node *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1576,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1585,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - db
    - node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1568
    functionDepth: 5
    functionLinenumber: 1568
    functionLinenumberEnd: 1587
    functionName: __cil_verify_iomemcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_tree_log
    - __cil_verify_context
    linkageType: ''
    returnType: int
    signature: int __cil_verify_iomemcon(struct cil_db *db, struct cil_tree_node *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1597,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1606,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - db
    - node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1589
    functionDepth: 5
    functionLinenumber: 1589
    functionLinenumberEnd: 1608
    functionName: __cil_verify_ioportcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_tree_log
    - __cil_verify_context
    linkageType: ''
    returnType: int
    signature: int __cil_verify_ioportcon(struct cil_db *db, struct cil_tree_node
      *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1619,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1628,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - db
    - node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1630
      start: 1610
    functionDepth: 5
    functionLinenumber: 1610
    functionLinenumberEnd: 1630
    functionName: __cil_verify_pcidevicecon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_tree_log
    - __cil_verify_context
    linkageType: ''
    returnType: int
    signature: "int __cil_verify_pcidevicecon(struct cil_db *db,\n\t\t\t\t     struct
      cil_tree_node *node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1641,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1650,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - db
    - node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1652
      start: 1632
    functionDepth: 5
    functionLinenumber: 1632
    functionLinenumberEnd: 1652
    functionName: __cil_verify_devicetreecon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_tree_log
    - __cil_verify_context
    linkageType: ''
    returnType: int
    signature: "int __cil_verify_devicetreecon(struct cil_db *db,\n\t\t\t\t      struct
      cil_tree_node *node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1662,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1671,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - db
    - node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1654
    functionDepth: 5
    functionLinenumber: 1654
    functionLinenumberEnd: 1673
    functionName: __cil_verify_fsuse
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_tree_log
    - __cil_verify_context
    linkageType: ''
    returnType: int
    signature: int __cil_verify_fsuse(struct cil_db *db, struct cil_tree_node *node)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1693,1
    - Dst: cil_expand_class
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1699,1
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1703,1
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1706,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1712,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1726,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - permx
    - node
    argTypes:
    - struct cil_permissionx*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1675
    functionDepth: 4
    functionLinenumber: 1675
    functionLinenumberEnd: 1730
    functionName: __cil_verify_permissionx
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_symtab_get_datum
    - cil_tree_log
    - cil_expand_class
    - cil_list_destroy
    linkageType: ''
    returnType: int
    signature: "int __cil_verify_permissionx(struct cil_permissionx *permx,\n\t\t\t\t
      \   struct cil_tree_node *node)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1703,1
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1706,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1712,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1720
      start: 1701
    functionDepth: 4
    functionLinenumber: 1701
    functionLinenumberEnd: 1720
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 26
    functionsReached:
    - cil_symtab_get_datum
    - cil_tree_log
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(item, classes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_permissionx
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1732
    functionDepth: 5
    functionLinenumber: 1732
    functionLinenumberEnd: 1736
    functionName: __cil_verify_avrulex
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - __cil_verify_permissionx
    linkageType: ''
    returnType: int
    signature: int __cil_verify_avrulex(struct cil_tree_node *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1763,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1775,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1738
    functionDepth: 4
    functionLinenumber: 1738
    functionLinenumberEnd: 1777
    functionName: __cil_verify_class
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_log
    - cil_tree_log
    linkageType: ''
    returnType: int
    signature: int __cil_verify_class(struct cil_tree_node *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_polcap_getnum
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1784,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1792,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1779
    functionDepth: 4
    functionLinenumber: 1779
    functionLinenumberEnd: 1795
    functionName: __cil_verify_policycap
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - sepol_polcap_getnum
    - cil_tree_log
    linkageType: ''
    returnType: int
    signature: int __cil_verify_policycap(struct cil_tree_node *node)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_user_post_eval
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1837,1
    - Dst: __cil_verify_role
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1844,1
    - Dst: __cil_verify_type
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1847,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1851,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1863,1
    - Dst: __cil_verify_booleanif
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1880,1
    - Dst: __cil_verify_named_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1884,1
    - Dst: __cil_verify_class
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1887,1
    - Dst: __cil_verify_policycap
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1890,1
    - Dst: __cil_verify_named_context
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1901,1
    - Dst: __cil_verify_netifcon
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1904,1
    - Dst: __cil_verify_genfscon
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1907,1
    - Dst: __cil_verify_filecon
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1910,1
    - Dst: __cil_verify_nodecon
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1913,1
    - Dst: __cil_verify_ibpkeycon
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1916,1
    - Dst: __cil_verify_ibendportcon
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1919,1
    - Dst: __cil_verify_portcon
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1922,1
    - Dst: __cil_verify_pirqcon
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1925,1
    - Dst: __cil_verify_iomemcon
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1928,1
    - Dst: __cil_verify_ioportcon
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1931,1
    - Dst: __cil_verify_pcidevicecon
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1934,1
    - Dst: __cil_verify_devicetreecon
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1937,1
    - Dst: __cil_verify_fsuse
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1940,1
    - Dst: __cil_verify_avrulex
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1943,1
    - Dst: __cil_verify_permissionx
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1946,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 149
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1797
    functionDepth: 8
    functionLinenumber: 1797
    functionLinenumberEnd: 1963
    functionName: __cil_verify_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 0
    functionsReached:
    - __cil_verify_role
    - __cil_verify_pcidevicecon
    - __cil_verify_type
    - __cil_verify_pirqcon
    - cil_log
    - __cil_verify_filecon
    - __cil_verify_fsuse
    - __cil_verify_genfscon
    - __cil_verify_named_context
    - __cil_verify_named_levelrange
    - __cil_verify_class
    - __cil_verify_policycap
    - __cil_verify_devicetreecon
    - __cil_verify_iomemcon
    - __cil_verify_permissionx
    - __cil_verify_portcon
    - __cil_verify_ibendportcon
    - __cil_verify_avrulex
    - __cil_verify_ioportcon
    - __cil_verify_netifcon
    - __cil_verify_booleanif
    - __cil_verify_nodecon
    - __cil_verify_ibpkeycon
    - __cil_verify_user_post_eval
    linkageType: ''
    returnType: int
    signature: "int __cil_verify_helper(struct cil_tree_node *node, uint32_t *finished,\n\t\t\tvoid
      *extra_args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1970,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1965
    functionDepth: 3
    functionLinenumber: 1965
    functionLinenumberEnd: 1973
    functionName: __add_perm_to_list
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 0
    functionsReached:
    - cil_list_append
    linkageType: ''
    returnType: int
    signature: "int __add_perm_to_list(__attribute__((unused)) hashtab_key_t k,\n\t\t\t
      \     hashtab_datum_t d, void *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1987,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1988,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1990,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1990,1
    - Dst: __cil_verify_classperms
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1994,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1997,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:1998,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2000,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2000,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - class
    - perm
    - orig
    - steps
    - limit
    argTypes:
    - struct cil_class*
    - struct cil_perm*
    - struct cil_symtab_datum*
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2008
      start: 1980
    functionDepth: 4
    functionLinenumber: 1980
    functionLinenumberEnd: 2008
    functionName: __cil_verify_map_perm
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - __cil_verify_classperms
    - DATUM
    - NODE
    - cil_tree_log
    linkageType: ''
    returnType: int
    signature: "int __cil_verify_map_perm(struct cil_class *class, struct cil_perm
      *perm,\n\t\t\t\t struct cil_symtab_datum *orig, unsigned steps,\n\t\t\t\t unsigned
      limit)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2019,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2019,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2021,1
    - Dst: __cil_verify_perms
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2028,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2035,1
    - Dst: __cil_verify_map_perm
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2036,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2049,1
    - Dst: cil_symtab_map
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2050,1
    - Dst: cil_symtab_map
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2053,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2060,1
    - Dst: __cil_verify_map_perm
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2061,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2065,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2072,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2074,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2075,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2077,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2082,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2083,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2085,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2091,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2092,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2094,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 62
    argCount: 5
    argNames:
    - class
    - perms
    - orig
    - steps
    - limit
    argTypes:
    - struct cil_class*
    - struct cil_list*
    - struct cil_symtab_datum*
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2010
    functionDepth: 5
    functionLinenumber: 2010
    functionLinenumberEnd: 2102
    functionName: __cil_verify_perms
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 2
    functionsReached:
    - cil_symtab_map
    - __cil_verify_map_perm
    - cil_list_destroy
    - __cil_verify_perms
    - FLAVOR
    - cil_tree_log
    - cil_list_init
    - DATUM
    - NODE
    linkageType: ''
    returnType: int
    signature: "int __cil_verify_perms(struct cil_class *class, struct cil_list *perms,\n\t\t\t
      \     struct cil_symtab_datum *orig, unsigned steps,\n\t\t\t      unsigned limit)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_perms
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2028,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2035,1
    - Dst: __cil_verify_map_perm
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2036,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2049,1
    - Dst: cil_symtab_map
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2050,1
    - Dst: cil_symtab_map
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2053,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2060,1
    - Dst: __cil_verify_map_perm
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2061,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2065,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2072,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2074,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2075,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2077,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2082,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2083,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2085,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2088
      start: 2025
    functionDepth: 6
    functionLinenumber: 2025
    functionLinenumberEnd: 2088
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 26
    functionsReached:
    - cil_symtab_map
    - __cil_verify_map_perm
    - cil_list_destroy
    - __cil_verify_perms
    - FLAVOR
    - cil_tree_log
    - cil_list_init
    - DATUM
    - NODE
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i, perms)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2060,1
    - Dst: __cil_verify_map_perm
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2061,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2065,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 2057
    functionDepth: 5
    functionLinenumber: 2057
    functionLinenumberEnd: 2071
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 26
    functionsReached:
    - __cil_verify_map_perm
    - FLAVOR
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(j, perm_list)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2117,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2117,1
    - Dst: __builtin_umul_overflow
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2124,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2125,1
    - Dst: __cil_verify_perms
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2136,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2145,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2146,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2148,1
    - Dst: __cil_verify_classperms
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2150,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 5
    argNames:
    - classperms
    - orig
    - cur
    - steps
    - limit
    argTypes:
    - struct cil_list*
    - struct cil_symtab_datum*
    - struct cil_symtab_datum*
    - unsigned
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2162
      start: 2104
    functionDepth: 6
    functionLinenumber: 2104
    functionLinenumberEnd: 2162
    functionName: __cil_verify_classperms
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 3
    functionsReached:
    - __cil_verify_classperms
    - cil_log
    - __cil_verify_perms
    - cil_tree_log
    - DATUM
    - NODE
    - __builtin_umul_overflow
    linkageType: ''
    returnType: int
    signature: "int __cil_verify_classperms(struct cil_list *classperms,\n\t\t\t\t
      \  struct cil_symtab_datum *orig,\n\t\t\t\t   struct cil_symtab_datum *cur,
      unsigned steps,\n\t\t\t\t   unsigned limit)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_perms
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2136,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2145,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2146,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2148,1
    - Dst: __cil_verify_classperms
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2150,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2156
      start: 2133
    functionDepth: 7
    functionLinenumber: 2133
    functionLinenumberEnd: 2156
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 26
    functionsReached:
    - __cil_verify_classperms
    - __cil_verify_perms
    - cil_tree_log
    - DATUM
    - NODE
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i, classperms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_classperms
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2169,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2172,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2179
      start: 2164
    functionDepth: 7
    functionLinenumber: 2164
    functionLinenumberEnd: 2179
    functionName: __cil_verify_classpermission
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - __cil_verify_classperms
    - DATUM
    - cil_tree_log
    linkageType: ''
    returnType: int
    signature: int __cil_verify_classpermission(struct cil_tree_node *node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_classperms
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2194,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2197,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2198,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2200,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2205
      start: 2187
    functionDepth: 7
    functionLinenumber: 2187
    functionLinenumberEnd: 2205
    functionName: __verify_map_perm_classperms
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 0
    functionsReached:
    - __cil_verify_classperms
    - DATUM
    - NODE
    - cil_tree_log
    linkageType: ''
    returnType: int
    signature: "int __verify_map_perm_classperms(__attribute__((unused)) hashtab_key_t
      k,\n\t\t\t\t\thashtab_datum_t d, void *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_map
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2223
      start: 2207
    functionDepth: 1
    functionLinenumber: 2207
    functionLinenumberEnd: 2223
    functionName: __cil_verify_map_class
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 1
    functionsReached:
    - cil_symtab_map
    linkageType: ''
    returnType: int
    signature: int __cil_verify_map_class(struct cil_tree_node *node)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_user_pre_eval
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2243,1
    - Dst: __cil_verify_map_class
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2246,1
    - Dst: __cil_verify_classpermission
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2249,1
    - Dst: cil_stack_init
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2256,1
    - Dst: cil_verify_no_self_reference
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2257,1
    - Dst: cil_stack_destroy
      Src: /src/selinux/libsepol/cil/src/cil_verify.c:2259,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2268
      start: 2225
    functionDepth: 8
    functionLinenumber: 2225
    functionLinenumberEnd: 2268
    functionName: __cil_pre_verify_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_verify.c
    functionUses: 0
    functionsReached:
    - cil_stack_init
    - __cil_verify_map_class
    - cil_stack_destroy
    - cil_verify_no_self_reference
    - __cil_verify_user_pre_eval
    - __cil_verify_classpermission
    linkageType: ''
    returnType: int
    signature: "int __cil_pre_verify_helper(struct cil_tree_node *node, uint32_t *finished,\n\t\t\t
      \   __attribute__((unused)) void *extra_args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p1
    - pl2
    argTypes:
    - struct cil_perm*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 140
    functionName: cil_perm_match
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cil_perm_match(const struct cil_perm *p1, const struct cil_list
      *pl2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, pl2)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:151,1
    - Dst: cil_perm_match
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:153,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:159,1
    - Dst: cil_class_perm_match
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:161,1
    - Dst: cil_class_perm_match
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - c1
    - p1
    - cpl2
    argTypes:
    - struct cil_class*
    - struct cil_perm*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 176
    functionName: cil_class_perm_match
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 1
    functionsReached:
    - cil_class_perm_match
    - cil_list_for_each
    - FLAVOR
    - cil_perm_match
    linkageType: ''
    returnType: int
    signature: "int cil_class_perm_match(const struct cil_class *c1,\n\t\t\t\tconst
      struct cil_perm *p1,\n\t\t\t\tconst struct cil_list *cpl2)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:151,1
    - Dst: cil_perm_match
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:153,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:159,1
    - Dst: cil_class_perm_match
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:161,1
    - Dst: cil_class_perm_match
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 174
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 28
    functionsReached:
    - cil_class_perm_match
    - cil_list_for_each
    - FLAVOR
    - cil_perm_match
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, cpl2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:183,1
    - Dst: cil_class_perm_match
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cp1
    - cpl2
    argTypes:
    - struct cil_classperms*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 190
    functionName: cil_classperms_match_any
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - cil_class_perm_match
    - cil_list_for_each
    linkageType: ''
    returnType: int
    signature: "int cil_classperms_match_any(const struct cil_classperms *cp1,\n\t\t\t\t
      \   const struct cil_list *cpl2)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:204,1
    - Dst: cil_classperms_match_any
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:205,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:210,1
    - Dst: cil_classperms_list_match_any
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:212,1
    - Dst: cil_classperms_list_match_any
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:221,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - cpl1
    - cpl2
    argTypes:
    - struct cil_list*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 228
    functionName: cil_classperms_list_match_any
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 1
    functionsReached:
    - cil_list_for_each
    - FLAVOR
    - cil_classperms_match_any
    - cil_classperms_list_match_any
    linkageType: ''
    returnType: int
    signature: "int cil_classperms_list_match_any(const struct cil_list *cpl1,\n\t\t\t\t
      \ const struct cil_list *cpl2)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:204,1
    - Dst: cil_classperms_match_any
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:205,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:210,1
    - Dst: cil_classperms_list_match_any
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:212,1
    - Dst: cil_classperms_list_match_any
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:221,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 226
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 31
    functionsReached:
    - cil_list_for_each
    - FLAVOR
    - cil_classperms_match_any
    - cil_classperms_list_match_any
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, cpl1)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:235,1
    - Dst: cil_class_perm_match
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - cp1
    - cpl2
    argTypes:
    - struct cil_classperms*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 242
    functionName: cil_classperms_match_all
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - cil_class_perm_match
    - cil_list_for_each
    linkageType: ''
    returnType: int
    signature: "int cil_classperms_match_all(const struct cil_classperms *cp1,\n\t\t\t\t
      \   const struct cil_list *cpl2)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:256,1
    - Dst: cil_classperms_match_all
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:257,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:262,1
    - Dst: cil_classperms_list_match_all
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:264,1
    - Dst: cil_classperms_list_match_all
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:273,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - cpl1
    - cpl2
    argTypes:
    - struct cil_list*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 280
    functionName: cil_classperms_list_match_all
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 1
    functionsReached:
    - cil_classperms_list_match_all
    - cil_list_for_each
    - cil_classperms_match_all
    - FLAVOR
    linkageType: ''
    returnType: int
    signature: "int cil_classperms_list_match_all(const struct cil_list *cpl1,\n\t\t\t\t
      \ const struct cil_list *cpl2)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:256,1
    - Dst: cil_classperms_match_all
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:257,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:262,1
    - Dst: cil_classperms_list_match_all
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:264,1
    - Dst: cil_classperms_list_match_all
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:273,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 253
    functionDepth: 4
    functionLinenumber: 253
    functionLinenumberEnd: 278
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 34
    functionsReached:
    - cil_classperms_list_match_all
    - cil_list_for_each
    - cil_classperms_match_all
    - FLAVOR
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, cpl1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_list
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:288,1
    - Dst: cil_copy_list
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - new
    - old
    argTypes:
    - struct cil_classperms**
    - struct cil_classperms*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 290
    functionName: cil_classperms_copy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - cil_copy_list
    linkageType: ''
    returnType: void
    signature: "void cil_classperms_copy(struct cil_classperms **new,\n\t\t\t\tconst
      struct cil_classperms *old)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - new
    - old
    argTypes:
    - struct cil_classperms_set**
    - struct cil_classperms_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 298
    functionName: cil_classperms_set_copy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void cil_classperms_set_copy(struct cil_classperms_set **new,\n\t\t\t\t
      \   const struct cil_classperms_set *old)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_classperms_copy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:318,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:319,1
    - Dst: CIL_CLASSPERMS::CIL_CLASSPERMS
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:319,1
    - Dst: cil_classperms_set_copy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:322,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:323,1
    - Dst: CIL_CLASSPERMS_SET::CIL_CLASSPERMS_SET
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:323,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:328,1
    - Dst: CIL_FALSE::CIL_FALSE
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:328,1
    - Dst: cil_classperms_copy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:341,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:342,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:346,1
    - Dst: cil_class_perm_match
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:348,1
    - Dst: cil_classperms_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:350,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:353,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:354,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:355,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:358,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:360,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 2
    argNames:
    - new
    - old
    argTypes:
    - struct cil_list**
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 300
    functionDepth: 3
    functionLinenumber: 300
    functionLinenumberEnd: 363
    functionName: cil_classperms_list_copy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - cil_class_perm_match
    - cil_classperms_init
    - cil_list_for_each
    - cil_classperms_set_copy
    - cil_list_init
    - CIL_CLASSPERMS::CIL_CLASSPERMS
    - cil_list_append
    - cil_list_destroy
    - CIL_FALSE::CIL_FALSE
    - cil_classperms_copy
    - CIL_CLASSPERMS_SET::CIL_CLASSPERMS_SET
    linkageType: ''
    returnType: void
    signature: void cil_classperms_list_copy(struct cil_list **new, const struct cil_list
      *old)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_classperms_copy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:318,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:319,1
    - Dst: CIL_CLASSPERMS::CIL_CLASSPERMS
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:319,1
    - Dst: cil_classperms_set_copy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:322,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:323,1
    - Dst: CIL_CLASSPERMS_SET::CIL_CLASSPERMS_SET
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 325
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 35
    functionsReached:
    - cil_classperms_set_copy
    - CIL_CLASSPERMS::CIL_CLASSPERMS
    - cil_list_append
    - cil_classperms_copy
    - CIL_CLASSPERMS_SET::CIL_CLASSPERMS_SET
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, old)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:373,1
    - Dst: cil_classperms_list_match_all
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:375,1
    - Dst: cil_classperms_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:377,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:380,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:381,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:382,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:385,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:387,1
    - Dst: cil_classperms_list_and
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:390,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:395,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - result
    - cp1
    - cpl2
    argTypes:
    - struct cil_list**
    - struct cil_classperms*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 366
    functionDepth: 4
    functionLinenumber: 366
    functionLinenumberEnd: 402
    functionName: cil_classperms_map_and
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - cil_classperms_init
    - cil_list_for_each
    - cil_classperms_list_match_all
    - cil_classperms_list_and
    - cil_list_append
    - cil_list_destroy
    - cil_list_init
    linkageType: ''
    returnType: void
    signature: "void cil_classperms_map_and(struct cil_list **result,\n\t\t\t\t   const
      struct cil_classperms *cp1,\n\t\t\t\t   const struct cil_list *cpl2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 397
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 36
    functionsReached:
    - cil_list_append
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i, new_cpl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_classperms_list_match_all
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:411,1
    - Dst: cil_classperms_set_copy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:413,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:414,1
    - Dst: cil_classperms_list_and
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:417,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:421,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - result
    - cps1
    - cpl2
    argTypes:
    - struct cil_list**
    - struct cil_classperms_set*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 405
    functionDepth: 4
    functionLinenumber: 405
    functionLinenumberEnd: 426
    functionName: cil_classperms_set_and
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - cil_classperms_set_copy
    - cil_classperms_list_match_all
    - cil_classperms_list_and
    - cil_list_destroy
    - cil_list_append
    linkageType: ''
    returnType: void
    signature: "void cil_classperms_set_and(struct cil_list **result,\n\t\t\t\t   const
      struct cil_classperms_set *cps1,\n\t\t\t\t   const struct cil_list *cpl2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 420
    functionDepth: 3
    functionLinenumber: 420
    functionLinenumberEnd: 422
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 36
    functionsReached:
    - cil_list_append
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i, new_cpl)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_classperms_list_match_all
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:444,1
    - Dst: cil_classperms_list_copy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:445,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:449,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:454,1
    - Dst: cil_classperms_and
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:455,1
    - Dst: cil_classperms_map_and
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:457,1
    - Dst: cil_classperms_set_and
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:461,1
    - Dst: cil_list_is_empty
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:465,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:466,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - result
    - cpl1
    - cpl2
    argTypes:
    - struct cil_list**
    - struct cil_list*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 429
    functionDepth: 5
    functionLinenumber: 429
    functionLinenumberEnd: 468
    functionName: cil_classperms_list_and
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 2
    functionsReached:
    - cil_classperms_list_copy
    - cil_classperms_list_match_all
    - cil_list_is_empty
    - cil_list_destroy
    - cil_classperms_set_and
    - cil_classperms_and
    - FLAVOR
    - cil_list_init
    - cil_classperms_map_and
    linkageType: ''
    returnType: void
    signature: "void cil_classperms_list_and(struct cil_list **result,\n\t\t\t     const
      struct cil_list *cpl1,\n\t\t\t     const struct cil_list *cpl2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:454,1
    - Dst: cil_classperms_and
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:455,1
    - Dst: cil_classperms_map_and
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:457,1
    - Dst: cil_classperms_set_and
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 451
    functionDepth: 5
    functionLinenumber: 451
    functionLinenumberEnd: 463
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 36
    functionsReached:
    - cil_classperms_and
    - cil_classperms_set_and
    - FLAVOR
    - cil_classperms_map_and
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, cpl1)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_classperms_match_any
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:478,1
    - Dst: cil_classperms_copy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:479,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:480,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:484,1
    - Dst: cil_class_perm_match
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:486,1
    - Dst: cil_classperms_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:488,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:491,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:492,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:493,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:496,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:498,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - result
    - cp1
    - cpl2
    argTypes:
    - struct cil_list**
    - struct cil_classperms*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 471
    functionDepth: 3
    functionLinenumber: 471
    functionLinenumberEnd: 501
    functionName: cil_classperms_andnot
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - cil_class_perm_match
    - cil_classperms_init
    - cil_list_for_each
    - cil_list_append
    - cil_classperms_copy
    - cil_list_init
    - cil_classperms_match_any
    linkageType: ''
    returnType: void
    signature: "void cil_classperms_andnot(struct cil_list **result,\n\t\t\t\t  const
      struct cil_classperms *cp1,\n\t\t\t\t  const struct cil_list *cpl2)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:511,1
    - Dst: cil_classperms_list_match_any
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:513,1
    - Dst: cil_classperms_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:516,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:519,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:520,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:521,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:524,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:526,1
    - Dst: cil_classperms_list_andnot
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:529,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:534,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:537,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - result
    - cp1
    - cpl2
    argTypes:
    - struct cil_list**
    - struct cil_classperms*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 504
    functionDepth: 3
    functionLinenumber: 504
    functionLinenumberEnd: 541
    functionName: cil_classperms_map_andnot
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - cil_classperms_init
    - cil_list_for_each
    - cil_classperms_list_andnot
    - cil_list_append
    - cil_classperms_list_match_any
    - cil_list_destroy
    - cil_list_init
    linkageType: ''
    returnType: void
    signature: "void cil_classperms_map_andnot(struct cil_list **result,\n\t\t\t\t
      \     const struct cil_classperms *cp1,\n\t\t\t\t      const struct cil_list
      *cpl2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 533
    functionDepth: 3
    functionLinenumber: 533
    functionLinenumberEnd: 536
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 38
    functionsReached:
    - cil_list_append
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i, new_cpl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_classperms_list_match_any
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:550,1
    - Dst: cil_classperms_set_copy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:552,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:553,1
    - Dst: cil_classperms_list_andnot
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:556,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:560,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:562,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - result
    - cps1
    - cpl2
    argTypes:
    - struct cil_list**
    - struct cil_classperms_set*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 544
    functionDepth: 3
    functionLinenumber: 544
    functionLinenumberEnd: 565
    functionName: cil_classperms_set_andnot
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - cil_classperms_set_copy
    - cil_classperms_list_andnot
    - cil_list_append
    - cil_list_destroy
    - cil_classperms_list_match_any
    linkageType: ''
    returnType: void
    signature: "void cil_classperms_set_andnot(struct cil_list **result,\n\t\t\t\t
      \     const struct cil_classperms_set *cps1,\n\t\t\t\t      const struct cil_list
      *cpl2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 559
    functionDepth: 3
    functionLinenumber: 559
    functionLinenumberEnd: 561
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 38
    functionsReached:
    - cil_list_append
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i, new_cpl)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_classperms_list_match_any
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:583,1
    - Dst: cil_classperms_list_copy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:584,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:588,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:593,1
    - Dst: cil_classperms_andnot
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:594,1
    - Dst: cil_classperms_map_andnot
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:596,1
    - Dst: cil_classperms_set_andnot
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:600,1
    - Dst: cil_list_is_empty
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:604,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:605,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - result
    - cpl1
    - cpl2
    argTypes:
    - struct cil_list**
    - struct cil_list*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 568
    functionDepth: 4
    functionLinenumber: 568
    functionLinenumberEnd: 607
    functionName: cil_classperms_list_andnot
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 2
    functionsReached:
    - cil_classperms_andnot
    - cil_classperms_list_copy
    - cil_classperms_set_andnot
    - cil_list_is_empty
    - cil_classperms_list_match_any
    - cil_list_destroy
    - cil_classperms_map_andnot
    - FLAVOR
    - cil_list_init
    linkageType: ''
    returnType: void
    signature: "void cil_classperms_list_andnot(struct cil_list **result,\n\t\t\t\tconst
      struct cil_list *cpl1,\n\t\t\t\tconst struct cil_list *cpl2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:593,1
    - Dst: cil_classperms_andnot
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:594,1
    - Dst: cil_classperms_map_andnot
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:596,1
    - Dst: cil_classperms_set_andnot
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 590
    functionDepth: 4
    functionLinenumber: 590
    functionLinenumberEnd: 602
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 38
    functionsReached:
    - cil_classperms_andnot
    - cil_classperms_map_andnot
    - FLAVOR
    - cil_classperms_set_andnot
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, cpl1)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:614,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:618,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct cil_symtab_datum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 620
    functionName: cil_datum_cardinality
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - ebitmap_cardinality
    - FLAVOR
    linkageType: ''
    returnType: int
    signature: int cil_datum_cardinality(const struct cil_symtab_datum *d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:628,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:632,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:633,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:635,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:639,1
    - Dst: ebitmap_not
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:640,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:642,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:643,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:646,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:650,1
    - Dst: ebitmap_not
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:651,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:653,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - result
    - d
    - max
    argTypes:
    - ebitmap_t*
    - struct cil_symtab_datum*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 623
    functionDepth: 2
    functionLinenumber: 623
    functionLinenumberEnd: 659
    functionName: cil_datum_not
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - ebitmap_not
    - ebitmap_set_bit
    - FLAVOR
    linkageType: ''
    returnType: int
    signature: "int cil_datum_not(ebitmap_t *result, const struct cil_symtab_datum
      *d,\n\t\t\t int max)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:666,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:667,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:672,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:674,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:676,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:683,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:684,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:685,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:687,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:694,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:695,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:696,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:698,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:706,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:708,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 3
    argNames:
    - result
    - d1
    - d2
    argTypes:
    - ebitmap_t*
    - struct cil_symtab_datum*
    - struct cil_symtab_datum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 662
    functionDepth: 2
    functionLinenumber: 662
    functionLinenumberEnd: 714
    functionName: cil_datums_and
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - ebitmap_and
    - ebitmap_set_bit
    - ebitmap_get_bit
    - FLAVOR
    linkageType: ''
    returnType: int
    signature: "int cil_datums_and(ebitmap_t *result, const struct cil_symtab_datum
      *d1,\n\t\t\t  const struct cil_symtab_datum *d2)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:722,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:723,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:728,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:730,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:732,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:739,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:743,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:745,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:751,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:752,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:753,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:755,1
    - Dst: ebitmap_andnot
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:763,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:766,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 46
    argCount: 3
    argNames:
    - result
    - d1
    - d2
    argTypes:
    - ebitmap_t*
    - struct cil_symtab_datum*
    - struct cil_symtab_datum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 717
    functionDepth: 3
    functionLinenumber: 717
    functionLinenumberEnd: 772
    functionName: cil_datums_andnot
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_andnot
    - ebitmap_destroy
    - ebitmap_set_bit
    - FLAVOR
    - ebitmap_get_bit
    - ebitmap_cpy
    linkageType: ''
    returnType: int
    signature: "int cil_datums_andnot(ebitmap_t *result,\n\t\t\t     const struct
      cil_symtab_datum *d1,\n\t\t\t     const struct cil_symtab_datum *d2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 782
    functionName: num_digits
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t num_digits(unsigned n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: num_digits
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:788,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:789,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:793,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:799,1
    - Dst: snprintf
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:800,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:802,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:803,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:807,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:808,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - num
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 812
    functionName: cil_create_new_attribute_name
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - snprintf
    - cil_malloc
    - cil_strpool_add
    - cil_log
    - num_digits
    - free
    - strlen
    linkageType: ''
    returnType: char
    signature: char *cil_create_new_attribute_name(unsigned num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:819,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:820,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:821,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - f1
    - v1
    - f2
    - v2
    argTypes:
    - enum cil_flavor
    - void*
    - enum cil_flavor
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 814
    functionDepth: 3
    functionLinenumber: 814
    functionLinenumberEnd: 825
    functionName: cil_create_and_expr_list
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - cil_list_init
    - cil_list_append
    linkageType: ''
    returnType: struct cil_list
    signature: "struct cil_list *cil_create_and_expr_list(enum cil_flavor f1, void
      *v1,\n\t\t\t\t\t\t enum cil_flavor f2, void *v2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:834,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:835,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:836,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:837,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:838,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:839,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - f1
    - v1
    - f2
    - v2
    argTypes:
    - enum cil_flavor
    - void*
    - enum cil_flavor
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 827
    functionDepth: 3
    functionLinenumber: 827
    functionLinenumberEnd: 843
    functionName: cil_create_andnot_expr_list
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - cil_list_init
    - cil_list_append
    linkageType: ''
    returnType: struct cil_list
    signature: "struct cil_list *cil_create_andnot_expr_list(enum cil_flavor f1,\n\t\t\t\t\t\t
      \   void *v1,\n\t\t\t\t\t\t    enum cil_flavor f2,\n\t\t\t\t\t\t    void *v2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - prev
    - flavor
    - data
    argTypes:
    - struct cil_tree_node*
    - enum cil_flavor
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 861
    functionName: cil_create_and_insert_node
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct cil_tree_node
    signature: "struct cil_tree_node *\ncil_create_and_insert_node(struct cil_tree_node
      *prev, enum cil_flavor flavor,\n\t\t\t   void *data)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_create_new_attribute_name
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:877,1
    - Dst: cil_get_symtab
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:882,1
    - Dst: cil_typeattribute_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:887,1
    - Dst: cil_create_and_insert_node
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:888,1
    - Dst: cil_symtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:890,1
    - Dst: cil_typeattributeset_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:895,1
    - Dst: cil_create_and_insert_node
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:899,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:901,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:902,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:905,1
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:917,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:918,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:922,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 6
    argNames:
    - db
    - prev
    - str_expr
    - datum_expr
    - types
    - d
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_list*
    - struct cil_list*
    - ebitmap_t*
    - struct cil_symtab_datum**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 863
    functionDepth: 5
    functionLinenumber: 863
    functionLinenumberEnd: 925
    functionName: cil_create_and_insert_attribute_and_set
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - ebitmap_cardinality
    - cil_typeattribute_init
    - cil_get_symtab
    - cil_create_new_attribute_name
    - cil_typeattributeset_init
    - cil_list_append
    - cil_symtab_datum_destroy
    - cil_create_and_insert_node
    - free
    - cil_list_init
    - cil_symtab_insert
    linkageType: ''
    returnType: int
    signature: "int cil_create_and_insert_attribute_and_set(struct cil_db *db,\n\t\t\t\t\t\t
      \  struct cil_tree_node *prev,\n\t\t\t\t\t\t   struct cil_list *str_expr,\n\t\t\t\t\t\t
      \  struct cil_list *datum_expr,\n\t\t\t\t\t\t   ebitmap_t *types,\n\t\t\t\t\t\t
      \  struct cil_symtab_datum **d)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:938,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:940,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 932
    functionDepth: 1
    functionLinenumber: 932
    functionLinenumberEnd: 945
    functionName: cil_check_attribute_in_symtab
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - FLAVOR
    - ebitmap_cmp
    linkageType: ''
    returnType: int
    signature: "int cil_check_attribute_in_symtab(__attribute__((unused)) hashtab_key_t
      k,\n\t\t\t      hashtab_datum_t d, void *args)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_map
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:963,1
    - Dst: cil_symtab_map
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:971,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - db
    - types
    - d
    argTypes:
    - struct cil_db*
    - ebitmap_t*
    - struct cil_symtab_datum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 979
    functionName: cil_check_for_previously_defined_attribute
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - cil_symtab_map
    linkageType: ''
    returnType: struct cil_symtab_datum
    signature: "struct cil_symtab_datum *\ncil_check_for_previously_defined_attribute(struct
      cil_db *db, ebitmap_t *types,\n\t\t\t\t\t   struct cil_symtab_datum *d)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_create_andnot_expr_list
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:996,1
    - Dst: cil_create_andnot_expr_list
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:998,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1001,1
    - Dst: cil_datum_not
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1002,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1007,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1012,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1013,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1014,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1015,1
    - Dst: cil_check_for_previously_defined_attribute
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1020,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1022,1
    - Dst: cil_create_and_insert_attribute_and_set
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1027,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1027,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1036,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1037,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1038,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1039,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 3
    argNames:
    - db
    - d
    - d3
    argTypes:
    - struct cil_db*
    - struct cil_symtab_datum*
    - struct cil_symtab_datum**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 981
    functionDepth: 6
    functionLinenumber: 981
    functionLinenumberEnd: 1041
    functionName: cil_create_attribute_all_and_not_d
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - ebitmap_cardinality
    - ebitmap_destroy
    - cil_datum_not
    - cil_create_andnot_expr_list
    - cil_malloc
    - cil_list_destroy
    - ebitmap_is_empty
    - ebitmap_highest_set_bit
    - cil_check_for_previously_defined_attribute
    - cil_create_and_insert_attribute_and_set
    - free
    - DATUM
    - NODE
    linkageType: ''
    returnType: int
    signature: "int cil_create_attribute_all_and_not_d(struct cil_db *db,\n\t\t\t\t\t
      \     struct cil_symtab_datum *d,\n\t\t\t\t\t      struct cil_symtab_datum **d3)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cil_create_andnot_expr_list
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1064,1
    - Dst: cil_create_andnot_expr_list
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1066,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1068,1
    - Dst: cil_datums_andnot
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1069,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1073,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1078,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1079,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1080,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1081,1
    - Dst: cil_check_for_previously_defined_attribute
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1086,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1088,1
    - Dst: cil_create_and_insert_attribute_and_set
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1093,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1093,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1102,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1103,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1104,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1105,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 4
    argNames:
    - db
    - d1
    - d2
    - d3
    argTypes:
    - struct cil_db*
    - struct cil_symtab_datum*
    - struct cil_symtab_datum*
    - struct cil_symtab_datum**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1043
    functionDepth: 6
    functionLinenumber: 1043
    functionLinenumberEnd: 1107
    functionName: cil_create_attribute_d1_and_not_d2
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - ebitmap_cardinality
    - ebitmap_destroy
    - cil_create_andnot_expr_list
    - cil_malloc
    - cil_list_destroy
    - ebitmap_is_empty
    - ebitmap_highest_set_bit
    - cil_datums_andnot
    - cil_check_for_previously_defined_attribute
    - cil_create_and_insert_attribute_and_set
    - free
    - DATUM
    - NODE
    linkageType: ''
    returnType: int
    signature: "int cil_create_attribute_d1_and_not_d2(struct cil_db *db,\n\t\t\t\t\t
      \     struct cil_symtab_datum *d1,\n\t\t\t\t\t      struct cil_symtab_datum
      *d2,\n\t\t\t\t\t      struct cil_symtab_datum **d3)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cil_create_and_expr_list
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1130,1
    - Dst: cil_create_and_expr_list
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1132,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1134,1
    - Dst: cil_datums_and
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1135,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1139,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1144,1
    - Dst: ebitmap_highest_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1145,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1146,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1147,1
    - Dst: cil_check_for_previously_defined_attribute
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1152,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1154,1
    - Dst: cil_create_and_insert_attribute_and_set
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1159,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1159,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1168,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1169,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1170,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1171,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 4
    argNames:
    - db
    - d1
    - d2
    - d3
    argTypes:
    - struct cil_db*
    - struct cil_symtab_datum*
    - struct cil_symtab_datum*
    - struct cil_symtab_datum**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1109
    functionDepth: 6
    functionLinenumber: 1109
    functionLinenumberEnd: 1173
    functionName: cil_create_attribute_d1_and_d2
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - ebitmap_cardinality
    - cil_datums_and
    - ebitmap_destroy
    - cil_malloc
    - cil_list_destroy
    - ebitmap_is_empty
    - cil_create_and_expr_list
    - ebitmap_highest_set_bit
    - cil_check_for_previously_defined_attribute
    - cil_create_and_insert_attribute_and_set
    - free
    - DATUM
    - NODE
    linkageType: ''
    returnType: int
    signature: "int cil_create_attribute_d1_and_d2(struct cil_db *db,\n\t\t\t\t\t
      \ struct cil_symtab_datum *d1,\n\t\t\t\t\t  struct cil_symtab_datum *d2,\n\t\t\t\t\t
      \ struct cil_symtab_datum **d3)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: perms::perms
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - src
    - tgt
    - classperms
    argTypes:
    - struct cil_symtab_datum*
    - struct cil_symtab_datum*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1175
    functionDepth: 0
    functionLinenumber: 1175
    functionLinenumberEnd: 1191
    functionName: cil_create_avrule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - perms::perms
    linkageType: ''
    returnType: struct cil_avrule
    signature: "struct cil_avrule *cil_create_avrule(struct cil_symtab_datum *src,\n\t\t\t\t\t
      \   struct cil_symtab_datum *tgt,\n\t\t\t\t\t    struct cil_list *classperms)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_classperms_list_copy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1204,1
    - Dst: cil_create_avrule
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1205,1
    - Dst: cil_create_and_insert_node
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - curr
    - src
    - tgt
    - classperms
    argTypes:
    - struct cil_tree_node*
    - struct cil_symtab_datum*
    - struct cil_symtab_datum*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1193
    functionDepth: 4
    functionLinenumber: 1193
    functionLinenumberEnd: 1207
    functionName: cil_create_and_add_avrule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - cil_create_and_insert_node
    - cil_classperms_list_copy
    - cil_create_avrule
    linkageType: ''
    returnType: struct cil_tree_node
    signature: "struct cil_tree_node *cil_create_and_add_avrule(\n\tstruct cil_tree_node
      *curr, struct cil_symtab_datum *src,\n\tstruct cil_symtab_datum *tgt, struct
      cil_list *classperms)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1218,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1219,1
    - Dst: cil_create_attribute_all_and_not_d
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1221,1
    - Dst: cil_create_and_add_avrule
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1225,1
    - Dst: cil_create_attribute_d1_and_not_d2
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1228,1
    - Dst: cil_create_attribute_d1_and_d2
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1233,1
    - Dst: cil_create_attribute_all_and_not_d
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1237,1
    - Dst: cil_create_attribute_d1_and_not_d2
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1241,1
    - Dst: cil_create_and_add_avrule
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1246,1
    - Dst: cil_create_and_add_avrule
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1247,1
    - Dst: cil_datum_cardinality
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1248,1
    - Dst: cil_create_and_add_avrule
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1249,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1250,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1253,1
    - Dst: cil_create_and_add_avrule
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1254,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1255,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1257,1
    - Dst: cil_create_and_add_avrule
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1258,1
    - Dst: cil_create_attribute_d1_and_not_d2
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1261,1
    - Dst: cil_create_attribute_d1_and_d2
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1266,1
    - Dst: cil_create_attribute_d1_and_not_d2
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1270,1
    - Dst: cil_create_attribute_d1_and_not_d2
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1275,1
    - Dst: cil_create_and_add_avrule
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1280,1
    - Dst: cil_create_and_add_avrule
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1281,1
    - Dst: cil_datum_cardinality
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1282,1
    - Dst: cil_create_and_add_avrule
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1283,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1284,1
    - Dst: cil_create_attribute_d1_and_d2
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1289,1
    - Dst: cil_create_and_add_avrule
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1293,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1293,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1295,1
    - Dst: cil_create_attribute_d1_and_not_d2
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1299,1
    - Dst: cil_create_and_add_avrule
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1303,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 91
    argCount: 9
    argNames:
    - db
    - curr
    - s1
    - t1
    - s2
    - t2
    - p4
    - s3
    - s4
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_symtab_datum*
    - struct cil_symtab_datum*
    - struct cil_symtab_datum*
    - struct cil_symtab_datum*
    - struct cil_list*
    - struct cil_symtab_datum*
    - struct cil_symtab_datum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1209
    functionDepth: 7
    functionLinenumber: 1209
    functionLinenumberEnd: 1310
    functionName: cil_remove_permissions_from_special_rule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - cil_datum_cardinality
    - cil_create_attribute_all_and_not_d
    - DATUM
    - cil_create_attribute_d1_and_not_d2
    - cil_create_and_add_avrule
    - cil_create_attribute_d1_and_d2
    linkageType: ''
    returnType: int
    signature: "int cil_remove_permissions_from_special_rule(\n\tstruct cil_db *db,
      struct cil_tree_node *curr,\n\tstruct cil_symtab_datum *s1, struct cil_symtab_datum
      *t1,\n\tstruct cil_symtab_datum *s2, struct cil_symtab_datum *t2,\n\tstruct
      cil_list *p4, struct cil_symtab_datum *s3,\n\tstruct cil_symtab_datum *s4)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: cil_classperms_list_andnot
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1331,1
    - Dst: cil_list_is_empty
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1332,1
    - Dst: cil_create_and_add_avrule
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1334,1
    - Dst: cil_destroy_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1336,1
    - Dst: cil_classperms_list_and
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1339,1
    - Dst: cil_list_is_empty
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1340,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1341,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1344,1
    - Dst: cil_create_attribute_d1_and_not_d2
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1350,1
    - Dst: cil_create_and_add_avrule
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1354,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1356,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1356,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1357,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1357,1
    - Dst: cil_create_attribute_d1_and_d2
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1363,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1368,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1368,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1369,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1369,1
    - Dst: cil_remove_permissions_from_special_rule
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1370,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1375,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1375,1
    - Dst: cil_create_attribute_d1_and_not_d2
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1377,1
    - Dst: cil_create_and_add_avrule
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1381,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1381,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1383,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1383,1
    - Dst: cil_create_attribute_d1_and_not_d2
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1385,1
    - Dst: cil_create_attribute_d1_and_d2
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1389,1
    - Dst: cil_create_attribute_d1_and_not_d2
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1393,1
    - Dst: cil_create_and_add_avrule
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1397,1
    - Dst: cil_create_and_add_avrule
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1398,1
    - Dst: cil_datum_cardinality
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1399,1
    - Dst: cil_create_and_add_avrule
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1400,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1401,1
    - Dst: cil_create_attribute_d1_and_not_d2
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1405,1
    - Dst: cil_create_and_add_avrule
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1409,1
    - Dst: cil_destroy_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1414,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 80
    argCount: 3
    argNames:
    - db
    - allow_node
    - deny_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1417
      start: 1312
    functionDepth: 8
    functionLinenumber: 1312
    functionLinenumberEnd: 1417
    functionName: cil_remove_permissions_from_rule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - cil_classperms_list_andnot
    - cil_datum_cardinality
    - cil_list_is_empty
    - cil_classperms_list_and
    - cil_create_attribute_d1_and_d2
    - cil_tree_log
    - cil_destroy_classperms_list
    - cil_remove_permissions_from_special_rule
    - DATUM
    - cil_create_and_add_avrule
    - cil_create_attribute_d1_and_not_d2
    linkageType: ''
    returnType: int
    signature: "int cil_remove_permissions_from_rule(struct cil_db *db,\n\t\t\t\t
      struct cil_tree_node *allow_node,\n\t\t\t\t const struct cil_tree_node *deny_node)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_find_matching_avrule_in_ast
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - matching
    - start
    - deny_node
    argTypes:
    - struct cil_list*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1419
    functionDepth: 1
    functionLinenumber: 1419
    functionLinenumberEnd: 1434
    functionName: cil_find_matching_allow_rules
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - cil_find_matching_avrule_in_ast
    linkageType: ''
    returnType: int
    signature: "int cil_find_matching_allow_rules(struct cil_list *matching,\n\t\t\t\t\t
      struct cil_tree_node *start,\n\t\t\t\t\t struct cil_tree_node *deny_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1443,1
    - Dst: cil_find_matching_allow_rules
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1445,1
    - Dst: cil_remove_permissions_from_rule
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1452,1
    - Dst: cil_tree_node_remove
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1454,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1461,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - db
    - start
    - deny_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1436
    functionDepth: 9
    functionLinenumber: 1436
    functionLinenumberEnd: 1463
    functionName: cil_process_deny_rule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - cil_find_matching_allow_rules
    - cil_remove_permissions_from_rule
    - cil_list_destroy
    - cil_tree_node_remove
    - cil_list_init
    linkageType: ''
    returnType: int
    signature: "int cil_process_deny_rule(struct cil_db *db, struct cil_tree_node
      *start,\n\t\t\t\t struct cil_tree_node *deny_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_remove_permissions_from_rule
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1452,1
    - Dst: cil_tree_node_remove
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1450
    functionDepth: 9
    functionLinenumber: 1450
    functionLinenumberEnd: 1458
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 38
    functionsReached:
    - cil_remove_permissions_from_rule
    - cil_tree_node_remove
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(item, matching)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_process_deny_rule
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1474,1
    - Dst: cil_tree_node_remove
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1478,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - db
    - start
    - deny_rules
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1465
    functionDepth: 10
    functionLinenumber: 1465
    functionLinenumberEnd: 1483
    functionName: cil_process_deny_rules
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - cil_process_deny_rule
    - cil_tree_node_remove
    linkageType: ''
    returnType: int
    signature: "int cil_process_deny_rules(struct cil_db *db,\n\t\t\t\t  struct cil_tree_node
      *start,\n\t\t\t\t  struct cil_list *deny_rules)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_process_deny_rule
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1474,1
    - Dst: cil_tree_node_remove
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1478,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1472
    functionDepth: 10
    functionLinenumber: 1472
    functionLinenumberEnd: 1479
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 38
    functionsReached:
    - cil_process_deny_rule
    - cil_tree_node_remove
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(item, deny_rules)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1498,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1485
    functionDepth: 3
    functionLinenumber: 1485
    functionLinenumberEnd: 1501
    functionName: __cil_find_deny_rules
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - cil_list_append
    linkageType: ''
    returnType: int
    signature: "int __cil_find_deny_rules(struct cil_tree_node *node, uint32_t *finished,\n\t\t\t\t
      void *extra_args)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1509,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1512,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1517,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1520,1
    - Dst: cil_process_deny_rules
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1525,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1527,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_deny.c:1533,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - db
    argTypes:
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1503
    functionDepth: 11
    functionLinenumber: 1503
    functionLinenumberEnd: 1535
    functionName: cil_process_deny_rules_in_ast
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_deny.c
    functionUses: 0
    functionsReached:
    - cil_tree_walk
    - cil_list_destroy
    - cil_log
    - cil_process_deny_rules
    - cil_list_init
    linkageType: ''
    returnType: int
    signature: int cil_process_deny_rules_in_ast(struct cil_db *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:94,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pdb
    - datum
    - sepol_user
    argTypes:
    - policydb_t*
    - struct cil_symtab_datum*
    - user_datum_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: __cil_get_sepol_user_datum
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_log
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: "int __cil_get_sepol_user_datum(policydb_t *pdb,\n\t\t\t\t      struct
      cil_symtab_datum *datum,\n\t\t\t\t      user_datum_t **sepol_user)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:108,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pdb
    - datum
    - sepol_role
    argTypes:
    - policydb_t*
    - struct cil_symtab_datum*
    - role_datum_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 116
    functionName: __cil_get_sepol_role_datum
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_log
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: "int __cil_get_sepol_role_datum(policydb_t *pdb,\n\t\t\t\t      struct
      cil_symtab_datum *datum,\n\t\t\t\t      role_datum_t **sepol_role)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:122,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pdb
    - datum
    - sepol_type
    argTypes:
    - policydb_t*
    - struct cil_symtab_datum*
    - type_datum_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: __cil_get_sepol_type_datum
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_log
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: "int __cil_get_sepol_type_datum(policydb_t *pdb,\n\t\t\t\t      struct
      cil_symtab_datum *datum,\n\t\t\t\t      type_datum_t **sepol_type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:136,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pdb
    - datum
    - sepol_class
    argTypes:
    - policydb_t*
    - struct cil_symtab_datum*
    - class_datum_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 144
    functionName: __cil_get_sepol_class_datum
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_log
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: "int __cil_get_sepol_class_datum(policydb_t *pdb,\n\t\t\t\t       struct
      cil_symtab_datum *datum,\n\t\t\t\t       class_datum_t **sepol_class)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:150,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pdb
    - datum
    - sepol_cat
    argTypes:
    - policydb_t*
    - struct cil_symtab_datum*
    - cat_datum_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 159
    functionName: __cil_get_sepol_cat_datum
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_log
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: "int __cil_get_sepol_cat_datum(policydb_t *pdb,\n\t\t\t\t     struct
      cil_symtab_datum *datum,\n\t\t\t\t     cat_datum_t **sepol_cat)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:165,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pdb
    - datum
    - sepol_level
    argTypes:
    - policydb_t*
    - struct cil_symtab_datum*
    - level_datum_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 173
    functionName: __cil_get_sepol_level_datum
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_log
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: "int __cil_get_sepol_level_datum(policydb_t *pdb,\n\t\t\t\t       struct
      cil_symtab_datum *datum,\n\t\t\t\t       level_datum_t **sepol_level)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:177,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:183,1
    - Dst: attr::attr
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:183,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:184,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:190,1
    - Dst: user::user
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:190,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:191,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - datum
    - new
    argTypes:
    - struct cil_symtab_datum*
    - ebitmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 201
    functionName: __cil_expand_user
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - attr::attr
    - user::user
    - cil_log
    - ebitmap_set_bit
    - NODE
    - ebitmap_cpy
    linkageType: ''
    returnType: int
    signature: int __cil_expand_user(struct cil_symtab_datum *datum, ebitmap_t *new)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:205,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:210,1
    - Dst: attr::attr
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:210,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:211,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:217,1
    - Dst: role::role
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:217,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:218,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - datum
    - new
    argTypes:
    - struct cil_symtab_datum*
    - ebitmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 228
    functionName: __cil_expand_role
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - attr::attr
    - cil_log
    - ebitmap_set_bit
    - NODE
    - ebitmap_cpy
    - role::role
    linkageType: ''
    returnType: int
    signature: int __cil_expand_role(struct cil_symtab_datum *datum, ebitmap_t *new)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:232,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:237,1
    - Dst: attr::attr
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:237,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:238,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:244,1
    - Dst: type::type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:244,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:245,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - datum
    - new
    argTypes:
    - struct cil_symtab_datum*
    - ebitmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 255
    functionName: __cil_expand_type
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - attr::attr
    - cil_log
    - type::type
    - ebitmap_set_bit
    - NODE
    - ebitmap_cpy
    linkageType: ''
    returnType: int
    signature: int __cil_expand_type(struct cil_symtab_datum *datum, ebitmap_t *new)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - head
    - tail
    argTypes:
    - ocontext_t**
    - ocontext_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 269
    functionName: cil_add_ocontext
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: ocontext_t
    signature: ocontext_t *cil_add_ocontext(ocontext_t **head, ocontext_t **tail)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:279,1
    - Dst: memset
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:280,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:282,1
    - Dst: symtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:283,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:286,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:291,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:298,1
    - Dst: memset
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:299,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:301,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:302,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:305,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:318,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - pdb
    - cil_common
    - common_out
    argTypes:
    - policydb_t*
    - struct cil_class*
    - common_datum_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 320
    functionName: cil_common_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_strdup
    - cil_malloc
    - symtab_init
    - hashtab_insert
    - free
    - memset
    - symtab_insert
    linkageType: ''
    returnType: int
    signature: "int cil_common_to_policydb(policydb_t *pdb, struct cil_class *cil_common,\n\t\t\t
      \  common_datum_t **common_out)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:329,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:336,1
    - Dst: memset
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:337,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:339,1
    - Dst: symtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:340,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:343,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:344,1
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:351,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:362,1
    - Dst: cil_common_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:364,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:371,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:375,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:382,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:385,1
    - Dst: memset
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:386,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:388,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:389,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:392,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:393,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 55
    argCount: 4
    argNames:
    - pdb
    - db
    - class_value_to_cil
    - perm_value_to_cil
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_class*[]
    - struct cil_perm**[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 322
    functionDepth: 3
    functionLinenumber: 322
    functionLinenumberEnd: 408
    functionName: cil_classorder_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_list_for_each
    - cil_strdup
    - hashtab_search
    - cil_malloc
    - symtab_init
    - hashtab_insert
    - cil_common_to_policydb
    - free
    - memset
    - symtab_insert
    - NODE
    linkageType: ''
    returnType: int
    signature: "int cil_classorder_to_policydb(policydb_t *pdb, const struct cil_db
      *db,\n\t\t\t\t      struct cil_class *class_value_to_cil[],\n\t\t\t\t      struct
      cil_perm **perm_value_to_cil[])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:415,1
    - Dst: role_datum_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:416,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:425,1
    - Dst: symtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:426,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:431,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:432,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:440,1
    - Dst: role_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:441,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:442,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - pdb
    - cil_role
    argTypes:
    - policydb_t*
    - struct cil_role*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 410
    functionDepth: 3
    functionLinenumber: 410
    functionLinenumberEnd: 444
    functionName: cil_role_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_strdup
    - cil_malloc
    - role_datum_destroy
    - cil_log
    - ebitmap_set_bit
    - free
    - symtab_insert
    - role_datum_init
    linkageType: ''
    returnType: int
    signature: int cil_role_to_policydb(policydb_t *pdb, struct cil_role *cil_role)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_role_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:454,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:454,1
    - Dst: __cil_get_sepol_role_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:459,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:459,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:470,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - pdb
    - cil_role
    argTypes:
    - policydb_t*
    - struct cil_role*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 473
    functionName: cil_role_bounds_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_log
    - DATUM
    - __cil_get_sepol_role_datum
    linkageType: ''
    returnType: int
    signature: "int cil_role_bounds_to_policydb(policydb_t *pdb,\n\t\t\t\t       struct
      cil_role *cil_role)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_role_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:486,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:486,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:490,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:491,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:492,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:496,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:498,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - pdb
    - db
    - role
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_role*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 510
    functionName: cil_roletype_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - ebitmap_for_each_positive_bit
    - cil_log
    - ebitmap_set_bit
    - __cil_get_sepol_type_datum
    - __cil_get_sepol_role_datum
    - DATUM
    linkageType: ''
    returnType: int
    signature: "int cil_roletype_to_policydb(policydb_t *pdb, const struct cil_db
      *db,\n\t\t\t     struct cil_role *role)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:518,1
    - Dst: type_datum_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:519,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:523,1
    - Dst: symtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:524,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:537,1
    - Dst: type_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:538,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - pdb
    - cil_type
    - type_value_to_cil
    argTypes:
    - policydb_t*
    - struct cil_type*
    - void*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 541
    functionName: cil_type_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_strdup
    - cil_malloc
    - free
    - type_datum_init
    - symtab_insert
    - type_datum_destroy
    linkageType: ''
    returnType: int
    signature: "int cil_type_to_policydb(policydb_t *pdb, struct cil_type *cil_type,\n\t\t\t
      void *type_value_to_cil[])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:551,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:551,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:556,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:556,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:567,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - pdb
    - cil_type
    argTypes:
    - policydb_t*
    - struct cil_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 570
    functionName: cil_type_bounds_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_log
    - DATUM
    - __cil_get_sepol_type_datum
    linkageType: ''
    returnType: int
    signature: "int cil_type_bounds_to_policydb(policydb_t *pdb,\n\t\t\t\t       struct
      cil_type *cil_type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:577,1
    - Dst: type_datum_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:578,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:580,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:580,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:587,1
    - Dst: symtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:588,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:599,1
    - Dst: type_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:600,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:601,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - pdb
    - cil_alias
    argTypes:
    - policydb_t*
    - struct cil_alias*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 603
    functionName: cil_typealias_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_strdup
    - cil_malloc
    - free
    - type_datum_init
    - __cil_get_sepol_type_datum
    - symtab_insert
    - DATUM
    - type_datum_destroy
    linkageType: ''
    returnType: int
    signature: int cil_typealias_to_policydb(policydb_t *pdb, struct cil_alias *cil_alias)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:611,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:611,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pdb
    - cil_typeperm
    argTypes:
    - policydb_t*
    - struct cil_typepermissive*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 621
    functionName: cil_typepermissive_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - DATUM
    - ebitmap_set_bit
    - __cil_get_sepol_type_datum
    linkageType: ''
    returnType: int
    signature: "int cil_typepermissive_to_policydb(policydb_t *pdb,\n\t\t\t\t   struct
      cil_typepermissive *cil_typeperm)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:629,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:629,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pdb
    - cil_typeperm
    argTypes:
    - policydb_t*
    - struct cil_typeneveraudit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 623
    functionDepth: 2
    functionLinenumber: 623
    functionLinenumberEnd: 639
    functionName: cil_typeneveraudit_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - DATUM
    - ebitmap_set_bit
    - __cil_get_sepol_type_datum
    linkageType: ''
    returnType: int
    signature: "int cil_typeneveraudit_to_policydb(policydb_t *pdb,\n\t\t\t\t   struct
      cil_typeneveraudit *cil_typeperm)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:654,1
    - Dst: type_datum_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:655,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:659,1
    - Dst: symtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:660,1
    - Dst: type_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:673,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:674,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - pdb
    - cil_attr
    - type_value_to_cil
    argTypes:
    - policydb_t*
    - struct cil_typeattribute*
    - void*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 641
    functionDepth: 2
    functionLinenumber: 641
    functionLinenumberEnd: 676
    functionName: cil_typeattribute_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_strdup
    - symtab_insert
    - cil_malloc
    - free
    - type_datum_init
    - type_datum_destroy
    linkageType: ''
    returnType: int
    signature: "int cil_typeattribute_to_policydb(policydb_t *pdb,\n\t\t\t\t  struct
      cil_typeattribute *cil_attr,\n\t\t\t\t  void *type_value_to_cil[])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:683,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:684,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:687,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:688,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:689,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:695,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - pdb
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 706
    functionName: __cil_typeattr_bitmap_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - ebitmap_init
    - ebitmap_set_bit
    linkageType: ''
    returnType: int
    signature: int __cil_typeattr_bitmap_init(policydb_t *pdb)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __cil_typeattr_bitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:722,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:728,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:728,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:734,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:735,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:735,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:740,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:742,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - pdb
    - db
    - cil_attr
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_typeattribute*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 708
    functionDepth: 2
    functionLinenumber: 708
    functionLinenumberEnd: 749
    functionName: cil_typeattribute_to_bitmap
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - ebitmap_for_each_positive_bit
    - __cil_typeattr_bitmap_init
    - ebitmap_set_bit
    - __cil_get_sepol_type_datum
    - DATUM
    linkageType: ''
    returnType: int
    signature: "int cil_typeattribute_to_bitmap(policydb_t *pdb, const struct cil_db
      *db,\n\t\t\t\tstruct cil_typeattribute *cil_attr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sepol_polcap_getnum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:756,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:761,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - pdb
    - cil_polcap
    argTypes:
    - policydb_t*
    - struct cil_policycap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 769
    functionName: cil_policycap_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - sepol_polcap_getnum
    - ebitmap_set_bit
    linkageType: ''
    returnType: int
    signature: int cil_policycap_to_policydb(policydb_t *pdb, struct cil_policycap
      *cil_polcap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:776,1
    - Dst: user_datum_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:777,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:779,1
    - Dst: symtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:780,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:790,1
    - Dst: user_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:791,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:792,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - pdb
    - cil_user
    argTypes:
    - policydb_t*
    - struct cil_user*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 771
    functionDepth: 3
    functionLinenumber: 771
    functionLinenumberEnd: 794
    functionName: cil_user_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_strdup
    - cil_malloc
    - user_datum_destroy
    - free
    - symtab_insert
    - user_datum_init
    linkageType: ''
    returnType: int
    signature: int cil_user_to_policydb(policydb_t *pdb, struct cil_user *cil_user)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_user_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:804,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:804,1
    - Dst: __cil_get_sepol_user_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:809,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:809,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:820,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - pdb
    - cil_user
    argTypes:
    - policydb_t*
    - struct cil_user*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 796
    functionDepth: 2
    functionLinenumber: 796
    functionLinenumberEnd: 823
    functionName: cil_user_bounds_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_log
    - DATUM
    - __cil_get_sepol_user_datum
    linkageType: ''
    returnType: int
    signature: "int cil_user_bounds_to_policydb(policydb_t *pdb,\n\t\t\t\t       struct
      cil_user *cil_user)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_user_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:835,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:835,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:840,1
    - Dst: __cil_get_sepol_role_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:841,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:842,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:853,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:855,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - pdb
    - db
    - user
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_user*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 825
    functionDepth: 2
    functionLinenumber: 825
    functionLinenumberEnd: 867
    functionName: cil_userrole_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - ebitmap_for_each_positive_bit
    - __cil_get_sepol_user_datum
    - cil_log
    - ebitmap_set_bit
    - __cil_get_sepol_role_datum
    - DATUM
    linkageType: ''
    returnType: int
    signature: "int cil_userrole_to_policydb(policydb_t *pdb, const struct cil_db
      *db,\n\t\t\t     struct cil_user *user)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:874,1
    - Dst: memset
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:875,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:877,1
    - Dst: symtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:878,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:889,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:890,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - pdb
    - cil_bool
    argTypes:
    - policydb_t*
    - struct cil_bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 869
    functionDepth: 2
    functionLinenumber: 869
    functionLinenumberEnd: 892
    functionName: cil_bool_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_strdup
    - cil_malloc
    - free
    - memset
    - symtab_insert
    linkageType: ''
    returnType: int
    signature: int cil_bool_to_policydb(policydb_t *pdb, struct cil_bool *cil_bool)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:903,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:905,1
    - Dst: cat_datum_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:906,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:908,1
    - Dst: symtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:909,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:920,1
    - Dst: cat_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:921,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:922,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - pdb
    - db
    argTypes:
    - policydb_t*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 894
    functionDepth: 2
    functionLinenumber: 894
    functionLinenumberEnd: 924
    functionName: cil_catorder_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_strdup
    - cil_list_for_each
    - cil_malloc
    - cat_datum_init
    - free
    - symtab_insert
    - cat_datum_destroy
    linkageType: ''
    returnType: int
    signature: int cil_catorder_to_policydb(policydb_t *pdb, const struct cil_db *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:931,1
    - Dst: cat_datum_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:932,1
    - Dst: __cil_get_sepol_cat_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:934,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:934,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:939,1
    - Dst: symtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:940,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:951,1
    - Dst: cat_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:952,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:953,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - pdb
    - cil_alias
    argTypes:
    - policydb_t*
    - struct cil_alias*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 926
    functionDepth: 2
    functionLinenumber: 926
    functionLinenumberEnd: 955
    functionName: cil_catalias_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_strdup
    - cat_datum_destroy
    - cil_malloc
    - cat_datum_init
    - __cil_get_sepol_cat_datum
    - free
    - symtab_insert
    - DATUM
    linkageType: ''
    returnType: int
    signature: int cil_catalias_to_policydb(policydb_t *pdb, struct cil_alias *cil_alias)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:967,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:969,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:970,1
    - Dst: level_datum_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:971,1
    - Dst: mls_level_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:972,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:974,1
    - Dst: symtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:975,1
    - Dst: level_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:987,1
    - Dst: mls_level_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:988,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:989,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:990,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:991,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 2
    argNames:
    - pdb
    - db
    argTypes:
    - policydb_t*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 957
    functionDepth: 2
    functionLinenumber: 957
    functionLinenumberEnd: 993
    functionName: cil_sensitivityorder_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_strdup
    - cil_list_for_each
    - level_datum_destroy
    - cil_malloc
    - level_datum_init
    - mls_level_destroy
    - free
    - symtab_insert
    - mls_level_init
    linkageType: ''
    returnType: int
    signature: int cil_sensitivityorder_to_policydb(policydb_t *pdb, const struct
      cil_db *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1002,1
    - Dst: level_datum_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1003,1
    - Dst: __cil_get_sepol_level_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1005,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1005,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1010,1
    - Dst: symtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1011,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1017,1
    - Dst: mls_level_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1018,1
    - Dst: mls_level_cpy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1020,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1022,1
    - Dst: level_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1031,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1032,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1033,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 2
    argNames:
    - pdb
    - cil_alias
    argTypes:
    - policydb_t*
    - struct cil_alias*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 995
    functionDepth: 3
    functionLinenumber: 995
    functionLinenumberEnd: 1035
    functionName: cil_sensalias_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_get_sepol_level_datum
    - cil_strdup
    - level_datum_destroy
    - cil_malloc
    - level_datum_init
    - mls_level_cpy
    - free
    - symtab_insert
    - DATUM
    - mls_level_init
    linkageType: ''
    returnType: int
    signature: "int cil_sensalias_to_policydb(policydb_t *pdb,\n\t\t\t\t     struct
      cil_alias *cil_alias)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: avtab_insert_nonunique
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1046,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1058,1
    - Dst: memset
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1059,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 5
    argNames:
    - avtab
    - avtab_key
    - avtab_datum
    - cond_node
    - cond_flavor
    argTypes:
    - avtab_t*
    - avtab_key_t*
    - avtab_datum_t*
    - cond_node_t*
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1037
    functionDepth: 2
    functionLinenumber: 1037
    functionLinenumberEnd: 1073
    functionName: __cil_cond_insert_rule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - memset
    - avtab_insert_nonunique
    linkageType: ''
    returnType: int
    signature: "int __cil_cond_insert_rule(avtab_t *avtab, avtab_key_t *avtab_key,\n\t\t\t\t
      \ avtab_datum_t *avtab_datum,\n\t\t\t\t  cond_node_t *cond_node,\n\t\t\t\t  enum
      cil_flavor cond_flavor)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - key
    - cond_list
    argTypes:
    - avtab_key_t*
    - cond_av_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1075
    functionDepth: 0
    functionLinenumber: 1075
    functionLinenumberEnd: 1089
    functionName: cil_cond_av_list_search
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: avtab_datum_t
    signature: "avtab_datum_t *cil_cond_av_list_search(avtab_key_t *key,\n\t\t\t\t\t
      \     cond_av_list_t *cond_list)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: avtab_search_node
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1121,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1128,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1136,1
    - Dst: avtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1146,1
    - Dst: avtab_search_node
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1148,1
    - Dst: cil_cond_av_list_search
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1163,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1166,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1176,1
    - Dst: cil_cond_av_list_search
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1186,1
    - Dst: __cil_cond_insert_rule
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1193,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 62
    argCount: 9
    argNames:
    - pdb
    - kind
    - src
    - tgt
    - obj
    - res
    - cil_rule
    - cond_node
    - cond_flavor
    argTypes:
    - policydb_t*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - struct cil_type_rule*
    - cond_node_t*
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1091
    functionDepth: 3
    functionLinenumber: 1091
    functionLinenumberEnd: 1200
    functionName: __cil_insert_type_rule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - avtab_search_node
    - avtab_insert
    - __cil_cond_insert_rule
    - cil_log
    - cil_cond_av_list_search
    linkageType: ''
    returnType: int
    signature: "int __cil_insert_type_rule(policydb_t *pdb, uint32_t kind, uint32_t
      src,\n\t\t\t\t  uint32_t tgt, uint32_t obj, uint32_t res,\n\t\t\t\t  struct
      cil_type_rule *cil_rule,\n\t\t\t\t  cond_node_t *cond_node,\n\t\t\t\t  enum
      cil_flavor cond_flavor)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_class_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1213,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1213,1
    - Dst: __cil_insert_type_rule
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 8
    argNames:
    - pdb
    - sepol_src
    - sepol_tgt
    - class_list
    - sepol_result
    - cil_rule
    - cond_node
    - cond_flavor
    argTypes:
    - policydb_t*
    - type_datum_t*
    - type_datum_t*
    - struct cil_list*
    - type_datum_t*
    - struct cil_type_rule*
    - cond_node_t*
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1202
    functionDepth: 4
    functionLinenumber: 1202
    functionLinenumberEnd: 1228
    functionName: __cil_type_rule_to_avtab_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - DATUM
    - __cil_insert_type_rule
    - __cil_get_sepol_class_datum
    linkageType: ''
    returnType: int
    signature: "int __cil_type_rule_to_avtab_helper(\n\tpolicydb_t *pdb, type_datum_t
      *sepol_src, type_datum_t *sepol_tgt,\n\tstruct cil_list *class_list, type_datum_t
      *sepol_result,\n\tstruct cil_type_rule *cil_rule, cond_node_t *cond_node,\n\tenum
      cil_flavor cond_flavor)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_class_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1213,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1213,1
    - Dst: __cil_insert_type_rule
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1212
    functionDepth: 4
    functionLinenumber: 1212
    functionLinenumberEnd: 1226
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 41
    functionsReached:
    - DATUM
    - __cil_insert_type_rule
    - __cil_get_sepol_class_datum
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(c, class_list)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1246,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1247,1
    - Dst: __cil_expand_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1252,1
    - Dst: cil_expand_class
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1256,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1258,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1258,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1264,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1265,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1266,1
    - Dst: __cil_type_rule_to_avtab_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1270,1
    - Dst: __cil_expand_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1277,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1281,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1282,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1283,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1287,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1288,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1289,1
    - Dst: __cil_type_rule_to_avtab_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1294,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1307,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1308,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1309,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 5
    argNames:
    - pdb
    - db
    - cil_rule
    - cond_node
    - cond_flavor
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_type_rule*
    - cond_node_t*
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1230
    functionDepth: 5
    functionLinenumber: 1230
    functionLinenumberEnd: 1311
    functionName: __cil_type_rule_to_avtab
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - __cil_expand_type
    - ebitmap_destroy
    - ebitmap_for_each_positive_bit
    - cil_list_destroy
    - __cil_get_sepol_type_datum
    - cil_expand_class
    - DATUM
    - __cil_type_rule_to_avtab_helper
    linkageType: ''
    returnType: int
    signature: "int __cil_type_rule_to_avtab(policydb_t *pdb, const struct cil_db
      *db,\n\t\t\t\t    struct cil_type_rule *cil_rule,\n\t\t\t\t    cond_node_t *cond_node,\n\t\t\t\t
      \   enum cil_flavor cond_flavor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cil_type_rule_to_avtab
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pdb
    - db
    - cil_rule
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_type_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1313
    functionDepth: 6
    functionLinenumber: 1313
    functionLinenumberEnd: 1317
    functionName: cil_type_rule_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_type_rule_to_avtab
    linkageType: ''
    returnType: int
    signature: "int cil_type_rule_to_policydb(policydb_t *pdb, const struct cil_db
      *db,\n\t\t\t      struct cil_type_rule *cil_rule)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_class_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1329,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1329,1
    - Dst: policydb_filetrans_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1334,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1341,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1347,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 6
    argNames:
    - pdb
    - sepol_src
    - sepol_tgt
    - class_list
    - name
    - sepol_result
    argTypes:
    - policydb_t*
    - type_datum_t*
    - type_datum_t*
    - struct cil_list*
    - char*
    - type_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1319
    functionDepth: 2
    functionLinenumber: 1319
    functionLinenumberEnd: 1355
    functionName: __cil_typetransition_to_avtab_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_log
    - DATUM
    - __cil_get_sepol_class_datum
    - policydb_filetrans_insert
    linkageType: ''
    returnType: int
    signature: "int __cil_typetransition_to_avtab_helper(\n\tpolicydb_t *pdb, type_datum_t
      *sepol_src, type_datum_t *sepol_tgt,\n\tstruct cil_list *class_list, char *name,
      type_datum_t *sepol_result)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_class_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1329,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1329,1
    - Dst: policydb_filetrans_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1334,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1341,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1347,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1328
    functionDepth: 2
    functionLinenumber: 1328
    functionLinenumberEnd: 1353
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 41
    functionsReached:
    - cil_log
    - DATUM
    - __cil_get_sepol_class_datum
    - policydb_filetrans_insert
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(c, class_list)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1373,1
    - Dst: __cil_type_rule_to_avtab
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1386,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1390,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1391,1
    - Dst: __cil_expand_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1396,1
    - Dst: cil_expand_class
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1400,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1402,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1402,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1408,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1409,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1410,1
    - Dst: __cil_typetransition_to_avtab_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1414,1
    - Dst: __cil_expand_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1421,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1425,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1426,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1427,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1431,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1432,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1433,1
    - Dst: __cil_typetransition_to_avtab_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1438,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1450,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1451,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1452,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 66
    argCount: 5
    argNames:
    - pdb
    - db
    - typetrans
    - cond_node
    - cond_flavor
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_nametypetransition*
    - cond_node_t*
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1357
    functionDepth: 6
    functionLinenumber: 1357
    functionLinenumberEnd: 1454
    functionName: __cil_typetransition_to_avtab
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - __cil_expand_type
    - ebitmap_destroy
    - ebitmap_for_each_positive_bit
    - __cil_typetransition_to_avtab_helper
    - cil_list_destroy
    - cil_expand_class
    - __cil_get_sepol_type_datum
    - DATUM
    - __cil_type_rule_to_avtab
    linkageType: ''
    returnType: int
    signature: "int __cil_typetransition_to_avtab(policydb_t *pdb, const struct cil_db
      *db,\n\t\t\t      struct cil_nametypetransition *typetrans,\n\t\t\t      cond_node_t
      *cond_node,\n\t\t\t      enum cil_flavor cond_flavor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cil_typetransition_to_avtab
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pdb
    - db
    - typetrans
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_nametypetransition*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1456
    functionDepth: 7
    functionLinenumber: 1456
    functionLinenumberEnd: 1461
    functionName: cil_typetransition_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_typetransition_to_avtab
    linkageType: ''
    returnType: int
    signature: "int cil_typetransition_to_policydb(policydb_t *pdb, const struct cil_db
      *db,\n\t\t\t\t   struct cil_nametypetransition *typetrans)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1470,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1473,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1476,1
    - Dst: UINT32_C
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1482,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - perm_str
    - sepol_class
    - datum
    argTypes:
    - char*
    - class_datum_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1488
      start: 1463
    functionDepth: 1
    functionLinenumber: 1463
    functionLinenumberEnd: 1488
    functionName: __perm_str_to_datum
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_log
    - UINT32_C
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: "int __perm_str_to_datum(char *perm_str, class_datum_t *sepol_class,\n\t\t\t
      \      uint32_t *datum)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __perm_str_to_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1503,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - perms
    - sepol_class
    - datum
    argTypes:
    - struct cil_list*
    - class_datum_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1490
    functionDepth: 2
    functionLinenumber: 1490
    functionLinenumberEnd: 1515
    functionName: __cil_perms_to_datum
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __perm_str_to_datum
    linkageType: ''
    returnType: int
    signature: "int __cil_perms_to_datum(struct cil_list *perms,\n\t\t\t\tclass_datum_t
      *sepol_class, uint32_t *datum)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __perm_str_to_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1503,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1499
    functionDepth: 2
    functionLinenumber: 1499
    functionLinenumberEnd: 1507
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 41
    functionsReached:
    - __perm_str_to_datum
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr_perm, perms)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: avtab_search
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1548,1
    - Dst: avtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1550,1
    - Dst: __cil_cond_insert_rule
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1559,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 8
    argNames:
    - pdb
    - kind
    - src
    - tgt
    - obj
    - data
    - cond_node
    - cond_flavor
    argTypes:
    - policydb_t*
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    - cond_node_t*
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1517
    functionDepth: 3
    functionLinenumber: 1517
    functionLinenumberEnd: 1566
    functionName: __cil_insert_avrule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - avtab_insert
    - __cil_cond_insert_rule
    - avtab_search
    linkageType: ''
    returnType: int
    signature: "int __cil_insert_avrule(policydb_t *pdb, uint32_t kind, uint32_t src,\n\t\t\t
      \      uint32_t tgt, uint32_t obj, uint32_t data,\n\t\t\t       cond_node_t
      *cond_node,\n\t\t\t       enum cil_flavor cond_flavor)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_class_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1581,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1581,1
    - Dst: __cil_perms_to_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1585,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1598,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1602,1
    - Dst: __cil_insert_avrule
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1606,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 7
    argNames:
    - pdb
    - kind
    - src
    - tgt
    - cp
    - cond_node
    - cond_flavor
    argTypes:
    - policydb_t*
    - uint16_t
    - struct cil_symtab_datum*
    - struct cil_symtab_datum*
    - struct cil_classperms*
    - cond_node_t*
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1568
    functionDepth: 4
    functionLinenumber: 1568
    functionLinenumberEnd: 1617
    functionName: __cil_avrule_expand_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_perms_to_datum
    - __cil_insert_avrule
    - __cil_get_sepol_type_datum
    - __cil_get_sepol_class_datum
    - DATUM
    linkageType: ''
    returnType: int
    signature: "int __cil_avrule_expand_helper(policydb_t *pdb, uint16_t kind,\n\t\t\t\t
      \     struct cil_symtab_datum *src,\n\t\t\t\t      struct cil_symtab_datum *tgt,\n\t\t\t\t
      \     struct cil_classperms *cp,\n\t\t\t\t      cond_node_t *cond_node,\n\t\t\t\t
      \     enum cil_flavor cond_flavor)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1632,1
    - Dst: __cil_avrule_expand_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1633,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1642,1
    - Dst: __cil_avrule_expand
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1644,1
    - Dst: __cil_avrule_expand
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1656,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 7
    argNames:
    - pdb
    - kind
    - src
    - tgt
    - classperms
    - cond_node
    - cond_flavor
    argTypes:
    - policydb_t*
    - uint16_t
    - struct cil_symtab_datum*
    - struct cil_symtab_datum*
    - struct cil_list*
    - cond_node_t*
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1669
      start: 1619
    functionDepth: 5
    functionLinenumber: 1619
    functionLinenumberEnd: 1669
    functionName: __cil_avrule_expand
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 1
    functionsReached:
    - __cil_avrule_expand_helper
    - cil_list_for_each
    - __cil_avrule_expand
    - FLAVOR
    linkageType: ''
    returnType: int
    signature: "int __cil_avrule_expand(policydb_t *pdb, uint16_t kind,\n\t\t\t       struct
      cil_symtab_datum *src,\n\t\t\t       struct cil_symtab_datum *tgt,\n\t\t\t       struct
      cil_list *classperms,\n\t\t\t       cond_node_t *cond_node,\n\t\t\t       enum
      cil_flavor cond_flavor)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1632,1
    - Dst: __cil_avrule_expand_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1633,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1642,1
    - Dst: __cil_avrule_expand
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1644,1
    - Dst: __cil_avrule_expand
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1656,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1629
    functionDepth: 6
    functionLinenumber: 1629
    functionLinenumberEnd: 1663
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 43
    functionsReached:
    - __cil_avrule_expand_helper
    - cil_list_for_each
    - __cil_avrule_expand
    - FLAVOR
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, classperms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1677,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - db
    - datum
    argTypes:
    - struct cil_db*
    - struct cil_symtab_datum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1671
    functionDepth: 1
    functionLinenumber: 1671
    functionLinenumberEnd: 1687
    functionName: __cil_should_expand_attribute
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - ebitmap_cardinality
    - NODE
    linkageType: ''
    returnType: int
    signature: "int __cil_should_expand_attribute(const struct cil_db *db,\n\t\t\t\t\t
      struct cil_symtab_datum *datum)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: __cil_expand_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1714,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1719,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1720,1
    - Dst: __cil_avrule_expand
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1721,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1725,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1729,1
    - Dst: __cil_expand_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1731,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1736,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1737,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1740,1
    - Dst: __cil_avrule_expand
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1741,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1745,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1751,1
    - Dst: __cil_expand_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1753,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1758,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1759,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1760,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1762,1
    - Dst: __cil_avrule_expand
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1763,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1767,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1773,1
    - Dst: __cil_should_expand_attribute
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1775,1
    - Dst: __cil_should_expand_attribute
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1776,1
    - Dst: __cil_avrule_expand
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1778,1
    - Dst: __cil_expand_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1785,1
    - Dst: __cil_expand_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1790,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1792,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1796,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1797,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1798,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1800,1
    - Dst: __cil_avrule_expand
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1802,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1806,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1807,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1812,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1813,1
    - Dst: __cil_expand_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1815,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1820,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1821,1
    - Dst: __cil_avrule_expand
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1823,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1827,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1831,1
    - Dst: __cil_expand_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1833,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1838,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1839,1
    - Dst: __cil_avrule_expand
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1841,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1845,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1849,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 142
    argCount: 5
    argNames:
    - pdb
    - db
    - cil_avrule
    - cond_node
    - cond_flavor
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_avrule*
    - cond_node_t*
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1689
    functionDepth: 6
    functionLinenumber: 1689
    functionLinenumberEnd: 1857
    functionName: __cil_avrule_to_avtab
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_expand_type
    - ebitmap_destroy
    - __cil_should_expand_attribute
    - ebitmap_for_each_positive_bit
    - __cil_avrule_expand
    - DATUM
    linkageType: ''
    returnType: int
    signature: "int __cil_avrule_to_avtab(policydb_t *pdb, const struct cil_db *db,\n\t\t\t\t
      struct cil_avrule *cil_avrule,\n\t\t\t\t cond_node_t *cond_node,\n\t\t\t\t enum
      cil_flavor cond_flavor)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cil_avrule_to_avtab
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pdb
    - db
    - cil_avrule
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_avrule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1859
    functionDepth: 7
    functionLinenumber: 1859
    functionLinenumberEnd: 1863
    functionName: cil_avrule_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_avrule_to_avtab
    linkageType: ''
    returnType: int
    signature: "int cil_avrule_to_policydb(policydb_t *pdb, const struct cil_db *db,\n\t\t\t
      \  struct cil_avrule *cil_avrule)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1869
      start: 1868
    functionDepth: 0
    functionLinenumber: 1868
    functionLinenumberEnd: 1869
    functionName: XPERM_IDX
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XPERM_IDX(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1871
      start: 1870
    functionDepth: 0
    functionLinenumber: 1870
    functionLinenumberEnd: 1871
    functionName: XPERM_SETBITS
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XPERM_SETBITS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1872
    functionDepth: 0
    functionLinenumber: 1872
    functionLinenumberEnd: 1873
    functionName: XPERM_LOW
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XPERM_LOW(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1874
    functionDepth: 0
    functionLinenumber: 1874
    functionLinenumberEnd: 1875
    functionName: XPERM_HIGH
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XPERM_HIGH(x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XPERM_IDX
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1881,1
    - Dst: XPERM_IDX
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1881,1
    - Dst: XPERM_LOW
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1883,1
    - Dst: XPERM_HIGH
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1883,1
    - Dst: XPERM_LOW
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1886,1
    - Dst: XPERM_HIGH
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1886,1
    - Dst: XPERM_SETBITS
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1887,1
    - Dst: XPERM_LOW
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1889,1
    - Dst: XPERM_HIGH
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1889,1
    - Dst: XPERM_SETBITS
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1890,1
    - Dst: XPERM_LOW
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1892,1
    - Dst: XPERM_HIGH
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1892,1
    - Dst: XPERM_SETBITS
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1894,1
    - Dst: XPERM_SETBITS
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1894,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 3
    argNames:
    - low
    - high
    - xperms
    argTypes:
    - uint16_t
    - uint16_t
    - struct avtab_extended_perms*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1896
      start: 1875
    functionDepth: 0
    functionLinenumber: 1875
    functionLinenumberEnd: 1896
    functionName: __avrule_xperm_setrangebits
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - XPERM_SETBITS
    - XPERM_IDX
    - XPERM_HIGH
    - XPERM_LOW
    linkageType: ''
    returnType: void
    signature: "void __avrule_xperm_setrangebits(uint16_t low, uint16_t high,\n\t\t\t\t\tstruct
      avtab_extended_perms *xperms)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - xperm_kind
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1898
    functionDepth: 0
    functionLinenumber: 1898
    functionLinenumberEnd: 1908
    functionName: __cil_xperm_kind_to_str
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *__cil_xperm_kind_to_str(uint32_t xperm_kind)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1910
    functionDepth: 0
    functionLinenumber: 1910
    functionLinenumberEnd: 1911
    functionName: IOC_DRIV
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IOC_DRIV(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1911
    functionDepth: 0
    functionLinenumber: 1911
    functionLinenumberEnd: 1912
    functionName: IOC_FUNC
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IOC_FUNC(x)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1924,1
    - Dst: IOC_FUNC
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1935,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1935,1
    - Dst: IOC_FUNC
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1945,1
    - Dst: IOC_FUNC
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1946,1
    - Dst: cil_calloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1948,1
    - Dst: __avrule_xperm_setrangebits
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1953,1
    - Dst: IOC_DRIV
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1953,1
    - Dst: IOC_DRIV
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1954,1
    - Dst: IOC_DRIV
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1956,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1957,1
    - Dst: cil_calloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1963,1
    - Dst: IOC_DRIV
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1964,1
    - Dst: __avrule_xperm_setrangebits
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1976,1
    - Dst: IOC_FUNC
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1976,1
    - Dst: IOC_FUNC
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1977,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1982,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1986,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 3
    argNames:
    - kind
    - xperms
    - xperms_list
    argTypes:
    - uint32_t
    - ebitmap_t*
    - struct cil_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1990
      start: 1913
    functionDepth: 3
    functionLinenumber: 1913
    functionLinenumberEnd: 1990
    functionName: __cil_permx_bitmap_to_sepol_xperms_list
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - IOC_DRIV
    - IOC_FUNC
    - cil_calloc
    - cil_list_append
    - ebitmap_get_bit
    - cil_list_init
    - __avrule_xperm_setrangebits
    linkageType: ''
    returnType: int
    signature: "int __cil_permx_bitmap_to_sepol_xperms_list(uint32_t kind, ebitmap_t
      *xperms,\n\t\t\t\t\tstruct cil_list **xperms_list)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: IOC_FUNC
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1935,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1935,1
    - Dst: IOC_FUNC
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1945,1
    - Dst: IOC_FUNC
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1946,1
    - Dst: cil_calloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1948,1
    - Dst: __avrule_xperm_setrangebits
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1953,1
    - Dst: IOC_DRIV
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1953,1
    - Dst: IOC_DRIV
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1954,1
    - Dst: IOC_DRIV
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1956,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1957,1
    - Dst: cil_calloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1963,1
    - Dst: IOC_DRIV
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1964,1
    - Dst: __avrule_xperm_setrangebits
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1976,1
    - Dst: IOC_FUNC
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1976,1
    - Dst: IOC_FUNC
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:1977,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1928
    functionDepth: 3
    functionLinenumber: 1928
    functionLinenumberEnd: 1979
    functionName: ebitmap_for_each_positive_bit
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 59
    functionsReached:
    - IOC_DRIV
    - IOC_FUNC
    - cil_calloc
    - cil_list_append
    - ebitmap_get_bit
    - __avrule_xperm_setrangebits
    linkageType: ''
    returnType: void
    signature: void ebitmap_for_each_positive_bit(xperms, node, i)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __cil_xperm_kind_to_str
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2016,1
    - Dst: __perm_str_to_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2017,1
    - Dst: __cil_permx_bitmap_to_sepol_xperms_list
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2023,1
    - Dst: __cil_cond_insert_rule
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2033,1
    - Dst: avtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2037,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2050,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2052,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - k
    - datum
    - xperm_kind
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2055
      start: 1992
    functionDepth: 4
    functionLinenumber: 1992
    functionLinenumberEnd: 2055
    functionName: __cil_avrulex_xperm_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __perm_str_to_datum
    - __cil_permx_bitmap_to_sepol_xperms_list
    - avtab_insert
    - __cil_cond_insert_rule
    - cil_list_destroy
    - __cil_xperm_kind_to_str
    - free
    linkageType: ''
    returnType: int
    signature: "int __cil_avrulex_xperm_to_policydb(hashtab_key_t k,\n\t\t\t\t\t   hashtab_datum_t
      datum,\n\t\t\t\t\t   uint32_t xperm_kind, void *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_cond_insert_rule
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2033,1
    - Dst: avtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2037,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2043
      start: 2029
    functionDepth: 3
    functionLinenumber: 2029
    functionLinenumberEnd: 2043
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 43
    functionsReached:
    - avtab_insert
    - __cil_cond_insert_rule
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(item, xperms_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2051
      start: 2049
    functionDepth: 0
    functionLinenumber: 2049
    functionLinenumberEnd: 2051
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 43
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(item, xperms_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cil_avrulex_xperm_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - k
    - datum
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 2057
    functionDepth: 5
    functionLinenumber: 2057
    functionLinenumberEnd: 2062
    functionName: __cil_avrulex_ioctl_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_avrulex_xperm_to_policydb
    linkageType: ''
    returnType: int
    signature: "int __cil_avrulex_ioctl_to_policydb(hashtab_key_t k,\n\t\t\t\t\t   hashtab_datum_t
      datum, void *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cil_avrulex_xperm_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - k
    - datum
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2069
      start: 2064
    functionDepth: 5
    functionLinenumber: 2064
    functionLinenumberEnd: 2069
    functionName: __cil_avrulex_nlmsg_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_avrulex_xperm_to_policydb
    linkageType: ''
    returnType: int
    signature: "int __cil_avrulex_nlmsg_to_policydb(hashtab_key_t k,\n\t\t\t\t\t   hashtab_datum_t
      datum, void *args)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2095,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2102,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2104,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2105,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2107,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2108,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2111,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2114,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2115,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2119,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2120,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 6
    argNames:
    - h
    - kind
    - src
    - tgt
    - obj
    - xperms
    argTypes:
    - hashtab_t
    - uint16_t
    - uint32_t
    - uint32_t
    - uint32_t
    - ebitmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2130
      start: 2071
    functionDepth: 3
    functionLinenumber: 2071
    functionLinenumberEnd: 2130
    functionName: __cil_avrulex_xperm_to_hashtable
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - cil_malloc
    - hashtab_insert
    - free
    - ebitmap_union
    - ebitmap_cpy
    linkageType: ''
    returnType: int
    signature: "int __cil_avrulex_xperm_to_hashtable(hashtab_t h, uint16_t kind,\n\t\t\t\t\t
      \   uint32_t src, uint32_t tgt,\n\t\t\t\t\t    uint32_t obj, ebitmap_t *xperms)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2145,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2149,1
    - Dst: cil_expand_class
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2153,1
    - Dst: __cil_get_sepol_class_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2156,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2156,1
    - Dst: __cil_avrulex_xperm_to_hashtable
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2163,1
    - Dst: __cil_avrulex_xperm_to_hashtable
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2171,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2187,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 6
    argNames:
    - pdb
    - kind
    - src
    - tgt
    - permx
    - xt
    argTypes:
    - policydb_t*
    - uint16_t
    - struct cil_symtab_datum*
    - struct cil_symtab_datum*
    - struct cil_permissionx*
    - struct cil_args_xperm_tables*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2190
      start: 2132
    functionDepth: 4
    functionLinenumber: 2132
    functionLinenumberEnd: 2190
    functionName: __cil_avrulex_to_hashtable_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_avrulex_xperm_to_hashtable
    - cil_list_destroy
    - cil_expand_class
    - __cil_get_sepol_type_datum
    - __cil_get_sepol_class_datum
    - DATUM
    linkageType: ''
    returnType: int
    signature: "int __cil_avrulex_to_hashtable_helper(policydb_t *pdb, uint16_t kind,\n\t\t\t\t\t
      \    struct cil_symtab_datum *src,\n\t\t\t\t\t     struct cil_symtab_datum *tgt,\n\t\t\t\t\t
      \    struct cil_permissionx *permx,\n\t\t\t\t\t     struct cil_args_xperm_tables
      *xt)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_class_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2156,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2156,1
    - Dst: __cil_avrulex_xperm_to_hashtable
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2163,1
    - Dst: __cil_avrulex_xperm_to_hashtable
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2171,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2182
      start: 2155
    functionDepth: 4
    functionLinenumber: 2155
    functionLinenumberEnd: 2182
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 43
    functionsReached:
    - __cil_avrulex_xperm_to_hashtable
    - DATUM
    - __cil_get_sepol_class_datum
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(c, class_list)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: __cil_expand_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2216,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2220,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2221,1
    - Dst: __cil_avrulex_to_hashtable_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2222,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2226,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2230,1
    - Dst: __cil_expand_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2232,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2237,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2238,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2241,1
    - Dst: __cil_avrulex_to_hashtable_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2242,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2246,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2252,1
    - Dst: __cil_expand_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2254,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2259,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2260,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2261,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2263,1
    - Dst: __cil_avrulex_to_hashtable_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2264,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2268,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2274,1
    - Dst: __cil_should_expand_attribute
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2276,1
    - Dst: __cil_should_expand_attribute
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2277,1
    - Dst: __cil_avrulex_to_hashtable_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2280,1
    - Dst: __cil_expand_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2287,1
    - Dst: __cil_expand_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2292,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2294,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2298,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2299,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2300,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2302,1
    - Dst: __cil_avrulex_to_hashtable_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2304,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2308,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2309,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2314,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2315,1
    - Dst: __cil_expand_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2317,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2322,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2323,1
    - Dst: __cil_avrulex_to_hashtable_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2325,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2329,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2333,1
    - Dst: __cil_expand_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2335,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2340,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2341,1
    - Dst: __cil_avrulex_to_hashtable_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2343,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2347,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2351,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 142
    argCount: 4
    argNames:
    - pdb
    - db
    - cil_avrulex
    - xt
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_avrule*
    - struct cil_args_xperm_tables*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2359
      start: 2192
    functionDepth: 5
    functionLinenumber: 2192
    functionLinenumberEnd: 2359
    functionName: cil_avrulex_to_hashtable
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_expand_type
    - ebitmap_destroy
    - __cil_should_expand_attribute
    - ebitmap_for_each_positive_bit
    - __cil_avrulex_to_hashtable_helper
    - DATUM
    linkageType: ''
    returnType: int
    signature: "int cil_avrulex_to_hashtable(policydb_t *pdb, const struct cil_db
      *db,\n\t\t\t\t    struct cil_avrule *cil_avrulex,\n\t\t\t\t    struct cil_args_xperm_tables
      *xt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2364,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2365,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - k
    - datum
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2369
      start: 2361
    functionDepth: 1
    functionLinenumber: 2361
    functionLinenumberEnd: 2369
    functionName: __cil_avrulex_xperm_destroy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - ebitmap_destroy
    - free
    linkageType: ''
    returnType: int
    signature: "int __cil_avrulex_xperm_destroy(hashtab_key_t k, hashtab_datum_t datum,\n\t\t\t\t
      \      __attribute__((unused)) void *args)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2391,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2392,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2394,1
    - Dst: __cil_typetransition_to_avtab
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2398,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2401,1
    - Dst: __cil_type_rule_to_avtab
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2409,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2412,1
    - Dst: __cil_avrule_to_avtab
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2419,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2422,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2429,1
    - Dst: cil_avrulex_to_hashtable
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2437,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2440,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2451,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 64
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2460
      start: 2371
    functionDepth: 7
    functionLinenumber: 2371
    functionLinenumberEnd: 2460
    functionName: __cil_cond_to_policydb_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_log
    - cil_tree_log
    - cil_avrulex_to_hashtable
    - __cil_avrule_to_avtab
    - DATUM
    - __cil_type_rule_to_avtab
    - __cil_typetransition_to_avtab
    linkageType: ''
    returnType: int
    signature: "int __cil_cond_to_policydb_helper(struct cil_tree_node *node,\n\t\t\t\t\t
      __attribute__((unused))\n\t\t\t\t\t uint32_t *finished,\n\t\t\t\t\t void *extra_args)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2471,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2471,1
    - Dst: __cil_expr_to_string
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2473,1
    - Dst: cil_asprintf
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2474,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2475,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2479,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - curr
    - flavor
    - out
    argTypes:
    - struct cil_list_item*
    - enum cil_flavor
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2481
      start: 2465
    functionDepth: 1
    functionLinenumber: 2465
    functionLinenumberEnd: 2481
    functionName: __cil_expr_to_string_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_strdup
    - __cil_expr_to_string
    - cil_asprintf
    - free
    - DATUM
    linkageType: ''
    returnType: void
    signature: "void __cil_expr_to_string_helper(struct cil_list_item *curr,\n\t\t\t\t\tenum
      cil_flavor flavor, char **out)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2492,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2502,1
    - Dst: __cil_expr_to_string_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2504,1
    - Dst: __cil_expr_to_string_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2505,1
    - Dst: cil_asprintf
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2507,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2508,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2509,1
    - Dst: __cil_expr_to_string_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2511,1
    - Dst: cil_asprintf
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2514,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2515,1
    - Dst: __cil_expr_to_string_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2519,1
    - Dst: cil_asprintf
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2530,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2531,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2532,1
    - Dst: __cil_expr_to_string_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2538,1
    - Dst: __cil_expr_to_string_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2541,1
    - Dst: cil_asprintf
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2542,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2543,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2544,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 3
    argNames:
    - expr
    - flavor
    - out
    argTypes:
    - struct cil_list*
    - enum cil_flavor
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2549
      start: 2483
    functionDepth: 2
    functionLinenumber: 2483
    functionLinenumberEnd: 2549
    functionName: __cil_expr_to_string
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 1
    functionsReached:
    - cil_asprintf
    - cil_strdup
    - free
    - __cil_expr_to_string_helper
    linkageType: ''
    returnType: void
    signature: "void __cil_expr_to_string(struct cil_list *expr, enum cil_flavor flavor,\n\t\t\t\t
      char **out)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2563,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2565,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2567,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2570,1
    - Dst: __cil_cond_expr_to_sepol_expr_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2577,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - pdb
    - item
    - head
    - tail
    argTypes:
    - policydb_t*
    - struct cil_list_item*
    - cond_expr_t**
    - cond_expr_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2590
      start: 2556
    functionDepth: 1
    functionLinenumber: 2556
    functionLinenumberEnd: 2590
    functionName: __cil_cond_item_to_sepol_expr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - cil_malloc
    - __cil_cond_expr_to_sepol_expr_helper
    - cil_log
    - DATUM
    linkageType: ''
    returnType: int
    signature: "int __cil_cond_item_to_sepol_expr(policydb_t *pdb,\n\t\t\t\t\t struct
      cil_list_item *item,\n\t\t\t\t\t cond_expr_t **head, cond_expr_t **tail)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2603,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2612,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2636,1
    - Dst: __cil_cond_item_to_sepol_expr
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2640,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2642,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2644,1
    - Dst: __cil_cond_item_to_sepol_expr
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2653,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2656,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2658,1
    - Dst: cond_expr_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2659,1
    - Dst: __cil_cond_item_to_sepol_expr
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2669,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2671,1
    - Dst: __cil_cond_item_to_sepol_expr
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2677,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2679,1
    - Dst: cond_expr_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2681,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2684,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 93
    argCount: 4
    argNames:
    - pdb
    - cil_expr
    - head
    - tail
    argTypes:
    - policydb_t*
    - struct cil_list*
    - cond_expr_t**
    - cond_expr_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2592
    functionDepth: 2
    functionLinenumber: 2592
    functionLinenumberEnd: 2699
    functionName: __cil_cond_expr_to_sepol_expr_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 1
    functionsReached:
    - __cil_cond_item_to_sepol_expr
    - cil_malloc
    - cil_log
    - free
    - cond_expr_destroy
    linkageType: ''
    returnType: int
    signature: "int __cil_cond_expr_to_sepol_expr_helper(policydb_t *pdb,\n\t\t\t\t\t\tstruct
      cil_list *cil_expr,\n\t\t\t\t\t\tcond_expr_t **head,\n\t\t\t\t\t\tcond_expr_t
      **tail)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __cil_cond_expr_to_sepol_expr_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - pdb
    - cil_expr
    - sepol_expr
    argTypes:
    - policydb_t*
    - struct cil_list*
    - cond_expr_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2701
    functionDepth: 3
    functionLinenumber: 2701
    functionLinenumberEnd: 2715
    functionName: __cil_cond_expr_to_sepol_expr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_cond_expr_to_sepol_expr_helper
    linkageType: ''
    returnType: int
    signature: "int __cil_cond_expr_to_sepol_expr(policydb_t *pdb,\n\t\t\t\t\t struct
      cil_list *cil_expr,\n\t\t\t\t\t cond_expr_t **sepol_expr)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2726,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2734,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2745,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2752,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2758,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 1
    argNames:
    - cond_expr
    argTypes:
    - cond_expr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2763
      start: 2717
    functionDepth: 1
    functionLinenumber: 2717
    functionLinenumberEnd: 2763
    functionName: __cil_validate_cond_expr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_log
    linkageType: ''
    returnType: int
    signature: int __cil_validate_cond_expr(cond_expr_t *cond_expr)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: cond_node_create
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2783,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2786,1
    - Dst: __cil_cond_expr_to_sepol_expr
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2791,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2794,1
    - Dst: __cil_validate_cond_expr
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2800,1
    - Dst: cond_normalize_expr
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2807,1
    - Dst: cond_node_find
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2817,1
    - Dst: cond_expr_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2828,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2829,1
    - Dst: hashtab_create
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2855,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2858,1
    - Dst: hashtab_create
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2863,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2866,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2874,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2877,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2883,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2886,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2890,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2893,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2897,1
    - Dst: hashtab_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2899,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2902,1
    - Dst: hashtab_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2904,1
    - Dst: hashtab_create
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2909,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2912,1
    - Dst: hashtab_create
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2917,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2920,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2928,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2931,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2937,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2940,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2944,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2947,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2951,1
    - Dst: hashtab_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2953,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2956,1
    - Dst: hashtab_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2958,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2965,1
    - Dst: hashtab_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2966,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2967,1
    - Dst: hashtab_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2968,1
    - Dst: cond_expr_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2971,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2972,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 155
    argCount: 3
    argNames:
    - pdb
    - db
    - node
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2975
      start: 2765
    functionDepth: 7
    functionLinenumber: 2765
    functionLinenumberEnd: 2975
    functionName: cil_booleanif_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - hashtab_map
    - cond_node_create
    - cond_normalize_expr
    - cil_tree_walk
    - cil_log
    - free
    - cil_tree_log
    - hashtab_create
    - cond_expr_destroy
    - cond_node_find
    - hashtab_destroy
    - __cil_cond_expr_to_sepol_expr
    - __cil_validate_cond_expr
    linkageType: ''
    returnType: int
    signature: "int cil_booleanif_to_policydb(policydb_t *pdb, const struct cil_db
      *db,\n\t\t\t      struct cil_tree_node *node)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: __cil_expand_role
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2994,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2994,1
    - Dst: __cil_expand_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:2998,1
    - Dst: cil_expand_class
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3002,1
    - Dst: __cil_get_sepol_role_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3004,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3004,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3009,1
    - Dst: __cil_get_sepol_role_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3010,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3010,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3015,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3016,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3017,1
    - Dst: __cil_get_sepol_class_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3023,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3024,1
    - Dst: cil_malloc::cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3028,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3035,1
    - Dst: new_role::new_role
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3037,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3041,1
    - Dst: new_role::new_role
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3044,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3046,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3052,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3073,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3074,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3075,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 4
    argNames:
    - pdb
    - db
    - roletrans
    - role_trans_table
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_roletransition*
    - hashtab_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3077
      start: 2977
    functionDepth: 3
    functionLinenumber: 2977
    functionLinenumberEnd: 3077
    functionName: cil_roletrans_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_expand_type
    - ebitmap_destroy
    - new_role::new_role
    - hashtab_search
    - ebitmap_for_each_positive_bit
    - __cil_expand_role
    - cil_malloc::cil_malloc
    - hashtab_insert
    - cil_log
    - cil_list_destroy
    - cil_expand_class
    - __cil_get_sepol_role_datum
    - __cil_get_sepol_type_datum
    - DATUM
    - __cil_get_sepol_class_datum
    linkageType: ''
    returnType: int
    signature: "int cil_roletrans_to_policydb(policydb_t *pdb, const struct cil_db
      *db,\n\t\t\t      struct cil_roletransition *roletrans,\n\t\t\t      hashtab_t
      role_trans_table)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_class_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3023,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3024,1
    - Dst: cil_malloc::cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3028,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3035,1
    - Dst: new_role::new_role
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3037,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3041,1
    - Dst: new_role::new_role
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3044,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3046,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3052,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3066
      start: 3021
    functionDepth: 2
    functionLinenumber: 3021
    functionLinenumberEnd: 3066
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 43
    functionsReached:
    - new_role::new_role
    - hashtab_search
    - hashtab_insert
    - cil_malloc::cil_malloc
    - cil_log
    - __cil_get_sepol_class_datum
    - DATUM
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(c, class_list)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_expand_role
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3090,1
    - Dst: __cil_expand_role
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3094,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3098,1
    - Dst: __cil_get_sepol_role_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3099,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3099,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3104,1
    - Dst: __cil_get_sepol_role_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3105,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3106,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3110,1
    - Dst: memset
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3111,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3123,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3124,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - pdb
    - db
    - roleallow
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_roleallow*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3126
      start: 3079
    functionDepth: 3
    functionLinenumber: 3079
    functionLinenumberEnd: 3126
    functionName: cil_roleallow_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - ebitmap_destroy
    - ebitmap_for_each_positive_bit
    - cil_malloc
    - __cil_expand_role
    - __cil_get_sepol_role_datum
    - memset
    - DATUM
    linkageType: ''
    returnType: int
    signature: "int cil_roleallow_to_policydb(policydb_t *pdb, const struct cil_db
      *db,\n\t\t\t      struct cil_roleallow *roleallow)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: __cil_expand_user
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3142,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3146,1
    - Dst: __cil_get_sepol_user_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3147,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3148,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3150,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3154,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3156,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3160,1
    - Dst: __cil_expand_role
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3167,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3171,1
    - Dst: __cil_get_sepol_role_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3172,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3173,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3175,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3179,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3181,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3185,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3193,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3196,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3206,1
    - Dst: __cil_expand_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3216,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3220,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3221,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3222,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3224,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3228,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3230,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3234,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 85
    argCount: 5
    argNames:
    - pdb
    - db
    - item
    - expr_flavor
    - expr
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_list_item*
    - enum cil_flavor
    - constraint_expr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3243
      start: 3128
    functionDepth: 3
    functionLinenumber: 3128
    functionLinenumberEnd: 3243
    functionName: __cil_constrain_expr_datum_to_sepol_expr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_expand_type
    - ebitmap_destroy
    - ebitmap_for_each_positive_bit
    - __cil_expand_role
    - __cil_get_sepol_user_datum
    - ebitmap_set_bit
    - FLAVOR
    - __cil_get_sepol_role_datum
    - __cil_get_sepol_type_datum
    - DATUM
    - __cil_expand_user
    linkageType: ''
    returnType: int
    signature: "int __cil_constrain_expr_datum_to_sepol_expr(policydb_t *pdb,\n\t\t\t\t\t\t
      \   const struct cil_db *db,\n\t\t\t\t\t\t    struct cil_list_item *item,\n\t\t\t\t\t\t
      \   enum cil_flavor expr_flavor,\n\t\t\t\t\t\t    constraint_expr_t *expr)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: __cil_constrain_expr_datum_to_sepol_expr
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3319,1
    - Dst: __cil_constrain_expr_datum_to_sepol_expr
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3328,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 84
    argCount: 5
    argNames:
    - pdb
    - db
    - op_item
    - expr_flavor
    - expr
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_list_item*
    - enum cil_flavor
    - constraint_expr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3344
      start: 3245
    functionDepth: 4
    functionLinenumber: 3245
    functionLinenumberEnd: 3344
    functionName: __cil_constrain_expr_leaf_to_sepol_expr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_constrain_expr_datum_to_sepol_expr
    linkageType: ''
    returnType: int
    signature: "int __cil_constrain_expr_leaf_to_sepol_expr(\n\tpolicydb_t *pdb, const
      struct cil_db *db, struct cil_list_item *op_item,\n\tenum cil_flavor expr_flavor,
      constraint_expr_t *expr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __cil_constrain_expr_datum_to_sepol_expr
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3333
      start: 3327
    functionDepth: 4
    functionLinenumber: 3327
    functionLinenumberEnd: 3333
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 43
    functionsReached:
    - __cil_constrain_expr_datum_to_sepol_expr
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, r_expr)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3365,1
    - Dst: constraint_expr_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3366,1
    - Dst: __cil_constrain_expr_leaf_to_sepol_expr
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3407,1
    - Dst: __cil_constrain_expr_to_sepol_expr_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3416,1
    - Dst: __cil_constrain_expr_to_sepol_expr_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3427,1
    - Dst: __cil_constrain_expr_to_sepol_expr_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3432,1
    - Dst: constraint_expr_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3435,1
    - Dst: constraint_expr_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3447,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 87
    argCount: 5
    argNames:
    - pdb
    - db
    - cil_expr
    - head
    - tail
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_list*
    - constraint_expr_t**
    - constraint_expr_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3449
      start: 3346
    functionDepth: 5
    functionLinenumber: 3346
    functionLinenumberEnd: 3449
    functionName: __cil_constrain_expr_to_sepol_expr_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 1
    functionsReached:
    - constraint_expr_init
    - __cil_constrain_expr_to_sepol_expr_helper
    - __cil_constrain_expr_leaf_to_sepol_expr
    - cil_malloc
    - constraint_expr_destroy
    linkageType: ''
    returnType: int
    signature: "int __cil_constrain_expr_to_sepol_expr_helper(\n\tpolicydb_t *pdb,
      const struct cil_db *db,\n\tconst struct cil_list *cil_expr, constraint_expr_t
      **head,\n\tconstraint_expr_t **tail)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __cil_constrain_expr_to_sepol_expr_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - pdb
    - db
    - cil_expr
    - sepol_expr
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_list*
    - constraint_expr_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3468
      start: 3451
    functionDepth: 6
    functionLinenumber: 3451
    functionLinenumberEnd: 3468
    functionName: __cil_constrain_expr_to_sepol_expr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_constrain_expr_to_sepol_expr_helper
    linkageType: ''
    returnType: int
    signature: "int __cil_constrain_expr_to_sepol_expr(policydb_t *pdb,\n\t\t\t\t\t
      \     const struct cil_db *db,\n\t\t\t\t\t      const struct cil_list *cil_expr,\n\t\t\t\t\t
      \     constraint_expr_t **sepol_expr)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3479,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3487,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3496,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3503,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3509,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - sepol_expr
    argTypes:
    - constraint_expr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3514
      start: 3470
    functionDepth: 1
    functionLinenumber: 3470
    functionLinenumberEnd: 3514
    functionName: __cil_validate_constrain_expr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_log
    linkageType: ''
    returnType: int
    signature: int __cil_validate_constrain_expr(constraint_expr_t *sepol_expr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3527,1
    - Dst: memset
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3528,1
    - Dst: __cil_get_sepol_class_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3530,1
    - Dst: __cil_perms_to_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3534,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3542,1
    - Dst: __cil_constrain_expr_to_sepol_expr
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3546,1
    - Dst: __cil_validate_constrain_expr
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3551,1
    - Dst: constraint_expr_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3563,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3564,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 5
    argNames:
    - pdb
    - db
    - class
    - perms
    - expr
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_symtab_datum*
    - struct cil_list*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3566
      start: 3516
    functionDepth: 7
    functionLinenumber: 3516
    functionLinenumberEnd: 3566
    functionName: cil_constrain_to_policydb_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_perms_to_datum
    - cil_malloc
    - free
    - __cil_validate_constrain_expr
    - memset
    - __cil_get_sepol_class_datum
    - constraint_expr_destroy
    - __cil_constrain_expr_to_sepol_expr
    linkageType: ''
    returnType: int
    signature: "int cil_constrain_to_policydb_helper(policydb_t *pdb,\n\t\t\t\t\t
      \   const struct cil_db *db,\n\t\t\t\t\t    struct cil_symtab_datum *class,\n\t\t\t\t\t
      \   struct cil_list *perms,\n\t\t\t\t\t    struct cil_list *expr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3578,1
    - Dst: cil_constrain_to_policydb_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3579,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3580,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3587,1
    - Dst: cil_constrain_expand
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3589,1
    - Dst: cil_constrain_expand
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3599,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - pdb
    - db
    - classperms
    - expr
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_list*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3611
      start: 3568
    functionDepth: 8
    functionLinenumber: 3568
    functionLinenumberEnd: 3611
    functionName: cil_constrain_expand
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 1
    functionsReached:
    - cil_constrain_to_policydb_helper
    - cil_list_for_each
    - cil_constrain_expand
    - FLAVOR
    - DATUM
    linkageType: ''
    returnType: int
    signature: "int cil_constrain_expand(policydb_t *pdb, const struct cil_db *db,\n\t\t\t\tstruct
      cil_list *classperms,\n\t\t\t\tstruct cil_list *expr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3578,1
    - Dst: cil_constrain_to_policydb_helper
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3579,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3580,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3587,1
    - Dst: cil_constrain_expand
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3589,1
    - Dst: cil_constrain_expand
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3599,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3605
      start: 3575
    functionDepth: 9
    functionLinenumber: 3575
    functionLinenumberEnd: 3605
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 45
    functionsReached:
    - cil_constrain_to_policydb_helper
    - cil_list_for_each
    - cil_constrain_expand
    - FLAVOR
    - DATUM
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, classperms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_constrain_expand
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3617,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3626,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - pdb
    - db
    - cil_constrain
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_constrain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3628
      start: 3613
    functionDepth: 9
    functionLinenumber: 3613
    functionLinenumberEnd: 3628
    functionName: cil_constrain_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_log
    - cil_constrain_expand
    linkageType: ''
    returnType: int
    signature: "int cil_constrain_to_policydb(policydb_t *pdb, const struct cil_db
      *db,\n\t\t\t      struct cil_constrain *cil_constrain)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_expand_class
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3642,1
    - Dst: __cil_get_sepol_class_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3645,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3645,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3650,1
    - Dst: memset
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3651,1
    - Dst: __cil_constrain_expr_to_sepol_expr
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3653,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3656,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3668,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - pdb
    - db
    - cil_validatetrans
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_validatetrans*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3670
      start: 3630
    functionDepth: 7
    functionLinenumber: 3630
    functionLinenumberEnd: 3670
    functionName: cil_validatetrans_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - cil_list_destroy
    - free
    - memset
    - cil_expand_class
    - __cil_get_sepol_class_datum
    - DATUM
    - __cil_constrain_expr_to_sepol_expr
    linkageType: ''
    returnType: int
    signature: "int cil_validatetrans_to_policydb(policydb_t *pdb, const struct cil_db
      *db,\n\t\t\t      struct cil_validatetrans *cil_validatetrans)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_class_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3645,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3645,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3650,1
    - Dst: memset
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3651,1
    - Dst: __cil_constrain_expr_to_sepol_expr
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3653,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3656,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3663
      start: 3644
    functionDepth: 7
    functionLinenumber: 3644
    functionLinenumberEnd: 3663
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 45
    functionsReached:
    - cil_malloc
    - free
    - memset
    - __cil_get_sepol_class_datum
    - DATUM
    - __cil_constrain_expr_to_sepol_expr
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(c, class_list)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3679,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3680,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3684,1
    - Dst: __cil_get_sepol_cat_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3685,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3690,1
    - Dst: __cil_get_sepol_cat_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3696,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3701,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 3
    argNames:
    - pdb
    - cats
    - mls_level
    argTypes:
    - policydb_t*
    - struct cil_cats*
    - mls_level_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3712
      start: 3672
    functionDepth: 2
    functionLinenumber: 3672
    functionLinenumberEnd: 3712
    functionName: __cil_cats_to_mls_level
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_list_for_each
    - NODE
    - __cil_get_sepol_cat_datum
    - ebitmap_set_bit
    linkageType: ''
    returnType: int
    signature: "int __cil_cats_to_mls_level(policydb_t *pdb, struct cil_cats *cats,\n\t\t\t\t
      \  mls_level_t *mls_level)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_level_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3721,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3721,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3727,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3730,1
    - Dst: __cil_cats_to_mls_level
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3732,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3734,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - pdb
    - cil_sens
    argTypes:
    - policydb_t*
    - struct cil_sens*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3745
      start: 3714
    functionDepth: 3
    functionLinenumber: 3714
    functionLinenumberEnd: 3745
    functionName: cil_sepol_level_define
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - cil_list_for_each
    - __cil_get_sepol_level_datum
    - __cil_cats_to_mls_level
    - cil_log
    - DATUM
    linkageType: ''
    returnType: int
    signature: int cil_sepol_level_define(policydb_t *pdb, struct cil_sens *cil_sens)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_level_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3755,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3755,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3761,1
    - Dst: __cil_cats_to_mls_level
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3764,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3766,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - pdb
    - cil_level
    - mls_level
    argTypes:
    - policydb_t*
    - struct cil_level*
    - mls_level_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3775
      start: 3747
    functionDepth: 3
    functionLinenumber: 3747
    functionLinenumberEnd: 3775
    functionName: cil_level_to_mls_level
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - __cil_get_sepol_level_datum
    - __cil_cats_to_mls_level
    - cil_log
    - DATUM
    linkageType: ''
    returnType: int
    signature: "int cil_level_to_mls_level(policydb_t *pdb, struct cil_level *cil_level,\n\t\t\t
      \  mls_level_t *mls_level)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_level_to_mls_level
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3788,1
    - Dst: cil_level_to_mls_level
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3795,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - pdb
    - cil_lvlrange
    - mls_range
    argTypes:
    - policydb_t*
    - struct cil_levelrange*
    - mls_range_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3804
      start: 3777
    functionDepth: 4
    functionLinenumber: 3777
    functionLinenumberEnd: 3804
    functionName: __cil_levelrange_to_mls_range
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_level_to_mls_level
    linkageType: ''
    returnType: int
    signature: "int __cil_levelrange_to_mls_range(policydb_t *pdb,\n\t\t\t\t\t struct
      cil_levelrange *cil_lvlrange,\n\t\t\t\t\t mls_range_t *mls_range)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_user_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3814,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3814,1
    - Dst: cil_level_to_mls_level
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3818,1
    - Dst: __cil_levelrange_to_mls_range
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3823,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - pdb
    - cil_user
    argTypes:
    - policydb_t*
    - struct cil_user*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3833
      start: 3806
    functionDepth: 5
    functionLinenumber: 3806
    functionLinenumberEnd: 3833
    functionName: cil_userlevel_userrange_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - DATUM
    - cil_level_to_mls_level
    - __cil_levelrange_to_mls_range
    - __cil_get_sepol_user_datum
    linkageType: ''
    returnType: int
    signature: "int cil_userlevel_userrange_to_policydb(policydb_t *pdb,\n\t\t\t\t\t
      \      struct cil_user *cil_user)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_user_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3845,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3845,1
    - Dst: __cil_get_sepol_role_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3850,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3850,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3855,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3855,1
    - Dst: mls_context_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3865,1
    - Dst: __cil_levelrange_to_mls_range
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3867,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3870,1
    - Dst: mls_context_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3871,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - pdb
    - cil_context
    - sepol_context
    argTypes:
    - policydb_t*
    - struct cil_context*
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3880
      start: 3835
    functionDepth: 5
    functionLinenumber: 3835
    functionLinenumberEnd: 3880
    functionName: __cil_context_to_sepol_context
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - mls_context_init
    - __cil_get_sepol_user_datum
    - cil_log
    - __cil_levelrange_to_mls_range
    - __cil_get_sepol_type_datum
    - __cil_get_sepol_role_datum
    - mls_context_destroy
    - DATUM
    linkageType: ''
    returnType: int
    signature: "int __cil_context_to_sepol_context(policydb_t *pdb,\n\t\t\t\t\t  struct
      cil_context *cil_context,\n\t\t\t\t\t  context_struct_t *sepol_context)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3890,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3894,1
    - Dst: cil_add_ocontext
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3902,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3905,1
    - Dst: __cil_context_to_sepol_context
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3906,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3909,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - pdb
    - db
    argTypes:
    - policydb_t*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3921
      start: 3882
    functionDepth: 6
    functionLinenumber: 3882
    functionLinenumberEnd: 3921
    functionName: cil_sidorder_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_strdup
    - cil_list_for_each
    - cil_log
    - __cil_context_to_sepol_context
    - cil_add_ocontext
    linkageType: ''
    returnType: int
    signature: int cil_sidorder_to_policydb(policydb_t *pdb, const struct cil_db *db)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: __cil_expand_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3939,1
    - Dst: __cil_expand_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3943,1
    - Dst: cil_expand_class
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3947,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3949,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3950,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3950,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3955,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3956,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3957,1
    - Dst: __cil_get_sepol_class_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3962,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3963,1
    - Dst: cil_calloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3967,1
    - Dst: cil_calloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3968,1
    - Dst: __cil_levelrange_to_mls_range
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3972,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3975,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3976,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3980,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3985,1
    - Dst: mls_range_eq
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3988,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3990,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3996,1
    - Dst: mls_range_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4005,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4009,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4010,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4022,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4023,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4024,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 66
    argCount: 3
    argNames:
    - pdb
    - db
    - rangetrans
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_rangetransition*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4026
      start: 3923
    functionDepth: 5
    functionLinenumber: 3923
    functionLinenumberEnd: 4026
    functionName: cil_rangetransition_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_expand_type
    - ebitmap_destroy
    - hashtab_search
    - ebitmap_for_each_positive_bit
    - cil_calloc
    - mls_range_destroy
    - hashtab_insert
    - cil_list_destroy
    - cil_log
    - mls_range_eq
    - __cil_levelrange_to_mls_range
    - free
    - __cil_get_sepol_type_datum
    - cil_expand_class
    - __cil_get_sepol_class_datum
    - DATUM
    linkageType: ''
    returnType: int
    signature: "int cil_rangetransition_to_policydb(policydb_t *pdb, const struct
      cil_db *db,\n\t\t\t\t    struct cil_rangetransition *rangetrans)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_class_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3962,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3963,1
    - Dst: cil_calloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3967,1
    - Dst: cil_calloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3968,1
    - Dst: __cil_levelrange_to_mls_range
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3972,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3975,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3976,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3980,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3985,1
    - Dst: mls_range_eq
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3988,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3990,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:3996,1
    - Dst: mls_range_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4005,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4009,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4010,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4015
      start: 3961
    functionDepth: 5
    functionLinenumber: 3961
    functionLinenumberEnd: 4015
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 48
    functionsReached:
    - hashtab_search
    - cil_calloc
    - mls_range_destroy
    - hashtab_insert
    - cil_log
    - mls_range_eq
    - __cil_levelrange_to_mls_range
    - free
    - __cil_get_sepol_class_datum
    - DATUM
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(c, class_list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_add_ocontext
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4038,1
    - Dst: inet_pton
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4040,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4043,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4049,1
    - Dst: __cil_context_to_sepol_context
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4055,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - pdb
    - ibpkeycons
    argTypes:
    - policydb_t*
    - struct cil_sort*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4065
      start: 4028
    functionDepth: 6
    functionLinenumber: 4028
    functionLinenumberEnd: 4065
    functionName: cil_ibpkeycon_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - inet_pton
    - cil_log
    - memcpy
    - __cil_context_to_sepol_context
    - cil_add_ocontext
    linkageType: ''
    returnType: int
    signature: int cil_ibpkeycon_to_policydb(policydb_t *pdb, struct cil_sort *ibpkeycons)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_add_ocontext
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4076,1
    - Dst: __cil_context_to_sepol_context
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4100,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - pdb
    - portcons
    argTypes:
    - policydb_t*
    - struct cil_sort*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4111
      start: 4067
    functionDepth: 6
    functionLinenumber: 4067
    functionLinenumberEnd: 4111
    functionName: cil_portcon_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_context_to_sepol_context
    - cil_add_ocontext
    linkageType: ''
    returnType: int
    signature: int cil_portcon_to_policydb(policydb_t *pdb, struct cil_sort *portcons)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_add_ocontext
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4121,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4124,1
    - Dst: __cil_context_to_sepol_context
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4126,1
    - Dst: __cil_context_to_sepol_context
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4132,1
    - Dst: context_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - pdb
    - netifcons
    argTypes:
    - policydb_t*
    - struct cil_sort*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4145
      start: 4113
    functionDepth: 6
    functionLinenumber: 4113
    functionLinenumberEnd: 4145
    functionName: cil_netifcon_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_context_to_sepol_context
    - cil_strdup
    - cil_add_ocontext
    - context_destroy
    linkageType: ''
    returnType: int
    signature: int cil_netifcon_to_policydb(policydb_t *pdb, struct cil_sort *netifcons)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_add_ocontext
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4155,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4161,1
    - Dst: __cil_context_to_sepol_context
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - pdb
    - ibendportcons
    argTypes:
    - policydb_t*
    - struct cil_sort*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4174
      start: 4147
    functionDepth: 6
    functionLinenumber: 4147
    functionLinenumberEnd: 4174
    functionName: cil_ibendportcon_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_context_to_sepol_context
    - cil_strdup
    - cil_add_ocontext
    linkageType: ''
    returnType: int
    signature: "int cil_ibendportcon_to_policydb(policydb_t *pdb,\n\t\t\t\t struct
      cil_sort *ibendportcons)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_add_ocontext
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4188,1
    - Dst: cil_add_ocontext
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4193,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4195,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4197,1
    - Dst: __cil_context_to_sepol_context
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4205,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - pdb
    - nodecons
    argTypes:
    - policydb_t*
    - struct cil_sort*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4216
      start: 4176
    functionDepth: 6
    functionLinenumber: 4176
    functionLinenumberEnd: 4216
    functionName: cil_nodecon_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_context_to_sepol_context
    - cil_add_ocontext
    - memcpy
    linkageType: ''
    returnType: int
    signature: int cil_nodecon_to_policydb(policydb_t *pdb, struct cil_sort *nodecons)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_add_ocontext
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4226,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4229,1
    - Dst: __cil_context_to_sepol_context
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - pdb
    - fsuses
    argTypes:
    - policydb_t*
    - struct cil_sort*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4243
      start: 4218
    functionDepth: 6
    functionLinenumber: 4218
    functionLinenumberEnd: 4243
    functionName: cil_fsuse_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_context_to_sepol_context
    - cil_strdup
    - cil_add_ocontext
    linkageType: ''
    returnType: int
    signature: int cil_fsuse_to_policydb(policydb_t *pdb, struct cil_sort *fsuses)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4251,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4256,1
    - Dst: memset
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4257,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4260,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4263,1
    - Dst: memset
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4264,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4265,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4279,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4280,1
    - Dst: memcpy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4281,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4286,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4318,1
    - Dst: __cil_context_to_sepol_context
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4327,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 71
    argCount: 2
    argNames:
    - pdb
    - genfscons
    argTypes:
    - policydb_t*
    - struct cil_sort*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4338
      start: 4245
    functionDepth: 6
    functionLinenumber: 4245
    functionLinenumberEnd: 4338
    functionName: cil_genfscon_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_strdup
    - hashtab_search
    - cil_malloc
    - strcmp
    - ebitmap_get_bit
    - memset
    - memcpy
    - __cil_context_to_sepol_context
    - strlen
    linkageType: ''
    returnType: int
    signature: int cil_genfscon_to_policydb(policydb_t *pdb, struct cil_sort *genfscons)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_add_ocontext
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4348,1
    - Dst: __cil_context_to_sepol_context
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - pdb
    - pirqcons
    argTypes:
    - policydb_t*
    - struct cil_sort*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4364
      start: 4340
    functionDepth: 6
    functionLinenumber: 4340
    functionLinenumberEnd: 4364
    functionName: cil_pirqcon_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_context_to_sepol_context
    - cil_add_ocontext
    linkageType: ''
    returnType: int
    signature: int cil_pirqcon_to_policydb(policydb_t *pdb, struct cil_sort *pirqcons)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_add_ocontext
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4373,1
    - Dst: __cil_context_to_sepol_context
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4380,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - pdb
    - iomemcons
    argTypes:
    - policydb_t*
    - struct cil_sort*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4391
      start: 4366
    functionDepth: 6
    functionLinenumber: 4366
    functionLinenumberEnd: 4391
    functionName: cil_iomemcon_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_context_to_sepol_context
    - cil_add_ocontext
    linkageType: ''
    returnType: int
    signature: int cil_iomemcon_to_policydb(policydb_t *pdb, struct cil_sort *iomemcons)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_add_ocontext
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4400,1
    - Dst: __cil_context_to_sepol_context
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4407,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - pdb
    - ioportcons
    argTypes:
    - policydb_t*
    - struct cil_sort*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4418
      start: 4393
    functionDepth: 6
    functionLinenumber: 4393
    functionLinenumberEnd: 4418
    functionName: cil_ioportcon_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_context_to_sepol_context
    - cil_add_ocontext
    linkageType: ''
    returnType: int
    signature: int cil_ioportcon_to_policydb(policydb_t *pdb, struct cil_sort *ioportcons)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_add_ocontext
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4428,1
    - Dst: __cil_context_to_sepol_context
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - pdb
    - pcidevicecons
    argTypes:
    - policydb_t*
    - struct cil_sort*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4446
      start: 4420
    functionDepth: 6
    functionLinenumber: 4420
    functionLinenumberEnd: 4446
    functionName: cil_pcidevicecon_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_context_to_sepol_context
    - cil_add_ocontext
    linkageType: ''
    returnType: int
    signature: "int cil_pcidevicecon_to_policydb(policydb_t *pdb,\n\t\t\t\t struct
      cil_sort *pcidevicecons)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_add_ocontext
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4456,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4461,1
    - Dst: __cil_context_to_sepol_context
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4463,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - pdb
    - devicetreecons
    argTypes:
    - policydb_t*
    - struct cil_sort*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4474
      start: 4448
    functionDepth: 6
    functionLinenumber: 4448
    functionLinenumberEnd: 4474
    functionName: cil_devicetreecon_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_context_to_sepol_context
    - cil_strdup
    - cil_add_ocontext
    linkageType: ''
    returnType: int
    signature: "int cil_devicetreecon_to_policydb(policydb_t *pdb,\n\t\t\t\t\t struct
      cil_sort *devicetreecons)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4482,1
    - Dst: cil_expand_class
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4485,1
    - Dst: __cil_get_sepol_class_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4488,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4489,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4499,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4501,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4510,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4512,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4521,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4523,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4532,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4538,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 2
    argNames:
    - pdb
    - def
    argTypes:
    - policydb_t*
    - struct cil_default*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4540
      start: 4476
    functionDepth: 2
    functionLinenumber: 4476
    functionLinenumberEnd: 4540
    functionName: cil_default_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_list_for_each
    - cil_list_destroy
    - cil_log
    - cil_expand_class
    - __cil_get_sepol_class_datum
    - DATUM
    linkageType: ''
    returnType: int
    signature: int cil_default_to_policydb(policydb_t *pdb, struct cil_default *def)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_class_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4488,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4489,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4499,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4501,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4510,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4512,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4521,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4523,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4530
      start: 4487
    functionDepth: 2
    functionLinenumber: 4487
    functionLinenumberEnd: 4530
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 49
    functionsReached:
    - cil_log
    - DATUM
    - __cil_get_sepol_class_datum
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(c, class_list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4549,1
    - Dst: cil_expand_class
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4552,1
    - Dst: __cil_get_sepol_class_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4555,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4556,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4564,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4566,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4571,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4577,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - pdb
    - def
    argTypes:
    - policydb_t*
    - struct cil_defaultrange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4579
      start: 4542
    functionDepth: 2
    functionLinenumber: 4542
    functionLinenumberEnd: 4579
    functionName: cil_defaultrange_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_list_for_each
    - cil_list_destroy
    - cil_log
    - cil_expand_class
    - __cil_get_sepol_class_datum
    - DATUM
    linkageType: ''
    returnType: int
    signature: "int cil_defaultrange_to_policydb(policydb_t *pdb,\n\t\t\t\t\tstruct
      cil_defaultrange *def)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_class_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4555,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4556,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4564,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4566,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4569
      start: 4554
    functionDepth: 2
    functionLinenumber: 4554
    functionLinenumberEnd: 4569
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 50
    functionsReached:
    - cil_log
    - DATUM
    - __cil_get_sepol_class_datum
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(c, class_list)
  - BBCount: 59
    BranchProfiles: []
    Callsites:
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4598,1
    - Dst: cil_role_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4607,1
    - Dst: cil_type_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4610,1
    - Dst: cil_typeattribute_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4614,1
    - Dst: cil_policycap_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4618,1
    - Dst: cil_user_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4621,1
    - Dst: cil_bool_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4624,1
    - Dst: cil_catalias_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4628,1
    - Dst: cil_sepol_level_define
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4633,1
    - Dst: cil_type_bounds_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4643,1
    - Dst: cil_typealias_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4646,1
    - Dst: cil_typepermissive_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4649,1
    - Dst: cil_typeneveraudit_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4652,1
    - Dst: cil_typeattribute_to_bitmap
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4655,1
    - Dst: cil_sensalias_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4659,1
    - Dst: cil_role_bounds_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4663,1
    - Dst: cil_roletype_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4666,1
    - Dst: cil_user_bounds_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4669,1
    - Dst: cil_userlevel_userrange_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4673,1
    - Dst: cil_userrole_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4679,1
    - Dst: cil_type_rule_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4682,1
    - Dst: cil_list_prepend
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4691,1
    - Dst: cil_roletrans_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4697,1
    - Dst: cil_typetransition_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4704,1
    - Dst: cil_constrain_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4708,1
    - Dst: cil_constrain_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4712,1
    - Dst: cil_validatetrans_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4717,1
    - Dst: cil_validatetrans_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4721,1
    - Dst: cil_rangetransition_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4727,1
    - Dst: cil_default_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4734,1
    - Dst: cil_defaultrange_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4737,1
    - Dst: cil_booleanif_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4746,1
    - Dst: cil_avrule_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4751,1
    - Dst: cil_avrulex_to_hashtable
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4758,1
    - Dst: cil_roleallow_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4764,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4775,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 173
    argCount: 2
    argNames:
    - node
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4778
      start: 4581
    functionDepth: 10
    functionLinenumber: 4581
    functionLinenumberEnd: 4778
    functionName: __cil_node_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_type_to_policydb
    - cil_typepermissive_to_policydb
    - cil_bool_to_policydb
    - cil_typetransition_to_policydb
    - cil_userrole_to_policydb
    - cil_rangetransition_to_policydb
    - NODE
    - cil_type_rule_to_policydb
    - cil_default_to_policydb
    - cil_typeneveraudit_to_policydb
    - cil_role_to_policydb
    - cil_roleallow_to_policydb
    - cil_list_prepend
    - cil_user_bounds_to_policydb
    - cil_userlevel_userrange_to_policydb
    - cil_typealias_to_policydb
    - cil_user_to_policydb
    - cil_constrain_to_policydb
    - cil_roletrans_to_policydb
    - cil_roletype_to_policydb
    - cil_validatetrans_to_policydb
    - cil_booleanif_to_policydb
    - cil_sensalias_to_policydb
    - cil_avrule_to_policydb
    - cil_typeattribute_to_bitmap
    - cil_typeattribute_to_policydb
    - cil_type_bounds_to_policydb
    - cil_sepol_level_define
    - cil_catalias_to_policydb
    - cil_defaultrange_to_policydb
    - cil_policycap_to_policydb
    - cil_role_bounds_to_policydb
    - cil_tree_log
    - cil_avrulex_to_hashtable
    linkageType: ''
    returnType: int
    signature: int __cil_node_to_policydb(struct cil_tree_node *node, void *extra_args)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __cil_node_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4800,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4807
      start: 4780
    functionDepth: 11
    functionLinenumber: 4780
    functionLinenumberEnd: 4807
    functionName: __cil_binary_create_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_node_to_policydb
    linkageType: ''
    returnType: int
    signature: "int __cil_binary_create_helper(struct cil_tree_node *node,\n\t\t\t\t
      \     uint32_t *finished, void *extra_args)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: cil_portcon_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4813,1
    - Dst: cil_netifcon_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4818,1
    - Dst: cil_nodecon_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4823,1
    - Dst: cil_fsuse_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4828,1
    - Dst: cil_genfscon_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4833,1
    - Dst: cil_ibpkeycon_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4838,1
    - Dst: cil_ibendportcon_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4843,1
    - Dst: cil_pirqcon_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4849,1
    - Dst: cil_iomemcon_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4854,1
    - Dst: cil_ioportcon_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4859,1
    - Dst: cil_pcidevicecon_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4864,1
    - Dst: cil_devicetreecon_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:4869,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 67
    argCount: 2
    argNames:
    - pdb
    - db
    argTypes:
    - policydb_t*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4877
      start: 4809
    functionDepth: 7
    functionLinenumber: 4809
    functionLinenumberEnd: 4877
    functionName: __cil_contexts_to_policydb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_ibendportcon_to_policydb
    - cil_genfscon_to_policydb
    - cil_netifcon_to_policydb
    - cil_ibpkeycon_to_policydb
    - cil_ioportcon_to_policydb
    - cil_fsuse_to_policydb
    - cil_pcidevicecon_to_policydb
    - cil_iomemcon_to_policydb
    - cil_devicetreecon_to_policydb
    - cil_nodecon_to_policydb
    - cil_pirqcon_to_policydb
    - cil_portcon_to_policydb
    linkageType: ''
    returnType: int
    signature: int __cil_contexts_to_policydb(policydb_t *pdb, const struct cil_db
      *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4891
      start: 4879
    functionDepth: 0
    functionLinenumber: 4879
    functionLinenumberEnd: 4891
    functionName: __cil_common_val_array_insert
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int __cil_common_val_array_insert(hashtab_key_t key,\n\t\t\t\t\t hashtab_datum_t
      datum, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4906
      start: 4893
    functionDepth: 0
    functionLinenumber: 4893
    functionLinenumberEnd: 4906
    functionName: __cil_class_val_array_insert
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int __cil_class_val_array_insert(hashtab_key_t key,\n\t\t\t\t\thashtab_datum_t
      datum, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4921
      start: 4908
    functionDepth: 0
    functionLinenumber: 4908
    functionLinenumberEnd: 4921
    functionName: __cil_role_val_array_insert
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int __cil_role_val_array_insert(hashtab_key_t key, hashtab_datum_t
      datum,\n\t\t\t\t       void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4936
      start: 4923
    functionDepth: 0
    functionLinenumber: 4923
    functionLinenumberEnd: 4936
    functionName: __cil_type_val_array_insert
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int __cil_type_val_array_insert(hashtab_key_t key, hashtab_datum_t
      datum,\n\t\t\t\t       void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4951
      start: 4938
    functionDepth: 0
    functionLinenumber: 4938
    functionLinenumberEnd: 4951
    functionName: __cil_user_val_array_insert
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int __cil_user_val_array_insert(hashtab_key_t key, hashtab_datum_t
      datum,\n\t\t\t\t       void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4966
      start: 4953
    functionDepth: 0
    functionLinenumber: 4953
    functionLinenumberEnd: 4966
    functionName: __cil_bool_val_array_insert
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int __cil_bool_val_array_insert(hashtab_key_t key, hashtab_datum_t
      datum,\n\t\t\t\t       void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4981
      start: 4968
    functionDepth: 0
    functionLinenumber: 4968
    functionLinenumberEnd: 4981
    functionName: __cil_level_val_array_insert
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int __cil_level_val_array_insert(hashtab_key_t key,\n\t\t\t\t\thashtab_datum_t
      datum, void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4995
      start: 4983
    functionDepth: 0
    functionLinenumber: 4983
    functionLinenumberEnd: 4995
    functionName: __cil_cat_val_array_insert
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int __cil_cat_val_array_insert(hashtab_key_t key, hashtab_datum_t
      datum,\n\t\t\t\t      void *data)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5002,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5003,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5010,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5012,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5013,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5020,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5022,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5023,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5030,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5032,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5033,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5040,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5042,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5043,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5050,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5051,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5053,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5060,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5061,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5068,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5069,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 1
    argNames:
    - policydb
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5077
      start: 4997
    functionDepth: 1
    functionLinenumber: 4997
    functionLinenumberEnd: 5077
    functionName: __cil_policydb_val_arrays_create
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - hashtab_map
    linkageType: ''
    returnType: int
    signature: int __cil_policydb_val_arrays_create(policydb_t *policydb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cond_evaluate_expr
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5087,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5092,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - pdb
    argTypes:
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5112
      start: 5079
    functionDepth: 1
    functionLinenumber: 5079
    functionLinenumberEnd: 5112
    functionName: __cil_set_conditional_state_and_flags
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_log
    - cond_evaluate_expr
    linkageType: ''
    returnType: void
    signature: void __cil_set_conditional_state_and_flags(policydb_t *pdb)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_policydb_create
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5120,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - db
    - spdb
    argTypes:
    - struct cil_db*
    - struct sepol_policydb**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5141
      start: 5114
    functionDepth: 4
    functionLinenumber: 5114
    functionLinenumberEnd: 5141
    functionName: __cil_policydb_create
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_log
    - sepol_policydb_create
    linkageType: ''
    returnType: int
    signature: "int __cil_policydb_create(const struct cil_db *db,\n\t\t\t\t struct
      sepol_policydb **spdb)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_classorder_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5155,1
    - Dst: cil_catorder_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5162,1
    - Dst: cil_sensitivityorder_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5167,1
    - Dst: avtab_alloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5173,1
    - Dst: avtab_alloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5178,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 4
    argNames:
    - pdb
    - db
    - class_value_to_cil
    - perm_value_to_cil
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_class*[]
    - struct cil_perm**[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5188
      start: 5143
    functionDepth: 4
    functionLinenumber: 5143
    functionLinenumberEnd: 5188
    functionName: __cil_policydb_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - avtab_alloc
    - cil_classorder_to_policydb
    - cil_sensitivityorder_to_policydb
    - cil_catorder_to_policydb
    linkageType: ''
    returnType: int
    signature: "int __cil_policydb_init(policydb_t *pdb, const struct cil_db *db,\n\t\t\t
      \      struct cil_class *class_value_to_cil[],\n\t\t\t       struct cil_perm
      **perm_value_to_cil[])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - key
    argTypes:
    - hashtab_t
    - const_hashtab_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5194
      start: 5190
    functionDepth: 0
    functionLinenumber: 5190
    functionLinenumberEnd: 5194
    functionName: role_trans_hash
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int role_trans_hash(hashtab_t h, const_hashtab_key_t key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - h
    - key1
    - key2
    argTypes:
    - hashtab_t
    - const_hashtab_key_t
    - const_hashtab_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5205
      start: 5196
    functionDepth: 0
    functionLinenumber: 5196
    functionLinenumberEnd: 5205
    functionName: role_trans_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int role_trans_compare(hashtab_t h __attribute__((unused)),\n\t\t\t
      \     const_hashtab_key_t key1,\n\t\t\t      const_hashtab_key_t key2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mix
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5235,1
    - Dst: mix
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5236,1
    - Dst: mix
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5237,1
    - Dst: mix
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - h
    - key
    argTypes:
    - hashtab_t
    - const_hashtab_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5249
      start: 5210
    functionDepth: 0
    functionLinenumber: 5210
    functionLinenumberEnd: 5249
    functionName: avrulex_hash
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - mix
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int avrulex_hash(__attribute__((unused)) hashtab_t h,\n\t\t\t\t
      const_hashtab_key_t key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - input
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5234
      start: 5224
    functionDepth: 0
    functionLinenumber: 5224
    functionLinenumberEnd: 5234
    functionName: mix
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: mix(input)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - h
    - key1
    - key2
    argTypes:
    - hashtab_t
    - const_hashtab_key_t
    - const_hashtab_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5261
      start: 5251
    functionDepth: 0
    functionLinenumber: 5251
    functionLinenumberEnd: 5261
    functionName: avrulex_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int avrulex_compare(hashtab_t h __attribute__((unused)),\n\t\t\t   const_hashtab_key_t
      key1, const_hashtab_key_t key2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_policydb_create
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5268,1
    - Dst: cil_binary_create_allocated_pdb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5273,1
    - Dst: sepol_policydb_free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - db
    - policydb
    argTypes:
    - struct cil_db*
    - sepol_policydb_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5286
      start: 5263
    functionDepth: 5
    functionLinenumber: 5263
    functionLinenumberEnd: 5286
    functionName: cil_binary_create
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 1
    functionsReached:
    - cil_binary_create_allocated_pdb
    - sepol_policydb_free
    - __cil_policydb_create
    linkageType: ''
    returnType: int
    signature: int cil_binary_create(const struct cil_db *db, sepol_policydb_t **policydb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - curr
    argTypes:
    - class_perm_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5297
      start: 5288
    functionDepth: 0
    functionLinenumber: 5288
    functionLinenumberEnd: 5297
    functionName: __cil_destroy_sepol_class_perms
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void __cil_destroy_sepol_class_perms(class_perm_node_t *curr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5308,1
    - Dst: __cil_get_sepol_class_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5313,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5314,1
    - Dst: __cil_perms_to_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5318,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5324,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5333,1
    - Dst: __cil_rule_to_sepol_class_perms
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5335,1
    - Dst: __cil_rule_to_sepol_class_perms
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5346,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 3
    argNames:
    - pdb
    - classperms
    - sepol_class_perms
    argTypes:
    - policydb_t*
    - struct cil_list*
    - class_perm_node_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5357
      start: 5299
    functionDepth: 3
    functionLinenumber: 5299
    functionLinenumberEnd: 5357
    functionName: __cil_rule_to_sepol_class_perms
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 1
    functionsReached:
    - __cil_rule_to_sepol_class_perms
    - cil_list_for_each
    - __cil_perms_to_datum
    - cil_malloc
    - FLAVOR
    - __cil_get_sepol_class_datum
    - DATUM
    linkageType: ''
    returnType: int
    signature: "int __cil_rule_to_sepol_class_perms(policydb_t *pdb, struct cil_list
      *classperms,\n\t\t\t\tclass_perm_node_t **sepol_class_perms)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5308,1
    - Dst: __cil_get_sepol_class_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5313,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5314,1
    - Dst: __cil_perms_to_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5318,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5324,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5333,1
    - Dst: __cil_rule_to_sepol_class_perms
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5335,1
    - Dst: __cil_rule_to_sepol_class_perms
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5346,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5352
      start: 5305
    functionDepth: 4
    functionLinenumber: 5305
    functionLinenumberEnd: 5352
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 52
    functionsReached:
    - __cil_rule_to_sepol_class_perms
    - cil_list_for_each
    - __cil_perms_to_datum
    - cil_malloc
    - FLAVOR
    - __cil_get_sepol_class_datum
    - DATUM
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i, classperms)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_expand_class
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5371,1
    - Dst: __cil_get_sepol_class_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5374,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5374,1
    - Dst: __perm_str_to_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5392,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5397,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5405,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - pdb
    - permx
    - sepol_class_perms
    argTypes:
    - policydb_t*
    - struct cil_permissionx*
    - class_perm_node_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5408
      start: 5359
    functionDepth: 2
    functionLinenumber: 5359
    functionLinenumberEnd: 5408
    functionName: __cil_permx_to_sepol_class_perms
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __perm_str_to_datum
    - cil_malloc
    - cil_list_destroy
    - cil_expand_class
    - __cil_get_sepol_class_datum
    - DATUM
    linkageType: ''
    returnType: int
    signature: "int __cil_permx_to_sepol_class_perms(policydb_t *pdb, struct cil_permissionx
      *permx,\n\t\t\t\t class_perm_node_t **sepol_class_perms)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_class_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5374,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5374,1
    - Dst: __perm_str_to_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5392,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5397,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5402
      start: 5373
    functionDepth: 2
    functionLinenumber: 5373
    functionLinenumberEnd: 5402
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 52
    functionsReached:
    - cil_malloc
    - DATUM
    - __perm_str_to_datum
    - __cil_get_sepol_class_datum
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(c, class_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5412,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - type_set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5415
      start: 5410
    functionDepth: 1
    functionLinenumber: 5410
    functionLinenumberEnd: 5415
    functionName: __cil_init_sepol_type_set
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    linkageType: ''
    returnType: void
    signature: void __cil_init_sepol_type_set(type_set_t *t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5421,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5429,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5430,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5431,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5435,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5438,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5441,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - pdb
    - db
    - datum
    - map
    argTypes:
    - policydb_t*
    - struct cil_db*
    - struct cil_symtab_datum*
    - ebitmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5448
      start: 5417
    functionDepth: 2
    functionLinenumber: 5417
    functionLinenumberEnd: 5448
    functionName: __cil_add_sepol_type
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - ebitmap_for_each_positive_bit
    - ebitmap_set_bit
    - __cil_get_sepol_type_datum
    - DATUM
    - NODE
    linkageType: ''
    returnType: int
    signature: "int __cil_add_sepol_type(policydb_t *pdb, const struct cil_db *db,\n\t\t\t\tstruct
      cil_symtab_datum *datum, ebitmap_t *map)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5459,1
    - Dst: __cil_init_sepol_type_set
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5462,1
    - Dst: __cil_init_sepol_type_set
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5463,1
    - Dst: cil_tree_get_next_path
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5470,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - kind
    - node
    argTypes:
    - uint32_t
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5481
      start: 5450
    functionDepth: 2
    functionLinenumber: 5450
    functionLinenumberEnd: 5481
    functionName: __cil_init_sepol_avrule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - __cil_init_sepol_type_set
    - cil_tree_get_next_path
    linkageType: ''
    returnType: avrule_t
    signature: "avrule_t *__cil_init_sepol_avrule(uint32_t kind,\n\t\t\t\t\t struct
      cil_tree_node *node)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5489,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5490,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5491,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5492,1
    - Dst: __cil_destroy_sepol_class_perms
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5493,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - curr
    argTypes:
    - avrule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5497
      start: 5483
    functionDepth: 1
    functionLinenumber: 5483
    functionLinenumberEnd: 5497
    functionName: __cil_destroy_sepol_avrules
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_destroy_sepol_class_perms
    - free
    - ebitmap_destroy
    linkageType: ''
    returnType: void
    signature: void __cil_destroy_sepol_avrules(avrule_t *curr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_print_parents
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5504,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5507,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pad
    - n
    argTypes:
    - char*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5509
      start: 5499
    functionDepth: 4
    functionLinenumber: 5499
    functionLinenumberEnd: 5509
    functionName: __cil_print_parents
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 1
    functionsReached:
    - cil_node_to_string
    - __cil_print_parents
    - cil_tree_log
    linkageType: ''
    returnType: void
    signature: void __cil_print_parents(const char *pad, struct cil_tree_node *n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5518,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5518,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5519,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5520,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5520,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5522,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5524,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5529,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - cp_list
    argTypes:
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5531
      start: 5511
    functionDepth: 1
    functionLinenumber: 5511
    functionLinenumberEnd: 5531
    functionName: __cil_print_classperm
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_log
    - DATUM
    - cil_list_for_each
    linkageType: ''
    returnType: void
    signature: void __cil_print_classperm(struct cil_list *cp_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cil_xperm_kind_to_str
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5538,1
    - Dst: __cil_expr_to_string
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5540,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5542,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5542,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct cil_permissionx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5545
      start: 5533
    functionDepth: 3
    functionLinenumber: 5533
    functionLinenumberEnd: 5545
    functionName: __cil_print_permissionx
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_expr_to_string
    - __cil_xperm_kind_to_str
    - cil_log
    - free
    - DATUM
    linkageType: ''
    returnType: void
    signature: void __cil_print_permissionx(struct cil_permissionx *px)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5550,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5551,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5551,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5552,1
    - Dst: __cil_print_classperm
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5555,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5557,1
    - Dst: __cil_print_permissionx
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5558,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5559,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5562,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - pad
    - kind
    - avrule
    argTypes:
    - char*
    - char*
    - struct cil_avrule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5563
      start: 5547
    functionDepth: 4
    functionLinenumber: 5547
    functionLinenumberEnd: 5563
    functionName: __cil_print_rule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_log
    - DATUM
    - __cil_print_classperm
    - __cil_print_permissionx
    linkageType: ''
    returnType: void
    signature: "void __cil_print_rule(const char *pad, const char *kind,\n\t\t\t     struct
      cil_avrule *avrule)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_get_log_level
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5580,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5597,1
    - Dst: __cil_print_rule
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5598,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5599,1
    - Dst: cil_find_matching_avrule_in_ast
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5600,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5603,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5605,1
    - Dst: __cil_print_parents
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5615,1
    - Dst: __cil_print_rule
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5616,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5620,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5626,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5627,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 2
    argNames:
    - db
    - node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5631
      start: 5565
    functionDepth: 5
    functionLinenumber: 5565
    functionLinenumberEnd: 5631
    functionName: __cil_print_neverallow_failure
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_print_parents
    - cil_get_log_level
    - cil_list_destroy
    - cil_log
    - cil_tree_log
    - cil_find_matching_avrule_in_ast
    - cil_list_init
    - __cil_print_rule
    linkageType: ''
    returnType: int
    signature: "int __cil_print_neverallow_failure(const struct cil_db *db,\n\t\t\t\t\t
      \ struct cil_tree_node *node)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5611
      start: 5609
    functionDepth: 0
    functionLinenumber: 5609
    functionLinenumberEnd: 5611
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 53
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i2, matching)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __cil_print_parents
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5615,1
    - Dst: __cil_print_rule
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5616,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5620,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5625
      start: 5612
    functionDepth: 5
    functionLinenumber: 5612
    functionLinenumberEnd: 5625
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 53
    functionsReached:
    - cil_log
    - __cil_print_parents
    - __cil_print_rule
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i2, matching)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: __cil_init_sepol_avrule
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5650,1
    - Dst: __cil_add_sepol_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5653,1
    - Dst: __cil_add_sepol_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5664,1
    - Dst: __cil_add_sepol_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5670,1
    - Dst: __cil_rule_to_sepol_class_perms
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5677,1
    - Dst: check_assertion
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5683,1
    - Dst: __cil_print_neverallow_failure
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5686,1
    - Dst: __cil_permx_to_sepol_class_perms
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5693,1
    - Dst: __cil_permx_bitmap_to_sepol_xperms_list
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5699,1
    - Dst: check_assertion
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5708,1
    - Dst: __cil_print_neverallow_failure
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5711,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5722,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5725,1
    - Dst: __cil_destroy_sepol_avrules
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5729,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 82
    argCount: 4
    argNames:
    - db
    - pdb
    - node
    - violation
    argTypes:
    - struct cil_db*
    - policydb_t*
    - struct cil_tree_node*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5732
      start: 5633
    functionDepth: 6
    functionLinenumber: 5633
    functionLinenumberEnd: 5732
    functionName: cil_check_neverallow
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - __cil_init_sepol_avrule
    - __cil_add_sepol_type
    - __cil_rule_to_sepol_class_perms
    - __cil_permx_bitmap_to_sepol_xperms_list
    - __cil_destroy_sepol_avrules
    - check_assertion
    - cil_list_destroy
    - free
    - __cil_print_neverallow_failure
    - __cil_permx_to_sepol_class_perms
    linkageType: ''
    returnType: int
    signature: "int cil_check_neverallow(const struct cil_db *db, policydb_t *pdb,\n\t\t\t\tstruct
      cil_tree_node *node, int *violation)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_assertion
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5708,1
    - Dst: __cil_print_neverallow_failure
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5711,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5716
      start: 5706
    functionDepth: 6
    functionLinenumber: 5706
    functionLinenumberEnd: 5716
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 53
    functionsReached:
    - check_assertion
    - __cil_print_neverallow_failure
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(item, xperms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5724
      start: 5721
    functionDepth: 0
    functionLinenumber: 5721
    functionLinenumberEnd: 5724
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 53
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(item, xperms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_check_neverallow
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - db
    - pdb
    - neverallows
    - violation
    argTypes:
    - struct cil_db*
    - policydb_t*
    - struct cil_list*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5749
      start: 5734
    functionDepth: 7
    functionLinenumber: 5734
    functionLinenumberEnd: 5749
    functionName: cil_check_neverallows
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_check_neverallow
    linkageType: ''
    returnType: int
    signature: "int cil_check_neverallows(const struct cil_db *db, policydb_t *pdb,\n\t\t\t\t
      struct cil_list *neverallows, int *violation)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_check_neverallow
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5745
      start: 5740
    functionDepth: 7
    functionLinenumber: 5740
    functionLinenumberEnd: 5745
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 53
    functionsReached:
    - cil_check_neverallow
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(item, neverallows)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_prepend
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5768,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5773
      start: 5751
    functionDepth: 3
    functionLinenumber: 5751
    functionLinenumberEnd: 5773
    functionName: __cil_collect_neverallows_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_list_prepend
    linkageType: ''
    returnType: int
    signature: "int __cil_collect_neverallows_helper(struct cil_tree_node *node,\n\t\t\t\t\t
      \   uint32_t *finished,\n\t\t\t\t\t    void *extra_args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5784,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5788,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5789,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5792,1
    - Dst: cil_check_neverallows
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5796,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5799,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - db
    - pdb
    - violation
    argTypes:
    - struct cil_db*
    - policydb_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5801
      start: 5775
    functionDepth: 8
    functionLinenumber: 5775
    functionLinenumberEnd: 5801
    functionName: cil_check_neverallows_against_pdb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_check_neverallows
    - cil_tree_walk
    - cil_list_destroy
    - cil_log
    - cil_list_init
    linkageType: ''
    returnType: int
    signature: "int cil_check_neverallows_against_pdb(const struct cil_db *db, policydb_t
      *pdb,\n\t\t\t\t      int *violation)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_classperms_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5813,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5819,1
    - Dst: UINT32_C
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5822,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5827,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5830,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5831,1
    - Dst: cil_destroy_classperms
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5836,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5837,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 5
    argNames:
    - pdb
    - class
    - data
    - class_value_to_cil
    - perm_value_to_cil
    argTypes:
    - policydb_t*
    - uint16_t
    - uint32_t
    - struct cil_class*[]
    - struct cil_perm**[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5840
      start: 5803
    functionDepth: 3
    functionLinenumber: 5803
    functionLinenumberEnd: 5840
    functionName: cil_classperms_from_sepol
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_classperms_init
    - cil_list_append
    - UINT32_C
    - cil_log
    - cil_list_init
    - cil_destroy_classperms
    linkageType: ''
    returnType: struct cil_list
    signature: "struct cil_list *\ncil_classperms_from_sepol(policydb_t *pdb, uint16_t
      class, uint32_t data,\n\t\t\t  struct cil_class *class_value_to_cil[],\n\t\t\t
      \ struct cil_perm **perm_value_to_cil[])"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_classperms_from_sepol
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5859,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5868,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 6
    argNames:
    - pdb
    - sepol_rule
    - cil_rule
    - type_value_to_cil
    - class_value_to_cil
    - perm_value_to_cil
    argTypes:
    - policydb_t*
    - avtab_ptr_t
    - struct cil_avrule*
    - void*[]
    - struct cil_class*[]
    - struct cil_perm**[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5870
      start: 5842
    functionDepth: 4
    functionLinenumber: 5842
    functionLinenumberEnd: 5870
    functionName: cil_avrule_from_sepol
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - cil_log
    - cil_classperms_from_sepol
    linkageType: ''
    returnType: int
    signature: "int cil_avrule_from_sepol(policydb_t *pdb, avtab_ptr_t sepol_rule,\n\t\t\t\t
      struct cil_avrule *cil_rule,\n\t\t\t\t void *type_value_to_cil[],\n\t\t\t\t
      struct cil_class *class_value_to_cil[],\n\t\t\t\t struct cil_perm **perm_value_to_cil[])"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5891,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5891,1
    - Dst: __cil_get_sepol_type_datum
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5895,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5895,1
    - Dst: bounds_check_type
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5899,1
    - Dst: cil_get_log_level
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5909,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5918,1
    - Dst: cil_avrule_from_sepol
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5927,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5932,1
    - Dst: bounds_destroy_bad
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5934,1
    - Dst: __cil_print_rule
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5937,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5938,1
    - Dst: cil_find_matching_avrule_in_ast
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5939,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5943,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5945,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5946,1
    - Dst: bounds_destroy_bad
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5949,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5959,1
    - Dst: __cil_print_parents
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5963,1
    - Dst: __cil_print_rule
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5964,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5971,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5977,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5978,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5983,1
    - Dst: bounds_destroy_bad
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5989,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 71
    argCount: 6
    argNames:
    - db
    - pdb
    - type_value_to_cil
    - class_value_to_cil
    - perm_value_to_cil
    - violation
    argTypes:
    - struct cil_db*
    - policydb_t*
    - void*
    - struct cil_class*[]
    - struct cil_perm**[]
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5995
      start: 5872
    functionDepth: 7
    functionLinenumber: 5872
    functionLinenumberEnd: 5995
    functionName: cil_check_type_bounds
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 0
    functionsReached:
    - bounds_destroy_bad
    - __cil_print_parents
    - bounds_check_type
    - cil_get_log_level
    - cil_avrule_from_sepol
    - cil_log
    - cil_list_destroy
    - __cil_get_sepol_type_datum
    - cil_find_matching_avrule_in_ast
    - cil_list_init
    - DATUM
    - __cil_print_rule
    linkageType: ''
    returnType: int
    signature: "int cil_check_type_bounds(const struct cil_db *db, policydb_t *pdb,\n\t\t\t\t
      void *type_value_to_cil,\n\t\t\t\t struct cil_class *class_value_to_cil[],\n\t\t\t\t
      struct cil_perm **perm_value_to_cil[],\n\t\t\t\t int *violation)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5954
      start: 5952
    functionDepth: 0
    functionLinenumber: 5952
    functionLinenumberEnd: 5954
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 53
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i2, matching)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5959,1
    - Dst: __cil_print_parents
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5963,1
    - Dst: __cil_print_rule
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5964,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:5971,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5976
      start: 5955
    functionDepth: 5
    functionLinenumber: 5955
    functionLinenumberEnd: 5976
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 53
    functionsReached:
    - cil_log
    - __cil_print_parents
    - __cil_print_rule
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(i2, matching)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6017,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6019,1
    - Dst: calloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6028,1
    - Dst: calloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6033,1
    - Dst: calloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6038,1
    - Dst: calloc
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6042,1
    - Dst: __cil_policydb_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6048,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6051,1
    - Dst: hashtab_create
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6055,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6058,1
    - Dst: hashtab_create
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6062,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6065,1
    - Dst: hashtab_create
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6069,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6072,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6076,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6094,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6097,1
    - Dst: __cil_policydb_val_arrays_create
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6103,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6105,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6112,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6116,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6120,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6124,1
    - Dst: cil_sidorder_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6131,1
    - Dst: __cil_contexts_to_policydb
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6136,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6138,1
    - Dst: __cil_typeattr_bitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6144,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6146,1
    - Dst: cond_optimize_lists
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6152,1
    - Dst: __cil_set_conditional_state_and_flags
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6153,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6157,1
    - Dst: cil_check_neverallows
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6158,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6162,1
    - Dst: bounds_check_users
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6163,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6168,1
    - Dst: bounds_check_roles
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6169,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6174,1
    - Dst: cil_check_type_bounds
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6175,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6188,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6189,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6194,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6195,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6201,1
    - Dst: hashtab_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6209,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6210,1
    - Dst: hashtab_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6211,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6212,1
    - Dst: hashtab_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6213,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6214,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6215,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6219,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6221,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_binary.c:6223,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 179
    argCount: 2
    argNames:
    - db
    - policydb
    argTypes:
    - struct cil_db*
    - sepol_policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6226
      start: 5999
    functionDepth: 8
    functionLinenumber: 5999
    functionLinenumberEnd: 6226
    functionName: cil_binary_create_allocated_pdb
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_binary.c
    functionUses: 1
    functionsReached:
    - hashtab_map
    - cil_list_destroy
    - cil_log
    - cil_list_init
    - __cil_policydb_init
    - __cil_policydb_val_arrays_create
    - __cil_typeattr_bitmap_init
    - free
    - cil_sidorder_to_policydb
    - bounds_check_roles
    - __cil_set_conditional_state_and_flags
    - calloc
    - cond_optimize_lists
    - bounds_check_users
    - hashtab_destroy
    - __cil_contexts_to_policydb
    - cil_check_neverallows
    - cil_check_type_bounds
    - cil_tree_walk
    - hashtab_create
    linkageType: ''
    returnType: int
    signature: "int cil_binary_create_allocated_pdb(const struct cil_db *db,\n\t\t\t\t
      \   sepol_policydb_t *policydb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: DATUM
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_symtab.h
    functionUses: 106
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DATUM(d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: NODE
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_symtab.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NODE(n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: FLAVOR
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_symtab.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FLAVOR(f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:67,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:72,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - current
    - flavor
    - list
    argTypes:
    - struct cil_tree_node*
    - enum cil_flavor
    - struct cil_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 82
    functionName: cil_fill_list
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_init
    - cil_list_append
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_fill_list(struct cil_tree_node *current, enum cil_flavor flavor,\n\t\t\t
      struct cil_list **list)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:109,1
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:120,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:125,1
    - Dst: cil_symtab_datum_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:126,1
    - Dst: cil_symtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:127,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:128,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - db
    - key
    - ast_node
    argTypes:
    - struct cil_db*
    - hashtab_key_t
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 130
    functionName: cil_gen_declared_string
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_for_each
    - cil_malloc
    - cil_symtab_get_datum
    - cil_list_append
    - cil_symtab_datum_init
    - cil_symtab_insert
    linkageType: ''
    returnType: struct cil_symtab_datum
    signature: "struct cil_symtab_datum *cil_gen_declared_string(struct cil_db *db,\n\t\t\t\t\t\t
      hashtab_key_t key,\n\t\t\t\t\t\t struct cil_tree_node *ast_node)"
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - db
    - f_new
    - f_old
    argTypes:
    - struct cil_db*
    - enum cil_flavor
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 158
    functionName: cil_allow_multiple_decls
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_allow_multiple_decls(struct cil_db *db, enum cil_flavor f_new,\n\t\t\t\t
      \   enum cil_flavor f_old)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:170,1
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:173,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:175,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:177,1
    - Dst: cil_allow_multiple_decls
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:180,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:180,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:182,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:183,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:184,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:185,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:187,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:191,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 5
    argNames:
    - db
    - symtab
    - key
    - datum
    - node
    argTypes:
    - struct cil_db*
    - symtab_t*
    - hashtab_key_t
    - struct cil_symtab_datum*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 160
    functionDepth: 4
    functionLinenumber: 160
    functionLinenumberEnd: 197
    functionName: cil_add_decl_to_symtab
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_allow_multiple_decls
    - cil_node_to_string
    - cil_symtab_get_datum
    - cil_list_append
    - cil_log
    - FLAVOR
    - cil_tree_log
    - NODE
    - cil_symtab_insert
    linkageType: ''
    returnType: int
    signature: "int cil_add_decl_to_symtab(struct cil_db *db, symtab_t *symtab,\n\t\t\t
      \  hashtab_key_t key, struct cil_symtab_datum *datum,\n\t\t\t   struct cil_tree_node
      *node)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_verify_name
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:206,1
    - Dst: cil_get_symtab
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:211,1
    - Dst: cil_add_decl_to_symtab
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:219,1
    - Dst: cil_verify_decl_does_not_shadow_macro_parameter
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:225,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 6
    argNames:
    - db
    - ast_node
    - datum
    - key
    - sflavor
    - nflavor
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_symtab_datum*
    - hashtab_key_t
    - enum cil_sym_index
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 199
    functionDepth: 5
    functionLinenumber: 199
    functionLinenumberEnd: 236
    functionName: cil_gen_node
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_verify_decl_does_not_shadow_macro_parameter
    - cil_get_symtab
    - cil_verify_name
    - cil_add_decl_to_symtab
    linkageType: ''
    returnType: int
    signature: "int cil_gen_node(struct cil_db *db, struct cil_tree_node *ast_node,\n\t\t
      struct cil_symtab_datum *datum, hashtab_key_t key,\n\t\t enum cil_sym_index
      sflavor, enum cil_flavor nflavor)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ast_node
    argTypes:
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 246
    functionName: cil_clear_node
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_clear_node(struct cil_tree_node *ast_node)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:263,1
    - Dst: cil_ordered_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:268,1
    - Dst: cil_fill_list
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:270,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:276,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:281,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:286,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:292,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:306,1
    - Dst: cil_destroy_ordered
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:307,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 4
    argNames:
    - db
    - parse_current
    - ast_node
    - flavor
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 248
    functionDepth: 4
    functionLinenumber: 248
    functionLinenumberEnd: 309
    functionName: cil_gen_ordered
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_for_each
    - cil_destroy_ordered
    - cil_ordered_init
    - cil_log
    - cil_fill_list
    - cil_tree_log
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_ordered(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \   struct cil_tree_node *ast_node, enum cil_flavor flavor)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:318,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:321,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ordered
    argTypes:
    - struct cil_ordered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 311
    functionDepth: 2
    functionLinenumber: 311
    functionLinenumberEnd: 325
    functionName: cil_destroy_ordered
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_ordered(struct cil_ordered *ordered)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:343,1
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:348,1
    - Dst: cil_block_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:353,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:359,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:368,1
    - Dst: cil_destroy_block
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:369,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:370,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 4
    argNames:
    - db
    - parse_current
    - ast_node
    - is_abstract
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 327
    functionDepth: 6
    functionLinenumber: 327
    functionLinenumberEnd: 372
    functionName: cil_gen_block
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 9
    functionsReached:
    - cil_clear_node
    - cil_block_init
    - cil_log
    - cil_tree_log
    - cil_gen_node
    - __cil_verify_syntax
    - cil_destroy_block
    linkageType: ''
    returnType: int
    signature: "int cil_gen_block(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \ struct cil_tree_node *ast_node, uint16_t is_abstract)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:384,1
    - Dst: cil_symtab_array_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:385,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:388,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:398,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:401,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - block
    argTypes:
    - struct cil_block*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 402
    functionName: cil_destroy_block
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 3
    functionsReached:
    - cil_list_for_each
    - cil_list_destroy
    - free
    - cil_symtab_datum_destroy
    - cil_symtab_array_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_block(struct cil_block *block)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:418,1
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:423,1
    - Dst: cil_blockinherit_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:428,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:438,1
    - Dst: cil_destroy_blockinherit
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:439,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 404
    functionDepth: 4
    functionLinenumber: 404
    functionLinenumberEnd: 441
    functionName: cil_gen_blockinherit
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 7
    functionsReached:
    - cil_blockinherit_init
    - cil_destroy_blockinherit
    - cil_log
    - cil_tree_log
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_blockinherit(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t\t
      struct cil_tree_node *ast_node)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:453,1
    - Dst: cil_list_remove
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:456,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:463,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - inherit
    argTypes:
    - struct cil_blockinherit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 443
    functionDepth: 3
    functionLinenumber: 443
    functionLinenumberEnd: 464
    functionName: cil_destroy_blockinherit
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - cil_list_remove
    - cil_list_for_each
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_blockinherit(struct cil_blockinherit *inherit)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:481,1
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:486,1
    - Dst: cil_blockabstract_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:491,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:501,1
    - Dst: cil_destroy_blockabstract
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:502,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 466
    functionDepth: 4
    functionLinenumber: 466
    functionLinenumberEnd: 504
    functionName: cil_gen_blockabstract
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_blockabstract_init
    - cil_log
    - cil_destroy_blockabstract
    - cil_tree_log
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_blockabstract(struct cil_db *db,\n\t\t\t  struct cil_tree_node
      *parse_current,\n\t\t\t  struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - abstract
    argTypes:
    - struct cil_blockabstract*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 513
    functionName: cil_destroy_blockabstract
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_blockabstract(struct cil_blockabstract *abstract)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:531,1
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:536,1
    - Dst: cil_in_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:541,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:550,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:566,1
    - Dst: cil_destroy_in
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:567,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 515
    functionDepth: 4
    functionLinenumber: 515
    functionLinenumberEnd: 569
    functionName: cil_gen_in
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 6
    functionsReached:
    - cil_in_init
    - cil_log
    - cil_tree_log
    - __cil_verify_syntax
    - cil_destroy_in
    linkageType: ''
    returnType: int
    signature: "int cil_gen_in(struct cil_db *db, struct cil_tree_node *parse_current,\n\t
      \      struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_array_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:577,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - struct cil_in*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 571
    functionDepth: 2
    functionLinenumber: 571
    functionLinenumberEnd: 580
    functionName: cil_destroy_in
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_symtab_array_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_in(struct cil_in *in)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:594,1
    - Dst: cil_class_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:599,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:603,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:609,1
    - Dst: cil_gen_perm_nodes
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:617,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:623,1
    - Dst: cil_tree_children_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:626,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 582
    functionDepth: 6
    functionLinenumber: 582
    functionLinenumberEnd: 630
    functionName: cil_gen_class
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 13
    functionsReached:
    - cil_tree_children_destroy
    - cil_gen_perm_nodes
    - cil_log
    - cil_class_init
    - cil_gen_node
    - cil_tree_log
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_class(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \ struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:647,1
    - Dst: cil_symtab_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:648,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - class
    argTypes:
    - struct cil_class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 651
    functionName: cil_destroy_class
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 1
    functionsReached:
    - cil_symtab_datum_destroy
    - free
    - cil_symtab_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_class(struct cil_class *class)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_perm_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:661,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:665,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:669,1
    - Dst: cil_destroy_perm
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:681,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:682,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - db
    - parse_current
    - ast_node
    - flavor
    - num_perms
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    - enum cil_flavor
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 653
    functionDepth: 6
    functionLinenumber: 653
    functionLinenumberEnd: 684
    functionName: cil_gen_perm
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 6
    functionsReached:
    - cil_clear_node
    - cil_perm_init
    - cil_log
    - cil_gen_node
    - cil_destroy_perm
    linkageType: ''
    returnType: int
    signature: "int cil_gen_perm(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      struct cil_tree_node *ast_node, enum cil_flavor flavor,\n\t\t unsigned int *num_perms)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:692,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:693,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - perm
    argTypes:
    - struct cil_perm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 686
    functionDepth: 2
    functionLinenumber: 686
    functionLinenumberEnd: 696
    functionName: cil_destroy_perm
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - cil_symtab_datum_destroy
    - free
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_perm(struct cil_perm *perm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:710,1
    - Dst: cil_gen_perm
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:715,1
    - Dst: cil_tree_node_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:717,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:734,1
    - Dst: cil_tree_children_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:735,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:736,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 5
    argNames:
    - db
    - current_perm
    - ast_node
    - flavor
    - num_perms
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    - enum cil_flavor
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 698
    functionDepth: 7
    functionLinenumber: 698
    functionLinenumberEnd: 738
    functionName: cil_gen_perm_nodes
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 4
    functionsReached:
    - cil_tree_node_init
    - cil_clear_node
    - cil_gen_perm
    - cil_tree_node_destroy
    - cil_tree_children_destroy
    - cil_log
    linkageType: ''
    returnType: int
    signature: "int cil_gen_perm_nodes(struct cil_db *db, struct cil_tree_node *current_perm,\n\t\t
      \      struct cil_tree_node *ast_node, enum cil_flavor flavor,\n\t\t       unsigned
      int *num_perms)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:747,1
    - Dst: cil_gen_expr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:752,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:760,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - start_perm
    - perms
    argTypes:
    - struct cil_tree_node*
    - struct cil_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 740
    functionDepth: 2
    functionLinenumber: 740
    functionLinenumberEnd: 762
    functionName: cil_fill_perms
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_log
    - cil_gen_expr
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: int cil_fill_perms(struct cil_tree_node *start_perm, struct cil_list
      **perms)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:772,1
    - Dst: cil_classperms_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:777,1
    - Dst: cil_fill_perms
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:781,1
    - Dst: cil_destroy_classperms
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:783,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:790,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - parse_current
    - cp
    argTypes:
    - struct cil_tree_node*
    - struct cil_classperms**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 764
    functionDepth: 3
    functionLinenumber: 764
    functionLinenumberEnd: 793
    functionName: cil_fill_classperms
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_classperms_init
    - cil_log
    - cil_fill_perms
    - __cil_verify_syntax
    - cil_destroy_classperms
    linkageType: ''
    returnType: int
    signature: "int cil_fill_classperms(struct cil_tree_node *parse_current,\n\t\t\tstruct
      cil_classperms **cp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:801,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:802,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:804,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cp
    argTypes:
    - struct cil_classperms*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 795
    functionDepth: 2
    functionLinenumber: 795
    functionLinenumberEnd: 805
    functionName: cil_destroy_classperms
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 3
    functionsReached:
    - free
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_classperms(struct cil_classperms *cp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_classperms_set_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - parse_current
    - cp_set
    argTypes:
    - struct cil_tree_node*
    - struct cil_classperms_set**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 807
    functionDepth: 2
    functionLinenumber: 807
    functionLinenumberEnd: 812
    functionName: cil_fill_classperms_set
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_classperms_set_init
    linkageType: ''
    returnType: void
    signature: "void cil_fill_classperms_set(struct cil_tree_node *parse_current,\n\t\t\t
      \    struct cil_classperms_set **cp_set)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cp_set
    argTypes:
    - struct cil_classperms_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 821
    functionName: cil_destroy_classperms_set
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_classperms_set(struct cil_classperms_set *cp_set)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:833,1
    - Dst: cil_fill_classperms_set
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:840,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:841,1
    - Dst: cil_fill_classperms
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:845,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:849,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:851,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:859,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:860,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - parse_current
    - cp_list
    argTypes:
    - struct cil_tree_node*
    - struct cil_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 823
    functionDepth: 4
    functionLinenumber: 823
    functionLinenumberEnd: 862
    functionName: cil_fill_classperms_list
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_fill_classperms_set
    - cil_list_append
    - cil_log
    - cil_list_destroy
    - cil_list_init
    - cil_fill_classperms
    linkageType: ''
    returnType: int
    signature: "int cil_fill_classperms_list(struct cil_tree_node *parse_current,\n\t\t\t
      \    struct cil_list **cp_list)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:872,1
    - Dst: cil_destroy_classperms
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:874,1
    - Dst: cil_destroy_classperms_set
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:876,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:880,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - cp_list
    argTypes:
    - struct cil_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 864
    functionDepth: 3
    functionLinenumber: 864
    functionLinenumberEnd: 881
    functionName: cil_destroy_classperms_list
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 1
    functionsReached:
    - cil_destroy_classperms_set
    - cil_list_for_each
    - cil_destroy_classperms
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_classperms_list(struct cil_list **cp_list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:898,1
    - Dst: cil_classpermission_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:903,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:907,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:917,1
    - Dst: cil_destroy_classpermission
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:918,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:919,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 883
    functionDepth: 6
    functionLinenumber: 883
    functionLinenumberEnd: 921
    functionName: cil_gen_classpermission
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_destroy_classpermission
    - cil_clear_node
    - __cil_verify_syntax
    - cil_tree_log
    - cil_classpermission_init
    - cil_gen_node
    linkageType: ''
    returnType: int
    signature: "int cil_gen_classpermission(struct cil_db *db,\n\t\t\t    struct cil_tree_node
      *parse_current,\n\t\t\t    struct cil_tree_node *ast_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:930,1
    - Dst: cil_destroy_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:933,1
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:936,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:938,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - cp
    argTypes:
    - struct cil_classpermission*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 923
    functionDepth: 4
    functionLinenumber: 923
    functionLinenumberEnd: 939
    functionName: cil_destroy_classpermission
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - cil_symtab_datum_destroy
    - free
    - cil_destroy_classperms_list
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_classpermission(struct cil_classpermission *cp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:956,1
    - Dst: cil_classpermissionset_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:961,1
    - Dst: cil_fill_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:965,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:977,1
    - Dst: cil_destroy_classpermissionset
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:978,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 941
    functionDepth: 5
    functionLinenumber: 941
    functionLinenumberEnd: 980
    functionName: cil_gen_classpermissionset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_destroy_classpermissionset
    - cil_fill_classperms_list
    - cil_tree_log
    - __cil_verify_syntax
    - cil_classpermissionset_init
    linkageType: ''
    returnType: int
    signature: "int cil_gen_classpermissionset(struct cil_db *db,\n\t\t\t       struct
      cil_tree_node *parse_current,\n\t\t\t       struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:988,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:990,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cps
    argTypes:
    - struct cil_classpermissionset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 982
    functionDepth: 4
    functionLinenumber: 982
    functionLinenumberEnd: 991
    functionName: cil_destroy_classpermissionset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_destroy_classperms_list
    linkageType: ''
    returnType: void
    signature: void cil_destroy_classpermissionset(struct cil_classpermissionset *cps)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1003,1
    - Dst: cil_class_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1008,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1012,1
    - Dst: cil_gen_perm_nodes
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1018,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1027,1
    - Dst: cil_destroy_class
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1028,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1029,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 993
    functionDepth: 8
    functionLinenumber: 993
    functionLinenumberEnd: 1031
    functionName: cil_gen_map_class
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_clear_node
    - cil_gen_perm_nodes
    - cil_destroy_class
    - cil_class_init
    - cil_tree_log
    - cil_gen_node
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_map_class(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \     struct cil_tree_node *ast_node)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1048,1
    - Dst: cil_classmapping_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1053,1
    - Dst: cil_fill_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1058,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1070,1
    - Dst: cil_destroy_classmapping
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1071,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1033
    functionDepth: 5
    functionLinenumber: 1033
    functionLinenumberEnd: 1073
    functionName: cil_gen_classmapping
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 9
    functionsReached:
    - cil_classmapping_init
    - cil_fill_classperms_list
    - cil_destroy_classmapping
    - cil_tree_log
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_classmapping(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t\t
      struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1081,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - mapping
    argTypes:
    - struct cil_classmapping*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1075
    functionDepth: 4
    functionLinenumber: 1075
    functionLinenumberEnd: 1084
    functionName: cil_destroy_classmapping
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_destroy_classperms_list
    linkageType: ''
    returnType: void
    signature: void cil_destroy_classmapping(struct cil_classmapping *mapping)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1101,1
    - Dst: cil_class_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1106,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1110,1
    - Dst: cil_gen_perm_nodes
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1116,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1122,1
    - Dst: cil_tree_children_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1125,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1133,1
    - Dst: cil_destroy_class
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1134,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1135,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1087
    functionDepth: 8
    functionLinenumber: 1087
    functionLinenumberEnd: 1137
    functionName: cil_gen_common
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 9
    functionsReached:
    - cil_clear_node
    - cil_tree_children_destroy
    - cil_gen_perm_nodes
    - cil_destroy_class
    - cil_class_init
    - cil_tree_log
    - cil_gen_node
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_common(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \  struct cil_tree_node *ast_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1152,1
    - Dst: cil_classcommon_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1157,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1168,1
    - Dst: cil_destroy_classcommon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1169,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1139
    functionDepth: 4
    functionLinenumber: 1139
    functionLinenumberEnd: 1171
    functionName: cil_gen_classcommon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 8
    functionsReached:
    - cil_destroy_classcommon
    - cil_classcommon_init
    - cil_tree_log
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_classcommon(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t\tstruct
      cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - clscom
    argTypes:
    - struct cil_classcommon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1173
    functionDepth: 0
    functionLinenumber: 1173
    functionLinenumberEnd: 1180
    functionName: cil_destroy_classcommon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_classcommon(struct cil_classcommon *clscom)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1196,1
    - Dst: cil_sid_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1201,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1205,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1214,1
    - Dst: cil_destroy_sid
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1215,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1216,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1182
    functionDepth: 6
    functionLinenumber: 1182
    functionLinenumberEnd: 1218
    functionName: cil_gen_sid
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 8
    functionsReached:
    - cil_clear_node
    - cil_sid_init
    - cil_destroy_sid
    - cil_tree_log
    - cil_gen_node
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_sid(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\tstruct
      cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1226,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sid
    argTypes:
    - struct cil_sid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1220
    functionDepth: 1
    functionLinenumber: 1220
    functionLinenumberEnd: 1228
    functionName: cil_destroy_sid
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - cil_symtab_datum_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_sid(struct cil_sid *sid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1244,1
    - Dst: cil_sidcontext_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1249,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1256,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1258,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1271,1
    - Dst: cil_destroy_sidcontext
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1272,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1230
    functionDepth: 4
    functionLinenumber: 1230
    functionLinenumberEnd: 1274
    functionName: cil_gen_sidcontext
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 11
    functionsReached:
    - cil_fill_context
    - cil_destroy_sidcontext
    - cil_context_init
    - cil_tree_log
    - cil_sidcontext_init
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_sidcontext(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \      struct cil_tree_node *ast_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1283,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1286,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - sidcon
    argTypes:
    - struct cil_sidcontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1276
    functionDepth: 1
    functionLinenumber: 1276
    functionLinenumberEnd: 1287
    functionName: cil_destroy_sidcontext
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_destroy_context
    linkageType: ''
    returnType: void
    signature: void cil_destroy_sidcontext(struct cil_sidcontext *sidcon)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1303,1
    - Dst: cil_user_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1308,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1312,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1321,1
    - Dst: cil_destroy_user
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1322,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1323,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1289
    functionDepth: 6
    functionLinenumber: 1289
    functionLinenumberEnd: 1325
    functionName: cil_gen_user
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 7
    functionsReached:
    - cil_clear_node
    - cil_user_init
    - cil_destroy_user
    - cil_tree_log
    - cil_gen_node
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_user(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1333,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1334,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1335,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - user
    argTypes:
    - struct cil_user*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1327
    functionDepth: 1
    functionLinenumber: 1327
    functionLinenumberEnd: 1337
    functionName: cil_destroy_user
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - cil_symtab_datum_destroy
    - free
    - ebitmap_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_user(struct cil_user *user)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1354,1
    - Dst: cil_userattribute_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1359,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1362,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1370,1
    - Dst: cil_destroy_userattribute
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1371,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1372,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1339
    functionDepth: 6
    functionLinenumber: 1339
    functionLinenumberEnd: 1374
    functionName: cil_gen_userattribute
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_clear_node
    - cil_userattribute_init
    - __cil_verify_syntax
    - cil_tree_log
    - cil_gen_node
    - cil_destroy_userattribute
    linkageType: ''
    returnType: int
    signature: "int cil_gen_userattribute(struct cil_db *db,\n\t\t\t  struct cil_tree_node
      *parse_current,\n\t\t\t  struct cil_tree_node *ast_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_item_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1392,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1395,1
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1399,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1400,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1401,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1402,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - attr
    argTypes:
    - struct cil_userattribute*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1376
    functionDepth: 2
    functionLinenumber: 1376
    functionLinenumberEnd: 1403
    functionName: cil_destroy_userattribute
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - cil_symtab_datum_destroy
    - ebitmap_destroy
    - free
    - cil_list_item_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_userattribute(struct cil_userattribute *attr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1420,1
    - Dst: cil_userattributeset_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1425,1
    - Dst: cil_gen_expr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1429,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1440,1
    - Dst: cil_destroy_userattributeset
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1442,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1405
    functionDepth: 4
    functionLinenumber: 1405
    functionLinenumberEnd: 1445
    functionName: cil_gen_userattributeset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_userattributeset_init
    - cil_gen_expr
    - cil_destroy_userattributeset
    - cil_tree_log
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_userattributeset(struct cil_db *db,\n\t\t\t     struct
      cil_tree_node *parse_current,\n\t\t\t     struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1453,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1454,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - attrset
    argTypes:
    - struct cil_userattributeset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1447
    functionDepth: 2
    functionLinenumber: 1447
    functionLinenumberEnd: 1457
    functionName: cil_destroy_userattributeset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_userattributeset(struct cil_userattributeset *attrset)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1473,1
    - Dst: cil_userlevel_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1478,1
    - Dst: cil_level_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1485,1
    - Dst: cil_fill_level
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1487,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1500,1
    - Dst: cil_destroy_userlevel
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1501,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1459
    functionDepth: 4
    functionLinenumber: 1459
    functionLinenumberEnd: 1503
    functionName: cil_gen_userlevel
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 11
    functionsReached:
    - cil_fill_level
    - cil_userlevel_init
    - cil_tree_log
    - __cil_verify_syntax
    - cil_destroy_userlevel
    - cil_level_init
    linkageType: ''
    returnType: int
    signature: "int cil_gen_userlevel(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \     struct cil_tree_node *ast_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_level
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1512,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - usrlvl
    argTypes:
    - struct cil_userlevel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1505
    functionDepth: 1
    functionLinenumber: 1505
    functionLinenumberEnd: 1516
    functionName: cil_destroy_userlevel
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_destroy_level
    linkageType: ''
    returnType: void
    signature: void cil_destroy_userlevel(struct cil_userlevel *usrlvl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1532,1
    - Dst: cil_userrange_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1537,1
    - Dst: cil_levelrange_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1544,1
    - Dst: cil_fill_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1546,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1559,1
    - Dst: cil_destroy_userrange
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1560,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1562
      start: 1518
    functionDepth: 4
    functionLinenumber: 1518
    functionLinenumberEnd: 1562
    functionName: cil_gen_userrange
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 11
    functionsReached:
    - cil_fill_levelrange
    - cil_destroy_userrange
    - cil_levelrange_init
    - cil_tree_log
    - __cil_verify_syntax
    - cil_userrange_init
    linkageType: ''
    returnType: int
    signature: "int cil_gen_userrange(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \     struct cil_tree_node *ast_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1571,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1574,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - userrange
    argTypes:
    - struct cil_userrange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1564
    functionDepth: 1
    functionLinenumber: 1564
    functionLinenumberEnd: 1575
    functionName: cil_destroy_userrange
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - cil_destroy_levelrange
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_userrange(struct cil_userrange *userrange)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1590,1
    - Dst: cil_userprefix_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1595,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1605,1
    - Dst: cil_destroy_userprefix
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1606,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1608
      start: 1577
    functionDepth: 4
    functionLinenumber: 1577
    functionLinenumberEnd: 1608
    functionName: cil_gen_userprefix
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_destroy_userprefix
    - cil_userprefix_init
    - cil_tree_log
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_userprefix(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \      struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - userprefix
    argTypes:
    - struct cil_userprefix*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1610
    functionDepth: 0
    functionLinenumber: 1610
    functionLinenumberEnd: 1617
    functionName: cil_destroy_userprefix
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_userprefix(struct cil_userprefix *userprefix)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1634,1
    - Dst: cil_selinuxuser_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1639,1
    - Dst: cil_levelrange_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1647,1
    - Dst: cil_fill_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1649,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1662,1
    - Dst: cil_destroy_selinuxuser
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1663,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1619
    functionDepth: 4
    functionLinenumber: 1619
    functionLinenumberEnd: 1665
    functionName: cil_gen_selinuxuser
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_selinuxuser_init
    - cil_fill_levelrange
    - cil_levelrange_init
    - cil_tree_log
    - __cil_verify_syntax
    - cil_destroy_selinuxuser
    linkageType: ''
    returnType: int
    signature: "int cil_gen_selinuxuser(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t\tstruct
      cil_tree_node *ast_node)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1682,1
    - Dst: cil_selinuxuser_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1687,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1689,1
    - Dst: cil_levelrange_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1695,1
    - Dst: cil_fill_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1697,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1709,1
    - Dst: cil_destroy_selinuxuser
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1711,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1667
    functionDepth: 4
    functionLinenumber: 1667
    functionLinenumberEnd: 1713
    functionName: cil_gen_selinuxuserdefault
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_selinuxuser_init
    - cil_fill_levelrange
    - cil_strpool_add
    - cil_levelrange_init
    - cil_tree_log
    - __cil_verify_syntax
    - cil_destroy_selinuxuser
    linkageType: ''
    returnType: int
    signature: "int cil_gen_selinuxuserdefault(struct cil_db *db,\n\t\t\t       struct
      cil_tree_node *parse_current,\n\t\t\t       struct cil_tree_node *ast_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1722,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1725,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - selinuxuser
    argTypes:
    - struct cil_selinuxuser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1726
      start: 1715
    functionDepth: 1
    functionLinenumber: 1715
    functionLinenumberEnd: 1726
    functionName: cil_destroy_selinuxuser
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 3
    functionsReached:
    - cil_destroy_levelrange
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_selinuxuser(struct cil_selinuxuser *selinuxuser)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1742,1
    - Dst: cil_role_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1747,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1751,1
    - Dst: cil_destroy_role
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1755,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1765,1
    - Dst: cil_destroy_role
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1766,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1767,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1769
      start: 1728
    functionDepth: 6
    functionLinenumber: 1728
    functionLinenumberEnd: 1769
    functionName: cil_gen_role
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 7
    functionsReached:
    - cil_role_init
    - cil_clear_node
    - __cil_verify_syntax
    - cil_tree_log
    - cil_gen_node
    - cil_destroy_role
    linkageType: ''
    returnType: int
    signature: "int cil_gen_role(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1777,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1778,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1779,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - role
    argTypes:
    - struct cil_role*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1771
    functionDepth: 1
    functionLinenumber: 1771
    functionLinenumberEnd: 1781
    functionName: cil_destroy_role
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - cil_symtab_datum_destroy
    - free
    - ebitmap_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_role(struct cil_role *role)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1796,1
    - Dst: cil_roletype_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1801,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1812,1
    - Dst: cil_destroy_roletype
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1813,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1815
      start: 1783
    functionDepth: 4
    functionLinenumber: 1783
    functionLinenumberEnd: 1815
    functionName: cil_gen_roletype
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 8
    functionsReached:
    - cil_destroy_roletype
    - cil_tree_log
    - cil_roletype_init
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_roletype(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \    struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1823,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - roletype
    argTypes:
    - struct cil_roletype*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1824
      start: 1817
    functionDepth: 0
    functionLinenumber: 1817
    functionLinenumberEnd: 1824
    functionName: cil_destroy_roletype
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_roletype(struct cil_roletype *roletype)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1839,1
    - Dst: cil_userrole_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1844,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1855,1
    - Dst: cil_destroy_userrole
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1856,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1826
    functionDepth: 4
    functionLinenumber: 1826
    functionLinenumberEnd: 1858
    functionName: cil_gen_userrole
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 9
    functionsReached:
    - cil_userrole_init
    - cil_tree_log
    - cil_destroy_userrole
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_userrole(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \    struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1866,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - userrole
    argTypes:
    - struct cil_userrole*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1860
    functionDepth: 0
    functionLinenumber: 1860
    functionLinenumberEnd: 1867
    functionName: cil_destroy_userrole
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_userrole(struct cil_userrole *userrole)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1883,1
    - Dst: cil_roletransition_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1888,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1901,1
    - Dst: cil_destroy_roletransition
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1902,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - parse_current
    - ast_node
    argTypes:
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1869
    functionDepth: 4
    functionLinenumber: 1869
    functionLinenumberEnd: 1904
    functionName: cil_gen_roletransition
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 7
    functionsReached:
    - cil_destroy_roletransition
    - cil_roletransition_init
    - cil_tree_log
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_roletransition(struct cil_tree_node *parse_current,\n\t\t\t
      \  struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - roletrans
    argTypes:
    - struct cil_roletransition*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1913
      start: 1906
    functionDepth: 0
    functionLinenumber: 1906
    functionLinenumberEnd: 1913
    functionName: cil_destroy_roletransition
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_roletransition(struct cil_roletransition *roletrans)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1928,1
    - Dst: cil_roleallow_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1933,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1944,1
    - Dst: cil_destroy_roleallow
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1945,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1915
    functionDepth: 4
    functionLinenumber: 1915
    functionLinenumberEnd: 1947
    functionName: cil_gen_roleallow
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 7
    functionsReached:
    - cil_destroy_roleallow
    - cil_roleallow_init
    - cil_tree_log
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_roleallow(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \     struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1955,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - roleallow
    argTypes:
    - struct cil_roleallow*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1956
      start: 1949
    functionDepth: 0
    functionLinenumber: 1949
    functionLinenumberEnd: 1956
    functionName: cil_destroy_roleallow
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_roleallow(struct cil_roleallow *roleallow)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1973,1
    - Dst: cil_roleattribute_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1978,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1981,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1989,1
    - Dst: cil_destroy_roleattribute
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1990,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:1991,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1958
    functionDepth: 6
    functionLinenumber: 1958
    functionLinenumberEnd: 1993
    functionName: cil_gen_roleattribute
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_clear_node
    - cil_destroy_roleattribute
    - cil_tree_log
    - cil_gen_node
    - __cil_verify_syntax
    - cil_roleattribute_init
    linkageType: ''
    returnType: int
    signature: "int cil_gen_roleattribute(struct cil_db *db,\n\t\t\t  struct cil_tree_node
      *parse_current,\n\t\t\t  struct cil_tree_node *ast_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_item_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2008,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2011,1
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2015,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2016,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2017,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2018,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - attr
    argTypes:
    - struct cil_roleattribute*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2019
      start: 1995
    functionDepth: 2
    functionLinenumber: 1995
    functionLinenumberEnd: 2019
    functionName: cil_destroy_roleattribute
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - cil_symtab_datum_destroy
    - ebitmap_destroy
    - free
    - cil_list_item_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_roleattribute(struct cil_roleattribute *attr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2036,1
    - Dst: cil_roleattributeset_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2041,1
    - Dst: cil_gen_expr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2045,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2056,1
    - Dst: cil_destroy_roleattributeset
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2058,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2061
      start: 2021
    functionDepth: 4
    functionLinenumber: 2021
    functionLinenumberEnd: 2061
    functionName: cil_gen_roleattributeset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_destroy_roleattributeset
    - cil_gen_expr
    - cil_roleattributeset_init
    - cil_tree_log
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_roleattributeset(struct cil_db *db,\n\t\t\t     struct
      cil_tree_node *parse_current,\n\t\t\t     struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2069,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2070,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2072,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - attrset
    argTypes:
    - struct cil_roleattributeset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2073
      start: 2063
    functionDepth: 2
    functionLinenumber: 2063
    functionLinenumberEnd: 2073
    functionName: cil_destroy_roleattributeset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_roleattributeset(struct cil_roleattributeset *attrset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2090,1
    - Dst: cil_avrule_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2095,1
    - Dst: cil_fill_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2103,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2115,1
    - Dst: cil_destroy_avrule
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2116,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - parse_current
    - ast_node
    - rule_kind
    argTypes:
    - struct cil_tree_node*
    - struct cil_tree_node*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2118
      start: 2075
    functionDepth: 5
    functionLinenumber: 2075
    functionLinenumberEnd: 2118
    functionName: cil_gen_avrule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 16
    functionsReached:
    - cil_fill_classperms_list
    - cil_destroy_avrule
    - cil_tree_log
    - cil_avrule_init
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_avrule(struct cil_tree_node *parse_current,\n\t\t   struct
      cil_tree_node *ast_node, uint32_t rule_kind)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2127,1
    - Dst: cil_destroy_permissionx
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2131,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2135,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct cil_avrule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2136
      start: 2120
    functionDepth: 4
    functionLinenumber: 2120
    functionLinenumberEnd: 2136
    functionName: cil_destroy_avrule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 6
    functionsReached:
    - cil_destroy_permissionx
    - free
    - cil_destroy_classperms_list
    linkageType: ''
    returnType: void
    signature: void cil_destroy_avrule(struct cil_avrule *rule)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2146,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2156,1
    - Dst: cil_gen_expr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2165,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2174,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - parse_current
    - permx
    argTypes:
    - struct cil_tree_node*
    - struct cil_permissionx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2176
      start: 2138
    functionDepth: 4
    functionLinenumber: 2138
    functionLinenumberEnd: 2176
    functionName: cil_fill_permissionx
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_log
    - cil_gen_expr
    - cil_tree_log
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_fill_permissionx(struct cil_tree_node *parse_current,\n\t\t\t\tstruct
      cil_permissionx *permx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2192,1
    - Dst: cil_permissionx_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2197,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2201,1
    - Dst: cil_fill_permissionx
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2207,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2215,1
    - Dst: cil_destroy_permissionx
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2216,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2217,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2219
      start: 2178
    functionDepth: 6
    functionLinenumber: 2178
    functionLinenumberEnd: 2219
    functionName: cil_gen_permissionx
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_destroy_permissionx
    - cil_clear_node
    - __cil_verify_syntax
    - cil_tree_log
    - cil_gen_node
    - cil_permissionx_init
    - cil_fill_permissionx
    linkageType: ''
    returnType: int
    signature: "int cil_gen_permissionx(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t\tstruct
      cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2227,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2229,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2230,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2231,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - permx
    argTypes:
    - struct cil_permissionx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2221
    functionDepth: 2
    functionLinenumber: 2221
    functionLinenumberEnd: 2233
    functionName: cil_destroy_permissionx
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 3
    functionsReached:
    - cil_symtab_datum_destroy
    - free
    - ebitmap_destroy
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_permissionx(struct cil_permissionx *permx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2250,1
    - Dst: cil_avrule_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2255,1
    - Dst: cil_permissionx_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2265,1
    - Dst: cil_fill_permissionx
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2267,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2281,1
    - Dst: cil_destroy_avrule
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2282,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - parse_current
    - ast_node
    - rule_kind
    argTypes:
    - struct cil_tree_node*
    - struct cil_tree_node*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2284
      start: 2235
    functionDepth: 5
    functionLinenumber: 2235
    functionLinenumberEnd: 2284
    functionName: cil_gen_avrulex
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_destroy_avrule
    - __cil_verify_syntax
    - cil_tree_log
    - cil_avrule_init
    - cil_permissionx_init
    - cil_fill_permissionx
    linkageType: ''
    returnType: int
    signature: "int cil_gen_avrulex(struct cil_tree_node *parse_current,\n\t\t    struct
      cil_tree_node *ast_node, uint32_t rule_kind)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2301,1
    - Dst: cil_deny_rule_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2306,1
    - Dst: cil_fill_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2311,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2323,1
    - Dst: cil_destroy_deny_rule
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2324,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - parse_current
    - ast_node
    argTypes:
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2326
      start: 2286
    functionDepth: 5
    functionLinenumber: 2286
    functionLinenumberEnd: 2326
    functionName: cil_gen_deny_rule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_destroy_deny_rule
    - cil_fill_classperms_list
    - cil_deny_rule_init
    - cil_tree_log
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_deny_rule(struct cil_tree_node *parse_current,\n\t\t      struct
      cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2334,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct cil_deny_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2337
      start: 2328
    functionDepth: 4
    functionLinenumber: 2328
    functionLinenumberEnd: 2337
    functionName: cil_destroy_deny_rule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_destroy_classperms_list
    linkageType: ''
    returnType: void
    signature: void cil_destroy_deny_rule(struct cil_deny_rule *rule)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2353,1
    - Dst: cil_type_rule_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2358,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2372,1
    - Dst: cil_destroy_type_rule
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2373,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - parse_current
    - ast_node
    - rule_kind
    argTypes:
    - struct cil_tree_node*
    - struct cil_tree_node*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2375
      start: 2339
    functionDepth: 4
    functionLinenumber: 2339
    functionLinenumberEnd: 2375
    functionName: cil_gen_type_rule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 25
    functionsReached:
    - cil_destroy_type_rule
    - cil_type_rule_init
    - cil_tree_log
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_type_rule(struct cil_tree_node *parse_current,\n\t\t      struct
      cil_tree_node *ast_node, uint32_t rule_kind)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2383,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct cil_type_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2384
      start: 2377
    functionDepth: 0
    functionLinenumber: 2377
    functionLinenumberEnd: 2384
    functionName: cil_destroy_type_rule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_type_rule(struct cil_type_rule *rule)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2400,1
    - Dst: cil_type_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2405,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2408,1
    - Dst: cil_destroy_type
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2412,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2422,1
    - Dst: cil_destroy_type
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2423,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2424,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2426
      start: 2386
    functionDepth: 6
    functionLinenumber: 2386
    functionLinenumberEnd: 2426
    functionName: cil_gen_type
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 6
    functionsReached:
    - cil_clear_node
    - __cil_verify_syntax
    - cil_destroy_type
    - cil_tree_log
    - cil_gen_node
    - cil_type_init
    linkageType: ''
    returnType: int
    signature: "int cil_gen_type(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2434,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - struct cil_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2436
      start: 2428
    functionDepth: 1
    functionLinenumber: 2428
    functionLinenumberEnd: 2436
    functionName: cil_destroy_type
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 3
    functionsReached:
    - cil_symtab_datum_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_type(struct cil_type *type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2453,1
    - Dst: cil_typeattribute_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2458,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2461,1
    - Dst: cil_destroy_typeattribute
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2465,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2475,1
    - Dst: cil_destroy_typeattribute
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2476,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2477,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2479
      start: 2438
    functionDepth: 6
    functionLinenumber: 2438
    functionLinenumberEnd: 2479
    functionName: cil_gen_typeattribute
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 6
    functionsReached:
    - cil_typeattribute_init
    - cil_destroy_typeattribute
    - cil_clear_node
    - cil_tree_log
    - cil_gen_node
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_typeattribute(struct cil_db *db,\n\t\t\t  struct cil_tree_node
      *parse_current,\n\t\t\t  struct cil_tree_node *ast_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2487,1
    - Dst: cil_list_item_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2496,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2499,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2502,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2503,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2504,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - attr
    argTypes:
    - struct cil_typeattribute*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2505
      start: 2481
    functionDepth: 2
    functionLinenumber: 2481
    functionLinenumberEnd: 2505
    functionName: cil_destroy_typeattribute
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - cil_symtab_datum_destroy
    - ebitmap_destroy
    - free
    - cil_list_item_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_typeattribute(struct cil_typeattribute *attr)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2521,1
    - Dst: cil_bool_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2526,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2535,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2540,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2550,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2554,1
    - Dst: cil_destroy_bool
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2556,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2557,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 4
    argNames:
    - db
    - parse_current
    - ast_node
    - tunableif
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2559
      start: 2507
    functionDepth: 6
    functionLinenumber: 2507
    functionLinenumberEnd: 2559
    functionName: cil_gen_bool
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 13
    functionsReached:
    - cil_clear_node
    - cil_destroy_bool
    - cil_log
    - cil_bool_init
    - cil_tree_log
    - cil_gen_node
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_bool(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      struct cil_tree_node *ast_node, int tunableif)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2567,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - boolean
    argTypes:
    - struct cil_bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2569
      start: 2561
    functionDepth: 1
    functionLinenumber: 2561
    functionLinenumberEnd: 2569
    functionName: cil_destroy_bool
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - cil_symtab_datum_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_bool(struct cil_bool *boolean)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2585,1
    - Dst: cil_tunable_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2590,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2599,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2604,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2613,1
    - Dst: cil_destroy_tunable
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2614,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2615,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2617
      start: 2571
    functionDepth: 6
    functionLinenumber: 2571
    functionLinenumberEnd: 2617
    functionName: cil_gen_tunable
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_clear_node
    - cil_tunable_init
    - cil_log
    - cil_tree_log
    - cil_gen_node
    - __cil_verify_syntax
    - cil_destroy_tunable
    linkageType: ''
    returnType: int
    signature: "int cil_gen_tunable(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \   struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2625,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - tunable
    argTypes:
    - struct cil_tunable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2627
      start: 2619
    functionDepth: 1
    functionLinenumber: 2619
    functionLinenumberEnd: 2627
    functionName: cil_destroy_tunable
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - cil_symtab_datum_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_tunable(struct cil_tunable *tunable)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - op
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2651
      start: 2629
    functionDepth: 0
    functionLinenumber: 2629
    functionLinenumberEnd: 2651
    functionName: __cil_get_expr_operator_flavor
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum cil_flavor
    signature: enum cil_flavor __cil_get_expr_operator_flavor(const char *op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_expr_operator_flavor
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2662,1
    - Dst: cil_verify_expr_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2664,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2670,1
    - Dst: __cil_fill_expr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2675,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - current
    - flavor
    - expr
    argTypes:
    - struct cil_tree_node*
    - enum cil_flavor
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2685
      start: 2656
    functionDepth: 3
    functionLinenumber: 2656
    functionLinenumberEnd: 2685
    functionName: __cil_fill_expr_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - __cil_fill_expr
    - __cil_get_expr_operator_flavor
    - cil_verify_expr_syntax
    - cil_list_append
    linkageType: ''
    returnType: int
    signature: "int __cil_fill_expr_helper(struct cil_tree_node *current,\n\t\t\t\t
      \ enum cil_flavor flavor, struct cil_list *expr)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_expr_operator_flavor
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2694,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2696,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2700,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2703,1
    - Dst: __cil_fill_expr_helper
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2704,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2706,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2709,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - current
    - flavor
    - expr
    argTypes:
    - struct cil_tree_node*
    - enum cil_flavor
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2716
      start: 2687
    functionDepth: 4
    functionLinenumber: 2687
    functionLinenumberEnd: 2716
    functionName: __cil_fill_expr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 1
    functionsReached:
    - __cil_get_expr_operator_flavor
    - cil_list_append
    - cil_log
    - cil_list_destroy
    - cil_list_init
    - __cil_fill_expr_helper
    linkageType: ''
    returnType: int
    signature: "int __cil_fill_expr(struct cil_tree_node *current,\n\t\t\t   enum
      cil_flavor flavor, struct cil_list *expr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2723,1
    - Dst: __cil_fill_expr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2726,1
    - Dst: __cil_fill_expr_helper
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2728,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2732,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2733,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - current
    - flavor
    - expr
    argTypes:
    - struct cil_tree_node*
    - enum cil_flavor
    - struct cil_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2737
      start: 2718
    functionDepth: 5
    functionLinenumber: 2718
    functionLinenumberEnd: 2737
    functionName: cil_gen_expr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 4
    functionsReached:
    - __cil_fill_expr
    - cil_list_destroy
    - cil_log
    - cil_list_init
    - __cil_fill_expr_helper
    linkageType: ''
    returnType: int
    signature: "int cil_gen_expr(struct cil_tree_node *current, enum cil_flavor flavor,\n\t\t
      struct cil_list **expr)"
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - op
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2759
      start: 2739
    functionDepth: 0
    functionLinenumber: 2739
    functionLinenumberEnd: 2759
    functionName: __cil_get_constraint_operator_flavor
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum cil_flavor
    signature: enum cil_flavor __cil_get_constraint_operator_flavor(const char *op)
  - BBCount: 15
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 1
    argNames:
    - operand
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2793
      start: 2761
    functionDepth: 0
    functionLinenumber: 2761
    functionLinenumberEnd: 2793
    functionName: __cil_get_constraint_operand_flavor
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: enum cil_flavor
    signature: enum cil_flavor __cil_get_constraint_operand_flavor(const char *operand)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: __cil_get_constraint_operand_flavor
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2805,1
    - Dst: __cil_get_constraint_operand_flavor
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2807,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2832,1
    - Dst: cil_verify_constraint_leaf_expr_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2837,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2843,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2845,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2847,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2850,1
    - Dst: cil_fill_list
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2854,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2857,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2860,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2862,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 56
    argCount: 4
    argNames:
    - current
    - expr_flavor
    - op
    - leaf_expr
    argTypes:
    - struct cil_tree_node*
    - enum cil_flavor
    - enum cil_flavor
    - struct cil_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2870
      start: 2795
    functionDepth: 4
    functionLinenumber: 2795
    functionLinenumberEnd: 2870
    functionName: __cil_fill_constraint_leaf_expr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_append
    - cil_log
    - cil_list_destroy
    - cil_fill_list
    - cil_verify_constraint_leaf_expr_syntax
    - __cil_get_constraint_operand_flavor
    - cil_list_init
    linkageType: ''
    returnType: int
    signature: "int __cil_fill_constraint_leaf_expr(struct cil_tree_node *current,\n\t\t\t\t\t
      \  enum cil_flavor expr_flavor,\n\t\t\t\t\t   enum cil_flavor op,\n\t\t\t\t\t
      \  struct cil_list **leaf_expr)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2882,1
    - Dst: __cil_get_constraint_operator_flavor
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2887,1
    - Dst: cil_verify_constraint_expr_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2889,1
    - Dst: __cil_fill_constraint_leaf_expr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2900,1
    - Dst: __cil_fill_constraint_expr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2906,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2911,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2912,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2913,1
    - Dst: __cil_fill_constraint_expr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2916,1
    - Dst: __cil_fill_constraint_expr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2921,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2924,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2927,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2928,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2929,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2930,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 3
    argNames:
    - current
    - flavor
    - expr
    argTypes:
    - struct cil_tree_node*
    - enum cil_flavor
    - struct cil_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2938
      start: 2872
    functionDepth: 5
    functionLinenumber: 2872
    functionLinenumberEnd: 2938
    functionName: __cil_fill_constraint_expr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 1
    functionsReached:
    - __cil_get_constraint_operator_flavor
    - cil_log
    - cil_verify_constraint_expr_syntax
    - __cil_fill_constraint_expr
    - cil_list_append
    - cil_list_destroy
    - cil_list_init
    - __cil_fill_constraint_leaf_expr
    linkageType: ''
    returnType: int
    signature: "int __cil_fill_constraint_expr(struct cil_tree_node *current,\n\t\t\t\t
      \     enum cil_flavor flavor,\n\t\t\t\t      struct cil_list **expr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_fill_constraint_expr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2950,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2959,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - current
    - flavor
    - expr
    argTypes:
    - struct cil_tree_node*
    - enum cil_flavor
    - struct cil_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2961
      start: 2940
    functionDepth: 6
    functionLinenumber: 2940
    functionLinenumberEnd: 2961
    functionName: cil_gen_constraint_expr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - __cil_fill_constraint_expr
    - cil_log
    linkageType: ''
    returnType: int
    signature: "int cil_gen_constraint_expr(struct cil_tree_node *current,\n\t\t\t\t
      \  enum cil_flavor flavor,\n\t\t\t\t   struct cil_list **expr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2979,1
    - Dst: cil_boolif_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2984,1
    - Dst: cil_gen_expr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2987,1
    - Dst: cil_verify_conditional_blocks
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2992,1
    - Dst: cil_tree_subtree_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:2999,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3009,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3013,1
    - Dst: cil_destroy_boolif
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3016,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - db
    - parse_current
    - ast_node
    - tunableif
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3018
      start: 2963
    functionDepth: 6
    functionLinenumber: 2963
    functionLinenumberEnd: 3018
    functionName: cil_gen_boolif
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 20
    functionsReached:
    - cil_boolif_init
    - cil_tree_subtree_destroy
    - cil_gen_expr
    - cil_tree_log
    - __cil_verify_syntax
    - cil_verify_conditional_blocks
    - cil_destroy_boolif
    linkageType: ''
    returnType: int
    signature: "int cil_gen_boolif(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \  struct cil_tree_node *ast_node, int tunableif)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3026,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3027,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3029,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - bif
    argTypes:
    - struct cil_booleanif*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3030
      start: 3020
    functionDepth: 2
    functionLinenumber: 3020
    functionLinenumberEnd: 3030
    functionName: cil_destroy_boolif
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_boolif(struct cil_booleanif *bif)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3048,1
    - Dst: cil_tunif_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3053,1
    - Dst: cil_gen_expr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3055,1
    - Dst: cil_verify_conditional_blocks
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3060,1
    - Dst: cil_tree_subtree_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3067,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3076,1
    - Dst: cil_destroy_tunif
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3077,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3079
      start: 3032
    functionDepth: 6
    functionLinenumber: 3032
    functionLinenumberEnd: 3079
    functionName: cil_gen_tunif
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 17
    functionsReached:
    - cil_tree_subtree_destroy
    - cil_gen_expr
    - cil_tree_log
    - __cil_verify_syntax
    - cil_tunif_init
    - cil_destroy_tunif
    - cil_verify_conditional_blocks
    linkageType: ''
    returnType: int
    signature: "int cil_gen_tunif(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \ struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3087,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3088,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3090,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - tif
    argTypes:
    - struct cil_tunableif*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3091
      start: 3081
    functionDepth: 2
    functionLinenumber: 3081
    functionLinenumberEnd: 3091
    functionName: cil_destroy_tunif
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_tunif(struct cil_tunableif *tif)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3106,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3114,1
    - Dst: cil_condblock_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3121,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3129,1
    - Dst: cil_destroy_condblock
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3131,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 4
    argNames:
    - db
    - parse_current
    - ast_node
    - flavor
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3133
      start: 3093
    functionDepth: 4
    functionLinenumber: 3093
    functionLinenumberEnd: 3133
    functionName: cil_gen_condblock
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 7
    functionsReached:
    - cil_destroy_condblock
    - cil_log
    - cil_condblock_init
    - cil_tree_log
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_condblock(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \     struct cil_tree_node *ast_node, enum cil_flavor flavor)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_array_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3141,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cb
    argTypes:
    - struct cil_condblock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3143
      start: 3135
    functionDepth: 2
    functionLinenumber: 3135
    functionLinenumberEnd: 3143
    functionName: cil_destroy_condblock
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_symtab_array_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_condblock(struct cil_condblock *cb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3160,1
    - Dst: cil_alias_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3165,1
    - Dst: cil_flavor_to_symtab_index
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3169,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3174,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3183,1
    - Dst: cil_destroy_alias
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3185,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3186,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 4
    argNames:
    - db
    - parse_current
    - ast_node
    - flavor
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3188
      start: 3145
    functionDepth: 6
    functionLinenumber: 3145
    functionLinenumberEnd: 3188
    functionName: cil_gen_alias
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_clear_node
    - cil_destroy_alias
    - cil_tree_log
    - cil_gen_node
    - __cil_verify_syntax
    - cil_flavor_to_symtab_index
    - cil_alias_init
    linkageType: ''
    returnType: int
    signature: "int cil_gen_alias(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \ struct cil_tree_node *ast_node, enum cil_flavor flavor)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3196,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - alias
    argTypes:
    - struct cil_alias*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3200
      start: 3190
    functionDepth: 1
    functionLinenumber: 3190
    functionLinenumberEnd: 3200
    functionName: cil_destroy_alias
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - cil_symtab_datum_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_alias(struct cil_alias *alias)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3215,1
    - Dst: cil_aliasactual_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3220,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3232,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3233,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3234,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - db
    - parse_current
    - ast_node
    - flavor
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3236
      start: 3202
    functionDepth: 4
    functionLinenumber: 3202
    functionLinenumberEnd: 3236
    functionName: cil_gen_aliasactual
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_clear_node
    - cil_node_to_string
    - cil_tree_log
    - __cil_verify_syntax
    - cil_aliasactual_init
    linkageType: ''
    returnType: int
    signature: "int cil_gen_aliasactual(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t\tstruct
      cil_tree_node *ast_node, enum cil_flavor flavor)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - aliasactual
    argTypes:
    - struct cil_aliasactual*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3245
      start: 3238
    functionDepth: 0
    functionLinenumber: 3238
    functionLinenumberEnd: 3245
    functionName: cil_destroy_aliasactual
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_aliasactual(struct cil_aliasactual *aliasactual)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3262,1
    - Dst: cil_typeattributeset_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3267,1
    - Dst: cil_gen_expr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3271,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3282,1
    - Dst: cil_destroy_typeattributeset
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3283,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3285
      start: 3247
    functionDepth: 6
    functionLinenumber: 3247
    functionLinenumberEnd: 3285
    functionName: cil_gen_typeattributeset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 13
    functionsReached:
    - cil_gen_expr
    - cil_typeattributeset_init
    - cil_destroy_typeattributeset
    - cil_tree_log
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_typeattributeset(struct cil_db *db,\n\t\t\t     struct
      cil_tree_node *parse_current,\n\t\t\t     struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3293,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3294,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - attrset
    argTypes:
    - struct cil_typeattributeset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3297
      start: 3287
    functionDepth: 2
    functionLinenumber: 3287
    functionLinenumberEnd: 3297
    functionName: cil_destroy_typeattributeset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_typeattributeset(struct cil_typeattributeset *attrset)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3315,1
    - Dst: cil_expandtypeattribute_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3320,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3323,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3324,1
    - Dst: cil_fill_list
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3327,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3341,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3352,1
    - Dst: cil_destroy_expandtypeattribute
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3354,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3356
      start: 3299
    functionDepth: 4
    functionLinenumber: 3299
    functionLinenumberEnd: 3356
    functionName: cil_gen_expandtypeattribute
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_append
    - cil_log
    - cil_fill_list
    - cil_tree_log
    - __cil_verify_syntax
    - cil_list_init
    - cil_expandtypeattribute_init
    - cil_destroy_expandtypeattribute
    linkageType: ''
    returnType: int
    signature: "int cil_gen_expandtypeattribute(struct cil_db *db,\n\t\t\t\tstruct
      cil_tree_node *parse_current,\n\t\t\t\tstruct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3364,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3366,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - expandattr
    argTypes:
    - struct cil_expandtypeattribute*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3369
      start: 3358
    functionDepth: 2
    functionLinenumber: 3358
    functionLinenumberEnd: 3369
    functionName: cil_destroy_expandtypeattribute
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_expandtypeattribute(struct cil_expandtypeattribute
      *expandattr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3385,1
    - Dst: cil_typepermissive_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3390,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3400,1
    - Dst: cil_destroy_typepermissive
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3401,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3403
      start: 3371
    functionDepth: 4
    functionLinenumber: 3371
    functionLinenumberEnd: 3403
    functionName: cil_gen_typepermissive
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 7
    functionsReached:
    - cil_typepermissive_init
    - cil_destroy_typepermissive
    - cil_tree_log
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_typepermissive(struct cil_db *db,\n\t\t\t   struct cil_tree_node
      *parse_current,\n\t\t\t   struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - typeperm
    argTypes:
    - struct cil_typepermissive*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3412
      start: 3405
    functionDepth: 0
    functionLinenumber: 3405
    functionLinenumberEnd: 3412
    functionName: cil_destroy_typepermissive
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_typepermissive(struct cil_typepermissive *typeperm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3428,1
    - Dst: cil_typeneveraudit_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3433,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3443,1
    - Dst: cil_destroy_typeneveraudit
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3444,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3446
      start: 3414
    functionDepth: 4
    functionLinenumber: 3414
    functionLinenumberEnd: 3446
    functionName: cil_gen_typeneveraudit
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_typeneveraudit_init
    - cil_tree_log
    - cil_destroy_typeneveraudit
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_typeneveraudit(struct cil_db *db,\n\t\t\t   struct cil_tree_node
      *parse_current,\n\t\t\t   struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - typeperm
    argTypes:
    - struct cil_typeneveraudit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3455
      start: 3448
    functionDepth: 0
    functionLinenumber: 3448
    functionLinenumberEnd: 3455
    functionName: cil_destroy_typeneveraudit
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_typeneveraudit(struct cil_typeneveraudit *typeperm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3474,1
    - Dst: cil_nametypetransition_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3495,1
    - Dst: cil_gen_declared_string
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3504,1
    - Dst: cil_type_rule_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3508,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3523,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 47
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3525
      start: 3457
    functionDepth: 4
    functionLinenumber: 3457
    functionLinenumberEnd: 3525
    functionName: cil_gen_typetransition
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_declared_string
    - cil_nametypetransition_init
    - cil_tree_log
    - __cil_verify_syntax
    - cil_type_rule_init
    linkageType: ''
    returnType: int
    signature: "int cil_gen_typetransition(struct cil_db *db,\n\t\t\t   struct cil_tree_node
      *parse_current,\n\t\t\t   struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - nametypetrans
    argTypes:
    - struct cil_nametypetransition*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3534
      start: 3527
    functionDepth: 0
    functionLinenumber: 3527
    functionLinenumberEnd: 3534
    functionName: cil_destroy_typetransition
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_typetransition(struct cil_nametypetransition *nametypetrans)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3554,1
    - Dst: cil_rangetransition_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3559,1
    - Dst: cil_levelrange_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3571,1
    - Dst: cil_fill_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3573,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3587,1
    - Dst: cil_destroy_rangetransition
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3588,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3590
      start: 3536
    functionDepth: 4
    functionLinenumber: 3536
    functionLinenumberEnd: 3590
    functionName: cil_gen_rangetransition
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 18
    functionsReached:
    - cil_fill_levelrange
    - cil_destroy_rangetransition
    - cil_levelrange_init
    - cil_tree_log
    - __cil_verify_syntax
    - cil_rangetransition_init
    linkageType: ''
    returnType: int
    signature: "int cil_gen_rangetransition(struct cil_db *db,\n\t\t\t    struct cil_tree_node
      *parse_current,\n\t\t\t    struct cil_tree_node *ast_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3599,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3602,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - rangetrans
    argTypes:
    - struct cil_rangetransition*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3603
      start: 3592
    functionDepth: 1
    functionLinenumber: 3592
    functionLinenumberEnd: 3603
    functionName: cil_destroy_rangetransition
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - cil_destroy_levelrange
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_rangetransition(struct cil_rangetransition *rangetrans)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3619,1
    - Dst: cil_sens_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3624,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3628,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3637,1
    - Dst: cil_destroy_sensitivity
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3638,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3639,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3641
      start: 3605
    functionDepth: 6
    functionLinenumber: 3605
    functionLinenumberEnd: 3641
    functionName: cil_gen_sensitivity
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 8
    functionsReached:
    - cil_clear_node
    - cil_sens_init
    - cil_destroy_sensitivity
    - cil_tree_log
    - cil_gen_node
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_sensitivity(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t\tstruct
      cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3649,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3651,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sens
    argTypes:
    - struct cil_sens*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3654
      start: 3643
    functionDepth: 2
    functionLinenumber: 3643
    functionLinenumberEnd: 3654
    functionName: cil_destroy_sensitivity
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - cil_symtab_datum_destroy
    - free
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_sensitivity(struct cil_sens *sens)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3670,1
    - Dst: cil_cat_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3675,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3679,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3688,1
    - Dst: cil_destroy_category
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3689,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3690,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3692
      start: 3656
    functionDepth: 6
    functionLinenumber: 3656
    functionLinenumberEnd: 3692
    functionName: cil_gen_category
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 8
    functionsReached:
    - cil_destroy_category
    - cil_clear_node
    - cil_tree_log
    - cil_gen_node
    - __cil_verify_syntax
    - cil_cat_init
    linkageType: ''
    returnType: int
    signature: "int cil_gen_category(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \    struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3700,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cat
    argTypes:
    - struct cil_cat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3702
      start: 3694
    functionDepth: 1
    functionLinenumber: 3694
    functionLinenumberEnd: 3702
    functionName: cil_destroy_category
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - cil_symtab_datum_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_category(struct cil_cat *cat)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3719,1
    - Dst: cil_catset_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3724,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3728,1
    - Dst: cil_fill_cats
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3734,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3742,1
    - Dst: cil_destroy_catset
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3743,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3744,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3746
      start: 3704
    functionDepth: 6
    functionLinenumber: 3704
    functionLinenumberEnd: 3746
    functionName: cil_gen_catset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 11
    functionsReached:
    - cil_catset_init
    - cil_clear_node
    - cil_tree_log
    - cil_gen_node
    - __cil_verify_syntax
    - cil_destroy_catset
    - cil_fill_cats
    linkageType: ''
    returnType: int
    signature: "int cil_gen_catset(struct cil_db *db,\n\t\t\t  struct cil_tree_node
      *parse_current,\n\t\t\t  struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3754,1
    - Dst: cil_destroy_cats
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3756,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - catset
    argTypes:
    - struct cil_catset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3759
      start: 3748
    functionDepth: 1
    functionLinenumber: 3748
    functionLinenumberEnd: 3759
    functionName: cil_destroy_catset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - cil_symtab_datum_destroy
    - free
    - cil_destroy_cats
    linkageType: ''
    returnType: void
    signature: void cil_destroy_catset(struct cil_catset *catset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3775,1
    - Dst: cil_senscat_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3780,1
    - Dst: cil_fill_cats
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3784,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3795,1
    - Dst: cil_destroy_senscat
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3797,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3799
      start: 3761
    functionDepth: 4
    functionLinenumber: 3761
    functionLinenumberEnd: 3799
    functionName: cil_gen_senscat
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 9
    functionsReached:
    - cil_senscat_init
    - cil_destroy_senscat
    - cil_tree_log
    - __cil_verify_syntax
    - cil_fill_cats
    linkageType: ''
    returnType: int
    signature: "int cil_gen_senscat(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \   struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_cats
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3807,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - senscat
    argTypes:
    - struct cil_senscat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3810
      start: 3801
    functionDepth: 1
    functionLinenumber: 3801
    functionLinenumberEnd: 3810
    functionName: cil_destroy_senscat
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_destroy_cats
    linkageType: ''
    returnType: void
    signature: void cil_destroy_senscat(struct cil_senscat *senscat)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3826,1
    - Dst: cil_level_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3831,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3835,1
    - Dst: cil_fill_level
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3841,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3849,1
    - Dst: cil_destroy_level
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3850,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3851,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3853
      start: 3812
    functionDepth: 6
    functionLinenumber: 3812
    functionLinenumberEnd: 3853
    functionName: cil_gen_level
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 12
    functionsReached:
    - cil_clear_node
    - cil_fill_level
    - cil_tree_log
    - cil_gen_node
    - __cil_verify_syntax
    - cil_destroy_level
    - cil_level_init
    linkageType: ''
    returnType: int
    signature: "int cil_gen_level(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \ struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3861,1
    - Dst: cil_destroy_cats
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3863,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3865,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - level
    argTypes:
    - struct cil_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3866
      start: 3855
    functionDepth: 1
    functionLinenumber: 3855
    functionLinenumberEnd: 3866
    functionName: cil_destroy_level
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 3
    functionsReached:
    - cil_symtab_datum_destroy
    - free
    - cil_destroy_cats
    linkageType: ''
    returnType: void
    signature: void cil_destroy_level(struct cil_level *level)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3882,1
    - Dst: cil_level_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3890,1
    - Dst: cil_fill_level
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3891,1
    - Dst: cil_level_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3900,1
    - Dst: cil_fill_level
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3901,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3910,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - low
    - lvlrange
    argTypes:
    - struct cil_tree_node*
    - struct cil_levelrange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3912
      start: 3869
    functionDepth: 2
    functionLinenumber: 3869
    functionLinenumberEnd: 3912
    functionName: cil_fill_levelrange
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 4
    functionsReached:
    - cil_log
    - cil_fill_level
    - cil_level_init
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_fill_levelrange(struct cil_tree_node *low,\n\t\t\tstruct cil_levelrange
      *lvlrange)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3928,1
    - Dst: cil_levelrange_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3933,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3937,1
    - Dst: cil_fill_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3944,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3952,1
    - Dst: cil_destroy_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3953,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3954,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3956
      start: 3914
    functionDepth: 6
    functionLinenumber: 3914
    functionLinenumberEnd: 3956
    functionName: cil_gen_levelrange
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 9
    functionsReached:
    - cil_fill_levelrange
    - cil_clear_node
    - cil_levelrange_init
    - cil_tree_log
    - cil_gen_node
    - __cil_verify_syntax
    - cil_destroy_levelrange
    linkageType: ''
    returnType: int
    signature: "int cil_gen_levelrange(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \      struct cil_tree_node *ast_node)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3964,1
    - Dst: cil_destroy_level
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3967,1
    - Dst: cil_destroy_level
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3971,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3974,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - lvlrange
    argTypes:
    - struct cil_levelrange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3975
      start: 3958
    functionDepth: 2
    functionLinenumber: 3958
    functionLinenumberEnd: 3975
    functionName: cil_destroy_levelrange
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 5
    functionsReached:
    - cil_symtab_datum_destroy
    - free
    - cil_destroy_level
    linkageType: ''
    returnType: void
    signature: void cil_destroy_levelrange(struct cil_levelrange *lvlrange)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3991,1
    - Dst: cil_constrain_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3996,1
    - Dst: cil_fill_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:3998,1
    - Dst: cil_gen_constraint_expr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4003,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4015,1
    - Dst: cil_destroy_constrain
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4016,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 4
    argNames:
    - db
    - parse_current
    - ast_node
    - flavor
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4018
      start: 3977
    functionDepth: 7
    functionLinenumber: 3977
    functionLinenumberEnd: 4018
    functionName: cil_gen_constrain
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 13
    functionsReached:
    - cil_gen_constraint_expr
    - cil_destroy_constrain
    - cil_fill_classperms_list
    - cil_tree_log
    - __cil_verify_syntax
    - cil_constrain_init
    linkageType: ''
    returnType: int
    signature: "int cil_gen_constrain(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \     struct cil_tree_node *ast_node, enum cil_flavor flavor)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4026,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4027,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4028,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4030,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - cons
    argTypes:
    - struct cil_constrain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4031
      start: 4020
    functionDepth: 4
    functionLinenumber: 4020
    functionLinenumberEnd: 4031
    functionName: cil_destroy_constrain
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_destroy_classperms_list
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_constrain(struct cil_constrain *cons)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4048,1
    - Dst: cil_validatetrans_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4053,1
    - Dst: cil_gen_constraint_expr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4057,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4069,1
    - Dst: cil_destroy_validatetrans
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4070,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - db
    - parse_current
    - ast_node
    - flavor
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4072
      start: 4033
    functionDepth: 7
    functionLinenumber: 4033
    functionLinenumberEnd: 4072
    functionName: cil_gen_validatetrans
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_gen_constraint_expr
    - cil_tree_log
    - __cil_verify_syntax
    - cil_validatetrans_init
    - cil_destroy_validatetrans
    linkageType: ''
    returnType: int
    signature: "int cil_gen_validatetrans(struct cil_db *db,\n\t\t\t  struct cil_tree_node
      *parse_current,\n\t\t\t  struct cil_tree_node *ast_node,\n\t\t\t  enum cil_flavor
      flavor)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4080,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4081,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - validtrans
    argTypes:
    - struct cil_validatetrans*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4084
      start: 4074
    functionDepth: 2
    functionLinenumber: 4074
    functionLinenumberEnd: 4084
    functionName: cil_destroy_validatetrans
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_validatetrans(struct cil_validatetrans *validtrans)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4101,1
    - Dst: cil_levelrange_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4115,1
    - Dst: cil_fill_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4117,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4127,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - user_node
    - context
    argTypes:
    - struct cil_tree_node*
    - struct cil_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4129
      start: 4087
    functionDepth: 3
    functionLinenumber: 4087
    functionLinenumberEnd: 4129
    functionName: cil_fill_context
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 11
    functionsReached:
    - cil_log
    - cil_levelrange_init
    - cil_fill_levelrange
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_fill_context(struct cil_tree_node *user_node,\n\t\t     struct
      cil_context *context)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4145,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4150,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4154,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4160,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4168,1
    - Dst: cil_destroy_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4169,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4170,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4172
      start: 4131
    functionDepth: 6
    functionLinenumber: 4131
    functionLinenumberEnd: 4172
    functionName: cil_gen_context
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 20
    functionsReached:
    - cil_clear_node
    - cil_fill_context
    - cil_context_init
    - cil_tree_log
    - cil_gen_node
    - __cil_verify_syntax
    - cil_destroy_context
    linkageType: ''
    returnType: int
    signature: "int cil_gen_context(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \   struct cil_tree_node *ast_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4180,1
    - Dst: cil_destroy_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4183,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - context
    argTypes:
    - struct cil_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4187
      start: 4174
    functionDepth: 3
    functionLinenumber: 4174
    functionLinenumberEnd: 4187
    functionName: cil_destroy_context
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 3
    functionsReached:
    - cil_symtab_datum_destroy
    - free
    - cil_destroy_levelrange
    linkageType: ''
    returnType: void
    signature: void cil_destroy_context(struct cil_context *context)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4205,1
    - Dst: cil_filecon_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4211,1
    - Dst: cil_gen_declared_string
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4219,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4238,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4249,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4251,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4263,1
    - Dst: cil_destroy_filecon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4264,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4265,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 66
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4267
      start: 4189
    functionDepth: 4
    functionLinenumber: 4189
    functionLinenumberEnd: 4267
    functionName: cil_gen_filecon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 22
    functionsReached:
    - cil_gen_declared_string
    - cil_destroy_filecon
    - cil_clear_node
    - cil_fill_context
    - cil_log
    - cil_context_init
    - cil_tree_log
    - __cil_verify_syntax
    - cil_filecon_init
    linkageType: ''
    returnType: int
    signature: "int cil_gen_filecon(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \   struct cil_tree_node *ast_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4277,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4280,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - filecon
    argTypes:
    - struct cil_filecon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4281
      start: 4270
    functionDepth: 4
    functionLinenumber: 4270
    functionLinenumberEnd: 4281
    functionName: cil_destroy_filecon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_destroy_context
    linkageType: ''
    returnType: void
    signature: void cil_destroy_filecon(struct cil_filecon *filecon)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4298,1
    - Dst: cil_ibpkeycon_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4302,1
    - Dst: cil_fill_integer
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4309,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4313,1
    - Dst: cil_fill_integer
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4316,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4320,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4324,1
    - Dst: cil_fill_integer
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4329,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4332,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4341,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4343,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4354,1
    - Dst: cil_destroy_ibpkeycon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4355,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4358
      start: 4283
    functionDepth: 4
    functionLinenumber: 4283
    functionLinenumberEnd: 4358
    functionName: cil_gen_ibpkeycon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_destroy_ibpkeycon
    - cil_fill_context
    - cil_log
    - cil_context_init
    - cil_tree_log
    - __cil_verify_syntax
    - cil_ibpkeycon_init
    - cil_fill_integer
    linkageType: ''
    returnType: int
    signature: "int cil_gen_ibpkeycon(__attribute__((unused)) struct cil_db *db,\n\t\t
      \     struct cil_tree_node *parse_current,\n\t\t      struct cil_tree_node *ast_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4366,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4368,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ibpkeycon
    argTypes:
    - struct cil_ibpkeycon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4369
      start: 4360
    functionDepth: 4
    functionLinenumber: 4360
    functionLinenumberEnd: 4369
    functionName: cil_destroy_ibpkeycon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_destroy_context
    linkageType: ''
    returnType: void
    signature: void cil_destroy_ibpkeycon(struct cil_ibpkeycon *ibpkeycon)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4387,1
    - Dst: cil_portcon_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4392,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4404,1
    - Dst: cil_fill_integer
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4412,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4416,1
    - Dst: cil_fill_integer
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4419,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4423,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4427,1
    - Dst: cil_fill_integer
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4432,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4435,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4444,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4446,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4459,1
    - Dst: cil_destroy_portcon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4460,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 76
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4462
      start: 4371
    functionDepth: 4
    functionLinenumber: 4371
    functionLinenumberEnd: 4462
    functionName: cil_gen_portcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 19
    functionsReached:
    - cil_fill_context
    - cil_log
    - cil_destroy_portcon
    - cil_context_init
    - cil_portcon_init
    - cil_tree_log
    - __cil_verify_syntax
    - cil_fill_integer
    linkageType: ''
    returnType: int
    signature: "int cil_gen_portcon(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \   struct cil_tree_node *ast_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4471,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - portcon
    argTypes:
    - struct cil_portcon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4475
      start: 4464
    functionDepth: 4
    functionLinenumber: 4464
    functionLinenumberEnd: 4475
    functionName: cil_destroy_portcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_destroy_context
    linkageType: ''
    returnType: void
    signature: void cil_destroy_portcon(struct cil_portcon *portcon)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4493,1
    - Dst: cil_nodecon_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4498,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4501,1
    - Dst: cil_fill_ipaddr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4502,1
    - Dst: strchr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4509,1
    - Dst: strchr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4510,1
    - Dst: isdigit
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4510,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4511,1
    - Dst: cil_fill_ipaddr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4512,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4523,1
    - Dst: cil_fill_ipaddr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4524,1
    - Dst: strchr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4531,1
    - Dst: strchr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4532,1
    - Dst: isdigit
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4532,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4533,1
    - Dst: cil_fill_ipaddr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4534,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4547,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4549,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4562,1
    - Dst: cil_destroy_nodecon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4563,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 67
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4565
      start: 4477
    functionDepth: 4
    functionLinenumber: 4477
    functionLinenumberEnd: 4565
    functionName: cil_gen_nodecon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 16
    functionsReached:
    - cil_destroy_nodecon
    - strchr
    - cil_fill_ipaddr
    - cil_fill_context
    - cil_context_init
    - isdigit
    - cil_tree_log
    - __cil_verify_syntax
    - cil_nodecon_init
    - cil_ipaddr_init
    linkageType: ''
    returnType: int
    signature: "int cil_gen_nodecon(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \   struct cil_tree_node *ast_node)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_ipaddr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4574,1
    - Dst: cil_destroy_ipaddr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4578,1
    - Dst: cil_destroy_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4582,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4585,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - nodecon
    argTypes:
    - struct cil_nodecon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4586
      start: 4567
    functionDepth: 4
    functionLinenumber: 4567
    functionLinenumberEnd: 4586
    functionName: cil_destroy_nodecon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_destroy_ipaddr
    - cil_destroy_context
    linkageType: ''
    returnType: void
    signature: void cil_destroy_nodecon(struct cil_nodecon *nodecon)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4607,1
    - Dst: cil_genfscon_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4612,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4638,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4641,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4653,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4654,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4668,1
    - Dst: cil_destroy_genfscon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4669,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 68
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4671
      start: 4588
    functionDepth: 4
    functionLinenumber: 4588
    functionLinenumberEnd: 4671
    functionName: cil_gen_genfscon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 12
    functionsReached:
    - cil_fill_context
    - cil_log
    - cil_genfscon_init
    - cil_context_init
    - cil_tree_log
    - __cil_verify_syntax
    - cil_destroy_genfscon
    linkageType: ''
    returnType: int
    signature: "int cil_gen_genfscon(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \    struct cil_tree_node *ast_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4680,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4683,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - genfscon
    argTypes:
    - struct cil_genfscon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4684
      start: 4673
    functionDepth: 4
    functionLinenumber: 4673
    functionLinenumberEnd: 4684
    functionName: cil_destroy_genfscon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_destroy_context
    linkageType: ''
    returnType: void
    signature: void cil_destroy_genfscon(struct cil_genfscon *genfscon)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4701,1
    - Dst: cil_netifcon_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4706,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4713,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4715,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4726,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4728,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4741,1
    - Dst: cil_destroy_netifcon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4742,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4744
      start: 4686
    functionDepth: 4
    functionLinenumber: 4686
    functionLinenumberEnd: 4744
    functionName: cil_gen_netifcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 15
    functionsReached:
    - cil_fill_context
    - cil_destroy_netifcon
    - cil_context_init
    - cil_tree_log
    - __cil_verify_syntax
    - cil_netifcon_init
    linkageType: ''
    returnType: int
    signature: "int cil_gen_netifcon(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \    struct cil_tree_node *ast_node)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4753,1
    - Dst: cil_destroy_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4758,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4761,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - netifcon
    argTypes:
    - struct cil_netifcon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4762
      start: 4746
    functionDepth: 4
    functionLinenumber: 4746
    functionLinenumberEnd: 4762
    functionName: cil_destroy_netifcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_destroy_context
    linkageType: ''
    returnType: void
    signature: void cil_destroy_netifcon(struct cil_netifcon *netifcon)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4779,1
    - Dst: cil_ibendportcon_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4783,1
    - Dst: cil_fill_integer
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4787,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4790,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4798,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4800,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4812,1
    - Dst: cil_destroy_ibendportcon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4813,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4815
      start: 4764
    functionDepth: 4
    functionLinenumber: 4764
    functionLinenumberEnd: 4815
    functionName: cil_gen_ibendportcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_destroy_ibendportcon
    - cil_fill_context
    - cil_log
    - cil_context_init
    - cil_tree_log
    - __cil_verify_syntax
    - cil_fill_integer
    - cil_ibendportcon_init
    linkageType: ''
    returnType: int
    signature: "int cil_gen_ibendportcon(__attribute__((unused)) struct cil_db *db,\n\t\t\t
      struct cil_tree_node *parse_current,\n\t\t\t struct cil_tree_node *ast_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4823,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4825,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ibendportcon
    argTypes:
    - struct cil_ibendportcon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4826
      start: 4817
    functionDepth: 4
    functionLinenumber: 4817
    functionLinenumberEnd: 4826
    functionName: cil_destroy_ibendportcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_destroy_context
    linkageType: ''
    returnType: void
    signature: void cil_destroy_ibendportcon(struct cil_ibendportcon *ibendportcon)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4842,1
    - Dst: cil_pirqcon_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4847,1
    - Dst: cil_fill_integer
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4849,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4857,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4859,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4872,1
    - Dst: cil_destroy_pirqcon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4873,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4875
      start: 4828
    functionDepth: 4
    functionLinenumber: 4828
    functionLinenumberEnd: 4875
    functionName: cil_gen_pirqcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 10
    functionsReached:
    - cil_pirqcon_init
    - cil_destroy_pirqcon
    - cil_fill_context
    - cil_context_init
    - cil_tree_log
    - __cil_verify_syntax
    - cil_fill_integer
    linkageType: ''
    returnType: int
    signature: "int cil_gen_pirqcon(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \   struct cil_tree_node *ast_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4884,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4887,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pirqcon
    argTypes:
    - struct cil_pirqcon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4888
      start: 4877
    functionDepth: 4
    functionLinenumber: 4877
    functionLinenumberEnd: 4888
    functionName: cil_destroy_pirqcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_destroy_context
    linkageType: ''
    returnType: void
    signature: void cil_destroy_pirqcon(struct cil_pirqcon *pirqcon)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4905,1
    - Dst: cil_iomemcon_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4910,1
    - Dst: cil_fill_integer64
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4915,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4918,1
    - Dst: cil_fill_integer64
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4921,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4925,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4929,1
    - Dst: cil_fill_integer64
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4934,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4937,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4946,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4948,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4961,1
    - Dst: cil_destroy_iomemcon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4962,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4964
      start: 4890
    functionDepth: 4
    functionLinenumber: 4890
    functionLinenumberEnd: 4964
    functionName: cil_gen_iomemcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 15
    functionsReached:
    - cil_destroy_iomemcon
    - cil_fill_integer64
    - cil_fill_context
    - cil_log
    - cil_context_init
    - cil_tree_log
    - cil_iomemcon_init
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_iomemcon(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \    struct cil_tree_node *ast_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4973,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4976,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - iomemcon
    argTypes:
    - struct cil_iomemcon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4977
      start: 4966
    functionDepth: 4
    functionLinenumber: 4966
    functionLinenumberEnd: 4977
    functionName: cil_destroy_iomemcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_destroy_context
    linkageType: ''
    returnType: void
    signature: void cil_destroy_iomemcon(struct cil_iomemcon *iomemcon)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4994,1
    - Dst: cil_ioportcon_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:4999,1
    - Dst: cil_fill_integer
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5004,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5007,1
    - Dst: cil_fill_integer
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5010,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5014,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5018,1
    - Dst: cil_fill_integer
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5023,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5026,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5035,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5037,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5050,1
    - Dst: cil_destroy_ioportcon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5051,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5053
      start: 4979
    functionDepth: 4
    functionLinenumber: 4979
    functionLinenumberEnd: 5053
    functionName: cil_gen_ioportcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 15
    functionsReached:
    - cil_destroy_ioportcon
    - cil_fill_context
    - cil_log
    - cil_context_init
    - cil_tree_log
    - __cil_verify_syntax
    - cil_ioportcon_init
    - cil_fill_integer
    linkageType: ''
    returnType: int
    signature: "int cil_gen_ioportcon(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \     struct cil_tree_node *ast_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5062,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5065,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ioportcon
    argTypes:
    - struct cil_ioportcon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5066
      start: 5055
    functionDepth: 4
    functionLinenumber: 5055
    functionLinenumberEnd: 5066
    functionName: cil_destroy_ioportcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_destroy_context
    linkageType: ''
    returnType: void
    signature: void cil_destroy_ioportcon(struct cil_ioportcon *ioportcon)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5082,1
    - Dst: cil_pcidevicecon_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5087,1
    - Dst: cil_fill_integer
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5089,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5097,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5099,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5112,1
    - Dst: cil_destroy_pcidevicecon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5113,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5115
      start: 5068
    functionDepth: 4
    functionLinenumber: 5068
    functionLinenumberEnd: 5115
    functionName: cil_gen_pcidevicecon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 10
    functionsReached:
    - cil_pcidevicecon_init
    - cil_fill_context
    - cil_destroy_pcidevicecon
    - cil_context_init
    - cil_tree_log
    - __cil_verify_syntax
    - cil_fill_integer
    linkageType: ''
    returnType: int
    signature: "int cil_gen_pcidevicecon(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t\t
      struct cil_tree_node *ast_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5125,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - pcidevicecon
    argTypes:
    - struct cil_pcidevicecon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5129
      start: 5117
    functionDepth: 4
    functionLinenumber: 5117
    functionLinenumberEnd: 5129
    functionName: cil_destroy_pcidevicecon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_destroy_context
    linkageType: ''
    returnType: void
    signature: void cil_destroy_pcidevicecon(struct cil_pcidevicecon *pcidevicecon)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5146,1
    - Dst: cil_devicetreecon_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5151,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5158,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5160,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5173,1
    - Dst: cil_destroy_devicetreecon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5174,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5176
      start: 5131
    functionDepth: 4
    functionLinenumber: 5131
    functionLinenumberEnd: 5176
    functionName: cil_gen_devicetreecon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_devicetreecon_init
    - cil_fill_context
    - cil_context_init
    - cil_tree_log
    - cil_destroy_devicetreecon
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_devicetreecon(struct cil_db *db,\n\t\t\t  struct cil_tree_node
      *parse_current,\n\t\t\t  struct cil_tree_node *ast_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5186,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - devicetreecon
    argTypes:
    - struct cil_devicetreecon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5190
      start: 5178
    functionDepth: 4
    functionLinenumber: 5178
    functionLinenumberEnd: 5190
    functionName: cil_destroy_devicetreecon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_destroy_context
    linkageType: ''
    returnType: void
    signature: void cil_destroy_devicetreecon(struct cil_devicetreecon *devicetreecon)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5208,1
    - Dst: cil_fsuse_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5215,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5224,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5233,1
    - Dst: cil_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5235,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5248,1
    - Dst: cil_destroy_fsuse
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5249,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5251
      start: 5192
    functionDepth: 4
    functionLinenumber: 5192
    functionLinenumberEnd: 5251
    functionName: cil_gen_fsuse
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 16
    functionsReached:
    - cil_fill_context
    - cil_log
    - cil_fsuse_init
    - cil_destroy_fsuse
    - cil_context_init
    - cil_tree_log
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_fsuse(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \ struct cil_tree_node *ast_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5260,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - fsuse
    argTypes:
    - struct cil_fsuse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5264
      start: 5253
    functionDepth: 4
    functionLinenumber: 5253
    functionLinenumberEnd: 5264
    functionName: cil_destroy_fsuse
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_destroy_context
    linkageType: ''
    returnType: void
    signature: void cil_destroy_fsuse(struct cil_fsuse *fsuse)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - param
    argTypes:
    - struct cil_param*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5273
      start: 5266
    functionDepth: 0
    functionLinenumber: 5266
    functionLinenumberEnd: 5273
    functionName: cil_destroy_param
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_param(struct cil_param *param)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5293,1
    - Dst: cil_macro_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5298,1
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5313,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5320,1
    - Dst: cil_param_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5324,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5357,1
    - Dst: cil_destroy_param
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5360,1
    - Dst: cil_verify_name
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5366,1
    - Dst: cil_destroy_param
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5368,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5373,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5376,1
    - Dst: cil_destroy_param
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5377,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5382,1
    - Dst: cil_tree_subtree_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5390,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5397,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5406,1
    - Dst: cil_destroy_macro
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5407,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5408,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 110
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5410
      start: 5275
    functionDepth: 6
    functionLinenumber: 5275
    functionLinenumberEnd: 5410
    functionName: cil_gen_macro
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 23
    functionsReached:
    - cil_destroy_param
    - cil_list_for_each
    - cil_clear_node
    - cil_tree_subtree_destroy
    - cil_list_append
    - cil_log
    - cil_destroy_macro
    - cil_verify_name
    - cil_gen_node
    - cil_tree_log
    - __cil_verify_syntax
    - cil_list_init
    - cil_macro_init
    - cil_param_init
    linkageType: ''
    returnType: int
    signature: "int cil_gen_macro(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \ struct cil_tree_node *ast_node)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5418,1
    - Dst: cil_symtab_array_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5419,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5422,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - macro
    argTypes:
    - struct cil_macro*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5426
      start: 5412
    functionDepth: 2
    functionLinenumber: 5412
    functionLinenumberEnd: 5426
    functionName: cil_destroy_macro
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 4
    functionsReached:
    - cil_symtab_datum_destroy
    - free
    - cil_symtab_array_destroy
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_macro(struct cil_macro *macro)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5443,1
    - Dst: cil_call_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5448,1
    - Dst: cil_tree_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5453,1
    - Dst: cil_copy_ast
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5454,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5464,1
    - Dst: cil_destroy_call
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5465,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5467
      start: 5428
    functionDepth: 4
    functionLinenumber: 5428
    functionLinenumberEnd: 5467
    functionName: cil_gen_call
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 10
    functionsReached:
    - cil_copy_ast
    - cil_call_init
    - cil_destroy_call
    - cil_tree_log
    - __cil_verify_syntax
    - cil_tree_init
    linkageType: ''
    returnType: int
    signature: "int cil_gen_call(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      struct cil_tree_node *ast_node)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5478,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5482,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5485,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - call
    argTypes:
    - struct cil_call*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5486
      start: 5469
    functionDepth: 2
    functionLinenumber: 5469
    functionLinenumberEnd: 5486
    functionName: cil_destroy_call
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - cil_list_destroy
    - free
    - cil_tree_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_call(struct cil_call *call)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: cil_destroy_catset
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5502,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5503,1
    - Dst: cil_destroy_level
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5506,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5507,1
    - Dst: cil_destroy_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5510,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5512,1
    - Dst: cil_destroy_ipaddr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5515,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5516,1
    - Dst: cil_destroy_classpermission
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5519,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5521,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5524,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5534,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct cil_args*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5535
      start: 5488
    functionDepth: 5
    functionLinenumber: 5488
    functionLinenumberEnd: 5535
    functionName: cil_destroy_args
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 1
    functionsReached:
    - cil_destroy_classpermission
    - cil_destroy_levelrange
    - cil_log
    - free
    - cil_destroy_ipaddr
    - cil_destroy_level
    - cil_destroy_catset
    linkageType: ''
    returnType: void
    signature: void cil_destroy_args(struct cil_args *args)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5552,1
    - Dst: cil_optional_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5557,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5561,1
    - Dst: cil_destroy_optional
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5565,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5575,1
    - Dst: cil_destroy_optional
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5576,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5577,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5579
      start: 5537
    functionDepth: 6
    functionLinenumber: 5537
    functionLinenumberEnd: 5579
    functionName: cil_gen_optional
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 10
    functionsReached:
    - cil_clear_node
    - cil_optional_init
    - cil_destroy_optional
    - cil_tree_log
    - cil_gen_node
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_optional(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \    struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5587,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - optional
    argTypes:
    - struct cil_optional*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5589
      start: 5581
    functionDepth: 1
    functionLinenumber: 5581
    functionLinenumberEnd: 5589
    functionName: cil_destroy_optional
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - cil_symtab_datum_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_optional(struct cil_optional *optional)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5605,1
    - Dst: cil_policycap_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5610,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5614,1
    - Dst: cil_destroy_policycap
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5619,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5629,1
    - Dst: cil_destroy_policycap
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5630,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5631,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5633
      start: 5591
    functionDepth: 6
    functionLinenumber: 5591
    functionLinenumberEnd: 5633
    functionName: cil_gen_policycap
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 8
    functionsReached:
    - cil_destroy_policycap
    - cil_clear_node
    - cil_tree_log
    - cil_gen_node
    - __cil_verify_syntax
    - cil_policycap_init
    linkageType: ''
    returnType: int
    signature: "int cil_gen_policycap(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \     struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5641,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - polcap
    argTypes:
    - struct cil_policycap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5643
      start: 5635
    functionDepth: 1
    functionLinenumber: 5635
    functionLinenumberEnd: 5643
    functionName: cil_destroy_policycap
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - cil_symtab_datum_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_policycap(struct cil_policycap *polcap)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5659,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5664,1
    - Dst: cil_fill_ipaddr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5668,1
    - Dst: cil_gen_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5673,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5682,1
    - Dst: cil_destroy_ipaddr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5683,1
    - Dst: cil_clear_node
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5684,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_node
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5686
      start: 5645
    functionDepth: 6
    functionLinenumber: 5645
    functionLinenumberEnd: 5686
    functionName: cil_gen_ipaddr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 14
    functionsReached:
    - cil_clear_node
    - cil_fill_ipaddr
    - cil_tree_log
    - cil_gen_node
    - __cil_verify_syntax
    - cil_destroy_ipaddr
    - cil_ipaddr_init
    linkageType: ''
    returnType: int
    signature: "int cil_gen_ipaddr(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \  struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5694,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ipaddr
    argTypes:
    - struct cil_ipaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5696
      start: 5688
    functionDepth: 1
    functionLinenumber: 5688
    functionLinenumberEnd: 5696
    functionName: cil_destroy_ipaddr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 4
    functionsReached:
    - cil_symtab_datum_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_ipaddr(struct cil_ipaddr *ipaddr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_string_to_uint32
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5707,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5715,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - int_node
    - integer
    - base
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5717
      start: 5698
    functionDepth: 2
    functionLinenumber: 5698
    functionLinenumberEnd: 5717
    functionName: cil_fill_integer
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 6
    functionsReached:
    - cil_log
    - cil_string_to_uint32
    linkageType: ''
    returnType: int
    signature: "int cil_fill_integer(struct cil_tree_node *int_node, uint32_t *integer,\n\t\t
      \    int base)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_string_to_uint64
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5728,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5736,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - int_node
    - integer
    - base
    argTypes:
    - struct cil_tree_node*
    - uint64_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5738
      start: 5719
    functionDepth: 2
    functionLinenumber: 5719
    functionLinenumberEnd: 5738
    functionName: cil_fill_integer64
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 1
    functionsReached:
    - cil_log
    - cil_string_to_uint64
    linkageType: ''
    returnType: int
    signature: "int cil_fill_integer64(struct cil_tree_node *int_node, uint64_t *integer,\n\t\t
      \      int base)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5750,1
    - Dst: strchr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5752,1
    - Dst: isdigit
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5753,1
    - Dst: inet_pton
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5759,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5768,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - addr_node
    - addr
    argTypes:
    - struct cil_tree_node*
    - struct cil_ipaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5772
      start: 5740
    functionDepth: 1
    functionLinenumber: 5740
    functionLinenumberEnd: 5772
    functionName: cil_fill_ipaddr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 7
    functionsReached:
    - cil_log
    - inet_pton
    - isdigit
    - strchr
    linkageType: ''
    returnType: int
    signature: int cil_fill_ipaddr(struct cil_tree_node *addr_node, struct cil_ipaddr
      *addr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5787,1
    - Dst: cil_fill_cats
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5794,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5803,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - curr
    - level
    argTypes:
    - struct cil_tree_node*
    - struct cil_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5805
      start: 5774
    functionDepth: 2
    functionLinenumber: 5774
    functionLinenumberEnd: 5805
    functionName: cil_fill_level
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 8
    functionsReached:
    - cil_log
    - cil_fill_cats
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: int cil_fill_level(struct cil_tree_node *curr, struct cil_level *level)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_cats_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5811,1
    - Dst: cil_gen_expr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5813,1
    - Dst: cil_destroy_cats
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5815,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - curr
    - cats
    argTypes:
    - struct cil_tree_node*
    - struct cil_cats**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5820
      start: 5807
    functionDepth: 6
    functionLinenumber: 5807
    functionLinenumberEnd: 5820
    functionName: cil_fill_cats
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 3
    functionsReached:
    - cil_gen_expr
    - cil_destroy_cats
    - cil_cats_init
    linkageType: ''
    returnType: int
    signature: int cil_fill_cats(struct cil_tree_node *curr, struct cil_cats **cats)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5828,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5830,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5832,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cats
    argTypes:
    - struct cil_cats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5833
      start: 5822
    functionDepth: 2
    functionLinenumber: 5822
    functionLinenumberEnd: 5833
    functionName: cil_destroy_cats
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 4
    functionsReached:
    - free
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_cats(struct cil_cats *cats)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5847,1
    - Dst: cil_bounds_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5852,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5876,1
    - Dst: cil_destroy_bounds
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5877,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 4
    argNames:
    - db
    - parse_current
    - ast_node
    - flavor
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5879
      start: 5834
    functionDepth: 4
    functionLinenumber: 5834
    functionLinenumberEnd: 5879
    functionName: cil_gen_bounds
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_log
    - cil_destroy_bounds
    - cil_bounds_init
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_bounds(struct cil_db *db, struct cil_tree_node *parse_current,\n\t\t
      \  struct cil_tree_node *ast_node, enum cil_flavor flavor)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5887,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bounds
    argTypes:
    - struct cil_bounds*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5888
      start: 5881
    functionDepth: 0
    functionLinenumber: 5881
    functionLinenumberEnd: 5888
    functionName: cil_destroy_bounds
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_bounds(struct cil_bounds *bounds)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5901,1
    - Dst: cil_default_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5906,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5911,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5912,1
    - Dst: cil_fill_list
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5915,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5928,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5939,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5940,1
    - Dst: cil_destroy_default
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5941,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - parse_current
    - ast_node
    - flavor
    argTypes:
    - struct cil_tree_node*
    - struct cil_tree_node*
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5943
      start: 5890
    functionDepth: 4
    functionLinenumber: 5890
    functionLinenumberEnd: 5943
    functionName: cil_gen_default
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_default_init
    - cil_node_to_string
    - cil_list_append
    - cil_log
    - cil_destroy_default
    - cil_fill_list
    - cil_tree_log
    - __cil_verify_syntax
    - cil_list_init
    linkageType: ''
    returnType: int
    signature: "int cil_gen_default(struct cil_tree_node *parse_current,\n\t\t    struct
      cil_tree_node *ast_node, enum cil_flavor flavor)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5951,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5953,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5955,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - def
    argTypes:
    - struct cil_default*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5956
      start: 5945
    functionDepth: 2
    functionLinenumber: 5945
    functionLinenumberEnd: 5956
    functionName: cil_destroy_default
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_default(struct cil_default *def)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5971,1
    - Dst: cil_defaultrange_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5976,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5979,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5980,1
    - Dst: cil_fill_list
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5983,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:5993,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6006,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6013,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6026,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6034,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6046,1
    - Dst: cil_destroy_defaultrange
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6047,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 80
    argCount: 2
    argNames:
    - parse_current
    - ast_node
    argTypes:
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6049
      start: 5958
    functionDepth: 4
    functionLinenumber: 5958
    functionLinenumberEnd: 6049
    functionName: cil_gen_defaultrange
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_destroy_defaultrange
    - cil_defaultrange_init
    - cil_list_append
    - cil_log
    - cil_fill_list
    - cil_tree_log
    - __cil_verify_syntax
    - cil_list_init
    linkageType: ''
    returnType: int
    signature: "int cil_gen_defaultrange(struct cil_tree_node *parse_current,\n\t\t\t
      struct cil_tree_node *ast_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6057,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6059,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6061,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - def
    argTypes:
    - struct cil_defaultrange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6062
      start: 6051
    functionDepth: 2
    functionLinenumber: 6051
    functionLinenumberEnd: 6062
    functionName: cil_destroy_defaultrange
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_destroy_defaultrange(struct cil_defaultrange *def)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6078,1
    - Dst: cil_handleunknown_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6083,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6093,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6106,1
    - Dst: cil_destroy_handleunknown
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6107,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - parse_current
    - ast_node
    argTypes:
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6109
      start: 6064
    functionDepth: 4
    functionLinenumber: 6064
    functionLinenumberEnd: 6109
    functionName: cil_gen_handleunknown
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_destroy_handleunknown
    - cil_log
    - cil_tree_log
    - __cil_verify_syntax
    - cil_handleunknown_init
    linkageType: ''
    returnType: int
    signature: "int cil_gen_handleunknown(struct cil_tree_node *parse_current,\n\t\t\t
      \ struct cil_tree_node *ast_node)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - unk
    argTypes:
    - struct cil_handleunknown*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6114
      start: 6111
    functionDepth: 0
    functionLinenumber: 6111
    functionLinenumberEnd: 6114
    functionName: cil_destroy_handleunknown
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_handleunknown(struct cil_handleunknown *unk)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6129,1
    - Dst: cil_mls_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6134,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6141,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6152,1
    - Dst: cil_destroy_mls
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6153,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - parse_current
    - ast_node
    argTypes:
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6155
      start: 6116
    functionDepth: 4
    functionLinenumber: 6116
    functionLinenumberEnd: 6155
    functionName: cil_gen_mls
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_mls_init
    - cil_log
    - cil_destroy_mls
    - cil_tree_log
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_mls(struct cil_tree_node *parse_current,\n\t\tstruct cil_tree_node
      *ast_node)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mls
    argTypes:
    - struct cil_mls*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6160
      start: 6157
    functionDepth: 0
    functionLinenumber: 6157
    functionLinenumberEnd: 6160
    functionName: cil_destroy_mls
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_mls(struct cil_mls *mls)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __cil_verify_syntax
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6179,1
    - Dst: cil_src_info_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6184,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6190,1
    - Dst: cil_string_to_uint32
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6195,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6209,1
    - Dst: cil_destroy_src_info
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6210,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - parse_current
    - ast_node
    argTypes:
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6212
      start: 6162
    functionDepth: 4
    functionLinenumber: 6162
    functionLinenumberEnd: 6212
    functionName: cil_gen_src_info
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_src_info_init
    - cil_string_to_uint32
    - cil_destroy_src_info
    - cil_log
    - cil_tree_log
    - __cil_verify_syntax
    linkageType: ''
    returnType: int
    signature: "int cil_gen_src_info(struct cil_tree_node *parse_current,\n\t\t     struct
      cil_tree_node *ast_node)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct cil_src_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6217
      start: 6214
    functionDepth: 0
    functionLinenumber: 6214
    functionLinenumberEnd: 6217
    functionName: cil_destroy_src_info
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cil_destroy_src_info(struct cil_src_info *info)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6224,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6235,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6243,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6259,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6272,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6297,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6302,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 42
    argCount: 2
    argNames:
    - parse_current
    - args
    argTypes:
    - struct cil_tree_node*
    - struct cil_args_build*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6311
      start: 6219
    functionDepth: 4
    functionLinenumber: 6219
    functionLinenumberEnd: 6311
    functionName: check_for_illegal_statement
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_log
    linkageType: ''
    returnType: int
    signature: "int check_for_illegal_statement(struct cil_tree_node *parse_current,\n\t\t\t\t
      \      struct cil_args_build *args)"
  - BBCount: 108
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6320,1
    - Dst: cil_gen_block
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6326,1
    - Dst: cil_gen_blockinherit
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6328,1
    - Dst: cil_gen_blockabstract
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6330,1
    - Dst: cil_gen_in
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6332,1
    - Dst: cil_gen_class
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6334,1
    - Dst: cil_gen_ordered
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6336,1
    - Dst: cil_gen_map_class
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6339,1
    - Dst: cil_gen_classmapping
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6341,1
    - Dst: cil_gen_classpermission
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6343,1
    - Dst: cil_gen_classpermissionset
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6345,1
    - Dst: cil_gen_common
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6348,1
    - Dst: cil_gen_classcommon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6350,1
    - Dst: cil_gen_sid
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6352,1
    - Dst: cil_gen_sidcontext
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6354,1
    - Dst: cil_gen_ordered
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6356,1
    - Dst: cil_gen_user
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6359,1
    - Dst: cil_gen_userattribute
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6361,1
    - Dst: cil_gen_userattributeset
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6363,1
    - Dst: cil_gen_userlevel
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6365,1
    - Dst: cil_gen_userrange
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6367,1
    - Dst: cil_gen_bounds
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6369,1
    - Dst: cil_gen_userprefix
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6371,1
    - Dst: cil_gen_selinuxuser
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6373,1
    - Dst: cil_gen_selinuxuserdefault
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6375,1
    - Dst: cil_gen_type
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6378,1
    - Dst: cil_gen_typeattribute
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6380,1
    - Dst: cil_gen_typeattributeset
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6382,1
    - Dst: cil_gen_expandtypeattribute
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6384,1
    - Dst: cil_gen_alias
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6387,1
    - Dst: cil_gen_aliasactual
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6390,1
    - Dst: cil_gen_bounds
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6393,1
    - Dst: cil_gen_typepermissive
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6395,1
    - Dst: cil_gen_typeneveraudit
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6397,1
    - Dst: cil_gen_rangetransition
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6399,1
    - Dst: cil_gen_role
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6401,1
    - Dst: cil_gen_userrole
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6403,1
    - Dst: cil_gen_roletype
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6405,1
    - Dst: cil_gen_roletransition
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6407,1
    - Dst: cil_gen_roleallow
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6409,1
    - Dst: cil_gen_roleattribute
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6411,1
    - Dst: cil_gen_roleattributeset
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6413,1
    - Dst: cil_gen_bounds
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6415,1
    - Dst: cil_gen_bool
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6417,1
    - Dst: cil_gen_boolif
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6419,1
    - Dst: cil_gen_bool
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6422,1
    - Dst: cil_gen_tunable
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6425,1
    - Dst: cil_gen_boolif
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6429,1
    - Dst: cil_gen_tunif
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6432,1
    - Dst: cil_gen_condblock
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6435,1
    - Dst: cil_gen_condblock
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6438,1
    - Dst: cil_gen_avrule
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6441,1
    - Dst: cil_gen_avrule
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6444,1
    - Dst: cil_gen_avrule
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6447,1
    - Dst: cil_gen_avrule
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6450,1
    - Dst: cil_gen_avrulex
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6453,1
    - Dst: cil_gen_avrulex
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6456,1
    - Dst: cil_gen_avrulex
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6459,1
    - Dst: cil_gen_avrulex
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6462,1
    - Dst: cil_gen_permissionx
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6465,1
    - Dst: cil_gen_deny_rule
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6467,1
    - Dst: cil_gen_typetransition
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6469,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6471,1
    - Dst: cil_gen_type_rule
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6474,1
    - Dst: cil_gen_sensitivity
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6477,1
    - Dst: cil_gen_alias
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6479,1
    - Dst: cil_gen_aliasactual
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6482,1
    - Dst: cil_gen_category
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6485,1
    - Dst: cil_gen_alias
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6487,1
    - Dst: cil_gen_aliasactual
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6490,1
    - Dst: cil_gen_catset
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6493,1
    - Dst: cil_gen_ordered
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6495,1
    - Dst: cil_gen_ordered
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6498,1
    - Dst: cil_gen_senscat
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6501,1
    - Dst: cil_gen_level
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6503,1
    - Dst: cil_gen_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6505,1
    - Dst: cil_gen_constrain
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6507,1
    - Dst: cil_gen_constrain
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6510,1
    - Dst: cil_gen_validatetrans
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6513,1
    - Dst: cil_gen_validatetrans
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6516,1
    - Dst: cil_gen_context
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6519,1
    - Dst: cil_gen_filecon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6521,1
    - Dst: cil_gen_ibpkeycon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6523,1
    - Dst: cil_gen_ibendportcon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6525,1
    - Dst: cil_gen_portcon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6527,1
    - Dst: cil_gen_nodecon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6529,1
    - Dst: cil_gen_genfscon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6531,1
    - Dst: cil_gen_netifcon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6533,1
    - Dst: cil_gen_pirqcon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6535,1
    - Dst: cil_gen_iomemcon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6537,1
    - Dst: cil_gen_ioportcon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6539,1
    - Dst: cil_gen_pcidevicecon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6541,1
    - Dst: cil_gen_devicetreecon
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6543,1
    - Dst: cil_gen_fsuse
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6545,1
    - Dst: cil_gen_macro
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6547,1
    - Dst: cil_gen_call
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6549,1
    - Dst: cil_gen_policycap
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6551,1
    - Dst: cil_gen_optional
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6553,1
    - Dst: cil_gen_ipaddr
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6555,1
    - Dst: cil_gen_default
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6557,1
    - Dst: cil_gen_default
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6560,1
    - Dst: cil_gen_default
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6563,1
    - Dst: cil_gen_defaultrange
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6566,1
    - Dst: cil_gen_handleunknown
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6568,1
    - Dst: cil_gen_mls
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6570,1
    - Dst: cil_gen_src_info
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6572,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6574,1
    - Dst: cil_tree_node_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6587,1
    CyclomaticComplexity: 107
    EdgeCount: 107
    ICount: 337
    argCount: 3
    argNames:
    - db
    - parse_current
    - ast_parent
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6592
      start: 6313
    functionDepth: 9
    functionLinenumber: 6313
    functionLinenumberEnd: 6592
    functionName: parse_statement
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    - cil_gen_ibendportcon
    - cil_tree_node_destroy
    - cil_gen_pirqcon
    - cil_gen_call
    - cil_log
    - cil_gen_avrule
    - cil_gen_src_info
    - cil_gen_selinuxuserdefault
    - cil_gen_catset
    - cil_gen_devicetreecon
    - cil_gen_userrange
    - cil_gen_iomemcon
    - cil_gen_typeneveraudit
    - cil_gen_alias
    - cil_gen_common
    - cil_gen_type
    - cil_gen_defaultrange
    - cil_gen_ibpkeycon
    - cil_gen_constrain
    - cil_gen_typeattribute
    - cil_gen_role
    - cil_gen_class
    - cil_gen_classmapping
    - cil_gen_sensitivity
    - cil_gen_senscat
    - cil_gen_boolif
    - cil_gen_macro
    - cil_gen_block
    - cil_gen_user
    - cil_gen_roletransition
    - cil_gen_ipaddr
    - cil_gen_genfscon
    - cil_gen_tunif
    - cil_gen_handleunknown
    - cil_gen_pcidevicecon
    - cil_gen_validatetrans
    - cil_gen_blockinherit
    - cil_gen_userrole
    - cil_gen_userprefix
    - cil_gen_condblock
    - cil_gen_nodecon
    - cil_gen_typetransition
    - cil_gen_type_rule
    - cil_gen_map_class
    - cil_gen_roleattribute
    - cil_gen_userattributeset
    - cil_gen_permissionx
    - cil_gen_roleallow
    - cil_gen_level
    - cil_gen_selinuxuser
    - cil_gen_filecon
    - cil_gen_aliasactual
    - cil_gen_roleattributeset
    - cil_gen_policycap
    - cil_gen_classpermissionset
    - cil_gen_classpermission
    - cil_gen_ordered
    - cil_gen_bounds
    - cil_gen_userlevel
    - cil_gen_portcon
    - cil_gen_context
    - cil_gen_expandtypeattribute
    - cil_gen_roletype
    - cil_gen_optional
    - cil_gen_default
    - cil_gen_deny_rule
    - cil_gen_in
    - cil_gen_bool
    - cil_gen_category
    - cil_gen_sid
    - cil_gen_levelrange
    - cil_gen_ioportcon
    - cil_gen_avrulex
    - cil_gen_netifcon
    - cil_gen_fsuse
    - cil_gen_typepermissive
    - cil_gen_sidcontext
    - cil_gen_classcommon
    - cil_gen_userattribute
    - cil_gen_tunable
    - cil_gen_rangetransition
    - cil_gen_typeattributeset
    - cil_gen_blockabstract
    - cil_gen_mls
    linkageType: ''
    returnType: struct cil_tree_node
    signature: "struct cil_tree_node *\nparse_statement(struct cil_db *db, struct
      cil_tree_node *parse_current,\n\t\tstruct cil_tree_node *ast_parent)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6610,1
    - Dst: check_for_illegal_statement
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6616,1
    - Dst: parse_statement
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6621,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 3
    argNames:
    - parse_current
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6642
      start: 6594
    functionDepth: 10
    functionLinenumber: 6594
    functionLinenumberEnd: 6642
    functionName: __cil_build_ast_node_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 149
    functionsReached:
    - parse_statement
    - check_for_illegal_statement
    - cil_tree_log
    linkageType: ''
    returnType: int
    signature: "int __cil_build_ast_node_helper(struct cil_tree_node *parse_current,\n\t\t\t\t
      \      uint32_t *finished, void *extra_args)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - parse_current
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6664
      start: 6644
    functionDepth: 0
    functionLinenumber: 6644
    functionLinenumberEnd: 6664
    functionName: __cil_build_ast_first_child_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int __cil_build_ast_first_child_helper(\n\t__attribute__((unused))
      struct cil_tree_node *parse_current,\n\tvoid *extra_args)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_children_destroy
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6713,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 2
    argNames:
    - parse_current
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6716
      start: 6666
    functionDepth: 2
    functionLinenumber: 6666
    functionLinenumberEnd: 6716
    functionName: __cil_build_ast_last_child_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 2
    functionsReached:
    - cil_tree_children_destroy
    linkageType: ''
    returnType: int
    signature: "int __cil_build_ast_last_child_helper(struct cil_tree_node *parse_current,\n\t\t\t\t
      \ void *extra_args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_build_ast.c:6736,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - db
    - parse_tree
    - ast
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6747
      start: 6718
    functionDepth: 7
    functionLinenumber: 6718
    functionLinenumberEnd: 6747
    functionName: cil_build_ast
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_build_ast.c
    functionUses: 507
    functionsReached:
    - cil_tree_walk
    linkageType: ''
    returnType: int
    signature: "int cil_build_ast(struct cil_db *db, struct cil_tree_node *parse_tree,\n\t\t
      \ struct cil_tree_node *ast)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - datum
    - str
    argTypes:
    - struct cil_symtab_datum*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: datum_or_str
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *datum_or_str(struct cil_symtab_datum *datum,\n\t\t\t\t       const
      char *str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - datum
    argTypes:
    - struct cil_symtab_datum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: datum_to_str
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *datum_to_str(struct cil_symtab_datum *datum)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:59,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:62,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:67,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:70,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:82,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:82,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:126,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:177,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:181,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:185,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 120
    argCount: 2
    argNames:
    - out
    - expr
    argTypes:
    - FILE*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 186
    functionName: write_expr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 1
    functionsReached:
    - datum_to_str
    - fprintf
    - write_expr
    linkageType: ''
    returnType: void
    signature: void write_expr(FILE *out, struct cil_list *expr)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:62,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:67,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:70,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:82,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:82,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:126,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:177,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:181,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 117
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 184
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 59
    functionsReached:
    - datum_to_str
    - fprintf
    - write_expr
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, expr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:192,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:195,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:199,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:199,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - out
    - current
    argTypes:
    - FILE*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 203
    functionName: write_node_list
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 0
    functionsReached:
    - datum_to_str
    - fprintf
    linkageType: ''
    returnType: void
    signature: void write_node_list(FILE *out, struct cil_tree_node *current)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:211,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:215,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:218,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:221,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - out
    - list
    argTypes:
    - FILE*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 224
    functionName: write_string_list
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void write_string_list(FILE *out, struct cil_list *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:218,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 59
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:232,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:236,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:239,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:242,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:242,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - out
    - list
    argTypes:
    - FILE*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 245
    functionName: write_datum_list
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 0
    functionsReached:
    - datum_to_str
    - fprintf
    linkageType: ''
    returnType: void
    signature: void write_datum_list(FILE *out, struct cil_list *list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:239,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:242,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 243
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 59
    functionsReached:
    - datum_to_str
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:250,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:254,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:254,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:254,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:256,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:258,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - out
    - cp
    argTypes:
    - FILE*
    - struct cil_classperms*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 260
    functionName: write_classperms
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 0
    functionsReached:
    - DATUM
    - fprintf
    - write_expr
    - datum_or_str
    linkageType: ''
    returnType: void
    signature: void write_classperms(FILE *out, struct cil_classperms *cp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:269,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:277,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:280,1
    - Dst: write_classperms
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:284,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:290,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:291,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:291,1
    - Dst: write_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:293,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:296,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:301,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - out
    - cp_list
    argTypes:
    - FILE*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 262
    functionDepth: 3
    functionLinenumber: 262
    functionLinenumberEnd: 302
    functionName: write_classperms_list
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 1
    functionsReached:
    - datum_to_str
    - write_classperms
    - DATUM
    - write_classperms_list
    - fprintf
    linkageType: ''
    returnType: void
    signature: void write_classperms_list(FILE *out, struct cil_list *cp_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 275
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 59
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, cp_list)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:280,1
    - Dst: write_classperms
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:284,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:290,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:291,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:291,1
    - Dst: write_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:293,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:296,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 278
    functionDepth: 4
    functionLinenumber: 278
    functionLinenumberEnd: 299
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 59
    functionsReached:
    - datum_to_str
    - write_classperms
    - DATUM
    - write_classperms_list
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, cp_list)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:307,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:307,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:307,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:309,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:311,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:313,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:315,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:317,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:318,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:318,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:319,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - out
    - permx
    argTypes:
    - FILE*
    - struct cil_permissionx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 322
    functionName: write_permx
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 0
    functionsReached:
    - datum_or_str
    - datum_to_str
    - DATUM
    - fprintf
    - write_expr
    linkageType: ''
    returnType: void
    signature: void write_permx(FILE *out, struct cil_permissionx *permx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:327,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - out
    - cats
    argTypes:
    - FILE*
    - struct cil_cats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 331
    functionName: write_cats
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 0
    functionsReached:
    - write_expr
    linkageType: ''
    returnType: void
    signature: void write_cats(FILE *out, struct cil_cats *cats)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:336,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:336,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:336,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:338,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:339,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:340,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:340,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:342,1
    - Dst: write_cats
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:343,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - out
    - level
    - print_name
    argTypes:
    - FILE*
    - struct cil_level*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 333
    functionDepth: 3
    functionLinenumber: 333
    functionLinenumberEnd: 347
    functionName: write_level
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 2
    functionsReached:
    - datum_or_str
    - datum_to_str
    - DATUM
    - write_cats
    - fprintf
    linkageType: ''
    returnType: void
    signature: void write_level(FILE *out, struct cil_level *level, int print_name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:352,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:352,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:352,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:354,1
    - Dst: write_level
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:356,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:358,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:359,1
    - Dst: write_level
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:361,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:363,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:364,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - out
    - range
    - print_name
    argTypes:
    - FILE*
    - struct cil_levelrange*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 349
    functionDepth: 4
    functionLinenumber: 349
    functionLinenumberEnd: 366
    functionName: write_range
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 0
    functionsReached:
    - datum_to_str
    - write_level
    - fprintf
    - DATUM
    linkageType: ''
    returnType: void
    signature: void write_range(FILE *out, struct cil_levelrange *range, int print_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:372,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:372,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:372,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:374,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:375,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:376,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:376,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:377,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:378,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:378,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:379,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:380,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:380,1
    - Dst: write_range
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:382,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:384,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - out
    - context
    - print_name
    argTypes:
    - FILE*
    - struct cil_context*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 368
    functionDepth: 5
    functionLinenumber: 368
    functionLinenumberEnd: 387
    functionName: write_context
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 0
    functionsReached:
    - datum_or_str
    - datum_to_str
    - write_range
    - DATUM
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void write_context(FILE *out, struct cil_context *context,\n\t\t\t
      \ int print_name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:392,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:392,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:392,1
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:395,1
    - Dst: strcpy
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:396,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - out
    - ipaddr
    argTypes:
    - FILE*
    - struct cil_ipaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 399
    functionName: write_ipaddr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 0
    functionsReached:
    - inet_ntop
    - datum_to_str
    - strcpy
    - DATUM
    - fprintf
    linkageType: ''
    returnType: void
    signature: void write_ipaddr(FILE *out, struct cil_ipaddr *ipaddr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:403,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:404,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:406,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - out
    - cons
    argTypes:
    - FILE*
    - struct cil_constrain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 401
    functionDepth: 4
    functionLinenumber: 401
    functionLinenumberEnd: 409
    functionName: write_constrain
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 0
    functionsReached:
    - write_classperms_list
    - fprintf
    - write_expr
    linkageType: ''
    returnType: void
    signature: void write_constrain(FILE *out, struct cil_constrain *cons)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:416,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:421,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:433,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:434,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:434,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:439,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:439,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:441,1
    - Dst: write_cats
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:449,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:451,1
    - Dst: write_level
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:459,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:461,1
    - Dst: write_range
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:469,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:471,1
    - Dst: write_ipaddr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:479,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:481,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:490,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:491,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:491,1
    - Dst: write_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:493,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:496,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:501,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:502,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:502,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:506,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 73
    argCount: 2
    argNames:
    - out
    - args
    argTypes:
    - FILE*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 411
    functionDepth: 5
    functionLinenumber: 411
    functionLinenumberEnd: 507
    functionName: write_call_args
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 0
    functionsReached:
    - datum_or_str
    - datum_to_str
    - write_cats
    - write_level
    - write_range
    - DATUM
    - write_classperms_list
    - fprintf
    - write_ipaddr
    linkageType: ''
    returnType: void
    signature: void write_call_args(FILE *out, struct cil_list *args)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:421,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:433,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:434,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:434,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:439,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:439,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:441,1
    - Dst: write_cats
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:449,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:451,1
    - Dst: write_level
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:459,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:461,1
    - Dst: write_range
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:469,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:471,1
    - Dst: write_ipaddr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:479,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:481,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:490,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:491,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:491,1
    - Dst: write_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:493,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:496,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:501,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:502,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:502,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 417
    functionDepth: 5
    functionLinenumber: 417
    functionLinenumberEnd: 505
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 59
    functionsReached:
    - datum_or_str
    - datum_to_str
    - write_cats
    - write_level
    - write_range
    - DATUM
    - write_classperms_list
    - fprintf
    - write_ipaddr
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(item, args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:513,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:515,1
    - Dst: write_call_args_tree
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:516,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:517,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:520,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - out
    - arg_node
    argTypes:
    - FILE*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 523
    functionName: write_call_args_tree
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 1
    functionsReached:
    - write_call_args_tree
    - fprintf
    linkageType: ''
    returnType: void
    signature: void write_call_args_tree(FILE *out, struct cil_tree_node *arg_node)
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 1
    argNames:
    - flavor
    argTypes:
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 576
    functionName: macro_param_flavor_to_string
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *macro_param_flavor_to_string(enum cil_flavor flavor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:583,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:585,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:587,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - out
    - node
    argTypes:
    - FILE*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 590
    functionName: cil_write_src_info_node
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void cil_write_src_info_node(FILE *out, struct cil_tree_node *node)
  - BBCount: 208
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:600,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:605,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:605,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:605,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:607,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:608,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:613,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:614,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:614,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:620,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:621,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:621,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:623,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:624,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:629,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:629,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:629,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:631,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:632,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:637,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:639,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:641,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:643,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:644,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:649,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:651,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:653,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:655,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:656,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:661,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:664,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:665,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:671,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:671,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:671,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:673,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:675,1
    - Dst: macro_param_flavor_to_string
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:676,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:681,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:683,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:684,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:689,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:690,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:690,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:692,1
    - Dst: write_call_args
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:693,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:695,1
    - Dst: write_call_args_tree
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:696,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:699,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:700,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:705,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:706,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:706,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:712,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:717,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:719,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:721,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:723,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:725,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:726,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:731,1
    - Dst: write_datum_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:733,1
    - Dst: write_string_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:735,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:737,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:739,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:741,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:742,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:747,1
    - Dst: write_datum_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:749,1
    - Dst: write_string_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:751,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:753,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:755,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:757,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:758,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:763,1
    - Dst: write_datum_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:765,1
    - Dst: write_string_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:767,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:769,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:771,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:773,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:774,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:779,1
    - Dst: write_datum_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:781,1
    - Dst: write_string_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:783,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:785,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:787,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:789,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:791,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:793,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:795,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:797,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:798,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:803,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:803,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:803,1
    - Dst: write_node_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:804,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:805,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:810,1
    - Dst: write_datum_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:812,1
    - Dst: write_string_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:814,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:816,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:821,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:821,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:821,1
    - Dst: write_node_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:822,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:823,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:828,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:829,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:829,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:830,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:831,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:831,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:832,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:837,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:837,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:837,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:842,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:843,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:843,1
    - Dst: write_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:844,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:845,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:850,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:850,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:850,1
    - Dst: write_node_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:851,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:852,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:857,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:858,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:858,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:860,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:861,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:861,1
    - Dst: write_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:863,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:864,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:869,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:869,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:869,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:871,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:873,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:875,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:877,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:878,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:878,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:879,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:880,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:885,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:885,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:885,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:890,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:891,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:891,1
    - Dst: write_context
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:893,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:895,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:896,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:901,1
    - Dst: write_datum_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:903,1
    - Dst: write_string_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:905,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:907,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:912,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:912,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:912,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:918,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:918,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:918,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:924,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:924,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:924,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:929,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:930,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:930,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:935,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:936,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:936,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:938,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:939,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:939,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:941,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:946,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:946,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:946,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:951,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:952,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:952,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:957,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:958,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:958,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:960,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:961,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:961,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:963,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:968,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:968,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:968,1
    - Dst: write_cats
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:969,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:970,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:975,1
    - Dst: write_datum_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:977,1
    - Dst: write_string_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:979,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:981,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:986,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:987,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:988,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:988,1
    - Dst: write_cats
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:989,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:990,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:995,1
    - Dst: write_datum_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:997,1
    - Dst: write_string_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:999,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1001,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1006,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1006,1
    - Dst: write_level
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1007,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1008,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1013,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1013,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1013,1
    - Dst: write_range
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1014,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1015,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1020,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1020,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1020,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1025,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1025,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1025,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1030,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1031,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1031,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1033,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1035,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1036,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1041,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1042,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1043,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1043,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1045,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1046,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1046,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1048,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1053,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1054,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1054,1
    - Dst: write_level
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1057,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1059,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1060,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1065,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1066,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1066,1
    - Dst: write_range
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1069,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1071,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1072,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1077,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1078,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1079,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1079,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1081,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1082,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1082,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1087,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1088,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1089,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1089,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1090,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1095,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1096,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1097,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1097,1
    - Dst: write_range
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1100,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1102,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1103,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1108,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1109,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1110,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1110,1
    - Dst: write_range
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1113,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1115,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1116,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1120,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1120,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1124,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1124,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1129,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1130,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1130,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1132,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1134,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1135,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1140,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1141,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1142,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1142,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1144,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1145,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1145,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1147,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1152,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1153,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1154,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1154,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1156,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1157,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1157,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1161,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1161,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1165,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1165,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1170,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1171,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1171,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1173,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1174,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1174,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1176,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1180,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1180,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1185,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1186,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1186,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1188,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1190,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1191,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1196,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1198,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1200,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1201,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1206,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1207,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1207,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1207,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1208,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1213,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1214,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1214,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1214,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1215,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1220,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1221,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1222,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1222,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1224,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1225,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1225,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1230,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1231,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1232,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1232,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1234,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1235,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1235,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1237,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1242,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1243,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1244,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1244,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1246,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1247,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1247,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1249,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1250,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1250,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1252,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1253,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1253,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1255,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1261,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1263,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1265,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1267,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1269,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1271,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1272,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1272,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1273,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1274,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1274,1
    - Dst: write_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1275,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1276,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1282,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1284,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1286,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1288,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1290,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1291,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1292,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1292,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1293,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1294,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1294,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1296,1
    - Dst: write_permx
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1298,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1300,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1305,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1307,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1308,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1308,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1309,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1310,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1310,1
    - Dst: write_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1311,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1312,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1318,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1320,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1322,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1324,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1325,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1326,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1326,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1327,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1328,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1328,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1329,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1330,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1330,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1331,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1332,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1332,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1333,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1338,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1339,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1340,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1340,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1341,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1342,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1342,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1343,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1344,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1344,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1346,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1346,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1348,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1350,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1351,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1351,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1352,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1357,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1358,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1359,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1359,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1360,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1361,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1361,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1362,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1363,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1363,1
    - Dst: write_range
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1365,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1367,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1368,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1373,1
    - Dst: write_constrain
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1374,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1375,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1380,1
    - Dst: write_constrain
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1381,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1382,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1387,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1388,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1389,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1389,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1391,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1393,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1394,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1399,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1400,1
    - Dst: datum_or_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1401,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1401,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1403,1
    - Dst: write_expr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1405,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1406,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1411,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1411,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1411,1
    - Dst: write_context
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1412,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1413,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1418,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1420,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1420,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1422,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1426,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1429,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1432,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1435,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1438,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1441,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1444,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1447,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1450,1
    - Dst: write_context
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1453,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1455,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1457,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1458,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1463,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1464,1
    - Dst: write_context
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1467,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1469,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1470,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1475,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1477,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1479,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1481,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1483,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1485,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1487,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1489,1
    - Dst: write_context
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1492,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1494,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1495,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1500,1
    - Dst: write_ipaddr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1502,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1504,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1505,1
    - Dst: write_ipaddr
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1507,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1509,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1510,1
    - Dst: write_context
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1512,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1514,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1515,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1520,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1521,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1526,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1529,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1532,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1535,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1538,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1541,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1544,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1547,1
    - Dst: write_context
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1551,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1553,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1554,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1559,1
    - Dst: write_context
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1561,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1563,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1564,1
    - Dst: write_context
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1566,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1568,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1569,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1574,1
    - Dst: write_context
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1577,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1579,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1580,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1585,1
    - Dst: write_context
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1587,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1589,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1590,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1595,1
    - Dst: write_context
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1598,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1600,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1601,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1606,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1608,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1610,1
    - Dst: write_context
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1614,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1616,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1617,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1622,1
    - Dst: write_context
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1624,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1626,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1627,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1632,1
    - Dst: write_context
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1634,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1636,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1637,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1642,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1644,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1646,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1648,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1650,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1651,1
    - Dst: write_context
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1653,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1655,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1656,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1661,1
    - Dst: inet_ntop
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1667,1
    - Dst: strcpy
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1668,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1669,1
    - Dst: datum_to_str
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1669,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1674,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1674,1
    CyclomaticComplexity: 208
    EdgeCount: 208
    ICount: 842
    argCount: 2
    argNames:
    - out
    - node
    argTypes:
    - FILE*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 592
    functionDepth: 6
    functionLinenumber: 592
    functionLinenumberEnd: 1677
    functionName: cil_write_ast_node
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 0
    functionsReached:
    - write_string_list
    - cil_list_for_each
    - write_call_args_tree
    - write_context
    - write_level
    - write_cats
    - fprintf
    - write_expr
    - write_classperms_list
    - write_constrain
    - cil_node_to_string
    - write_call_args
    - datum_to_str
    - macro_param_flavor_to_string
    - write_permx
    - write_ipaddr
    - datum_or_str
    - inet_ntop
    - strcpy
    - write_range
    - write_datum_list
    - DATUM
    - write_node_list
    linkageType: ''
    returnType: void
    signature: void cil_write_ast_node(FILE *out, struct cil_tree_node *node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1699,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1702,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1704,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1707,1
    - Dst: isspace
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1711,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1712,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1717,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1692
    functionDepth: 0
    functionLinenumber: 1692
    functionLinenumberEnd: 1721
    functionName: __write_parse_ast_node_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 0
    functionsReached:
    - isspace
    - fprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: "int __write_parse_ast_node_helper(struct cil_tree_node *node,\n\t\t\t\t\t
      __attribute__((unused))\n\t\t\t\t\t uint32_t *finished,\n\t\t\t\t\t void *extra_args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - node
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1734
      start: 1723
    functionDepth: 0
    functionLinenumber: 1723
    functionLinenumberEnd: 1734
    functionName: __write_parse_ast_first_child_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int __write_parse_ast_first_child_helper(struct cil_tree_node *node,\n\t\t\t\t\t\tvoid
      *extra_args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1747,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1748,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - node
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1751
      start: 1736
    functionDepth: 0
    functionLinenumber: 1736
    functionLinenumberEnd: 1751
    functionName: __write_parse_ast_last_child_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int __write_parse_ast_last_child_helper(struct cil_tree_node *node,\n\t\t\t\t\t
      \      void *extra_args)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_write_src_info_node
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1763,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1766,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1771,1
    - Dst: cil_write_ast_node
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1773,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1757
    functionDepth: 7
    functionLinenumber: 1757
    functionLinenumberEnd: 1781
    functionName: __write_cil_ast_node_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 0
    functionsReached:
    - cil_write_ast_node
    - fprintf
    - cil_write_src_info_node
    linkageType: ''
    returnType: int
    signature: "int __write_cil_ast_node_helper(struct cil_tree_node *node,\n\t\t\t\t
      \      uint32_t *finished, void *extra_args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - node
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1783
    functionDepth: 0
    functionLinenumber: 1783
    functionLinenumberEnd: 1794
    functionName: __write_cil_ast_first_child_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int __write_cil_ast_first_child_helper(struct cil_tree_node *node,\n\t\t\t\t\t
      \     void *extra_args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1805,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1810,1
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1811,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - node
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1796
    functionDepth: 0
    functionLinenumber: 1796
    functionLinenumberEnd: 1814
    functionName: __write_cil_ast_last_child_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int __write_cil_ast_last_child_helper(struct cil_tree_node *node,\n\t\t\t\t\t
      \    void *extra_args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1826,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1831,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_write_ast.c:1838,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - out
    - phase
    - node
    argTypes:
    - FILE*
    - enum cil_write_ast_phase
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1816
    functionDepth: 7
    functionLinenumber: 1816
    functionLinenumberEnd: 1843
    functionName: cil_write_ast
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_write_ast.c
    functionUses: 4
    functionsReached:
    - cil_log
    - cil_tree_walk
    linkageType: ''
    returnType: int
    signature: "int cil_write_ast(FILE *out, enum cil_write_ast_phase phase,\n\t\t
      \ struct cil_tree_node *node)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:45,1
    - Dst: va_start
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:49,1
    - Dst: cil_vlog
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:50,1
    - Dst: va_end
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:51,1
    - Dst: exit
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 53
    functionName: cil_symtab_error
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_symtab.c
    functionUses: 0
    functionsReached:
    - va_end
    - cil_vlog
    - format
    - va_start
    - exit
    linkageType: ''
    returnType: void
    signature: void cil_symtab_error(const char *msg, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: symtab_init
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:57,1
    - Dst: cil_symtab_error
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - symtab
    - size
    argTypes:
    - symtab_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: cil_symtab_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_symtab.c
    functionUses: 2
    functionsReached:
    - symtab_init
    - cil_symtab_error
    linkageType: ''
    returnType: void
    signature: void cil_symtab_init(symtab_t *symtab, unsigned int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - datum
    argTypes:
    - struct cil_symtab_datum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: cil_symtab_datum_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_symtab.c
    functionUses: 26
    functionsReached:
    - cil_list_init
    linkageType: ''
    returnType: void
    signature: void cil_symtab_datum_init(struct cil_symtab_datum *datum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:73,1
    - Dst: cil_symtab_remove_datum
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - datum
    argTypes:
    - struct cil_symtab_datum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: cil_symtab_datum_destroy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_symtab.c
    functionUses: 27
    functionsReached:
    - cil_symtab_remove_datum
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_symtab_datum_destroy(struct cil_symtab_datum *datum)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_remove
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:81,1
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - datum
    - node
    argTypes:
    - struct cil_symtab_datum*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 86
    functionName: cil_symtab_datum_remove_node
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_symtab.c
    functionUses: 1
    functionsReached:
    - cil_symtab_datum_destroy
    - cil_list_remove
    linkageType: ''
    returnType: void
    signature: "void cil_symtab_datum_remove_node(struct cil_symtab_datum *datum,\n\t\t\t\t
      \ struct cil_tree_node *node)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:94,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:101,1
    - Dst: cil_symtab_error
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - symtab
    - key
    - datum
    - node
    argTypes:
    - symtab_t*
    - hashtab_key_t
    - struct cil_symtab_datum*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 108
    functionName: cil_symtab_insert
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_symtab.c
    functionUses: 11
    functionsReached:
    - cil_symtab_error
    - hashtab_insert
    - cil_list_append
    linkageType: ''
    returnType: int
    signature: "int cil_symtab_insert(symtab_t *symtab, hashtab_key_t key,\n\t\t      struct
      cil_symtab_datum *datum,\n\t\t      struct cil_tree_node *node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_remove
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - datum
    argTypes:
    - struct cil_symtab_datum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 121
    functionName: cil_symtab_remove_datum
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_symtab.c
    functionUses: 1
    functionsReached:
    - hashtab_remove
    linkageType: ''
    returnType: void
    signature: void cil_symtab_remove_datum(struct cil_symtab_datum *datum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - symtab
    - key
    - datum
    argTypes:
    - symtab_t*
    - char*
    - struct cil_symtab_datum**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 133
    functionName: cil_symtab_get_datum
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_symtab.c
    functionUses: 5
    functionsReached:
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: "int cil_symtab_get_datum(symtab_t *symtab, char *key,\n\t\t\t struct
      cil_symtab_datum **datum)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - symtab
    - args
    argTypes:
    - symtab_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: cil_symtab_map
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_symtab.c
    functionUses: 5
    functionsReached:
    - hashtab_map
    linkageType: ''
    returnType: int
    signature: "int cil_symtab_map(symtab_t *symtab,\n\t\t   int (*apply)(hashtab_key_t
      k, hashtab_datum_t d, void *args),\n\t\t   void *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 149
    functionName: __cil_symtab_destroy_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_symtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int __cil_symtab_destroy_helper(__attribute__((unused)) hashtab_key_t
      k,\n\t\t\t\t       hashtab_datum_t d,\n\t\t\t\t       __attribute__((unused))
      void *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_map
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:154,1
    - Dst: hashtab_destroy
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - symtab
    argTypes:
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 158
    functionName: cil_symtab_destroy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_symtab.c
    functionUses: 4
    functionsReached:
    - hashtab_destroy
    - cil_symtab_map
    linkageType: ''
    returnType: void
    signature: void cil_symtab_destroy(symtab_t *symtab)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ckey
    - mask
    - hash
    argTypes:
    - struct cil_complex_symtab_key*
    - int
    - intptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 165
    functionName: cil_complex_symtab_hash
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_symtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void cil_complex_symtab_hash(struct cil_complex_symtab_key *ckey,\n\t\t\t\t
      \   int mask, intptr_t *hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_calloc
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - symtab
    - size
    argTypes:
    - struct cil_complex_symtab*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 175
    functionName: cil_complex_symtab_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_symtab.c
    functionUses: 0
    functionsReached:
    - cil_calloc
    linkageType: ''
    returnType: void
    signature: "void cil_complex_symtab_init(struct cil_complex_symtab *symtab,\n\t\t\t
      \    unsigned int size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:186,1
    - Dst: memset
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:187,1
    - Dst: cil_complex_symtab_hash
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:192,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:200,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 30
    argCount: 3
    argNames:
    - symtab
    - ckey
    - datum
    argTypes:
    - struct cil_complex_symtab*
    - struct cil_complex_symtab_key*
    - struct cil_complex_symtab_datum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 234
    functionName: cil_complex_symtab_insert
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_symtab.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - cil_complex_symtab_hash
    - free
    - memset
    linkageType: ''
    returnType: int
    signature: "int cil_complex_symtab_insert(struct cil_complex_symtab *symtab,\n\t\t\t
      \     struct cil_complex_symtab_key *ckey,\n\t\t\t      struct cil_complex_symtab_datum
      *datum)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_complex_symtab_hash
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:243,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 18
    argCount: 3
    argNames:
    - symtab
    - ckey
    - out
    argTypes:
    - struct cil_complex_symtab*
    - struct cil_complex_symtab_key*
    - struct cil_complex_symtab_datum**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 273
    functionName: cil_complex_symtab_search
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_symtab.c
    functionUses: 0
    functionsReached:
    - cil_complex_symtab_hash
    linkageType: ''
    returnType: void
    signature: "void cil_complex_symtab_search(struct cil_complex_symtab *symtab,\n\t\t\t
      \      struct cil_complex_symtab_key *ckey,\n\t\t\t       struct cil_complex_symtab_datum
      **out)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:290,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_symtab.c:294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - symtab
    argTypes:
    - struct cil_complex_symtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 299
    functionName: cil_complex_symtab_destroy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_symtab.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cil_complex_symtab_destroy(struct cil_complex_symtab *symtab)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_stack.c:41,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_stack.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct cil_stack**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: cil_stack_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_stack.c
    functionUses: 2
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: void cil_stack_init(struct cil_stack **stack)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_stack.c:55,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_stack.c:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct cil_stack**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 58
    functionName: cil_stack_destroy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_stack.c
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cil_stack_destroy(struct cil_stack **stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct cil_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: cil_stack_empty
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_stack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_stack_empty(struct cil_stack *stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct cil_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: cil_stack_is_empty
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_stack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cil_stack_is_empty(struct cil_stack *stack)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct cil_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: cil_stack_number_of_items
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_stack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cil_stack_number_of_items(struct cil_stack *stack)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_smul_overflow
      Src: /src/selinux/libsepol/cil/src/cil_stack.c:80,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_stack.c:81,1
    - Dst: exit
      Src: /src/selinux/libsepol/cil/src/cil_stack.c:82,1
    - Dst: cil_reallocarray
      Src: /src/selinux/libsepol/cil/src/cil_stack.c:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - stack
    - flavor
    - data
    argTypes:
    - struct cil_stack*
    - enum cil_flavor
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 90
    functionName: cil_stack_push
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_stack.c
    functionUses: 1
    functionsReached:
    - cil_log
    - cil_reallocarray
    - exit
    - __builtin_smul_overflow
    linkageType: ''
    returnType: void
    signature: void cil_stack_push(struct cil_stack *stack, enum cil_flavor flavor,
      void *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct cil_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: cil_stack_pop
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_stack.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct cil_stack_item
    signature: struct cil_stack_item *cil_stack_pop(struct cil_stack *stack)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - stack
    argTypes:
    - struct cil_stack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: cil_stack_peek
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_stack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct cil_stack_item
    signature: struct cil_stack_item *cil_stack_peek(struct cil_stack *stack)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - stack
    - pos
    argTypes:
    - struct cil_stack*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: cil_stack_peek_at
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_stack.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct cil_stack_item
    signature: struct cil_stack_item *cil_stack_peek_at(struct cil_stack *stack, int
      pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - stack
    - hll_offset
    - hll_expand
    argTypes:
    - struct cil_stack*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: push_hll_info
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_parser.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    linkageType: ''
    returnType: void
    signature: "void push_hll_info(struct cil_stack *stack, uint32_t hll_offset,\n\t\t\t
      \ uint32_t hll_expand)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_stack_pop
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:66,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - stack
    - hll_offset
    - hll_expand
    argTypes:
    - struct cil_stack*
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 76
    functionName: pop_hll_info
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_parser.c
    functionUses: 0
    functionsReached:
    - cil_stack_pop
    - free
    linkageType: ''
    returnType: void
    signature: "void pop_hll_info(struct cil_stack *stack, uint32_t *hll_offset,\n\t\t\t
      uint32_t *hll_expand)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - node
    - current
    - line
    - hll_offset
    - value
    argTypes:
    - struct cil_tree_node**
    - struct cil_tree_node*
    - uint32_t
    - uint32_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 88
    functionName: create_node
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_parser.c
    functionUses: 0
    functionsReached:
    - cil_tree_node_init
    linkageType: ''
    returnType: void
    signature: "void create_node(struct cil_tree_node **node,\n\t\t\tstruct cil_tree_node
      *current, uint32_t line,\n\t\t\tuint32_t hll_offset, void *value)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - node
    - current
    argTypes:
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 99
    functionName: insert_node
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_parser.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void insert_node(struct cil_tree_node *node,\n\t\t\tstruct cil_tree_node
      *current)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cil_lexer_next
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:110,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:112,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:115,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:119,1
    - Dst: cil_stack_is_empty
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:123,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:124,1
    - Dst: pop_hll_info
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:129,1
    - Dst: push_hll_info
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:142,1
    - Dst: cil_stack_number_of_items
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:143,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:145,1
    - Dst: create_node
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:151,1
    - Dst: insert_node
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:152,1
    - Dst: create_node
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:155,1
    - Dst: insert_node
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:157,1
    - Dst: create_node
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:159,1
    - Dst: insert_node
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:160,1
    - Dst: cil_lexer_next
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:162,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:164,1
    - Dst: create_node
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:168,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:169,1
    - Dst: insert_node
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:170,1
    - Dst: cil_lexer_next
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:172,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:174,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:179,1
    - Dst: create_node
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:183,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:184,1
    - Dst: insert_node
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:185,1
    - Dst: cil_lexer_next
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:190,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:192,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:204,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 79
    argCount: 5
    argNames:
    - current
    - hll_offset
    - hll_expand
    - stack
    - path
    argTypes:
    - struct cil_tree_node**
    - uint32_t*
    - uint32_t*
    - struct cil_stack*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 101
    functionDepth: 3
    functionLinenumber: 101
    functionLinenumberEnd: 207
    functionName: add_hll_linemark
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_parser.c
    functionUses: 0
    functionsReached:
    - push_hll_info
    - insert_node
    - cil_strpool_add
    - cil_lexer_next
    - cil_log
    - cil_stack_number_of_items
    - pop_hll_info
    - create_node
    - strlen
    - cil_stack_is_empty
    linkageType: ''
    returnType: int
    signature: "int add_hll_linemark(struct cil_tree_node **current,\n\t\t\t    uint32_t
      *hll_offset, uint32_t *hll_expand,\n\t\t\t    struct cil_stack *stack, char
      *path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_node
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:213,1
    - Dst: insert_node
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:214,1
    - Dst: create_node
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:217,1
    - Dst: insert_node
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:218,1
    - Dst: create_node
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:220,1
    - Dst: insert_node
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:221,1
    - Dst: create_node
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:223,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:223,1
    - Dst: insert_node
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:224,1
    - Dst: create_node
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:226,1
    - Dst: insert_node
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - current
    - path
    argTypes:
    - struct cil_tree_node**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 228
    functionName: add_cil_path
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_parser.c
    functionUses: 0
    functionsReached:
    - insert_node
    - cil_strpool_add
    - create_node
    linkageType: ''
    returnType: void
    signature: void add_cil_path(struct cil_tree_node **current, char *path)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:238,1
    - Dst: cil_stack_init
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:245,1
    - Dst: cil_lexer_setup
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:247,1
    - Dst: add_cil_path
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:252,1
    - Dst: cil_lexer_next
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:255,1
    - Dst: add_hll_linemark
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:258,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:267,1
    - Dst: create_node
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:273,1
    - Dst: insert_node
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:274,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:280,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:288,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:293,1
    - Dst: create_node
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:299,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:300,1
    - Dst: insert_node
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:301,1
    - Dst: cil_lexer_next
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:310,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:322,1
    - Dst: cil_stack_is_empty
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:327,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:328,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:335,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:340,1
    - Dst: cil_lexer_destroy
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:347,1
    - Dst: cil_stack_destroy
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:349,1
    - Dst: cil_stack_is_empty
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:356,1
    - Dst: pop_hll_info
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:357,1
    - Dst: cil_lexer_destroy
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:359,1
    - Dst: cil_stack_destroy
      Src: /src/selinux/libsepol/cil/src/cil_parser.c:360,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 97
    argCount: 4
    argNames:
    - _path
    - buffer
    - size
    - parse_tree
    argTypes:
    - char*
    - char*
    - uint32_t
    - struct cil_tree**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 230
    functionDepth: 4
    functionLinenumber: 230
    functionLinenumberEnd: 363
    functionName: cil_parser
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_parser.c
    functionUses: 2
    functionsReached:
    - cil_stack_init
    - add_cil_path
    - insert_node
    - cil_stack_destroy
    - cil_strpool_add
    - cil_lexer_next
    - cil_lexer_destroy
    - cil_log
    - add_hll_linemark
    - cil_lexer_setup
    - cil_stack_is_empty
    - pop_hll_info
    - strlen
    - create_node
    linkageType: ''
    returnType: int
    signature: "int cil_parser(const char *_path, char *buffer, uint32_t size,\n\t
      \      struct cil_tree **parse_tree)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:79,1
    - Dst: __cil_resolve_perms
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:84,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:88,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:92,1
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:95,1
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:99,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:106,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:110,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:116,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:118,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:125,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 5
    argNames:
    - class_symtab
    - common_symtab
    - perm_strs
    - perm_datums
    - class_flavor
    argTypes:
    - symtab_t*
    - symtab_t*
    - struct cil_list*
    - struct cil_list**
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 127
    functionName: __cil_resolve_perms
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 1
    functionsReached:
    - __cil_resolve_perms
    - cil_symtab_get_datum
    - cil_list_append
    - cil_log
    - cil_list_destroy
    - cil_list_init
    linkageType: ''
    returnType: int
    signature: "int __cil_resolve_perms(symtab_t *class_symtab, symtab_t *common_symtab,\n\t\t\t
      \      struct cil_list *perm_strs,\n\t\t\t       struct cil_list **perm_datums,\n\t\t\t
      \      enum cil_flavor class_flavor)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: __cil_resolve_perms
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:84,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:88,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:92,1
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:95,1
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:99,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:106,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:110,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:116,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:118,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 81
    functionDepth: 4
    functionLinenumber: 81
    functionLinenumberEnd: 120
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 60
    functionsReached:
    - cil_log
    - __cil_resolve_perms
    - cil_symtab_get_datum
    - cil_list_append
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, perm_strs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:141,1
    - Dst: __cil_resolve_perms
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:155,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:156,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - current
    - cp
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_classperms*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 129
    functionDepth: 4
    functionLinenumber: 129
    functionLinenumberEnd: 165
    functionName: cil_resolve_classperms
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_resolve_perms
    - FLAVOR
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_classperms(struct cil_tree_node *current,\n\t\t\t
      \  struct cil_classperms *cp, struct cil_db *db)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:174,1
    - Dst: cil_resolve_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:183,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - current
    - cp_set
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_classperms_set*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 194
    functionName: cil_resolve_classperms_set
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_classperms_list
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_classperms_set(struct cil_tree_node *current,\n\t\t\t\t
      \     struct cil_classperms_set *cp_set,\n\t\t\t\t      struct cil_db *db)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_classperms
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:204,1
    - Dst: cil_resolve_classperms_set
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:209,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - current
    - cp_list
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_list*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 196
    functionDepth: 5
    functionLinenumber: 196
    functionLinenumberEnd: 221
    functionName: cil_resolve_classperms_list
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 1
    functionsReached:
    - cil_resolve_classperms_set
    - cil_resolve_classperms
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_classperms_list(struct cil_tree_node *current,\n\t\t\t\tstruct
      cil_list *cp_list, struct cil_db *db)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_classperms
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:204,1
    - Dst: cil_resolve_classperms_set
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:209,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 202
    functionDepth: 5
    functionLinenumber: 202
    functionLinenumberEnd: 215
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 60
    functionsReached:
    - cil_resolve_classperms_set
    - cil_resolve_classperms
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, cp_list)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:232,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:239,1
    - Dst: cil_resolve_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:246,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:255,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:258,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:259,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - current
    - cps
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_classpermissionset*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 223
    functionDepth: 6
    functionLinenumber: 223
    functionLinenumberEnd: 266
    functionName: cil_resolve_classpermissionset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_for_each
    - cil_list_append
    - cil_resolve_classperms_list
    - cil_tree_log
    - cil_resolve_name
    - cil_list_init
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_classpermissionset(struct cil_tree_node *current,\n\t\t\t\t
      \  struct cil_classpermissionset *cps,\n\t\t\t\t   struct cil_db *db)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:272,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - datum
    - used
    argTypes:
    - struct cil_symtab_datum*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 285
    functionName: cil_type_used
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_log
    - FLAVOR
    linkageType: ''
    returnType: void
    signature: void cil_type_used(struct cil_symtab_datum *datum, int used)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - current
    - permx
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_permissionx*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 305
    functionName: cil_resolve_permissionx
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_permissionx(struct cil_tree_node *current,\n\t\t\t\t
      \  struct cil_permissionx *permx,\n\t\t\t\t   struct cil_db *db)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:316,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:330,1
    - Dst: cil_type_used
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:339,1
    - Dst: cil_type_used
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:341,1
    - Dst: cil_resolve_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:345,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:352,1
    - Dst: cil_resolve_permissionx
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:360,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 307
    functionDepth: 6
    functionLinenumber: 307
    functionLinenumberEnd: 372
    functionName: cil_resolve_avrule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 8
    functionsReached:
    - cil_resolve_classperms_list
    - cil_type_used
    - cil_resolve_name
    - cil_resolve_permissionx
    linkageType: ''
    returnType: int
    signature: int cil_resolve_avrule(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:381,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:395,1
    - Dst: cil_resolve_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:403,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 374
    functionDepth: 6
    functionLinenumber: 374
    functionLinenumberEnd: 412
    functionName: cil_resolve_deny_rule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_classperms_list
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: int cil_resolve_deny_rule(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:424,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:434,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:442,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:449,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:455,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:458,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 469
    functionName: cil_resolve_type_rule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 15
    functionsReached:
    - cil_log
    - NODE
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: int cil_resolve_type_rule(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:480,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:486,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:490,1
    - Dst: cil_resolve_expr
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:496,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:503,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:506,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 471
    functionDepth: 3
    functionLinenumber: 471
    functionLinenumberEnd: 512
    functionName: cil_resolve_typeattributeset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 8
    functionsReached:
    - cil_resolve_expr
    - cil_list_append
    - cil_log
    - cil_resolve_name
    - cil_list_init
    - NODE
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_typeattributeset(struct cil_tree_node *current,\n\t\t\t\t
      struct cil_db *db)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:524,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:526,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:527,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:533,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:537,1
    - Dst: cil_type_used
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:542,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:543,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 514
    functionDepth: 3
    functionLinenumber: 514
    functionLinenumberEnd: 549
    functionName: cil_resolve_expandtypeattribute
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_for_each
    - cil_type_used
    - cil_list_append
    - cil_log
    - cil_resolve_name
    - cil_list_init
    - NODE
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_expandtypeattribute(struct cil_tree_node *current,\n\t\t\t\t\t
      \  struct cil_db *db)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_flavor_to_symtab_index
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:562,1
    - Dst: cil_resolve_name_keep_aliases
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:567,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:572,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:573,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:578,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:584,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:585,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:586,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:588,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:588,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:589,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:589,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:598,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:599,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:599,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 4
    argNames:
    - current
    - db
    - flavor
    - alias_flavor
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    - enum cil_flavor
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 551
    functionDepth: 2
    functionLinenumber: 551
    functionLinenumberEnd: 612
    functionName: cil_resolve_aliasactual
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_node_to_string
    - cil_log
    - cil_resolve_name_keep_aliases
    - FLAVOR
    - cil_resolve_name
    - cil_flavor_to_symtab_index
    - NODE
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_aliasactual(struct cil_tree_node *current,\n\t\t\t\t
      \  struct cil_db *db, enum cil_flavor flavor,\n\t\t\t\t   enum cil_flavor alias_flavor)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:625,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:633,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:643,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:647,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:650,1
    - Dst: __builtin_smul_overflow
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:655,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:656,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 2
    argNames:
    - current
    - flavor
    argTypes:
    - struct cil_tree_node*
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 614
    functionDepth: 4
    functionLinenumber: 614
    functionLinenumberEnd: 667
    functionName: cil_resolve_alias_to_actual
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_log
    - cil_tree_log
    - __builtin_smul_overflow
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_alias_to_actual(struct cil_tree_node *current,\n\t\t\t\t
      \      enum cil_flavor flavor)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:676,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:682,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:686,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 669
    functionDepth: 1
    functionLinenumber: 669
    functionLinenumberEnd: 698
    functionName: cil_resolve_typepermissive
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 2
    functionsReached:
    - cil_log
    - NODE
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: int cil_resolve_typepermissive(struct cil_tree_node *current, struct
      cil_db *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:707,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:713,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:717,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 729
    functionName: cil_resolve_typeneveraudit
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_log
    - NODE
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: int cil_resolve_typeneveraudit(struct cil_tree_node *current, struct
      cil_db *db)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:743,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:753,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:761,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:769,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:777,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:783,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:787,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 798
    functionName: cil_resolve_nametypetransition
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 5
    functionsReached:
    - cil_log
    - NODE
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_nametypetransition(struct cil_tree_node *current,\n\t\t\t\t
      \  struct cil_db *db)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:810,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:817,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:824,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:832,1
    - Dst: cil_resolve_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:841,1
    - Dst: cil_resolve_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:848,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 858
    functionName: cil_resolve_rangetransition
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 18
    functionsReached:
    - cil_resolve_name
    - cil_resolve_levelrange
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_rangetransition(struct cil_tree_node *current,\n\t\t\t\tstruct
      cil_db *db)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 868
    functionName: __class_update_perm_values
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int __class_update_perm_values(__attribute__((unused)) hashtab_key_t
      k,\n\t\t\t\t      hashtab_datum_t d, void *args)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:879,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:884,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:885,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:892,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:901,1
    - Dst: cil_symtab_map
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:912,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:917,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 870
    functionDepth: 4
    functionLinenumber: 870
    functionLinenumberEnd: 923
    functionName: cil_resolve_classcommon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 3
    functionsReached:
    - cil_symtab_map
    - cil_log
    - cil_tree_log
    - cil_resolve_name
    - NODE
    linkageType: ''
    returnType: int
    signature: int cil_resolve_classcommon(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:940,1
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:948,1
    - Dst: cil_resolve_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:956,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:962,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:965,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:966,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 931
    functionDepth: 6
    functionLinenumber: 931
    functionLinenumberEnd: 973
    functionName: cil_resolve_classmapping
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 7
    functionsReached:
    - cil_list_for_each
    - cil_symtab_get_datum
    - cil_list_append
    - cil_resolve_classperms_list
    - cil_resolve_name
    - cil_list_init
    linkageType: ''
    returnType: int
    signature: int cil_resolve_classmapping(struct cil_tree_node *current, struct
      cil_db *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:982,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:989,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 1000
    functionName: cil_resolve_userrole
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 3
    functionsReached:
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: int cil_resolve_userrole(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1011,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1017,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1020,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1029,1
    - Dst: cil_resolve_level
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1039,1
    - Dst: cil_resolve_level
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1045,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1002
    functionDepth: 1
    functionLinenumber: 1002
    functionLinenumberEnd: 1056
    functionName: cil_resolve_userlevel
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 7
    functionsReached:
    - cil_log
    - cil_resolve_level
    - NODE
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: int cil_resolve_userlevel(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1067,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1073,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1076,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1086,1
    - Dst: cil_resolve_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1096,1
    - Dst: cil_resolve_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1102,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1058
    functionDepth: 1
    functionLinenumber: 1058
    functionLinenumberEnd: 1113
    functionName: cil_resolve_userrange
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 7
    functionsReached:
    - cil_log
    - NODE
    - cil_resolve_name
    - cil_resolve_levelrange
    linkageType: ''
    returnType: int
    signature: int cil_resolve_userrange(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1122,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1128,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1131,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1115
    functionDepth: 1
    functionLinenumber: 1115
    functionLinenumberEnd: 1141
    functionName: cil_resolve_userprefix
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_log
    - NODE
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: int cil_resolve_userprefix(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1151,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1157,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1160,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1169,1
    - Dst: cil_resolve_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1178,1
    - Dst: cil_resolve_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1185,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1143
    functionDepth: 1
    functionLinenumber: 1143
    functionLinenumberEnd: 1194
    functionName: cil_resolve_selinuxuser
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_log
    - NODE
    - cil_resolve_name
    - cil_resolve_levelrange
    linkageType: ''
    returnType: int
    signature: int cil_resolve_selinuxuser(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1203,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1196
    functionDepth: 1
    functionLinenumber: 1196
    functionLinenumberEnd: 1221
    functionName: cil_resolve_roletype
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 3
    functionsReached:
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: int cil_resolve_roletype(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1233,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1240,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1247,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1254,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1259,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1262,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1264,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1223
    functionDepth: 1
    functionLinenumber: 1223
    functionLinenumberEnd: 1273
    functionName: cil_resolve_roletransition
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 4
    functionsReached:
    - cil_log
    - NODE
    - cil_resolve_name
    - cil_node_to_string
    linkageType: ''
    returnType: int
    signature: int cil_resolve_roletransition(struct cil_tree_node *current, struct
      cil_db *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1282,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1289,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1275
    functionDepth: 1
    functionLinenumber: 1275
    functionLinenumberEnd: 1300
    functionName: cil_resolve_roleallow
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 3
    functionsReached:
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: int cil_resolve_roleallow(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1311,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1316,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1320,1
    - Dst: cil_resolve_expr
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1325,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1332,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1335,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1302
    functionDepth: 3
    functionLinenumber: 1302
    functionLinenumberEnd: 1341
    functionName: cil_resolve_roleattributeset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_expr
    - cil_list_append
    - cil_log
    - cil_resolve_name
    - cil_list_init
    - NODE
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_roleattributeset(struct cil_tree_node *current,\n\t\t\t\t
      struct cil_db *db)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1350,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1359,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1368,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1377,1
    - Dst: cil_list_insert
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1385,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - old
    - curr
    - item
    argTypes:
    - struct cil_list*
    - struct cil_list_item*
    - struct cil_list_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1343
    functionDepth: 4
    functionLinenumber: 1343
    functionLinenumberEnd: 1386
    functionName: __cil_ordered_item_insert
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_log
    - cil_list_insert
    linkageType: ''
    returnType: struct cil_list_item
    signature: "struct cil_list_item *\n__cil_ordered_item_insert(struct cil_list
      *old, struct cil_list_item *curr,\n\t\t\t  struct cil_list_item *item)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __cil_ordered_item_insert
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - old
    - ocurr
    - nstart
    - nstop
    argTypes:
    - struct cil_list*
    - struct cil_list_item*
    - struct cil_list_item*
    - struct cil_list_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1402
      start: 1388
    functionDepth: 5
    functionLinenumber: 1388
    functionLinenumberEnd: 1402
    functionName: __cil_ordered_list_insert
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_ordered_item_insert
    linkageType: ''
    returnType: int
    signature: "int __cil_ordered_list_insert(struct cil_list *old,\n\t\t\t\t     struct
      cil_list_item *ocurr,\n\t\t\t\t     struct cil_list_item *nstart,\n\t\t\t\t
      \    struct cil_list_item *nstop)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - i
    - j
    - p
    argTypes:
    - struct cil_list_item**
    - struct cil_list_item**
    - struct cil_list_item**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1404
    functionDepth: 0
    functionLinenumber: 1404
    functionLinenumberEnd: 1423
    functionName: __cil_ordered_find_next_match
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void __cil_ordered_find_next_match(struct cil_list_item **i,\n\t\t\t\t\t
      \ struct cil_list_item **j,\n\t\t\t\t\t  struct cil_list_item **p)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: head::head
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1430,1
    - Dst: __cil_ordered_list_insert
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1440,1
    - Dst: __cil_ordered_find_next_match
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1447,1
    - Dst: __cil_ordered_list_insert
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1452,1
    - Dst: __cil_ordered_list_insert
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1475,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 2
    argNames:
    - old
    - new
    argTypes:
    - struct cil_list*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1425
    functionDepth: 6
    functionLinenumber: 1425
    functionLinenumberEnd: 1482
    functionName: __cil_ordered_lists_merge
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_ordered_list_insert
    - __cil_ordered_find_next_match
    - head::head
    linkageType: ''
    returnType: int
    signature: int __cil_ordered_lists_merge(struct cil_list *old, struct cil_list
      *new)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1497,1
    - Dst: cil_list_contains
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1498,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1502,1
    - Dst: __cil_ordered_item_insert
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1511,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - merged
    - unordered_list
    argTypes:
    - struct cil_list*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1484
    functionDepth: 5
    functionLinenumber: 1484
    functionLinenumberEnd: 1524
    functionName: insert_unordered
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_log
    - cil_list_contains
    - cil_list_for_each
    - __cil_ordered_item_insert
    linkageType: ''
    returnType: int
    signature: "int insert_unordered(struct cil_list *merged,\n\t\t\t    struct cil_list
      *unordered_list)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1497,1
    - Dst: cil_list_contains
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1498,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1502,1
    - Dst: __cil_ordered_item_insert
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1511,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1494
    functionDepth: 5
    functionLinenumber: 1494
    functionLinenumberEnd: 1518
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 65
    functionsReached:
    - cil_log
    - cil_list_contains
    - cil_list_for_each
    - __cil_ordered_item_insert
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, unordered_list)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1538,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1543,1
    - Dst: __cil_ordered_lists_merge
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1547,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1559,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1563,1
    - Dst: cil_verify_completed_ordered_list
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1572,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1574,1
    - Dst: insert_unordered
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1579,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1588,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 2
    argNames:
    - ordered_lists
    - unordered_lists
    argTypes:
    - struct cil_list**
    - struct cil_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1526
    functionDepth: 7
    functionLinenumber: 1526
    functionLinenumberEnd: 1590
    functionName: __cil_ordered_lists_merge_all
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_for_each
    - __cil_ordered_lists_merge
    - cil_verify_completed_ordered_list
    - cil_log
    - cil_list_destroy
    - cil_tree_log
    - insert_unordered
    - cil_list_init
    linkageType: ''
    returnType: struct cil_list
    signature: "struct cil_list *\n__cil_ordered_lists_merge_all(struct cil_list **ordered_lists,\n\t\t\t
      \     struct cil_list **unordered_lists)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1602,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1604,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1610,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1613,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1619,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1620,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1626,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1630,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1633,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1639,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 4
    argNames:
    - current
    - db
    - classorder_list
    - unordered_classorder_list
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    - struct cil_list*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1592
    functionDepth: 3
    functionLinenumber: 1592
    functionLinenumberEnd: 1641
    functionName: cil_resolve_classorder
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_for_each
    - cil_list_append
    - cil_log
    - cil_list_destroy
    - FLAVOR
    - cil_resolve_name
    - cil_list_init
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_classorder(struct cil_tree_node *current, struct cil_db
      *db,\n\t\t\t   struct cil_list *classorder_list,\n\t\t\t   struct cil_list *unordered_classorder_list)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1651,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1653,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1654,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1657,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1662,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1663,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1670,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1673,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1678,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - current
    - db
    - sidorder_list
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1643
    functionDepth: 3
    functionLinenumber: 1643
    functionLinenumberEnd: 1680
    functionName: cil_resolve_sidorder
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_for_each
    - cil_list_append
    - cil_log
    - cil_list_destroy
    - FLAVOR
    - cil_resolve_name
    - cil_list_init
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_sidorder(struct cil_tree_node *current, struct cil_db
      *db,\n\t\t\t struct cil_list *sidorder_list)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ordered_cats
    - db
    argTypes:
    - struct cil_list*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1682
    functionDepth: 0
    functionLinenumber: 1682
    functionLinenumberEnd: 1694
    functionName: cil_set_cat_values
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_set_cat_values(struct cil_list *ordered_cats, struct cil_db
      *db)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1687
    functionDepth: 0
    functionLinenumber: 1687
    functionLinenumberEnd: 1691
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 68
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, ordered_cats)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1704,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1706,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1707,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1710,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1715,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1716,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1723,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1726,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1731,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - current
    - db
    - catorder_list
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1696
    functionDepth: 3
    functionLinenumber: 1696
    functionLinenumberEnd: 1733
    functionName: cil_resolve_catorder
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 12
    functionsReached:
    - cil_list_for_each
    - cil_list_append
    - cil_log
    - cil_list_destroy
    - FLAVOR
    - cil_resolve_name
    - cil_list_init
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_catorder(struct cil_tree_node *current, struct cil_db
      *db,\n\t\t\t struct cil_list *catorder_list)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1744,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1746,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1747,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1750,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1755,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1756,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1762,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1765,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1770,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - current
    - db
    - sensitivityorder_list
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1772
      start: 1735
    functionDepth: 3
    functionLinenumber: 1735
    functionLinenumberEnd: 1772
    functionName: cil_resolve_sensitivityorder
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_for_each
    - cil_list_append
    - cil_log
    - cil_list_destroy
    - FLAVOR
    - cil_resolve_name
    - cil_list_init
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_sensitivityorder(struct cil_tree_node *current,\n\t\t\t\t
      struct cil_db *db,\n\t\t\t\t struct cil_list *sensitivityorder_list)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_expr
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1779,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - current
    - cats
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_cats*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1774
    functionDepth: 1
    functionLinenumber: 1774
    functionLinenumberEnd: 1789
    functionName: cil_resolve_cats
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_expr
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_cats(struct cil_tree_node *current,\n\t\t\t    struct
      cil_cats *cats, struct cil_db *db)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_cats
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - current
    - catset
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_catset*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1791
    functionDepth: 2
    functionLinenumber: 1791
    functionLinenumberEnd: 1795
    functionName: cil_resolve_catset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 4
    functionsReached:
    - cil_resolve_cats
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_catset(struct cil_tree_node *current, struct cil_catset
      *catset,\n\t\t       struct cil_db *db)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1804,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1807,1
    - Dst: cil_resolve_cats
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1811,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1819,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1822,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1828
      start: 1797
    functionDepth: 3
    functionLinenumber: 1797
    functionLinenumberEnd: 1828
    functionName: cil_resolve_senscat
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 57
    functionsReached:
    - cil_list_append
    - cil_log
    - cil_resolve_name
    - cil_list_init
    - cil_resolve_cats
    linkageType: ''
    returnType: int
    signature: int cil_resolve_senscat(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1840,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1843,1
    - Dst: cil_resolve_cats
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1850,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - current
    - level
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_level*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1860
      start: 1830
    functionDepth: 2
    functionLinenumber: 1830
    functionLinenumberEnd: 1860
    functionName: cil_resolve_level
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 9
    functionsReached:
    - cil_log
    - cil_resolve_name
    - cil_resolve_cats
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_level(struct cil_tree_node *current, struct cil_level
      *level,\n\t\t      struct cil_db *db)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1870,1
    - Dst: cil_resolve_level
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1879,1
    - Dst: cil_resolve_level
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1885,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1892,1
    - Dst: cil_resolve_level
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1901,1
    - Dst: cil_resolve_level
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1907,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 3
    argNames:
    - current
    - lvlrange
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_levelrange*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1862
    functionDepth: 3
    functionLinenumber: 1862
    functionLinenumberEnd: 1917
    functionName: cil_resolve_levelrange
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 9
    functionsReached:
    - cil_resolve_level
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_levelrange(struct cil_tree_node *current,\n\t\t\t
      \  struct cil_levelrange *lvlrange, struct cil_db *db)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1924,1
    - Dst: cil_resolve_expr
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1929,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1939
      start: 1919
    functionDepth: 6
    functionLinenumber: 1919
    functionLinenumberEnd: 1939
    functionName: cil_resolve_constrain
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 4
    functionsReached:
    - cil_resolve_classperms_list
    - cil_resolve_expr
    linkageType: ''
    returnType: int
    signature: int cil_resolve_constrain(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1947,1
    - Dst: cil_resolve_expr
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1954,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1964
      start: 1941
    functionDepth: 1
    functionLinenumber: 1941
    functionLinenumberEnd: 1964
    functionName: cil_resolve_validatetrans
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_expr
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: int cil_resolve_validatetrans(struct cil_tree_node *current, struct
      cil_db *db)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1977,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1983,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1986,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:1994,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2000,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2003,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2010,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2016,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2020,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2026,1
    - Dst: cil_resolve_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2035,1
    - Dst: cil_resolve_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2042,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 66
    argCount: 3
    argNames:
    - current
    - context
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_context*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2052
      start: 1966
    functionDepth: 4
    functionLinenumber: 1966
    functionLinenumberEnd: 2052
    functionName: cil_resolve_context
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 11
    functionsReached:
    - cil_log
    - NODE
    - cil_resolve_name
    - cil_resolve_levelrange
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_context(struct cil_tree_node *current,\n\t\t\tstruct
      cil_context *context, struct cil_db *db)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2062,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2071,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2078,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2085
      start: 2054
    functionDepth: 5
    functionLinenumber: 2054
    functionLinenumberEnd: 2085
    functionName: cil_resolve_filecon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 4
    functionsReached:
    - cil_resolve_context
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: int cil_resolve_filecon(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2094,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2087
    functionDepth: 5
    functionLinenumber: 2087
    functionLinenumberEnd: 2110
    functionName: cil_resolve_ibpkeycon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_context
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: int cil_resolve_ibpkeycon(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2119,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2136
      start: 2112
    functionDepth: 5
    functionLinenumber: 2112
    functionLinenumberEnd: 2136
    functionName: cil_resolve_portcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 4
    functionsReached:
    - cil_resolve_context
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: int cil_resolve_portcon(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2145,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2162
      start: 2138
    functionDepth: 5
    functionLinenumber: 2138
    functionLinenumberEnd: 2162
    functionName: cil_resolve_genfscon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 4
    functionsReached:
    - cil_resolve_context
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: int cil_resolve_genfscon(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2173,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2182,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2191,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2198,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2205,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2214
      start: 2164
    functionDepth: 5
    functionLinenumber: 2164
    functionLinenumberEnd: 2214
    functionName: cil_resolve_nodecon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 12
    functionsReached:
    - cil_log
    - cil_resolve_context
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: int cil_resolve_nodecon(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2225,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2232,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2239,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2246,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2216
    functionDepth: 5
    functionLinenumber: 2216
    functionLinenumberEnd: 2255
    functionName: cil_resolve_netifcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 7
    functionsReached:
    - cil_resolve_context
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: int cil_resolve_netifcon(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2265,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2272,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2281
      start: 2257
    functionDepth: 5
    functionLinenumber: 2257
    functionLinenumberEnd: 2281
    functionName: cil_resolve_ibendportcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_context
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: int cil_resolve_ibendportcon(struct cil_tree_node *current, struct
      cil_db *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2290,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2297,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2283
    functionDepth: 5
    functionLinenumber: 2283
    functionLinenumberEnd: 2307
    functionName: cil_resolve_pirqcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 4
    functionsReached:
    - cil_resolve_context
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: int cil_resolve_pirqcon(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2316,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2323,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2333
      start: 2309
    functionDepth: 5
    functionLinenumber: 2309
    functionLinenumberEnd: 2333
    functionName: cil_resolve_iomemcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 4
    functionsReached:
    - cil_resolve_context
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: int cil_resolve_iomemcon(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2342,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2349,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2359
      start: 2335
    functionDepth: 5
    functionLinenumber: 2335
    functionLinenumberEnd: 2359
    functionName: cil_resolve_ioportcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 4
    functionsReached:
    - cil_resolve_context
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: int cil_resolve_ioportcon(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2368,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2375,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2385
      start: 2361
    functionDepth: 5
    functionLinenumber: 2361
    functionLinenumberEnd: 2385
    functionName: cil_resolve_pcidevicecon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 4
    functionsReached:
    - cil_resolve_context
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: int cil_resolve_pcidevicecon(struct cil_tree_node *current, struct
      cil_db *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2395,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2402,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2412
      start: 2387
    functionDepth: 5
    functionLinenumber: 2387
    functionLinenumberEnd: 2412
    functionName: cil_resolve_devicetreecon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_context
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_devicetreecon(struct cil_tree_node *current,\n\t\t\t\t
      \    struct cil_db *db)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2421,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2428,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2438
      start: 2414
    functionDepth: 5
    functionLinenumber: 2414
    functionLinenumberEnd: 2438
    functionName: cil_resolve_fsuse
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 5
    functionsReached:
    - cil_resolve_context
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: int cil_resolve_fsuse(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2449,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2458,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2465,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2472,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2484
      start: 2440
    functionDepth: 5
    functionLinenumber: 2440
    functionLinenumberEnd: 2484
    functionName: cil_resolve_sidcontext
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 5
    functionsReached:
    - cil_log
    - cil_resolve_context
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: int cil_resolve_sidcontext(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2494,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2500,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2503,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2504,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2512,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2514,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2520
      start: 2486
    functionDepth: 3
    functionLinenumber: 2486
    functionLinenumberEnd: 2520
    functionName: cil_resolve_blockinherit_link
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_node_to_string
    - cil_list_append
    - cil_log
    - cil_resolve_name
    - cil_list_init
    - NODE
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_blockinherit_link(struct cil_tree_node *current,\n\t\t\t\t\t
      struct cil_db *db)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2541,1
    - Dst: cil_copy_ast
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2542,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2544,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2554
      start: 2522
    functionDepth: 1
    functionLinenumber: 2522
    functionLinenumberEnd: 2554
    functionName: cil_resolve_blockinherit_copy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_log
    - cil_copy_ast
    - cil_list_for_each
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_blockinherit_copy(struct cil_tree_node *current,\n\t\t\t\t\t
      struct cil_db *db)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_mark_subtree_abstract
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2564,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2567
      start: 2556
    functionDepth: 1
    functionLinenumber: 2556
    functionLinenumberEnd: 2567
    functionName: cil_mark_subtree_abstract
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 1
    functionsReached:
    - cil_mark_subtree_abstract
    linkageType: ''
    returnType: void
    signature: void cil_mark_subtree_abstract(struct cil_tree_node *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2578,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2584,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2586,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2595,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - current
    - db
    - abstract_blocks
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2601
      start: 2569
    functionDepth: 3
    functionLinenumber: 2569
    functionLinenumberEnd: 2601
    functionName: cil_resolve_blockabstract
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_log
    - NODE
    - cil_resolve_name
    - cil_list_append
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_blockabstract(struct cil_tree_node *current,\n\t\t\t\t
      \    struct cil_db *db,\n\t\t\t\t     struct cil_list *abstract_blocks)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2612,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2620,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2625,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2628,1
    - Dst: cil_tree_get_cil_path
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2635,1
    - Dst: cil_src_info_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2637,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2641,1
    - Dst: cil_copy_ast
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2656,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2658,1
    - Dst: cil_tree_children_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2662,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2603
    functionDepth: 4
    functionLinenumber: 2603
    functionLinenumberEnd: 2668
    functionName: cil_resolve_in
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 4
    functionsReached:
    - cil_copy_ast
    - cil_tree_node_init
    - cil_src_info_init
    - cil_tree_children_destroy
    - cil_tree_log
    - cil_resolve_name
    - cil_tree_get_cil_path
    - NODE
    linkageType: ''
    returnType: int
    signature: int cil_resolve_in(struct cil_tree_node *current, struct cil_db *db)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2693,1
    - Dst: cil_resolve_in
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2699,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2711,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - in_list
    - db
    argTypes:
    - struct cil_list*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2723
      start: 2670
    functionDepth: 5
    functionLinenumber: 2670
    functionLinenumberEnd: 2723
    functionName: cil_resolve_in_list
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_in
    - cil_tree_log
    - cil_resolve_name
    linkageType: ''
    returnType: int
    signature: int cil_resolve_in_list(struct cil_list *in_list, struct cil_db *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2693,1
    - Dst: cil_resolve_in
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2699,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2708
      start: 2685
    functionDepth: 5
    functionLinenumber: 2685
    functionLinenumberEnd: 2708
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 71
    functionsReached:
    - cil_resolve_in
    - cil_resolve_name
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, in_list)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cil_flavor_to_symtab_index
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2735,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2740,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2745,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2746,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2752,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2757,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2758,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2769,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2769,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2783,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2783,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2797,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2797,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2814,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 67
    argCount: 4
    argNames:
    - current
    - db
    - flavor
    - attr_flavor
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    - enum cil_flavor
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2816
      start: 2725
    functionDepth: 4
    functionLinenumber: 2725
    functionLinenumberEnd: 2816
    functionName: cil_resolve_bounds
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_log
    - FLAVOR
    - cil_tree_log
    - cil_resolve_name
    - cil_flavor_to_symtab_index
    - NODE
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_bounds(struct cil_tree_node *current, struct cil_db
      *db,\n\t\t\t      enum cil_flavor flavor,\n\t\t\t      enum cil_flavor attr_flavor)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2825,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2827,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2828,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2833,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2840
      start: 2818
    functionDepth: 3
    functionLinenumber: 2818
    functionLinenumberEnd: 2840
    functionName: cil_resolve_default
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_init
    - cil_list_for_each
    - cil_resolve_name
    - cil_list_append
    linkageType: ''
    returnType: int
    signature: int cil_resolve_default(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2850,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2852,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2853,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2858,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2865
      start: 2842
    functionDepth: 3
    functionLinenumber: 2842
    functionLinenumberEnd: 2865
    functionName: cil_resolve_defaultrange
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_init
    - cil_list_for_each
    - cil_resolve_name
    - cil_list_append
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_defaultrange(struct cil_tree_node *current,\n\t\t\t\t
      \   struct cil_db *db)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2874,1
    - Dst: cil_list_prepend
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2879,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2881,1
    - Dst: cil_list_prepend
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2884,1
    - Dst: cil_list_prepend
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2889,1
    - Dst: cil_list_prepend
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2891,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2893,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2900,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2901,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2903,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2909,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - call_node
    - terminating_node
    argTypes:
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2910
      start: 2867
    functionDepth: 4
    functionLinenumber: 2867
    functionLinenumberEnd: 2910
    functionName: cil_print_recursive_call
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_prepend
    - cil_list_destroy
    - cil_tree_log
    - cil_list_init
    - DATUM
    - NODE
    linkageType: ''
    returnType: void
    signature: "void cil_print_recursive_call(struct cil_tree_node *call_node,\n\t\t\t\t
      \    struct cil_tree_node *terminating_node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2900,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2901,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2903,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2907
      start: 2897
    functionDepth: 4
    functionLinenumber: 2897
    functionLinenumberEnd: 2907
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 73
    functionsReached:
    - DATUM
    - cil_tree_log
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(item, trace)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2938,1
    - Dst: cil_print_recursive_call
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2939,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - call_node
    - macro_node
    argTypes:
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2948
      start: 2912
    functionDepth: 5
    functionLinenumber: 2912
    functionLinenumberEnd: 2948
    functionName: cil_check_recursive_call
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_log
    - cil_print_recursive_call
    linkageType: ''
    returnType: int
    signature: "int cil_check_recursive_call(struct cil_tree_node *call_node,\n\t\t\t\t
      \   struct cil_tree_node *macro_node)"
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2963,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2969,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2975,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2977,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2982,1
    - Dst: cil_args_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2991,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2997,1
    - Dst: cil_destroy_args
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:2999,1
    - Dst: cil_gen_declared_string
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3003,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3013,1
    - Dst: cil_destroy_args
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3015,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3023,1
    - Dst: cil_destroy_args
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3025,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3033,1
    - Dst: cil_destroy_args
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3035,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3043,1
    - Dst: cil_destroy_args
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3045,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3053,1
    - Dst: cil_destroy_args
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3055,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3063,1
    - Dst: cil_destroy_args
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3065,1
    - Dst: cil_catset_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3075,1
    - Dst: cil_fill_cats
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3076,1
    - Dst: cil_destroy_catset
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3078,1
    - Dst: cil_destroy_args
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3079,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3082,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3085,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3091,1
    - Dst: cil_destroy_args
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3093,1
    - Dst: cil_level_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3106,1
    - Dst: cil_fill_level
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3108,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3110,1
    - Dst: cil_destroy_level
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3113,1
    - Dst: cil_destroy_args
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3114,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3117,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3120,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3126,1
    - Dst: cil_destroy_args
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3128,1
    - Dst: cil_levelrange_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3141,1
    - Dst: cil_fill_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3143,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3146,1
    - Dst: cil_destroy_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3149,1
    - Dst: cil_destroy_args
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3150,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3153,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3156,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3162,1
    - Dst: cil_destroy_args
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3164,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3175,1
    - Dst: cil_destroy_args
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3177,1
    - Dst: strchr
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3180,1
    - Dst: strchr
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3181,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3184,1
    - Dst: cil_fill_ipaddr
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3185,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3187,1
    - Dst: cil_destroy_ipaddr
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3190,1
    - Dst: cil_destroy_args
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3191,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3194,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3197,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3197,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3199,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3207,1
    - Dst: cil_destroy_args
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3209,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3217,1
    - Dst: cil_destroy_args
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3219,1
    - Dst: cil_classpermission_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3230,1
    - Dst: cil_fill_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3231,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3234,1
    - Dst: cil_destroy_classpermission
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3236,1
    - Dst: cil_destroy_args
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3237,1
    - Dst: cil_tree_node_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3240,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3243,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3247,1
    - Dst: cil_destroy_args
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3249,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3258,1
    - Dst: cil_destroy_args
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3260,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3267,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3273,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 286
    argCount: 4
    argNames:
    - call_node
    - call
    - macro
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_call*
    - struct cil_macro*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3282
      start: 2950
    functionDepth: 7
    functionLinenumber: 2950
    functionLinenumberEnd: 3282
    functionName: cil_build_call_args
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_catset_init
    - cil_destroy_args
    - cil_list_for_each
    - cil_tree_node_init
    - strchr
    - cil_log
    - cil_list_init
    - cil_fill_levelrange
    - cil_destroy_levelrange
    - cil_levelrange_init
    - cil_destroy_level
    - cil_gen_declared_string
    - cil_destroy_classpermission
    - cil_fill_ipaddr
    - cil_args_init
    - cil_list_append
    - cil_fill_cats
    - cil_fill_classperms_list
    - cil_fill_level
    - cil_tree_log
    - cil_destroy_ipaddr
    - cil_classpermission_init
    - cil_destroy_catset
    - DATUM
    - cil_level_init
    - cil_ipaddr_init
    linkageType: ''
    returnType: int
    signature: "int cil_build_call_args(struct cil_tree_node *call_node,\n\t\t\t       struct
      cil_call *call, struct cil_macro *macro,\n\t\t\t       struct cil_db *db)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3295,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3301,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3304,1
    - Dst: cil_build_call_args
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3312,1
    - Dst: cil_check_recursive_call
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3317,1
    - Dst: cil_copy_ast
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3322,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3324,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3336
      start: 3284
    functionDepth: 8
    functionLinenumber: 3284
    functionLinenumberEnd: 3336
    functionName: cil_resolve_call
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_check_recursive_call
    - cil_copy_ast
    - cil_build_call_args
    - cil_tree_log
    - cil_resolve_name
    - NODE
    linkageType: ''
    returnType: int
    signature: int cil_resolve_call(struct cil_tree_node *current, struct cil_db *db)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3351,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3354,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3436,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3439,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3446,1
    - Dst: cil_symtab_remove_datum
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3454,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3455,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3460,1
    - Dst: cil_symtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3466,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3469,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 121
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3486
      start: 3338
    functionDepth: 4
    functionLinenumber: 3338
    functionLinenumberEnd: 3486
    functionName: cil_resolve_call_args
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_for_each
    - cil_symtab_remove_datum
    - cil_log
    - cil_tree_log
    - cil_resolve_name
    - NODE
    - cil_symtab_insert
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_call_args(struct cil_tree_node *current,\n\t\t\t\t
      struct cil_db *db)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3504,1
    - Dst: cil_flavor_to_symtab_index
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3506,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - call
    - name
    - sym_index
    - datum
    argTypes:
    - struct cil_call*
    - char*
    - enum cil_sym_index
    - struct cil_symtab_datum**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3520
      start: 3488
    functionDepth: 2
    functionLinenumber: 3488
    functionLinenumberEnd: 3520
    functionName: cil_resolve_name_call_args
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 7
    functionsReached:
    - cil_flavor_to_symtab_index
    - cil_list_for_each
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_name_call_args(struct cil_call *call, char *name,\n\t\t\t
      \      enum cil_sym_index sym_index,\n\t\t\t       struct cil_symtab_datum **datum)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3556,1
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3561,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3567,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3571,1
    - Dst: cil_resolve_expr
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3580,1
    - Dst: cil_copy_list
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3590,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3592,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3595,1
    - Dst: cil_type_used
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3602,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3605,1
    - Dst: cil_resolve_expr
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3610,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3615,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3622,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3629,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 80
    argCount: 5
    argNames:
    - expr_type
    - str_expr
    - datum_expr
    - parent
    - db
    argTypes:
    - enum cil_flavor
    - struct cil_list*
    - struct cil_list**
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3631
      start: 3522
    functionDepth: 4
    functionLinenumber: 3522
    functionLinenumberEnd: 3631
    functionName: cil_resolve_expr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 6
    functionsReached:
    - cil_resolve_expr
    - cil_type_used
    - cil_list_append
    - cil_list_destroy
    - cil_tree_log
    - cil_resolve_name
    - cil_list_init
    - NODE
    - cil_copy_list
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_expr(enum cil_flavor expr_type, struct cil_list *str_expr,\n\t\t
      \    struct cil_list **datum_expr, struct cil_tree_node *parent,\n\t\t     struct
      cil_db *db)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3561,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3567,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3571,1
    - Dst: cil_resolve_expr
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3580,1
    - Dst: cil_copy_list
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3590,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3592,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3595,1
    - Dst: cil_type_used
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3602,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3605,1
    - Dst: cil_resolve_expr
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3610,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3615,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3622,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3625
      start: 3558
    functionDepth: 5
    functionLinenumber: 3558
    functionLinenumberEnd: 3625
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 76
    functionsReached:
    - cil_resolve_expr
    - cil_type_used
    - cil_list_append
    - cil_tree_log
    - cil_resolve_name
    - NODE
    - cil_copy_list
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, str_expr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_expr
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3638,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3648
      start: 3633
    functionDepth: 5
    functionLinenumber: 3633
    functionLinenumberEnd: 3648
    functionName: cil_resolve_boolif
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 2
    functionsReached:
    - cil_resolve_expr
    linkageType: ''
    returnType: int
    signature: int cil_resolve_boolif(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_evaluate_tunable_expr
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3661,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - curr
    argTypes:
    - struct cil_list_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3665
      start: 3652
    functionDepth: 1
    functionLinenumber: 3652
    functionLinenumberEnd: 3665
    functionName: __cil_evaluate_tunable_expr_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_evaluate_tunable_expr
    linkageType: ''
    returnType: int
    signature: int __cil_evaluate_tunable_expr_helper(struct cil_list_item *curr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: __cil_evaluate_tunable_expr_helper
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3678,1
    - Dst: __cil_evaluate_tunable_expr_helper
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3683,1
    - Dst: __cil_evaluate_tunable_expr_helper
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3700,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 1
    argNames:
    - curr
    argTypes:
    - struct cil_list_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3706
      start: 3667
    functionDepth: 2
    functionLinenumber: 3667
    functionLinenumberEnd: 3706
    functionName: __cil_evaluate_tunable_expr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 1
    functionsReached:
    - __cil_evaluate_tunable_expr_helper
    linkageType: ''
    returnType: int
    signature: int __cil_evaluate_tunable_expr(struct cil_list_item *curr)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_expr
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3717,1
    - Dst: __cil_evaluate_tunable_expr
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3723,1
    - Dst: cil_copy_ast
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3747,1
    - Dst: cil_copy_ast
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3754,1
    - Dst: cil_tree_children_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3761,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3769
      start: 3708
    functionDepth: 5
    functionLinenumber: 3708
    functionLinenumberEnd: 3769
    functionName: cil_resolve_tunif
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 3
    functionsReached:
    - cil_copy_ast
    - cil_resolve_expr
    - __cil_evaluate_tunable_expr
    - cil_tree_children_destroy
    linkageType: ''
    returnType: int
    signature: int cil_resolve_tunif(struct cil_tree_node *current, struct cil_db
      *db)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3780,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3785,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3789,1
    - Dst: cil_resolve_expr
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3795,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3802,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3805,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - current
    - db
    argTypes:
    - struct cil_tree_node*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3811
      start: 3771
    functionDepth: 5
    functionLinenumber: 3771
    functionLinenumberEnd: 3811
    functionName: cil_resolve_userattributeset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_expr
    - cil_list_append
    - cil_log
    - cil_resolve_name
    - cil_list_init
    - NODE
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_userattributeset(struct cil_tree_node *current,\n\t\t\t\t
      struct cil_db *db)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_count_actual
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3844,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3848
      start: 3835
    functionDepth: 1
    functionLinenumber: 3835
    functionLinenumberEnd: 3848
    functionName: cil_count_actual
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 1
    functionsReached:
    - cil_count_actual
    linkageType: ''
    returnType: unsigned
    signature: unsigned cil_count_actual(struct cil_tree_node *node)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3860,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3865,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3872,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3875,1
    - Dst: cil_stack_push
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3880,1
    - Dst: cil_check_inheritances
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3881,1
    - Dst: cil_stack_pop
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3883,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3886,1
    - Dst: cil_check_inheritances
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3895,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 5
    argNames:
    - node
    - max
    - count
    - stack
    - loop
    argTypes:
    - struct cil_tree_node*
    - unsigned
    - unsigned*
    - struct cil_stack*
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3902
      start: 3850
    functionDepth: 4
    functionLinenumber: 3850
    functionLinenumberEnd: 3902
    functionName: cil_check_inheritances
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 1
    functionsReached:
    - cil_check_inheritances
    - cil_stack_pop
    - cil_tree_log
    - cil_stack_push
    - NODE
    linkageType: ''
    returnType: int
    signature: "int cil_check_inheritances(struct cil_tree_node *node, unsigned max,\n\t\t\t\t
      \ unsigned *count, struct cil_stack *stack,\n\t\t\t\t  unsigned *loop)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3872,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3875,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3879
      start: 3868
    functionDepth: 4
    functionLinenumber: 3868
    functionLinenumberEnd: 3879
    functionName: cil_stack_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_tree_log
    linkageType: ''
    returnType: void
    signature: void cil_stack_for_each(stack, i, item)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_count_actual
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3912,1
    - Dst: cil_stack_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3919,1
    - Dst: cil_check_inheritances
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3920,1
    - Dst: cil_stack_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3921,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3924
      start: 3904
    functionDepth: 5
    functionLinenumber: 3904
    functionLinenumberEnd: 3924
    functionName: cil_check_for_bad_inheritance
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_count_actual
    - cil_check_inheritances
    - cil_stack_destroy
    - cil_stack_init
    linkageType: ''
    returnType: int
    signature: int cil_check_for_bad_inheritance(struct cil_tree_node *node)
  - BBCount: 98
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_tunif
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3937,1
    - Dst: cil_list_prepend
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3946,1
    - Dst: cil_resolve_blockinherit_link
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3953,1
    - Dst: cil_resolve_blockinherit_copy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3958,1
    - Dst: cil_resolve_blockabstract
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3963,1
    - Dst: cil_list_prepend
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3973,1
    - Dst: cil_resolve_call
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3980,1
    - Dst: cil_resolve_call_args
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3985,1
    - Dst: cil_resolve_aliasactual
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3991,1
    - Dst: cil_resolve_aliasactual
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3995,1
    - Dst: cil_resolve_aliasactual
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:3999,1
    - Dst: cil_resolve_alias_to_actual
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4009,1
    - Dst: cil_resolve_alias_to_actual
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4012,1
    - Dst: cil_resolve_alias_to_actual
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4015,1
    - Dst: cil_resolve_sidorder
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4024,1
    - Dst: cil_resolve_classorder
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4028,1
    - Dst: cil_resolve_catorder
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4033,1
    - Dst: cil_resolve_sensitivityorder
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4037,1
    - Dst: cil_resolve_boolif
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4041,1
    - Dst: cil_resolve_catset
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4050,1
    - Dst: cil_resolve_senscat
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4060,1
    - Dst: cil_resolve_classcommon
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4063,1
    - Dst: cil_resolve_typeattributeset
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4072,1
    - Dst: cil_resolve_expandtypeattribute
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4075,1
    - Dst: cil_resolve_bounds
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4078,1
    - Dst: cil_resolve_typepermissive
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4082,1
    - Dst: cil_resolve_typeneveraudit
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4085,1
    - Dst: cil_resolve_nametypetransition
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4088,1
    - Dst: cil_resolve_rangetransition
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4091,1
    - Dst: cil_resolve_classpermissionset
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4094,1
    - Dst: cil_resolve_classmapping
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4100,1
    - Dst: cil_resolve_avrule
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4104,1
    - Dst: cil_resolve_permissionx
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4107,1
    - Dst: cil_resolve_deny_rule
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4111,1
    - Dst: cil_resolve_type_rule
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4114,1
    - Dst: cil_resolve_userrole
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4117,1
    - Dst: cil_resolve_userlevel
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4120,1
    - Dst: cil_resolve_userrange
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4123,1
    - Dst: cil_resolve_bounds
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4126,1
    - Dst: cil_resolve_userprefix
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4130,1
    - Dst: cil_resolve_selinuxuser
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4134,1
    - Dst: cil_resolve_roleattributeset
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4137,1
    - Dst: cil_resolve_roletype
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4140,1
    - Dst: cil_resolve_roletransition
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4143,1
    - Dst: cil_resolve_roleallow
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4146,1
    - Dst: cil_resolve_bounds
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4149,1
    - Dst: cil_resolve_level
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4153,1
    - Dst: cil_resolve_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4157,1
    - Dst: cil_resolve_constrain
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4161,1
    - Dst: cil_resolve_constrain
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4164,1
    - Dst: cil_resolve_validatetrans
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4168,1
    - Dst: cil_resolve_context
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4171,1
    - Dst: cil_resolve_filecon
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4175,1
    - Dst: cil_resolve_ibpkeycon
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4178,1
    - Dst: cil_resolve_portcon
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4181,1
    - Dst: cil_resolve_nodecon
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4184,1
    - Dst: cil_resolve_genfscon
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4187,1
    - Dst: cil_resolve_netifcon
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4190,1
    - Dst: cil_resolve_ibendportcon
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4193,1
    - Dst: cil_resolve_pirqcon
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4196,1
    - Dst: cil_resolve_iomemcon
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4199,1
    - Dst: cil_resolve_ioportcon
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4202,1
    - Dst: cil_resolve_pcidevicecon
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4205,1
    - Dst: cil_resolve_devicetreecon
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4208,1
    - Dst: cil_resolve_fsuse
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4211,1
    - Dst: cil_resolve_sidcontext
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4214,1
    - Dst: cil_resolve_default
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4219,1
    - Dst: cil_resolve_defaultrange
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4222,1
    - Dst: cil_resolve_userattributeset
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4225,1
    CyclomaticComplexity: 101
    EdgeCount: 101
    ICount: 275
    argCount: 2
    argNames:
    - node
    - args
    argTypes:
    - struct cil_tree_node*
    - struct cil_args_resolve*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4236
      start: 3926
    functionDepth: 9
    functionLinenumber: 3926
    functionLinenumberEnd: 4236
    functionName: __cil_resolve_ast_node
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_resolve_filecon
    - cil_resolve_ioportcon
    - cil_resolve_fsuse
    - cil_resolve_roleattributeset
    - cil_resolve_typeattributeset
    - cil_resolve_roletransition
    - cil_resolve_catset
    - cil_resolve_classpermissionset
    - cil_resolve_avrule
    - cil_resolve_rangetransition
    - cil_resolve_level
    - cil_resolve_levelrange
    - cil_resolve_expandtypeattribute
    - cil_resolve_classcommon
    - cil_resolve_aliasactual
    - cil_resolve_userprefix
    - cil_resolve_sensitivityorder
    - cil_resolve_context
    - cil_resolve_sidorder
    - cil_resolve_ibpkeycon
    - cil_resolve_nodecon
    - cil_resolve_constrain
    - cil_resolve_boolif
    - cil_resolve_defaultrange
    - cil_list_prepend
    - cil_resolve_permissionx
    - cil_resolve_senscat
    - cil_resolve_alias_to_actual
    - cil_resolve_ibendportcon
    - cil_resolve_default
    - cil_resolve_portcon
    - cil_resolve_blockinherit_link
    - cil_resolve_blockinherit_copy
    - cil_resolve_sidcontext
    - cil_resolve_typepermissive
    - cil_resolve_deny_rule
    - cil_resolve_call_args
    - cil_resolve_classorder
    - cil_resolve_userrange
    - cil_resolve_pcidevicecon
    - cil_resolve_tunif
    - cil_resolve_bounds
    - cil_resolve_userattributeset
    - cil_resolve_nametypetransition
    - cil_resolve_blockabstract
    - cil_resolve_netifcon
    - cil_resolve_typeneveraudit
    - cil_resolve_call
    - cil_resolve_catorder
    - cil_resolve_userrole
    - cil_resolve_roletype
    - cil_resolve_roleallow
    - cil_resolve_iomemcon
    - cil_resolve_devicetreecon
    - cil_resolve_genfscon
    - cil_resolve_validatetrans
    - cil_resolve_pirqcon
    - cil_resolve_classmapping
    - cil_resolve_selinuxuser
    - cil_resolve_type_rule
    - cil_resolve_userlevel
    linkageType: ''
    returnType: int
    signature: "int __cil_resolve_ast_node(struct cil_tree_node *node,\n\t\t\t\t  struct
      cil_args_resolve *args)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4255,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4257,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4269,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4271,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4282,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4284,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4310,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4313,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4315,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4317,1
    - Dst: __cil_resolve_ast_node
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4339,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4342,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4344,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4349,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4351,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4352,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4354,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 81
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4364
      start: 4238
    functionDepth: 10
    functionLinenumber: 4238
    functionLinenumberEnd: 4364
    functionName: __cil_resolve_ast_node_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 113
    functionsReached:
    - cil_node_to_string
    - __cil_resolve_ast_node
    - DATUM
    - cil_tree_log
    linkageType: ''
    returnType: int
    signature: "int __cil_resolve_ast_node_helper(struct cil_tree_node *node,\n\t\t\t\t\t
      uint32_t *finished, void *extra_args)"
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - current
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4393
      start: 4366
    functionDepth: 0
    functionLinenumber: 4366
    functionLinenumberEnd: 4393
    functionName: __cil_resolve_ast_first_child_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int __cil_resolve_ast_first_child_helper(struct cil_tree_node *current,\n\t\t\t\t\t\tvoid
      *extra_args)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4424,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 2
    argNames:
    - current
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4443
      start: 4395
    functionDepth: 3
    functionLinenumber: 4395
    functionLinenumberEnd: 4443
    functionName: __cil_resolve_ast_last_child_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_append
    linkageType: ''
    returnType: int
    signature: "int __cil_resolve_ast_last_child_helper(struct cil_tree_node *current,\n\t\t\t\t\t
      \      void *extra_args)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4473,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4474,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4475,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4476,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4477,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4478,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4479,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4480,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4481,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4485,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4490,1
    - Dst: cil_resolve_in_list
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4496,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4500,1
    - Dst: cil_resolve_in_list
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4502,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4506,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4511,1
    - Dst: cil_mark_subtree_abstract
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4512,1
    - Dst: cil_check_for_bad_inheritance
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4517,1
    - Dst: __cil_ordered_lists_merge_all
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4525,1
    - Dst: __cil_ordered_lists_merge_all
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4531,1
    - Dst: __cil_ordered_lists_merge_all
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4538,1
    - Dst: cil_set_cat_values
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4544,1
    - Dst: __cil_ordered_lists_merge_all
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4545,1
    - Dst: __cil_verify_ordered
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4552,1
    - Dst: __cil_verify_ordered
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4557,1
    - Dst: __cil_verify_ordered
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4562,1
    - Dst: __cil_verify_ordered
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4567,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4578,1
    - Dst: cil_tree_subtree_has_decl
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4579,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4593,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4597,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4601,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4605,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4609,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4613,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4617,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4621,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4625,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4629,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4633,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4637,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4639,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4642,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4644,1
    - Dst: cil_reset_ast
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4651,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4653,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4659,1
    - Dst: cil_tree_children_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4660,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4662,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4663,1
    - Dst: __cil_verify_initsids
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4668,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4675,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4676,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4677,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4678,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4679,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4680,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4681,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4682,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4683,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 174
    argCount: 2
    argNames:
    - db
    - current
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4686
      start: 4445
    functionDepth: 8
    functionLinenumber: 4445
    functionLinenumberEnd: 4686
    functionName: cil_resolve_ast
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 4
    functionsReached:
    - cil_list_for_each
    - cil_check_for_bad_inheritance
    - __cil_ordered_lists_merge_all
    - cil_set_cat_values
    - cil_reset_ast
    - cil_tree_subtree_has_decl
    - cil_tree_walk
    - cil_mark_subtree_abstract
    - cil_tree_children_destroy
    - cil_list_destroy
    - cil_log
    - cil_resolve_in_list
    - __cil_verify_initsids
    - cil_list_init
    - __cil_verify_ordered
    linkageType: ''
    returnType: int
    signature: int cil_resolve_ast(struct cil_db *db, struct cil_tree_node *current)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - db
    - name
    - sym_index
    - datum
    argTypes:
    - struct cil_db*
    - char*
    - enum cil_sym_index
    - struct cil_symtab_datum**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4696
      start: 4688
    functionDepth: 1
    functionLinenumber: 4688
    functionLinenumberEnd: 4696
    functionName: __cil_resolve_name_with_root
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - cil_symtab_get_datum
    linkageType: ''
    returnType: int
    signature: "int __cil_resolve_name_with_root(struct cil_db *db, char *name,\n\t\t\t\t\tenum
      cil_sym_index sym_index,\n\t\t\t\t\tstruct cil_symtab_datum **datum)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4715,1
    - Dst: __cil_resolve_name_with_parents
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4720,1
    - Dst: __cil_resolve_name_with_parents
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4724,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4725,1
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4733,1
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4739,1
    - Dst: cil_resolve_name_call_args
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4744,1
    - Dst: __cil_resolve_name_with_parents
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4748,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4749,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 51
    argCount: 4
    argNames:
    - node
    - name
    - sym_index
    - datum
    argTypes:
    - struct cil_tree_node*
    - char*
    - enum cil_sym_index
    - struct cil_symtab_datum**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4767
      start: 4698
    functionDepth: 3
    functionLinenumber: 4698
    functionLinenumberEnd: 4767
    functionName: __cil_resolve_name_with_parents
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 1
    functionsReached:
    - cil_symtab_get_datum
    - NODE
    - cil_resolve_name_call_args
    - __cil_resolve_name_with_parents
    linkageType: ''
    returnType: int
    signature: "int __cil_resolve_name_with_parents(struct cil_tree_node *node,\n\t\t\t\t\t
      \  char *name,\n\t\t\t\t\t   enum cil_sym_index sym_index,\n\t\t\t\t\t   struct
      cil_symtab_datum **datum)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __cil_resolve_name_with_parents
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4776,1
    - Dst: __cil_resolve_name_with_root
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - db
    - node
    - name
    - sym_index
    - datum
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - char*
    - enum cil_sym_index
    - struct cil_symtab_datum**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4781
      start: 4769
    functionDepth: 4
    functionLinenumber: 4769
    functionLinenumberEnd: 4781
    functionName: __cil_resolve_name_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 0
    functionsReached:
    - __cil_resolve_name_with_root
    - __cil_resolve_name_with_parents
    linkageType: ''
    returnType: int
    signature: "int __cil_resolve_name_helper(struct cil_db *db,\n\t\t\t\t     struct
      cil_tree_node *node, char *name,\n\t\t\t\t     enum cil_sym_index sym_index,\n\t\t\t\t
      \    struct cil_symtab_datum **datum)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_resolve_name_keep_aliases
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4790,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4799,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 5
    argNames:
    - ast_node
    - name
    - sym_index
    - db
    - datum
    argTypes:
    - struct cil_tree_node*
    - char*
    - enum cil_sym_index
    - struct cil_db*
    - struct cil_symtab_datum**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4812
      start: 4783
    functionDepth: 1
    functionLinenumber: 4783
    functionLinenumberEnd: 4812
    functionName: cil_resolve_name
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 66
    functionsReached:
    - cil_resolve_name_keep_aliases
    - NODE
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_name(struct cil_tree_node *ast_node, char *name,\n\t\t
      \    enum cil_sym_index sym_index, struct cil_db *db,\n\t\t     struct cil_symtab_datum
      **datum)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4823,1
    - Dst: strchr
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4829,1
    - Dst: __cil_resolve_name_helper
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4831,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4838,1
    - Dst: strtok_r
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4839,1
    - Dst: strtok_r
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4840,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4845,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4847,1
    - Dst: __cil_resolve_name_helper
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4857,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4861,1
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4868,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4871,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4874,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4878,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4881,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4889,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4891,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4892,1
    - Dst: strtok_r
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4902,1
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4905,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4906,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_resolve_ast.c:4916,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 80
    argCount: 5
    argNames:
    - ast_node
    - name
    - sym_index
    - db
    - datum
    argTypes:
    - struct cil_tree_node*
    - char*
    - enum cil_sym_index
    - struct cil_db*
    - struct cil_symtab_datum**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4921
      start: 4814
    functionDepth: 5
    functionLinenumber: 4814
    functionLinenumberEnd: 4921
    functionName: cil_resolve_name_keep_aliases
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    functionUses: 2
    functionsReached:
    - cil_strdup
    - strchr
    - strtok_r
    - cil_symtab_get_datum
    - cil_node_to_string
    - cil_log
    - free
    - cil_tree_log
    - __cil_resolve_name_helper
    - NODE
    linkageType: ''
    returnType: int
    signature: "int cil_resolve_name_keep_aliases(struct cil_tree_node *ast_node,
      char *name,\n\t\t\t\t  enum cil_sym_index sym_index,\n\t\t\t\t  struct cil_db
      *db,\n\t\t\t\t  struct cil_symtab_datum **datum)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsepol/cil/src/cil_log.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lvl
    - msg
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: cil_default_log_handler
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_log.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void cil_default_log_handler(__attribute__((unused)) int lvl,\n\t\t\t\t
      \   const char *msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: cil_set_log_handler
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_log.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_set_log_handler(void (*handler)(int lvl, const char *msg))
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/selinux/libsepol/cil/src/cil_log.c:54,1
    - Dst: vsnprintf
      Src: /src/selinux/libsepol/cil/src/cil_log.c:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - lvl
    - msg
    - args
    argTypes:
    - enum cil_log_level
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 68
    functionName: cil_vlog
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_log.c
    functionUses: 3
    functionsReached:
    - vsnprintf
    - format
    linkageType: ''
    returnType: void
    signature: void cil_vlog(enum cil_log_level lvl, const char *msg, va_list args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/selinux/libsepol/cil/src/cil_log.c:70,1
    - Dst: va_start
      Src: /src/selinux/libsepol/cil/src/cil_log.c:74,1
    - Dst: cil_vlog
      Src: /src/selinux/libsepol/cil/src/cil_log.c:75,1
    - Dst: va_end
      Src: /src/selinux/libsepol/cil/src/cil_log.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - lvl
    - msg
    argTypes:
    - enum cil_log_level
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: cil_log
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_log.c
    functionUses: 181
    functionsReached:
    - va_start
    - va_end
    - cil_vlog
    - format
    linkageType: ''
    returnType: void
    signature: "void cil_log(enum cil_log_level lvl,\n\t\t\t\t\t\t   const char *msg,
      ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lvl
    argTypes:
    - enum cil_log_level
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: cil_set_log_level
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_log.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_set_log_level(enum cil_log_level lvl)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: cil_get_log_level
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_log.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: enum cil_log_level
    signature: enum cil_log_level cil_get_log_level(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ordered
    argTypes:
    - struct cil_ordered*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 17
    functionName: cil_reset_ordered
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_reset_ordered(struct cil_ordered *ordered)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 27
    functionName: __class_reset_perm_values
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int __class_reset_perm_values(__attribute__((unused)) hashtab_key_t
      k,\n\t\t\t\t     hashtab_datum_t d, void *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_map
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - class
    argTypes:
    - struct cil_class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 43
    functionName: cil_reset_class
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_symtab_map
    linkageType: ''
    returnType: void
    signature: void cil_reset_class(struct cil_class *class)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - perm
    argTypes:
    - struct cil_perm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: cil_reset_perm
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_reset_perm(struct cil_perm *perm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cp
    argTypes:
    - struct cil_classperms*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: cil_reset_classperms
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_reset_classperms(struct cil_classperms *cp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cp
    argTypes:
    - struct cil_classpermission*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: cil_reset_classpermission
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_reset_classpermission(struct cil_classpermission *cp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - cp_set
    argTypes:
    - struct cil_classperms_set*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 80
    functionName: cil_reset_classperms_set
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_classperms_list
    linkageType: ''
    returnType: void
    signature: void cil_reset_classperms_set(struct cil_classperms_set *cp_set)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_classperms
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:92,1
    - Dst: cil_reset_classperms_set
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - cp_list
    argTypes:
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 97
    functionName: cil_reset_classperms_list
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 1
    functionsReached:
    - cil_reset_classperms
    - cil_reset_classperms_set
    linkageType: ''
    returnType: void
    signature: void cil_reset_classperms_list(struct cil_list *cp_list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_classperms
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:92,1
    - Dst: cil_reset_classperms_set
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 96
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 77
    functionsReached:
    - cil_reset_classperms
    - cil_reset_classperms_set
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, cp_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cps
    argTypes:
    - struct cil_classpermissionset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 4
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: cil_reset_classpermissionset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_classperms_list
    linkageType: ''
    returnType: void
    signature: void cil_reset_classpermissionset(struct cil_classpermissionset *cps)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cm
    argTypes:
    - struct cil_classmapping*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 4
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: cil_reset_classmapping
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_classperms_list
    linkageType: ''
    returnType: void
    signature: void cil_reset_classmapping(struct cil_classmapping *cm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alias
    argTypes:
    - struct cil_alias*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: cil_reset_alias
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_reset_alias(struct cil_alias *alias)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - user
    argTypes:
    - struct cil_user*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: cil_reset_user
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_reset_user(struct cil_user *user)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_item_destroy
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:136,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - attr
    argTypes:
    - struct cil_userattribute*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 142
    functionName: cil_reset_userattr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - free
    - cil_list_item_destroy
    linkageType: ''
    returnType: void
    signature: void cil_reset_userattr(struct cil_userattribute *attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uas
    argTypes:
    - struct cil_userattributeset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: cil_reset_userattributeset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_reset_userattributeset(struct cil_userattributeset *uas)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - selinuxuser
    argTypes:
    - struct cil_selinuxuser*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 157
    functionName: cil_reset_selinuxuser
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_levelrange
    linkageType: ''
    returnType: void
    signature: void cil_reset_selinuxuser(struct cil_selinuxuser *selinuxuser)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - role
    argTypes:
    - struct cil_role*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: cil_reset_role
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_reset_role(struct cil_role *role)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_item_destroy
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:175,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - attr
    argTypes:
    - struct cil_roleattribute*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 181
    functionName: cil_reset_roleattr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - free
    - cil_list_item_destroy
    linkageType: ''
    returnType: void
    signature: void cil_reset_roleattr(struct cil_roleattribute *attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ras
    argTypes:
    - struct cil_roleattributeset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: cil_reset_roleattributeset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_reset_roleattributeset(struct cil_roleattributeset *ras)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - struct cil_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: cil_reset_type
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_reset_type(struct cil_type *type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_item_destroy
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:204,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - attr
    argTypes:
    - struct cil_typeattribute*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 212
    functionName: cil_reset_typeattr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - free
    - cil_list_item_destroy
    linkageType: ''
    returnType: void
    signature: void cil_reset_typeattr(struct cil_typeattribute *attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tas
    argTypes:
    - struct cil_typeattributeset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: cil_reset_typeattributeset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_reset_typeattributeset(struct cil_typeattributeset *tas)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - expandattr
    argTypes:
    - struct cil_expandtypeattribute*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 223
    functionName: cil_reset_expandtypeattribute
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_reset_expandtypeattribute(struct cil_expandtypeattribute *expandattr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct cil_avrule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 4
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: cil_reset_avrule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_classperms_list
    linkageType: ''
    returnType: void
    signature: void cil_reset_avrule(struct cil_avrule *rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct cil_deny_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 230
    functionDepth: 4
    functionLinenumber: 230
    functionLinenumberEnd: 233
    functionName: cil_reset_deny_rule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_classperms_list
    linkageType: ''
    returnType: void
    signature: void cil_reset_deny_rule(struct cil_deny_rule *rule)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - rangetrans
    argTypes:
    - struct cil_rangetransition*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 242
    functionName: cil_reset_rangetransition
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_levelrange
    linkageType: ''
    returnType: void
    signature: void cil_reset_rangetransition(struct cil_rangetransition *rangetrans)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sens
    argTypes:
    - struct cil_sens*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: cil_reset_sens
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_reset_sens(struct cil_sens *sens)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cat
    argTypes:
    - struct cil_cat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: cil_reset_cat
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_reset_cat(struct cil_cat *cat)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cats
    argTypes:
    - struct cil_cats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 263
    functionName: cil_reset_cats
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_reset_cats(struct cil_cats *cats)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_cats
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - senscat
    argTypes:
    - struct cil_senscat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 265
    functionDepth: 3
    functionLinenumber: 265
    functionLinenumberEnd: 268
    functionName: cil_reset_senscat
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_cats
    linkageType: ''
    returnType: void
    signature: void cil_reset_senscat(struct cil_senscat *senscat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_cats
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - catset
    argTypes:
    - struct cil_catset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: cil_reset_catset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_cats
    linkageType: ''
    returnType: void
    signature: void cil_reset_catset(struct cil_catset *catset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_cats
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - level
    argTypes:
    - struct cil_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: cil_reset_level
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_cats
    linkageType: ''
    returnType: void
    signature: void cil_reset_level(struct cil_level *level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_level
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:284,1
    - Dst: cil_reset_level
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - levelrange
    argTypes:
    - struct cil_levelrange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 281
    functionDepth: 4
    functionLinenumber: 281
    functionLinenumberEnd: 294
    functionName: cil_reset_levelrange
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 2
    functionsReached:
    - cil_reset_level
    linkageType: ''
    returnType: void
    signature: void cil_reset_levelrange(struct cil_levelrange *levelrange)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_level
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - userlevel
    argTypes:
    - struct cil_userlevel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 296
    functionDepth: 4
    functionLinenumber: 296
    functionLinenumberEnd: 303
    functionName: cil_reset_userlevel
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_level
    linkageType: ''
    returnType: void
    signature: void cil_reset_userlevel(struct cil_userlevel *userlevel)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - userrange
    argTypes:
    - struct cil_userrange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 305
    functionDepth: 5
    functionLinenumber: 305
    functionLinenumberEnd: 312
    functionName: cil_reset_userrange
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_levelrange
    linkageType: ''
    returnType: void
    signature: void cil_reset_userrange(struct cil_userrange *userrange)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:320,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - context
    argTypes:
    - struct cil_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 314
    functionDepth: 5
    functionLinenumber: 314
    functionLinenumberEnd: 324
    functionName: cil_reset_context
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_levelrange
    linkageType: ''
    returnType: void
    signature: void cil_reset_context(struct cil_context *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_context
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sidcontext
    argTypes:
    - struct cil_sidcontext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 326
    functionDepth: 6
    functionLinenumber: 326
    functionLinenumberEnd: 333
    functionName: cil_reset_sidcontext
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_context
    linkageType: ''
    returnType: void
    signature: void cil_reset_sidcontext(struct cil_sidcontext *sidcontext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_context
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - filecon
    argTypes:
    - struct cil_filecon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 335
    functionDepth: 6
    functionLinenumber: 335
    functionLinenumberEnd: 342
    functionName: cil_reset_filecon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_context
    linkageType: ''
    returnType: void
    signature: void cil_reset_filecon(struct cil_filecon *filecon)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_context
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ibpkeycon
    argTypes:
    - struct cil_ibpkeycon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 344
    functionDepth: 6
    functionLinenumber: 344
    functionLinenumberEnd: 351
    functionName: cil_reset_ibpkeycon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_context
    linkageType: ''
    returnType: void
    signature: void cil_reset_ibpkeycon(struct cil_ibpkeycon *ibpkeycon)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_context
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - portcon
    argTypes:
    - struct cil_portcon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 353
    functionDepth: 6
    functionLinenumber: 353
    functionLinenumberEnd: 360
    functionName: cil_reset_portcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_context
    linkageType: ''
    returnType: void
    signature: void cil_reset_portcon(struct cil_portcon *portcon)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_context
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - nodecon
    argTypes:
    - struct cil_nodecon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 362
    functionDepth: 6
    functionLinenumber: 362
    functionLinenumberEnd: 369
    functionName: cil_reset_nodecon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_context
    linkageType: ''
    returnType: void
    signature: void cil_reset_nodecon(struct cil_nodecon *nodecon)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_context
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - genfscon
    argTypes:
    - struct cil_genfscon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 371
    functionDepth: 6
    functionLinenumber: 371
    functionLinenumberEnd: 378
    functionName: cil_reset_genfscon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_context
    linkageType: ''
    returnType: void
    signature: void cil_reset_genfscon(struct cil_genfscon *genfscon)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_context
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:383,1
    - Dst: cil_reset_context
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:389,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - netifcon
    argTypes:
    - struct cil_netifcon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 380
    functionDepth: 6
    functionLinenumber: 380
    functionLinenumberEnd: 393
    functionName: cil_reset_netifcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_context
    linkageType: ''
    returnType: void
    signature: void cil_reset_netifcon(struct cil_netifcon *netifcon)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_context
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ibendportcon
    argTypes:
    - struct cil_ibendportcon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 395
    functionDepth: 6
    functionLinenumber: 395
    functionLinenumberEnd: 402
    functionName: cil_reset_ibendportcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_context
    linkageType: ''
    returnType: void
    signature: void cil_reset_ibendportcon(struct cil_ibendportcon *ibendportcon)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_context
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pirqcon
    argTypes:
    - struct cil_pirqcon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 404
    functionDepth: 6
    functionLinenumber: 404
    functionLinenumberEnd: 411
    functionName: cil_reset_pirqcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_context
    linkageType: ''
    returnType: void
    signature: void cil_reset_pirqcon(struct cil_pirqcon *pirqcon)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_context
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - iomemcon
    argTypes:
    - struct cil_iomemcon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 413
    functionDepth: 6
    functionLinenumber: 413
    functionLinenumberEnd: 420
    functionName: cil_reset_iomemcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_context
    linkageType: ''
    returnType: void
    signature: void cil_reset_iomemcon(struct cil_iomemcon *iomemcon)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_context
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ioportcon
    argTypes:
    - struct cil_ioportcon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 422
    functionDepth: 6
    functionLinenumber: 422
    functionLinenumberEnd: 429
    functionName: cil_reset_ioportcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_context
    linkageType: ''
    returnType: void
    signature: void cil_reset_ioportcon(struct cil_ioportcon *ioportcon)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_context
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pcidevicecon
    argTypes:
    - struct cil_pcidevicecon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 431
    functionDepth: 6
    functionLinenumber: 431
    functionLinenumberEnd: 438
    functionName: cil_reset_pcidevicecon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_context
    linkageType: ''
    returnType: void
    signature: void cil_reset_pcidevicecon(struct cil_pcidevicecon *pcidevicecon)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_context
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - devicetreecon
    argTypes:
    - struct cil_devicetreecon*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 440
    functionDepth: 6
    functionLinenumber: 440
    functionLinenumberEnd: 447
    functionName: cil_reset_devicetreecon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_context
    linkageType: ''
    returnType: void
    signature: void cil_reset_devicetreecon(struct cil_devicetreecon *devicetreecon)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_context
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fsuse
    argTypes:
    - struct cil_fsuse*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 449
    functionDepth: 6
    functionLinenumber: 449
    functionLinenumberEnd: 456
    functionName: cil_reset_fsuse
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_context
    linkageType: ''
    returnType: void
    signature: void cil_reset_fsuse(struct cil_fsuse *fsuse)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sid
    argTypes:
    - struct cil_sid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 463
    functionName: cil_reset_sid
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_reset_sid(struct cil_sid *sid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:467,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - con
    argTypes:
    - struct cil_constrain*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 465
    functionDepth: 4
    functionLinenumber: 465
    functionLinenumberEnd: 469
    functionName: cil_reset_constrain
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_classperms_list
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_reset_constrain(struct cil_constrain *con)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vt
    argTypes:
    - struct cil_validatetrans*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: cil_reset_validatetrans
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_reset_validatetrans(struct cil_validatetrans *vt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - def
    argTypes:
    - struct cil_default*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 479
    functionName: cil_reset_default
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_reset_default(struct cil_default *def)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - def
    argTypes:
    - struct cil_defaultrange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 484
    functionName: cil_reset_defaultrange
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_reset_defaultrange(struct cil_defaultrange *def)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bif
    argTypes:
    - struct cil_booleanif*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 486
    functionDepth: 2
    functionLinenumber: 486
    functionLinenumberEnd: 489
    functionName: cil_reset_booleanif
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_list_destroy
    linkageType: ''
    returnType: void
    signature: void cil_reset_booleanif(struct cil_booleanif *bif)
  - BBCount: 66
    BranchProfiles: []
    Callsites:
    - Dst: cil_reset_class
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:497,1
    - Dst: cil_reset_perm
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:501,1
    - Dst: cil_reset_classpermission
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:504,1
    - Dst: cil_reset_classpermissionset
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:507,1
    - Dst: cil_reset_classmapping
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:510,1
    - Dst: cil_reset_alias
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:515,1
    - Dst: cil_reset_userrange
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:518,1
    - Dst: cil_reset_userlevel
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:521,1
    - Dst: cil_reset_user
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:524,1
    - Dst: cil_reset_userattr
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:527,1
    - Dst: cil_reset_userattributeset
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:530,1
    - Dst: cil_reset_selinuxuser
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:534,1
    - Dst: cil_reset_role
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:537,1
    - Dst: cil_reset_roleattr
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:540,1
    - Dst: cil_reset_roleattributeset
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:543,1
    - Dst: cil_reset_type
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:546,1
    - Dst: cil_reset_typeattr
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:549,1
    - Dst: cil_reset_typeattributeset
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:552,1
    - Dst: cil_reset_expandtypeattribute
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:555,1
    - Dst: cil_reset_rangetransition
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:558,1
    - Dst: cil_reset_avrule
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:561,1
    - Dst: cil_reset_deny_rule
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:564,1
    - Dst: cil_reset_sens
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:567,1
    - Dst: cil_reset_cat
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:570,1
    - Dst: cil_reset_senscat
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:573,1
    - Dst: cil_reset_catset
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:576,1
    - Dst: cil_reset_level
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:579,1
    - Dst: cil_reset_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:582,1
    - Dst: cil_reset_context
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:585,1
    - Dst: cil_reset_sidcontext
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:588,1
    - Dst: cil_reset_filecon
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:591,1
    - Dst: cil_reset_ibpkeycon
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:594,1
    - Dst: cil_reset_ibendportcon
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:597,1
    - Dst: cil_reset_portcon
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:600,1
    - Dst: cil_reset_nodecon
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:603,1
    - Dst: cil_reset_genfscon
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:606,1
    - Dst: cil_reset_netifcon
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:609,1
    - Dst: cil_reset_pirqcon
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:612,1
    - Dst: cil_reset_iomemcon
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:615,1
    - Dst: cil_reset_ioportcon
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:618,1
    - Dst: cil_reset_pcidevicecon
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:621,1
    - Dst: cil_reset_devicetreecon
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:624,1
    - Dst: cil_reset_fsuse
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:627,1
    - Dst: cil_reset_sid
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:630,1
    - Dst: cil_reset_constrain
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:634,1
    - Dst: cil_reset_validatetrans
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:638,1
    - Dst: cil_reset_default
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:643,1
    - Dst: cil_reset_defaultrange
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:646,1
    - Dst: cil_reset_booleanif
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:649,1
    - Dst: cil_reset_ordered
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:655,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 172
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 491
    functionDepth: 7
    functionLinenumber: 491
    functionLinenumberEnd: 667
    functionName: __cil_reset_node
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 0
    functionsReached:
    - cil_reset_sens
    - cil_reset_portcon
    - cil_reset_perm
    - cil_reset_cat
    - cil_reset_avrule
    - cil_reset_iomemcon
    - cil_reset_type
    - cil_reset_rangetransition
    - cil_reset_classmapping
    - cil_reset_context
    - cil_reset_sidcontext
    - cil_reset_senscat
    - cil_reset_pcidevicecon
    - cil_reset_default
    - cil_reset_levelrange
    - cil_reset_booleanif
    - cil_reset_catset
    - cil_reset_ibpkeycon
    - cil_reset_userattributeset
    - cil_reset_roleattributeset
    - cil_reset_netifcon
    - cil_reset_class
    - cil_reset_devicetreecon
    - cil_reset_constrain
    - cil_reset_role
    - cil_reset_filecon
    - cil_reset_userattr
    - cil_reset_selinuxuser
    - cil_reset_sid
    - cil_reset_deny_rule
    - cil_reset_level
    - cil_reset_userlevel
    - cil_reset_alias
    - cil_reset_pirqcon
    - cil_reset_fsuse
    - cil_reset_ibendportcon
    - cil_reset_roleattr
    - cil_reset_expandtypeattribute
    - cil_reset_ioportcon
    - cil_reset_validatetrans
    - cil_reset_ordered
    - cil_reset_classpermissionset
    - cil_reset_classpermission
    - cil_reset_typeattributeset
    - cil_reset_nodecon
    - cil_reset_user
    - cil_reset_typeattr
    - cil_reset_genfscon
    - cil_reset_defaultrange
    - cil_reset_userrange
    linkageType: ''
    returnType: int
    signature: "int __cil_reset_node(struct cil_tree_node *node,\n\t\t\t    __attribute__((unused))
      uint32_t *finished,\n\t\t\t    __attribute__((unused)) void *extra_args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:673,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_reset_ast.c:675,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - current
    argTypes:
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 669
    functionDepth: 7
    functionLinenumber: 669
    functionLinenumberEnd: 680
    functionName: cil_reset_ast
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_reset_ast.c
    functionUses: 1
    functionsReached:
    - cil_log
    - cil_tree_walk
    linkageType: ''
    returnType: int
    signature: int cil_reset_ast(struct cil_tree_node *current)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: spaceship_cmp
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spaceship_cmp(a, b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_post.c:84,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_post.c:85,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:86,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_post.c:86,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_post.c:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct cil_cats*
    - struct cil_cats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 92
    functionName: cats_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - DATUM
    - cil_list_for_each
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cats_compare(struct cil_cats *a, struct cil_cats *b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:106,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_post.c:106,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_post.c:106,1
    - Dst: cats_compare
      Src: /src/selinux/libsepol/cil/src/cil_post.c:111,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct cil_level*
    - struct cil_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 114
    functionName: level_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - DATUM
    - cats_compare
    - strcmp
    linkageType: ''
    returnType: int
    signature: int level_compare(struct cil_level *a, struct cil_level *b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: level_compare
      Src: /src/selinux/libsepol/cil/src/cil_post.c:128,1
    - Dst: level_compare
      Src: /src/selinux/libsepol/cil/src/cil_post.c:133,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct cil_levelrange*
    - struct cil_levelrange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 136
    functionName: range_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - level_compare
    linkageType: ''
    returnType: int
    signature: int range_compare(struct cil_levelrange *a, struct cil_levelrange *b)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:143,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_post.c:143,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_post.c:143,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:148,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_post.c:148,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_post.c:148,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:153,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_post.c:153,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_post.c:153,1
    - Dst: range_compare
      Src: /src/selinux/libsepol/cil/src/cil_post.c:158,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct cil_context*
    - struct cil_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 138
    functionDepth: 4
    functionLinenumber: 138
    functionLinenumberEnd: 161
    functionName: context_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - DATUM
    - range_compare
    - strcmp
    linkageType: ''
    returnType: int
    signature: int context_compare(struct cil_context *a, struct cil_context *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - list
    - flavor
    argTypes:
    - struct cil_list*
    - enum cil_flavor
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 187
    functionName: cil_verify_is_list
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cil_verify_is_list(struct cil_list *list, enum cil_flavor flavor)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 185
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 78
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, list)
  - BBCount: 16
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 2
    argNames:
    - fc
    - path
    argTypes:
    - struct fc_data*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 229
    functionName: cil_post_fc_fill_data
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cil_post_fc_fill_data(struct fc_data *fc, const char *path)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:236,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:237,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_post.c:240,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_post.c:242,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:244,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil_post.c:244,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:245,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil_post.c:245,1
    - Dst: strcat
      Src: /src/selinux/libsepol/cil/src/cil_post.c:248,1
    - Dst: strcat
      Src: /src/selinux/libsepol/cil/src/cil_post.c:249,1
    - Dst: cil_post_fc_fill_data
      Src: /src/selinux/libsepol/cil/src/cil_post.c:250,1
    - Dst: cil_post_fc_fill_data
      Src: /src/selinux/libsepol/cil/src/cil_post.c:251,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:269,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_post.c:272,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_post.c:273,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_post.c:274,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_post.c:275,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 278
    functionName: cil_post_filecon_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 9
    functionsReached:
    - strcat
    - cil_malloc
    - strcmp
    - cil_post_fc_fill_data
    - free
    - DATUM
    - strlen
    linkageType: ''
    returnType: int
    signature: int cil_post_filecon_compare(const void *a, const void *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:286,1
    - Dst: spaceship_cmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:291,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 301
    functionName: cil_post_ibpkeycon_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - strcmp
    - spaceship_cmp
    linkageType: ''
    returnType: int
    signature: int cil_post_ibpkeycon_compare(const void *a, const void *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: spaceship_cmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:309,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 324
    functionName: cil_post_portcon_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 5
    functionsReached:
    - spaceship_cmp
    linkageType: ''
    returnType: int
    signature: int cil_post_portcon_compare(const void *a, const void *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:332,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 338
    functionName: cil_post_genfscon_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 5
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cil_post_genfscon_compare(const void *a, const void *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcspn
      Src: /src/selinux/libsepol/cil/src/cil_post.c:347,1
    - Dst: strcspn
      Src: /src/selinux/libsepol/cil/src/cil_post.c:348,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil_post.c:349,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil_post.c:350,1
    - Dst: spaceship_cmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:356,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:362,1
    - Dst: spaceship_cmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:365,1
    - Dst: spaceship_cmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:370,1
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:375,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 376
    functionName: cil_post_netifcon_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 3
    functionsReached:
    - strcmp
    - strcspn
    - strlen
    - spaceship_cmp
    linkageType: ''
    returnType: int
    signature: int cil_post_netifcon_compare(const void *a, const void *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:385,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 395
    functionName: cil_post_ibendportcon_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cil_post_ibendportcon_compare(const void *a, const void *b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:415,1
    - Dst: memcmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:420,1
    - Dst: memcmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:423,1
    - Dst: memcmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:428,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 431
    functionName: cil_post_nodecon_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 10
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int cil_post_nodecon_compare(const void *a, const void *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 448
    functionName: cil_post_pirqcon_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cil_post_pirqcon_compare(const void *a, const void *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spaceship_cmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 467
    functionName: cil_post_iomemcon_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - spaceship_cmp
    linkageType: ''
    returnType: int
    signature: int cil_post_iomemcon_compare(const void *a, const void *b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: spaceship_cmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 486
    functionName: cil_post_ioportcon_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - spaceship_cmp
    linkageType: ''
    returnType: int
    signature: int cil_post_ioportcon_compare(const void *a, const void *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 503
    functionName: cil_post_pcidevicecon_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cil_post_pcidevicecon_compare(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 516
    functionName: cil_post_devicetreecon_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cil_post_devicetreecon_compare(const void *a, const void *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:530,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 533
    functionName: cil_post_fsuse_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 5
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cil_post_fsuse_compare(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context_compare
      Src: /src/selinux/libsepol/cil/src/cil_post.c:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 535
    functionDepth: 5
    functionLinenumber: 535
    functionLinenumberEnd: 540
    functionName: cil_post_filecon_context_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - context_compare
    linkageType: ''
    returnType: int
    signature: int cil_post_filecon_context_compare(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context_compare
      Src: /src/selinux/libsepol/cil/src/cil_post.c:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 5
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: cil_post_ibpkeycon_context_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - context_compare
    linkageType: ''
    returnType: int
    signature: int cil_post_ibpkeycon_context_compare(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context_compare
      Src: /src/selinux/libsepol/cil/src/cil_post.c:553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 549
    functionDepth: 5
    functionLinenumber: 549
    functionLinenumberEnd: 554
    functionName: cil_post_portcon_context_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - context_compare
    linkageType: ''
    returnType: int
    signature: int cil_post_portcon_context_compare(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context_compare
      Src: /src/selinux/libsepol/cil/src/cil_post.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 556
    functionDepth: 5
    functionLinenumber: 556
    functionLinenumberEnd: 561
    functionName: cil_post_genfscon_context_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - context_compare
    linkageType: ''
    returnType: int
    signature: int cil_post_genfscon_context_compare(const void *a, const void *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: context_compare
      Src: /src/selinux/libsepol/cil/src/cil_post.c:568,1
    - Dst: context_compare
      Src: /src/selinux/libsepol/cil/src/cil_post.c:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 563
    functionDepth: 5
    functionLinenumber: 563
    functionLinenumberEnd: 574
    functionName: cil_post_netifcon_context_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - context_compare
    linkageType: ''
    returnType: int
    signature: int cil_post_netifcon_context_compare(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context_compare
      Src: /src/selinux/libsepol/cil/src/cil_post.c:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 576
    functionDepth: 5
    functionLinenumber: 576
    functionLinenumberEnd: 584
    functionName: cil_post_ibendportcon_context_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - context_compare
    linkageType: ''
    returnType: int
    signature: int cil_post_ibendportcon_context_compare(const void *a, const void
      *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context_compare
      Src: /src/selinux/libsepol/cil/src/cil_post.c:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 586
    functionDepth: 5
    functionLinenumber: 586
    functionLinenumberEnd: 591
    functionName: cil_post_nodecon_context_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - context_compare
    linkageType: ''
    returnType: int
    signature: int cil_post_nodecon_context_compare(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context_compare
      Src: /src/selinux/libsepol/cil/src/cil_post.c:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 593
    functionDepth: 5
    functionLinenumber: 593
    functionLinenumberEnd: 598
    functionName: cil_post_pirqcon_context_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - context_compare
    linkageType: ''
    returnType: int
    signature: int cil_post_pirqcon_context_compare(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context_compare
      Src: /src/selinux/libsepol/cil/src/cil_post.c:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 600
    functionDepth: 5
    functionLinenumber: 600
    functionLinenumberEnd: 605
    functionName: cil_post_iomemcon_context_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - context_compare
    linkageType: ''
    returnType: int
    signature: int cil_post_iomemcon_context_compare(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context_compare
      Src: /src/selinux/libsepol/cil/src/cil_post.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 607
    functionDepth: 5
    functionLinenumber: 607
    functionLinenumberEnd: 612
    functionName: cil_post_ioportcon_context_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - context_compare
    linkageType: ''
    returnType: int
    signature: int cil_post_ioportcon_context_compare(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context_compare
      Src: /src/selinux/libsepol/cil/src/cil_post.c:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 614
    functionDepth: 5
    functionLinenumber: 614
    functionLinenumberEnd: 622
    functionName: cil_post_pcidevicecon_context_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - context_compare
    linkageType: ''
    returnType: int
    signature: int cil_post_pcidevicecon_context_compare(const void *a, const void
      *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context_compare
      Src: /src/selinux/libsepol/cil/src/cil_post.c:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 624
    functionDepth: 5
    functionLinenumber: 624
    functionLinenumberEnd: 632
    functionName: cil_post_devicetreecon_context_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - context_compare
    linkageType: ''
    returnType: int
    signature: int cil_post_devicetreecon_context_compare(const void *a, const void
      *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context_compare
      Src: /src/selinux/libsepol/cil/src/cil_post.c:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 634
    functionDepth: 5
    functionLinenumber: 634
    functionLinenumberEnd: 639
    functionName: cil_post_fsuse_context_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - context_compare
    linkageType: ''
    returnType: int
    signature: int cil_post_fsuse_context_compare(const void *a, const void *b)
  - BBCount: 28
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 88
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 748
    functionName: __cil_post_db_count_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int __cil_post_db_count_helper(struct cil_tree_node *node,\n\t\t\t\t
      \     uint32_t *finished, void *extra_args)"
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:769,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:778,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:787,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_post.c:794,1
    - Dst: cil_list_prepend
      Src: /src/selinux/libsepol/cil/src/cil_post.c:798,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_post.c:802,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:811,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:823,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:833,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:844,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:855,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:866,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:878,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:888,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:899,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:910,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:921,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:932,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:943,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 150
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 750
    functionDepth: 3
    functionLinenumber: 750
    functionLinenumberEnd: 954
    functionName: __cil_post_db_array_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - cil_malloc
    - cil_list_prepend
    - cil_list_append
    linkageType: ''
    returnType: int
    signature: "int __cil_post_db_array_helper(struct cil_tree_node *node,\n\t\t\t\t
      \     uint32_t *finished, void *extra_args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:961,1
    - Dst: __cil_expr_list_to_bitmap
      Src: /src/selinux/libsepol/cil/src/cil_post.c:962,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:965,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:966,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_post.c:967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - attr
    - db
    argTypes:
    - struct cil_typeattribute*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 956
    functionDepth: 2
    functionLinenumber: 956
    functionLinenumberEnd: 971
    functionName: __evaluate_type_expression
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - ebitmap_destroy
    - cil_malloc
    - __cil_expr_list_to_bitmap
    - cil_log
    - free
    linkageType: ''
    returnType: int
    signature: "int __evaluate_type_expression(struct cil_typeattribute *attr,\n\t\t\t\t
      \     struct cil_db *db)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_post.c:979,1
    - Dst: __evaluate_type_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:985,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/cil/src/cil_post.c:989,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_post.c:993,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:994,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:995,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1000,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1001,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1002,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 3
    argNames:
    - datum
    - bitmap
    - db
    argTypes:
    - struct cil_symtab_datum*
    - ebitmap_t*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 973
    functionDepth: 3
    functionLinenumber: 973
    functionLinenumberEnd: 1011
    functionName: __cil_type_to_bitmap
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - cil_log
    - ebitmap_set_bit
    - __evaluate_type_expression
    - ebitmap_union
    linkageType: ''
    returnType: int
    signature: "int __cil_type_to_bitmap(struct cil_symtab_datum *datum,\n\t\t\t\tebitmap_t
      *bitmap, struct cil_db *db)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1018,1
    - Dst: __cil_expr_list_to_bitmap
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1019,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1022,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1023,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1024,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - attr
    - db
    argTypes:
    - struct cil_userattribute*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1013
    functionDepth: 2
    functionLinenumber: 1013
    functionLinenumberEnd: 1028
    functionName: __evaluate_user_expression
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - ebitmap_destroy
    - cil_malloc
    - __cil_expr_list_to_bitmap
    - cil_log
    - free
    linkageType: ''
    returnType: int
    signature: "int __evaluate_user_expression(struct cil_userattribute *attr,\n\t\t\t\t
      \     struct cil_db *db)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1038,1
    - Dst: __evaluate_user_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1043,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1048,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1051,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1052,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1053,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - datum
    - bitmap
    - db
    argTypes:
    - struct cil_symtab_datum*
    - ebitmap_t*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1030
    functionDepth: 3
    functionLinenumber: 1030
    functionLinenumberEnd: 1062
    functionName: __cil_user_to_bitmap
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - __evaluate_user_expression
    - cil_log
    - ebitmap_set_bit
    - ebitmap_union
    linkageType: ''
    returnType: int
    signature: "int __cil_user_to_bitmap(struct cil_symtab_datum *datum,\n\t\t\t\tebitmap_t
      *bitmap, struct cil_db *db)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1069,1
    - Dst: __cil_expr_list_to_bitmap
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1070,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1073,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1074,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1075,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - attr
    - db
    argTypes:
    - struct cil_roleattribute*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1064
    functionDepth: 2
    functionLinenumber: 1064
    functionLinenumberEnd: 1079
    functionName: __evaluate_role_expression
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - ebitmap_destroy
    - cil_malloc
    - __cil_expr_list_to_bitmap
    - cil_log
    - free
    linkageType: ''
    returnType: int
    signature: "int __evaluate_role_expression(struct cil_roleattribute *attr,\n\t\t\t\t
      \     struct cil_db *db)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1087,1
    - Dst: __evaluate_role_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1093,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1097,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1100,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1101,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - datum
    - bitmap
    - db
    argTypes:
    - struct cil_symtab_datum*
    - ebitmap_t*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1081
    functionDepth: 3
    functionLinenumber: 1081
    functionLinenumberEnd: 1111
    functionName: __cil_role_to_bitmap
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - __evaluate_role_expression
    - cil_log
    - ebitmap_set_bit
    - ebitmap_union
    linkageType: ''
    returnType: int
    signature: "int __cil_role_to_bitmap(struct cil_symtab_datum *datum,\n\t\t\t\tebitmap_t
      *bitmap, struct cil_db *db)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1118,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1119,1
    - Dst: __cil_expr_to_bitmap
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1121,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1124,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1125,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - permx
    - db
    argTypes:
    - struct cil_permissionx*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1113
    functionDepth: 2
    functionLinenumber: 1113
    functionLinenumberEnd: 1131
    functionName: __evaluate_permissionx_expression
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - cil_malloc
    - __cil_expr_to_bitmap
    - cil_log
    - free
    linkageType: ''
    returnType: int
    signature: "int __evaluate_permissionx_expression(struct cil_permissionx *permx,\n\t\t\t\t\t
      \    struct cil_db *db)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1136,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1139,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - permx_str
    - val
    argTypes:
    - char*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1133
    functionDepth: 2
    functionLinenumber: 1133
    functionLinenumberEnd: 1156
    functionName: __cil_permx_str_to_int
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - cil_log
    - strtol
    linkageType: ''
    returnType: int
    signature: int __cil_permx_str_to_int(char *permx_str, uint16_t *val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __cil_permx_str_to_int
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1165,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1170,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1171,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1172,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1173,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - datum
    - bitmap
    - db
    argTypes:
    - struct cil_symtab_datum*
    - ebitmap_t*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1158
    functionDepth: 3
    functionLinenumber: 1158
    functionLinenumberEnd: 1181
    functionName: __cil_permx_to_bitmap
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - cil_log
    - __cil_permx_str_to_int
    - ebitmap_set_bit
    linkageType: ''
    returnType: int
    signature: "int __cil_permx_to_bitmap(struct cil_symtab_datum *datum,\n\t\t\t\t
      ebitmap_t *bitmap,\n\t\t\t\t __attribute__((unused)) struct cil_db *db)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1190,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1191,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1192,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - datum
    - bitmap
    - db
    argTypes:
    - struct cil_symtab_datum*
    - ebitmap_t*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1183
    functionDepth: 2
    functionLinenumber: 1183
    functionLinenumberEnd: 1198
    functionName: __cil_perm_to_bitmap
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - cil_log
    - ebitmap_init
    - ebitmap_set_bit
    - ebitmap_destroy
    linkageType: ''
    returnType: int
    signature: "int __cil_perm_to_bitmap(struct cil_symtab_datum *datum,\n\t\t\t\tebitmap_t
      *bitmap,\n\t\t\t\t__attribute__((unused)) struct cil_db *db)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_verify_is_list
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1211,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1215,1
    - Dst: __cil_expr_to_bitmap
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1216,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1218,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1220,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1224,1
    - Dst: CIL_CAT::CIL_CAT
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1224,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1226,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1228,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1233,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1234,1
    - Dst: cats::cats
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - cats
    - db
    argTypes:
    - struct cil_cats*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1200
    functionDepth: 2
    functionLinenumber: 1200
    functionLinenumberEnd: 1243
    functionName: __evaluate_cat_expression
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - cil_list_for_each
    - ebitmap_destroy
    - cil_verify_is_list
    - __cil_expr_to_bitmap
    - cil_log
    - cil_list_destroy
    - ebitmap_get_bit
    - CIL_CAT::CIL_CAT
    - cil_list_init
    - cats::cats
    linkageType: ''
    returnType: int
    signature: int __evaluate_cat_expression(struct cil_cats *cats, struct cil_db
      *db)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1251,1
    - Dst: __evaluate_cat_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1257,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1264,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1265,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1266,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1273,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1274,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1275,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1280,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1281,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1282,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 3
    argNames:
    - datum
    - bitmap
    - db
    argTypes:
    - struct cil_symtab_datum*
    - ebitmap_t*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1245
    functionDepth: 3
    functionLinenumber: 1245
    functionLinenumberEnd: 1291
    functionName: __cil_cat_to_bitmap
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - __evaluate_cat_expression
    - ebitmap_destroy
    - cil_log
    - ebitmap_set_bit
    linkageType: ''
    returnType: int
    signature: "int __cil_cat_to_bitmap(struct cil_symtab_datum *datum,\n\t\t\t       ebitmap_t
      *bitmap, struct cil_db *db)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1306,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1322,1
    - Dst: ebitmap_init_range
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1326,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1327,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1328,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - i1
    - i2
    - bitmap
    argTypes:
    - struct cil_list_item*
    - struct cil_list_item*
    - ebitmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1293
    functionDepth: 2
    functionLinenumber: 1293
    functionLinenumberEnd: 1336
    functionName: __cil_cat_expr_range_to_bitmap_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - cil_log
    - ebitmap_init_range
    - ebitmap_destroy
    linkageType: ''
    returnType: int
    signature: "int __cil_cat_expr_range_to_bitmap_helper(struct cil_list_item *i1,\n\t\t\t\t\t\t
      struct cil_list_item *i2,\n\t\t\t\t\t\t ebitmap_t *bitmap)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __cil_permx_str_to_int
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1347,1
    - Dst: __cil_permx_str_to_int
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1352,1
    - Dst: ebitmap_init_range
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1357,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1358,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1359,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - i1
    - i2
    - bitmap
    argTypes:
    - struct cil_list_item*
    - struct cil_list_item*
    - ebitmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1338
    functionDepth: 3
    functionLinenumber: 1338
    functionLinenumberEnd: 1367
    functionName: __cil_permissionx_expr_range_to_bitmap_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - cil_log
    - ebitmap_init_range
    - __cil_permx_str_to_int
    - ebitmap_destroy
    linkageType: ''
    returnType: int
    signature: "int __cil_permissionx_expr_range_to_bitmap_helper(\n\tstruct cil_list_item
      *i1, struct cil_list_item *i2, ebitmap_t *bitmap)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: __cil_type_to_bitmap
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1379,1
    - Dst: __cil_role_to_bitmap
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1382,1
    - Dst: __cil_user_to_bitmap
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1385,1
    - Dst: __cil_perm_to_bitmap
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1388,1
    - Dst: __cil_cat_to_bitmap
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1391,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1398,1
    - Dst: __cil_expr_to_bitmap
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1399,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1401,1
    - Dst: __cil_permx_to_bitmap
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1406,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 5
    argNames:
    - curr
    - flavor
    - bitmap
    - max
    - db
    argTypes:
    - struct cil_list_item*
    - enum cil_flavor
    - ebitmap_t*
    - int
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1369
    functionDepth: 4
    functionLinenumber: 1369
    functionLinenumberEnd: 1410
    functionName: __cil_expr_to_bitmap_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - __cil_type_to_bitmap
    - __cil_expr_to_bitmap
    - __cil_role_to_bitmap
    - __cil_user_to_bitmap
    - __cil_cat_to_bitmap
    - __cil_permx_to_bitmap
    - __cil_perm_to_bitmap
    linkageType: ''
    returnType: int
    signature: "int __cil_expr_to_bitmap_helper(struct cil_list_item *curr,\n\t\t\t\t
      \      enum cil_flavor flavor,\n\t\t\t\t       ebitmap_t *bitmap, int max,\n\t\t\t\t
      \      struct cil_db *db)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1427,1
    - Dst: ebitmap_init_range
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1433,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1435,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1437,1
    - Dst: __cil_cat_expr_range_to_bitmap_helper
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1442,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1445,1
    - Dst: __cil_permissionx_expr_range_to_bitmap_helper
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1450,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1453,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1458,1
    - Dst: __cil_expr_to_bitmap_helper
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1464,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1467,1
    - Dst: ebitmap_not
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1473,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1474,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1476,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1478,1
    - Dst: __cil_expr_to_bitmap_helper
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1482,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1485,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1487,1
    - Dst: ebitmap_or
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1492,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1494,1
    - Dst: ebitmap_xor
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1496,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1500,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1501,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1503,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1505,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1511,1
    - Dst: __cil_expr_to_bitmap_helper
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1513,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1516,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1518,1
    - Dst: ebitmap_or
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1522,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1523,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1524,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1526,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1528,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1534,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1535,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 112
    argCount: 4
    argNames:
    - expr
    - out
    - max
    - db
    argTypes:
    - struct cil_list*
    - ebitmap_t*
    - int
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1541
      start: 1412
    functionDepth: 5
    functionLinenumber: 1412
    functionLinenumberEnd: 1541
    functionName: __cil_expr_to_bitmap
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 3
    functionsReached:
    - ebitmap_init
    - ebitmap_init_range
    - ebitmap_destroy
    - ebitmap_or
    - ebitmap_and
    - cil_log
    - ebitmap_not
    - __cil_permissionx_expr_range_to_bitmap_helper
    - __cil_expr_to_bitmap_helper
    - __cil_cat_expr_range_to_bitmap_helper
    - ebitmap_union
    - ebitmap_xor
    linkageType: ''
    returnType: int
    signature: "int __cil_expr_to_bitmap(struct cil_list *expr, ebitmap_t *out, int
      max,\n\t\t\t\tstruct cil_db *db)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1549,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1558,1
    - Dst: __cil_expr_to_bitmap
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1559,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1561,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1563,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1566,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 4
    argNames:
    - expr_list
    - out
    - max
    - db
    argTypes:
    - struct cil_list*
    - ebitmap_t*
    - int
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1574
      start: 1543
    functionDepth: 6
    functionLinenumber: 1543
    functionLinenumberEnd: 1574
    functionName: __cil_expr_list_to_bitmap
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 3
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - __cil_expr_to_bitmap
    - cil_log
    - ebitmap_union
    linkageType: ''
    returnType: int
    signature: "int __cil_expr_list_to_bitmap(struct cil_list *expr_list, ebitmap_t
      *out,\n\t\t\t\t     int max, struct cil_db *db)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1558,1
    - Dst: __cil_expr_to_bitmap
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1559,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1561,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1563,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1566,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1567,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1555
    functionDepth: 6
    functionLinenumber: 1555
    functionLinenumberEnd: 1568
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 79
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - __cil_expr_to_bitmap
    - cil_log
    - ebitmap_union
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(expr, expr_list)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1596,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1596,1
    - Dst: strstr
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1598,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1598,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1608,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 2
    argNames:
    - attr
    - db
    argTypes:
    - struct cil_typeattribute*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1576
    functionDepth: 1
    functionLinenumber: 1576
    functionLinenumberEnd: 1614
    functionName: cil_typeattribute_used
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - strstr
    - DATUM
    - ebitmap_cardinality
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int cil_typeattribute_used(struct cil_typeattribute *attr,\n\t\t\t\t
      \ struct cil_db *db)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1626,1
    - Dst: strstr
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1628,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1628,1
    - Dst: __mark_neverallow_attrs
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1629,1
    - Dst: __mark_neverallow_attrs
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1636,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - expr_list
    argTypes:
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1639
      start: 1616
    functionDepth: 1
    functionLinenumber: 1616
    functionLinenumberEnd: 1639
    functionName: __mark_neverallow_attrs
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 1
    functionsReached:
    - strstr
    - DATUM
    - __mark_neverallow_attrs
    - FLAVOR
    linkageType: ''
    returnType: void
    signature: void __mark_neverallow_attrs(struct cil_list *expr_list)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1626,1
    - Dst: strstr
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1628,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1628,1
    - Dst: __mark_neverallow_attrs
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1629,1
    - Dst: __mark_neverallow_attrs
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1636,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1624
    functionDepth: 2
    functionLinenumber: 1624
    functionLinenumberEnd: 1638
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 79
    functionsReached:
    - strstr
    - DATUM
    - __mark_neverallow_attrs
    - FLAVOR
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, expr_list)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1661,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1661,1
    - Dst: __mark_neverallow_attrs
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1662,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1671
      start: 1641
    functionDepth: 2
    functionLinenumber: 1641
    functionLinenumberEnd: 1671
    functionName: __cil_post_db_neverallow_attr_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - strstr
    - DATUM
    - __mark_neverallow_attrs
    linkageType: ''
    returnType: int
    signature: "int __cil_post_db_neverallow_attr_helper(struct cil_tree_node *node,\n\t\t\t\t
      \    uint32_t *finished,\n\t\t\t\t     __attribute__((unused)) void *extra_args)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: __evaluate_type_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1694,1
    - Dst: cil_typeattribute_used
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1698,1
    - Dst: __evaluate_role_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1704,1
    - Dst: __evaluate_permissionx_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1713,1
    - Dst: __evaluate_permissionx_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1722,1
    - Dst: __evaluate_user_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1730,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 64
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1673
    functionDepth: 3
    functionLinenumber: 1673
    functionLinenumberEnd: 1745
    functionName: __cil_post_db_attr_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - __evaluate_role_expression
    - __evaluate_user_expression
    - cil_typeattribute_used
    - __evaluate_type_expression
    - __evaluate_permissionx_expression
    linkageType: ''
    returnType: int
    signature: "int __cil_post_db_attr_helper(struct cil_tree_node *node,\n\t\t\t\t
      \    uint32_t *finished, void *extra_args)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1753,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1754,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1759,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1760,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1767,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1768,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1775,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - role
    - datum
    argTypes:
    - struct cil_role*
    - struct cil_symtab_datum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1782
      start: 1747
    functionDepth: 3
    functionLinenumber: 1747
    functionLinenumberEnd: 1782
    functionName: __cil_role_assign_types
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - cil_malloc
    - cil_log
    - ebitmap_set_bit
    - ebitmap_union
    linkageType: ''
    returnType: int
    signature: "int __cil_role_assign_types(struct cil_role *role,\n\t\t\t\t   struct
      cil_symtab_datum *datum)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1813,1
    - Dst: __cil_role_assign_types
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1818,1
    - Dst: __cil_role_assign_types
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1826,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1839,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1841
      start: 1784
    functionDepth: 4
    functionLinenumber: 1784
    functionLinenumberEnd: 1841
    functionName: __cil_post_db_roletype_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - ebitmap_for_each_positive_bit
    - cil_log
    - __cil_role_assign_types
    linkageType: ''
    returnType: int
    signature: "int __cil_post_db_roletype_helper(struct cil_tree_node *node,\n\t\t\t\t\t
      uint32_t *finished, void *extra_args)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1851,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1852,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1857,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1858,1
    - Dst: ebitmap_union
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1864,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - user
    - datum
    argTypes:
    - struct cil_user*
    - struct cil_symtab_datum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1871
      start: 1843
    functionDepth: 3
    functionLinenumber: 1843
    functionLinenumberEnd: 1871
    functionName: __cil_user_assign_roles
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - cil_malloc
    - cil_log
    - ebitmap_set_bit
    - ebitmap_union
    linkageType: ''
    returnType: int
    signature: "int __cil_user_assign_roles(struct cil_user *user,\n\t\t\t\t   struct
      cil_symtab_datum *datum)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1909,1
    - Dst: __cil_user_assign_roles
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1912,1
    - Dst: __cil_user_assign_roles
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1920,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1934,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1936
      start: 1873
    functionDepth: 4
    functionLinenumber: 1873
    functionLinenumberEnd: 1936
    functionName: __cil_post_db_userrole_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - ebitmap_for_each_positive_bit
    - cil_log
    - __cil_user_assign_roles
    linkageType: ''
    returnType: int
    signature: "int __cil_post_db_userrole_helper(struct cil_tree_node *node,\n\t\t\t\t\t
      uint32_t *finished, void *extra_args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __evaluate_cat_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1942,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - level
    - db
    argTypes:
    - struct cil_level*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1938
    functionDepth: 3
    functionLinenumber: 1938
    functionLinenumberEnd: 1946
    functionName: __evaluate_level_expression
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - __evaluate_cat_expression
    linkageType: ''
    returnType: int
    signature: "int __evaluate_level_expression(struct cil_level *level,\n\t\t\t\t
      \      struct cil_db *db)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __evaluate_cat_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1954,1
    - Dst: __evaluate_cat_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1960,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - levelrange
    - db
    argTypes:
    - struct cil_levelrange*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1968
      start: 1948
    functionDepth: 3
    functionLinenumber: 1948
    functionLinenumberEnd: 1968
    functionName: __evaluate_levelrange_expression
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - __evaluate_cat_expression
    linkageType: ''
    returnType: int
    signature: "int __evaluate_levelrange_expression(struct cil_levelrange *levelrange,\n\t\t\t\t\t
      \   struct cil_db *db)"
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: __evaluate_cat_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1990,1
    - Dst: __evaluate_cat_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:1998,1
    - Dst: __evaluate_level_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2005,1
    - Dst: __evaluate_levelrange_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2012,1
    - Dst: __evaluate_level_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2020,1
    - Dst: __evaluate_levelrange_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2024,1
    - Dst: __evaluate_levelrange_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2033,1
    - Dst: __evaluate_levelrange_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2041,1
    - Dst: __evaluate_levelrange_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2049,1
    - Dst: __evaluate_levelrange_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2057,1
    - Dst: __evaluate_levelrange_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2067,1
    - Dst: __evaluate_levelrange_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2078,1
    - Dst: __evaluate_levelrange_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2087,1
    - Dst: __evaluate_levelrange_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2095,1
    - Dst: __evaluate_levelrange_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2104,1
    - Dst: __evaluate_levelrange_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2113,1
    - Dst: __evaluate_levelrange_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2122,1
    - Dst: __evaluate_levelrange_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2127,1
    - Dst: __evaluate_levelrange_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2136,1
    - Dst: __evaluate_levelrange_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2145,1
    - Dst: __evaluate_levelrange_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2154,1
    - Dst: __evaluate_levelrange_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2163,1
    - Dst: __evaluate_levelrange_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2172,1
    - Dst: __evaluate_levelrange_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2181,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 206
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2196
      start: 1970
    functionDepth: 4
    functionLinenumber: 1970
    functionLinenumberEnd: 2196
    functionName: __cil_post_db_cat_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - __evaluate_cat_expression
    - __evaluate_levelrange_expression
    - __evaluate_level_expression
    linkageType: ''
    returnType: int
    signature: "int __cil_post_db_cat_helper(struct cil_tree_node *node,\n\t\t\t\t
      \   uint32_t *finished, void *extra_args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2213,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2220
      start: 2204
    functionDepth: 3
    functionLinenumber: 2204
    functionLinenumberEnd: 2220
    functionName: __perm_bits_to_list
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - ebitmap_get_bit
    - cil_list_append
    linkageType: ''
    returnType: int
    signature: "int __perm_bits_to_list(__attribute__((unused)) hashtab_key_t k,\n\t\t\t
      \      hashtab_datum_t d, void *args)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_verify_is_list
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2232,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2236,1
    - Dst: __cil_expr_to_bitmap
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2237,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2239,1
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2243,1
    - Dst: cil_symtab_map
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2249,1
    - Dst: cil_symtab_map
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2252,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 7
    argNames:
    - perms
    - flavor
    - class_symtab
    - common_symtab
    - num_perms
    - new_list
    - db
    argTypes:
    - struct cil_list*
    - enum cil_flavor
    - symtab_t*
    - symtab_t*
    - unsigned int
    - struct cil_list**
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2260
      start: 2222
    functionDepth: 6
    functionLinenumber: 2222
    functionLinenumberEnd: 2260
    functionName: __evaluate_perm_expression
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - cil_verify_is_list
    - cil_symtab_map
    - __cil_expr_to_bitmap
    - cil_list_init
    linkageType: ''
    returnType: int
    signature: "int __evaluate_perm_expression(struct cil_list *perms, enum cil_flavor
      flavor,\n\t\t\t   symtab_t *class_symtab, symtab_t *common_symtab,\n\t\t\t   unsigned
      int num_perms, struct cil_list **new_list,\n\t\t\t   struct cil_db *db)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __evaluate_perm_expression
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2274,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - cp
    - db
    argTypes:
    - struct cil_classperms*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2293
      start: 2262
    functionDepth: 7
    functionLinenumber: 2262
    functionLinenumberEnd: 2293
    functionName: __evaluate_classperms
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - __evaluate_perm_expression
    - cil_list_destroy
    linkageType: ''
    returnType: int
    signature: int __evaluate_classperms(struct cil_classperms *cp, struct cil_db
      *db)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2302,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2310,1
    - Dst: __evaluate_classperms
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2311,1
    - Dst: __evaluate_classperms
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2317,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2321,1
    - Dst: __evaluate_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2323,1
    - Dst: __evaluate_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2333,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 3
    argNames:
    - classperms
    - db
    - depth
    argTypes:
    - struct cil_list*
    - struct cil_db*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2345
      start: 2295
    functionDepth: 8
    functionLinenumber: 2295
    functionLinenumberEnd: 2345
    functionName: __evaluate_classperms_list
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 1
    functionsReached:
    - cil_list_for_each
    - __evaluate_classperms
    - cil_log
    - FLAVOR
    - __evaluate_classperms_list
    linkageType: ''
    returnType: int
    signature: "int __evaluate_classperms_list(struct cil_list *classperms,\n\t\t\t\t
      \     struct cil_db *db, int depth)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2310,1
    - Dst: __evaluate_classperms
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2311,1
    - Dst: __evaluate_classperms
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2317,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2321,1
    - Dst: __evaluate_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2323,1
    - Dst: __evaluate_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2333,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2339
      start: 2307
    functionDepth: 9
    functionLinenumber: 2307
    functionLinenumberEnd: 2339
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 81
    functionsReached:
    - __evaluate_classperms_list
    - __evaluate_classperms
    - cil_list_for_each
    - FLAVOR
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, classperms)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __evaluate_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2366
      start: 2352
    functionDepth: 9
    functionLinenumber: 2352
    functionLinenumberEnd: 2366
    functionName: __evaluate_map_perm_classperms
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - __evaluate_classperms_list
    linkageType: ''
    returnType: int
    signature: "int __evaluate_map_perm_classperms(__attribute__((unused)) hashtab_key_t
      k,\n\t\t\t       hashtab_datum_t d, void *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_map
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mc
    - db
    argTypes:
    - struct cil_class*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2368
    functionDepth: 1
    functionLinenumber: 2368
    functionLinenumberEnd: 2377
    functionName: __evaluate_map_class
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - cil_symtab_map
    linkageType: ''
    returnType: int
    signature: int __evaluate_map_class(struct cil_class *mc, struct cil_db *db)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: __evaluate_map_class
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2397,1
    - Dst: __evaluate_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2405,1
    - Dst: __evaluate_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2413,1
    - Dst: __evaluate_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2422,1
    - Dst: __evaluate_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2431,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 59
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2445
      start: 2379
    functionDepth: 9
    functionLinenumber: 2379
    functionLinenumberEnd: 2445
    functionName: __cil_post_db_classperms_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - __evaluate_classperms_list
    - __evaluate_map_class
    linkageType: ''
    returnType: int
    signature: "int __cil_post_db_classperms_helper(struct cil_tree_node *node,\n\t\t\t\t\t
      \  uint32_t *finished, void *extra_args)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_get_cil_path
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2461,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2462,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2466
      start: 2447
    functionDepth: 3
    functionLinenumber: 2447
    functionLinenumberEnd: 2466
    functionName: __cil_post_report_conflict
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - cil_tree_get_cil_path
    - cil_log
    linkageType: ''
    returnType: int
    signature: "int __cil_post_report_conflict(struct cil_tree_node *node,\n\t\t\t\t
      \     uint32_t *finished, void *extra_args)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: cil_get_log_level
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2477,1
    - Dst: qsort
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2483,1
    - Dst: compar
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2486,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2490,1
    - Dst: concompar
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2498,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2506,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2510,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2520,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 4
    argNames:
    - sort
    - db
    - flavor
    - flavor_str
    argTypes:
    - struct cil_sort*
    - struct cil_db*
    - enum cil_flavor
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2538
      start: 2468
    functionDepth: 7
    functionLinenumber: 2468
    functionLinenumberEnd: 2538
    functionName: __cil_post_process_context_rules
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - compar
    - concompar
    - cil_tree_walk
    - cil_get_log_level
    - cil_log
    - qsort
    linkageType: ''
    returnType: int
    signature: "int __cil_post_process_context_rules(\n\tstruct cil_sort *sort, int
      (*compar)(const void *, const void *),\n\tint (*concompar)(const void *, const
      void *), struct cil_db *db,\n\tenum cil_flavor flavor, const char *flavor_str)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2544,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2547,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2551,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2554,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2558,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2561,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2566,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2569,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2573,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2576,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2580,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2583,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2587,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2590,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2595,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2598,1
    - Dst: __cil_post_process_context_rules
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2602,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2608,1
    - Dst: __cil_post_process_context_rules
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2612,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2618,1
    - Dst: __cil_post_process_context_rules
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2622,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2627,1
    - Dst: __cil_post_process_context_rules
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2631,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2636,1
    - Dst: __cil_post_process_context_rules
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2640,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2645,1
    - Dst: __cil_post_process_context_rules
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2649,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2654,1
    - Dst: __cil_post_process_context_rules
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2658,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2662,1
    - Dst: __cil_post_process_context_rules
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2666,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2671,1
    - Dst: __cil_post_process_context_rules
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2675,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2681,1
    - Dst: __cil_post_process_context_rules
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2685,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2691,1
    - Dst: __cil_post_process_context_rules
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2695,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2700,1
    - Dst: __cil_post_process_context_rules
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2704,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2709,1
    - Dst: __cil_post_process_context_rules
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2713,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2718,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 130
    argCount: 1
    argNames:
    - db
    argTypes:
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2724
      start: 2540
    functionDepth: 8
    functionLinenumber: 2540
    functionLinenumberEnd: 2724
    functionName: cil_post_db
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - cil_log
    - cil_tree_walk
    - __cil_post_process_context_rules
    linkageType: ''
    returnType: int
    signature: int cil_post_db(struct cil_db *db)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_complex_symtab_init
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2736,1
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2746,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2749,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2771,1
    - Dst: cil_complex_symtab_destroy
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2779,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 1
    argNames:
    - db
    argTypes:
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2781
      start: 2726
    functionDepth: 7
    functionLinenumber: 2726
    functionLinenumberEnd: 2781
    functionName: cil_post_verify
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - cil_log
    - cil_tree_walk
    - cil_complex_symtab_destroy
    - cil_complex_symtab_init
    linkageType: ''
    returnType: int
    signature: int cil_post_verify(struct cil_db *db)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2790,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2793,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - db
    argTypes:
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2799
      start: 2783
    functionDepth: 7
    functionLinenumber: 2783
    functionLinenumberEnd: 2799
    functionName: cil_pre_verify
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 0
    functionsReached:
    - cil_log
    - cil_tree_walk
    linkageType: ''
    returnType: int
    signature: int cil_pre_verify(struct cil_db *db)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_pre_verify
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2805,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2807,1
    - Dst: cil_post_db
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2811,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2813,1
    - Dst: cil_process_deny_rules_in_ast
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2817,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2819,1
    - Dst: cil_post_verify
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2823,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_post.c:2825,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - db
    argTypes:
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2831
      start: 2801
    functionDepth: 12
    functionLinenumber: 2801
    functionLinenumberEnd: 2831
    functionName: cil_post_process
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_post.c
    functionUses: 2
    functionsReached:
    - cil_post_verify
    - cil_post_db
    - cil_process_deny_rules_in_ast
    - cil_log
    - cil_pre_verify
    linkageType: ''
    returnType: int
    signature: int cil_post_process(struct cil_db *db)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:56,1
    - Dst: data::data
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:56,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:61,1
    - Dst: CIL_STRING::CIL_STRING
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:61,1
    - Dst: cil_copy_list
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:65,1
    - Dst: cil_param_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:73,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:80,1
    - Dst: orig_item::orig_item
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - data
    - copy
    argTypes:
    - struct cil_list*
    - struct cil_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 51
    functionDepth: 3
    functionLinenumber: 51
    functionLinenumberEnd: 87
    functionName: cil_copy_list
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 8
    functionsReached:
    - orig_item::orig_item
    - data::data
    - cil_list_append
    - CIL_STRING::CIL_STRING
    - cil_list_init
    - cil_param_init
    - cil_copy_list
    linkageType: ''
    returnType: void
    signature: void cil_copy_list(struct cil_list *data, struct cil_list **copy)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:61,1
    - Dst: CIL_STRING::CIL_STRING
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:61,1
    - Dst: cil_copy_list
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:65,1
    - Dst: cil_param_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:73,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:80,1
    - Dst: orig_item::orig_item
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:80,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 84
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 81
    functionsReached:
    - orig_item::orig_item
    - cil_list_append
    - CIL_STRING::CIL_STRING
    - cil_param_init
    - cil_copy_list
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(orig_item, data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: data::data
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 100
    functionName: cil_copy_node
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - data::data
    linkageType: ''
    returnType: int
    signature: "int cil_copy_node(__attribute__((unused)) struct cil_db *db, void
      *data,\n\t\t\t void **copy, __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_list
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:110,1
    - Dst: strs::strs
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:110,1
    - Dst: cil_copy_list
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:113,1
    - Dst: datums::datums
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 102
    functionDepth: 4
    functionLinenumber: 102
    functionLinenumberEnd: 119
    functionName: cil_copy_ordered
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - strs::strs
    - datums::datums
    - cil_copy_list
    linkageType: ''
    returnType: int
    signature: "int cil_copy_ordered(__attribute__((unused)) struct cil_db *db, void
      *data,\n\t\t     void **copy, __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:128,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:130,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:131,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:131,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:133,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:133,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:135,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:135,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:138,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:138,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:140,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 121
    functionDepth: 4
    functionLinenumber: 121
    functionLinenumberEnd: 149
    functionName: cil_copy_block
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 1
    functionsReached:
    - cil_node_to_string
    - cil_symtab_get_datum
    - cil_tree_log
    - FLAVOR
    - NODE
    linkageType: ''
    returnType: int
    signature: "int cil_copy_block(__attribute__((unused)) struct cil_db *db, void
      *data,\n\t\t   void **copy, symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 166
    functionName: cil_copy_blockabstract
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_blockabstract(__attribute__((unused)) struct cil_db *db,\n\t\t\t
      \  void *data, void **copy,\n\t\t\t   __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 182
    functionName: cil_copy_blockinherit
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_blockinherit(__attribute__((unused)) struct cil_db *db,
      void *data,\n\t\t\t  void **copy, __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 194
    functionName: cil_copy_policycap
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_policycap(__attribute__((unused)) struct cil_db *db,\n\t\t\t
      \     __attribute__((unused)) void *data, void **copy,\n\t\t\t      __attribute__((unused))
      symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 206
    functionName: cil_copy_perm
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_perm(__attribute__((unused)) struct cil_db *db,\n\t\t
      \ __attribute__((unused)) void *data, void **copy,\n\t\t  __attribute__((unused))
      symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_list
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - orig
    - new
    argTypes:
    - struct cil_classperms*
    - struct cil_classperms**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 208
    functionDepth: 4
    functionLinenumber: 208
    functionLinenumberEnd: 214
    functionName: cil_copy_classperms
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_copy_list
    linkageType: ''
    returnType: void
    signature: "void cil_copy_classperms(struct cil_classperms *orig,\n\t\t\t struct
      cil_classperms **new)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - orig
    - new
    argTypes:
    - struct cil_classperms_set*
    - struct cil_classperms_set**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: cil_copy_classperms_set
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void cil_copy_classperms_set(struct cil_classperms_set *orig,\n\t\t\t
      \    struct cil_classperms_set **new)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_classperms
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:235,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:236,1
    - Dst: CIL_CLASSPERMS::CIL_CLASSPERMS
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:236,1
    - Dst: cil_copy_classperms_set
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:239,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:240,1
    - Dst: CIL_CLASSPERMS_SET::CIL_CLASSPERMS_SET
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - orig
    - new
    argTypes:
    - struct cil_list*
    - struct cil_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 223
    functionDepth: 5
    functionLinenumber: 223
    functionLinenumberEnd: 243
    functionName: cil_copy_classperms_list
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - CIL_CLASSPERMS::CIL_CLASSPERMS
    - cil_copy_classperms
    - cil_list_append
    - cil_copy_classperms_set
    - CIL_CLASSPERMS_SET::CIL_CLASSPERMS_SET
    linkageType: ''
    returnType: void
    signature: void cil_copy_classperms_list(struct cil_list *orig, struct cil_list
      **new)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_classperms
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:235,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:236,1
    - Dst: CIL_CLASSPERMS::CIL_CLASSPERMS
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:236,1
    - Dst: cil_copy_classperms_set
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:239,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:240,1
    - Dst: CIL_CLASSPERMS_SET::CIL_CLASSPERMS_SET
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 232
    functionDepth: 5
    functionLinenumber: 232
    functionLinenumberEnd: 242
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 81
    functionsReached:
    - CIL_CLASSPERMS::CIL_CLASSPERMS
    - cil_copy_classperms
    - cil_list_append
    - cil_copy_classperms_set
    - CIL_CLASSPERMS_SET::CIL_CLASSPERMS_SET
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(orig_item, orig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:258,1
    - Dst: classperms::classperms
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 245
    functionDepth: 6
    functionLinenumber: 245
    functionLinenumberEnd: 263
    functionName: cil_copy_classmapping
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_copy_classperms_list
    - classperms::classperms
    linkageType: ''
    returnType: int
    signature: "int cil_copy_classmapping(__attribute__((unused)) struct cil_db *db,
      void *data,\n\t\t\t  void **copy, __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 275
    functionName: cil_copy_class
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_class(__attribute__((unused)) struct cil_db *db,\n\t\t
      \  __attribute__((unused)) void *data, void **copy,\n\t\t   __attribute__((unused))
      symtab_t *symtab)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:286,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:288,1
    - Dst: cil_copy_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:295,1
    - Dst: classperms::classperms
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 277
    functionDepth: 6
    functionLinenumber: 277
    functionLinenumberEnd: 299
    functionName: cil_copy_classpermission
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_log
    - cil_symtab_get_datum
    - cil_copy_classperms_list
    - classperms::classperms
    linkageType: ''
    returnType: int
    signature: "int cil_copy_classpermission(__attribute__((unused)) struct cil_db
      *db,\n\t\t\t     void *data, void **copy, symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:313,1
    - Dst: classperms::classperms
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 301
    functionDepth: 6
    functionLinenumber: 301
    functionLinenumberEnd: 318
    functionName: cil_copy_classpermissionset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_copy_classperms_list
    - classperms::classperms
    linkageType: ''
    returnType: int
    signature: "int cil_copy_classpermissionset(__attribute__((unused)) struct cil_db
      *db,\n\t\t\t\tvoid *data, void **copy,\n\t\t\t\t__attribute__((unused)) symtab_t
      *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 336
    functionName: cil_copy_classcommon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_classcommon(__attribute__((unused)) struct cil_db *db,
      void *data,\n\t\t\t void **copy, __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 348
    functionName: cil_copy_sid
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_sid(__attribute__((unused)) struct cil_db *db,\n\t\t
      __attribute__((unused)) void *data, void **copy,\n\t\t __attribute__((unused))
      symtab_t *symtab)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:361,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:361,1
    - Dst: cil_copy_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:362,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:362,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 368
    functionName: cil_copy_sidcontext
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 1
    functionsReached:
    - cil_context_init
    - context::context
    - cil_copy_fill_context
    linkageType: ''
    returnType: int
    signature: "int cil_copy_sidcontext(struct cil_db *db, void *data, void **copy,\n\t\t\t__attribute__((unused))
      symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 380
    functionName: cil_copy_user
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_user(__attribute__((unused)) struct cil_db *db,\n\t\t
      \ __attribute__((unused)) void *data, void **copy,\n\t\t  __attribute__((unused))
      symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 392
    functionName: cil_copy_userattribute
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_userattribute(__attribute__((unused)) struct cil_db *db,\n\t\t\t
      \  __attribute__((unused)) void *data, void **copy,\n\t\t\t   __attribute__((unused))
      symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:404,1
    - Dst: str_expr::str_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:404,1
    - Dst: cil_copy_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:405,1
    - Dst: datum_expr::datum_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 410
    functionName: cil_copy_userattributeset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_copy_expr
    - str_expr::str_expr
    - datum_expr::datum_expr
    linkageType: ''
    returnType: int
    signature: "int cil_copy_userattributeset(struct cil_db *db, void *data, void
      **copy,\n\t\t\t      __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 426
    functionName: cil_copy_userrole
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_userrole(__attribute__((unused)) struct cil_db *db, void
      *data,\n\t\t      void **copy, __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_fill_level
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:441,1
    - Dst: level::level
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 447
    functionName: cil_copy_userlevel
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_copy_fill_level
    - level::level
    linkageType: ''
    returnType: int
    signature: "int cil_copy_userlevel(struct cil_db *db, void *data, void **copy,\n\t\t
      \      __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_levelrange_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:462,1
    - Dst: range::range
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:462,1
    - Dst: cil_copy_fill_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:463,1
    - Dst: range::range
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 449
    functionDepth: 2
    functionLinenumber: 449
    functionLinenumberEnd: 469
    functionName: cil_copy_userrange
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_levelrange_init
    - cil_copy_fill_levelrange
    - range::range
    linkageType: ''
    returnType: int
    signature: "int cil_copy_userrange(struct cil_db *db, void *data, void **copy,\n\t\t
      \      __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 485
    functionName: cil_copy_userprefix
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_userprefix(__attribute__((unused)) struct cil_db *db,
      void *data,\n\t\t\tvoid **copy, __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 497
    functionName: cil_copy_role
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_role(__attribute__((unused)) struct cil_db *db,\n\t\t
      \ __attribute__((unused)) void *data, void **copy,\n\t\t  __attribute__((unused))
      symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 513
    functionName: cil_copy_roletype
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_roletype(__attribute__((unused)) struct cil_db *db, void
      *data,\n\t\t      void **copy, __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 525
    functionName: cil_copy_roleattribute
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_roleattribute(__attribute__((unused)) struct cil_db *db,\n\t\t\t
      \  __attribute__((unused)) void *data, void **copy,\n\t\t\t   __attribute__((unused))
      symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:537,1
    - Dst: str_expr::str_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:537,1
    - Dst: cil_copy_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:538,1
    - Dst: datum_expr::datum_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 543
    functionName: cil_copy_roleattributeset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_copy_expr
    - str_expr::str_expr
    - datum_expr::datum_expr
    linkageType: ''
    returnType: int
    signature: "int cil_copy_roleattributeset(struct cil_db *db, void *data, void
      **copy,\n\t\t\t      __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 559
    functionName: cil_copy_roleallow
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_roleallow(__attribute__((unused)) struct cil_db *db,
      void *data,\n\t\t       void **copy, __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 571
    functionName: cil_copy_type
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_type(__attribute__((unused)) struct cil_db *db,\n\t\t
      \ __attribute__((unused)) void *data, void **copy,\n\t\t  __attribute__((unused))
      symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 587
    functionName: cil_copy_typepermissive
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_typepermissive(__attribute__((unused)) struct cil_db
      *db,\n\t\t\t    void *data, void **copy,\n\t\t\t    __attribute__((unused))
      symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 603
    functionName: cil_copy_typeneveraudit
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_typeneveraudit(__attribute__((unused)) struct cil_db
      *db,\n\t\t\t    void *data, void **copy,\n\t\t\t    __attribute__((unused))
      symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 615
    functionName: cil_copy_typeattribute
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_typeattribute(__attribute__((unused)) struct cil_db *db,\n\t\t\t
      \  __attribute__((unused)) void *data, void **copy,\n\t\t\t   __attribute__((unused))
      symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:627,1
    - Dst: str_expr::str_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:627,1
    - Dst: cil_copy_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:628,1
    - Dst: datum_expr::datum_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 633
    functionName: cil_copy_typeattributeset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_copy_expr
    - str_expr::str_expr
    - datum_expr::datum_expr
    linkageType: ''
    returnType: int
    signature: "int cil_copy_typeattributeset(struct cil_db *db, void *data, void
      **copy,\n\t\t\t      __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_list
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:646,1
    - Dst: attr_strs::attr_strs
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:646,1
    - Dst: cil_copy_list
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:650,1
    - Dst: attr_datums::attr_datums
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:650,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 635
    functionDepth: 4
    functionLinenumber: 635
    functionLinenumberEnd: 658
    functionName: cil_copy_expandtypeattribute
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - attr_datums::attr_datums
    - attr_strs::attr_strs
    - cil_copy_list
    linkageType: ''
    returnType: int
    signature: "int cil_copy_expandtypeattribute(__attribute__((unused)) struct cil_db
      *db,\n\t\t\t     void *data, void **copy,\n\t\t\t     __attribute__((unused))
      symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 670
    functionName: cil_copy_alias
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_alias(__attribute__((unused)) struct cil_db *db,\n\t\t\t
      \ __attribute__((unused)) void *data, void **copy,\n\t\t\t  __attribute__((unused))
      symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 689
    functionName: cil_copy_aliasactual
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_aliasactual(__attribute__((unused)) struct cil_db *db,\n\t\t\t\tvoid
      *data, void **copy,\n\t\t\t\t__attribute__((unused)) symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 708
    functionName: cil_copy_roletransition
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_roletransition(__attribute__((unused)) struct cil_db
      *db,\n\t\t\t\t   void *data, void **copy,\n\t\t\t\t   __attribute__((unused))
      symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 729
    functionName: cil_copy_nametypetransition
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_nametypetransition(__attribute__((unused)) struct cil_db
      *db,\n\t\t\t\tvoid *data, void **copy,\n\t\t\t\t__attribute__((unused)) symtab_t
      *symtab)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_levelrange_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:746,1
    - Dst: range::range
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:746,1
    - Dst: cil_copy_fill_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:747,1
    - Dst: range::range
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:747,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 731
    functionDepth: 2
    functionLinenumber: 731
    functionLinenumberEnd: 753
    functionName: cil_copy_rangetransition
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_levelrange_init
    - cil_copy_fill_levelrange
    - range::range
    linkageType: ''
    returnType: int
    signature: "int cil_copy_rangetransition(struct cil_db *db, void *data, void **copy,\n\t\t\t
      \    __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 766
    functionName: cil_copy_bool
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_bool(__attribute__((unused)) struct cil_db *db, void
      *data,\n\t\t  void **copy, __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 780
    functionName: cil_copy_tunable
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_tunable(__attribute__((unused)) struct cil_db *db,\n\t\t\t
      \   void *data, void **copy,\n\t\t\t    __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:788,1
    - Dst: expr_str::expr_str
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - db
    - orig
    - new
    argTypes:
    - struct cil_db*
    - struct cil_permissionx*
    - struct cil_permissionx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 789
    functionName: cil_copy_fill_permissionx
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_copy_expr
    - expr_str::expr_str
    linkageType: ''
    returnType: void
    signature: "void cil_copy_fill_permissionx(struct cil_db *db,\n\t\t\t\t      struct
      cil_permissionx *orig,\n\t\t\t\t      struct cil_permissionx *new)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_extended::is_extended
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:804,1
    - Dst: cil_copy_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:805,1
    - Dst: perms::perms
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:806,1
    - Dst: perms::perms
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:809,1
    - Dst: cil_permissionx_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:811,1
    - Dst: perms::perms
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:811,1
    - Dst: cil_copy_fill_permissionx
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:812,1
    - Dst: perms::perms
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:813,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 791
    functionDepth: 6
    functionLinenumber: 791
    functionLinenumberEnd: 820
    functionName: cil_copy_avrule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 1
    functionsReached:
    - cil_copy_fill_permissionx
    - perms::perms
    - cil_copy_classperms_list
    - is_extended::is_extended
    - cil_permissionx_init
    linkageType: ''
    returnType: int
    signature: "int cil_copy_avrule(struct cil_db *db, void *data, void **copy,\n\t\t
      \   __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:830,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:832,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 822
    functionDepth: 2
    functionLinenumber: 822
    functionLinenumberEnd: 841
    functionName: cil_copy_permissionx
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_log
    - cil_symtab_get_datum
    linkageType: ''
    returnType: int
    signature: "int cil_copy_permissionx(struct cil_db *db, void *data, void **copy,\n\t\t\t\tsymtab_t
      *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:853,1
    - Dst: classperms::classperms
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 843
    functionDepth: 6
    functionLinenumber: 843
    functionLinenumberEnd: 858
    functionName: cil_copy_deny_rule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_copy_classperms_list
    - classperms::classperms
    linkageType: ''
    returnType: int
    signature: "int cil_copy_deny_rule(__attribute__((unused)) struct cil_db *db,
      void *data,\n\t\t       void **copy, __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 877
    functionName: cil_copy_type_rule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_type_rule(__attribute__((unused)) struct cil_db *db,
      void *data,\n\t\t       void **copy, __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 889
    functionName: cil_copy_sens
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_sens(__attribute__((unused)) struct cil_db *db,\n\t\t
      \ __attribute__((unused)) void *data, void **copy,\n\t\t  __attribute__((unused))
      symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 901
    functionName: cil_copy_cat
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_cat(__attribute__((unused)) struct cil_db *db,\n\t\t
      __attribute__((unused)) void *data, void **copy,\n\t\t __attribute__((unused))
      symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:907,1
    - Dst: cil_copy_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - db
    - orig
    - new
    argTypes:
    - struct cil_db*
    - struct cil_cats*
    - struct cil_cats**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 903
    functionDepth: 1
    functionLinenumber: 903
    functionLinenumberEnd: 909
    functionName: cil_copy_cats
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_copy_expr
    linkageType: ''
    returnType: void
    signature: "void cil_copy_cats(struct cil_db *db, struct cil_cats *orig,\n\t\t\t
      \ struct cil_cats **new)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:919,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:921,1
    - Dst: cil_copy_cats
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:926,1
    - Dst: cats::cats
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:926,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 911
    functionDepth: 2
    functionLinenumber: 911
    functionLinenumberEnd: 930
    functionName: cil_copy_catset
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_log
    - cil_symtab_get_datum
    - cats::cats
    - cil_copy_cats
    linkageType: ''
    returnType: int
    signature: "int cil_copy_catset(struct cil_db *db, void *data, void **copy,\n\t\t
      \   symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_cats
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:942,1
    - Dst: cats::cats
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 932
    functionDepth: 2
    functionLinenumber: 932
    functionLinenumberEnd: 947
    functionName: cil_copy_senscat
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 1
    functionsReached:
    - cats::cats
    - cil_copy_cats
    linkageType: ''
    returnType: int
    signature: "int cil_copy_senscat(struct cil_db *db, void *data, void **copy,\n\t\t
      \    __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_cats
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:957,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - db
    - orig
    - new
    argTypes:
    - struct cil_db*
    - struct cil_level*
    - struct cil_level**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 949
    functionDepth: 2
    functionLinenumber: 949
    functionLinenumberEnd: 959
    functionName: cil_copy_fill_level
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 2
    functionsReached:
    - cil_copy_cats
    linkageType: ''
    returnType: void
    signature: "void cil_copy_fill_level(struct cil_db *db, struct cil_level *orig,\n\t\t\t
      struct cil_level **new)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:969,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:971,1
    - Dst: cil_copy_fill_level
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:976,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 961
    functionDepth: 3
    functionLinenumber: 961
    functionLinenumberEnd: 980
    functionName: cil_copy_level
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 1
    functionsReached:
    - cil_log
    - cil_symtab_get_datum
    - cil_copy_fill_level
    linkageType: ''
    returnType: int
    signature: int cil_copy_level(struct cil_db *db, void *data, void **copy, symtab_t
      *symtab)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_fill_level
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:988,1
    - Dst: low::low
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:988,1
    - Dst: cil_copy_fill_level
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:994,1
    - Dst: high::high
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:994,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - db
    - data
    - new
    argTypes:
    - struct cil_db*
    - struct cil_levelrange*
    - struct cil_levelrange*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 982
    functionDepth: 3
    functionLinenumber: 982
    functionLinenumberEnd: 996
    functionName: cil_copy_fill_levelrange
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 2
    functionsReached:
    - cil_copy_fill_level
    - low::low
    - high::high
    linkageType: ''
    returnType: void
    signature: "void cil_copy_fill_levelrange(struct cil_db *db, struct cil_levelrange
      *data,\n\t\t\t      struct cil_levelrange *new)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1007,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1009,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 998
    functionDepth: 2
    functionLinenumber: 998
    functionLinenumberEnd: 1020
    functionName: cil_copy_levelrange
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_log
    - cil_symtab_get_datum
    linkageType: ''
    returnType: int
    signature: "int cil_copy_levelrange(struct cil_db *db, void *data, void **copy,\n\t\t\tsymtab_t
      *symtab)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_levelrange_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1032,1
    - Dst: range::range
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1032,1
    - Dst: cil_copy_fill_levelrange
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1033,1
    - Dst: range::range
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1033,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - db
    - data
    - new
    argTypes:
    - struct cil_db*
    - struct cil_context*
    - struct cil_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1022
    functionDepth: 4
    functionLinenumber: 1022
    functionLinenumberEnd: 1035
    functionName: cil_copy_fill_context
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 3
    functionsReached:
    - cil_levelrange_init
    - cil_copy_fill_levelrange
    - range::range
    linkageType: ''
    returnType: void
    signature: "void cil_copy_fill_context(struct cil_db *db, struct cil_context *data,\n\t\t\t
      \  struct cil_context *new)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1046,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1048,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1037
    functionDepth: 2
    functionLinenumber: 1037
    functionLinenumberEnd: 1058
    functionName: cil_copy_context
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 1
    functionsReached:
    - cil_log
    - cil_symtab_get_datum
    linkageType: ''
    returnType: int
    signature: "int cil_copy_context(struct cil_db *db, void *data, void **copy,\n\t\t
      \    symtab_t *symtab)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1073,1
    - Dst: if_context::if_context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1073,1
    - Dst: cil_copy_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1074,1
    - Dst: if_context::if_context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1074,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1080,1
    - Dst: packet_context::packet_context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1080,1
    - Dst: cil_copy_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1081,1
    - Dst: packet_context::packet_context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1082,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1060
    functionDepth: 5
    functionLinenumber: 1060
    functionLinenumberEnd: 1088
    functionName: cil_copy_netifcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 2
    functionsReached:
    - cil_context_init
    - cil_copy_fill_context
    - packet_context::packet_context
    - if_context::if_context
    linkageType: ''
    returnType: int
    signature: "int cil_copy_netifcon(struct cil_db *db, void *data, void **copy,\n\t\t
      \     __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1104,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1104,1
    - Dst: cil_copy_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1105,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1090
    functionDepth: 5
    functionLinenumber: 1090
    functionLinenumberEnd: 1111
    functionName: cil_copy_genfscon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_context_init
    - context::context
    - cil_copy_fill_context
    linkageType: ''
    returnType: int
    signature: "int cil_copy_genfscon(struct cil_db *db, void *data, void **copy,\n\t\t
      \     __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1128,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1128,1
    - Dst: cil_copy_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1129,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1113
    functionDepth: 5
    functionLinenumber: 1113
    functionLinenumberEnd: 1135
    functionName: cil_copy_filecon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_context_init
    - context::context
    - cil_copy_fill_context
    linkageType: ''
    returnType: int
    signature: "int cil_copy_filecon(struct cil_db *db, void *data, void **copy,\n\t\t
      \    __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1148,1
    - Dst: addr::addr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1148,1
    - Dst: cil_copy_fill_ipaddr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1149,1
    - Dst: addr::addr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1149,1
    - Dst: cil_ipaddr_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1155,1
    - Dst: mask::mask
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1155,1
    - Dst: cil_copy_fill_ipaddr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1156,1
    - Dst: mask::mask
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1156,1
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1162,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1162,1
    - Dst: cil_copy_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1163,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1137
    functionDepth: 5
    functionLinenumber: 1137
    functionLinenumberEnd: 1169
    functionName: cil_copy_nodecon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 2
    functionsReached:
    - context::context
    - mask::mask
    - addr::addr
    - cil_copy_fill_context
    - cil_copy_fill_ipaddr
    - cil_context_init
    - cil_ipaddr_init
    linkageType: ''
    returnType: int
    signature: "int cil_copy_nodecon(struct cil_db *db, void *data, void **copy,\n\t\t
      \    __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1186,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1186,1
    - Dst: cil_copy_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1187,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1171
    functionDepth: 5
    functionLinenumber: 1171
    functionLinenumberEnd: 1193
    functionName: cil_copy_ibpkeycon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_context_init
    - context::context
    - cil_copy_fill_context
    linkageType: ''
    returnType: int
    signature: "int cil_copy_ibpkeycon(struct cil_db *db, void *data, void **copy,\n\t\t
      \      __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1209,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1209,1
    - Dst: cil_copy_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1210,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1195
    functionDepth: 5
    functionLinenumber: 1195
    functionLinenumberEnd: 1216
    functionName: cil_copy_ibendportcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_context_init
    - context::context
    - cil_copy_fill_context
    linkageType: ''
    returnType: int
    signature: "int cil_copy_ibendportcon(struct cil_db *db, void *data, void **copy,\n\t\t\t\t
      __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1233,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1233,1
    - Dst: cil_copy_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1234,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1218
    functionDepth: 5
    functionLinenumber: 1218
    functionLinenumberEnd: 1240
    functionName: cil_copy_portcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_context_init
    - context::context
    - cil_copy_fill_context
    linkageType: ''
    returnType: int
    signature: "int cil_copy_portcon(struct cil_db *db, void *data, void **copy,\n\t\t
      \    __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1255,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1255,1
    - Dst: cil_copy_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1256,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1242
    functionDepth: 5
    functionLinenumber: 1242
    functionLinenumberEnd: 1262
    functionName: cil_copy_pirqcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_context_init
    - context::context
    - cil_copy_fill_context
    linkageType: ''
    returnType: int
    signature: "int cil_copy_pirqcon(struct cil_db *db, void *data, void **copy,\n\t\t
      \    __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1278,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1278,1
    - Dst: cil_copy_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1279,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1264
    functionDepth: 5
    functionLinenumber: 1264
    functionLinenumberEnd: 1285
    functionName: cil_copy_iomemcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_context_init
    - context::context
    - cil_copy_fill_context
    linkageType: ''
    returnType: int
    signature: "int cil_copy_iomemcon(struct cil_db *db, void *data, void **copy,\n\t\t
      \     __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1301,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1301,1
    - Dst: cil_copy_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1302,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1287
    functionDepth: 5
    functionLinenumber: 1287
    functionLinenumberEnd: 1308
    functionName: cil_copy_ioportcon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_context_init
    - context::context
    - cil_copy_fill_context
    linkageType: ''
    returnType: int
    signature: "int cil_copy_ioportcon(struct cil_db *db, void *data, void **copy,\n\t\t
      \      __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1323,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1323,1
    - Dst: cil_copy_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1324,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1310
    functionDepth: 5
    functionLinenumber: 1310
    functionLinenumberEnd: 1330
    functionName: cil_copy_pcidevicecon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_context_init
    - context::context
    - cil_copy_fill_context
    linkageType: ''
    returnType: int
    signature: "int cil_copy_pcidevicecon(struct cil_db *db, void *data, void **copy,\n\t\t\t
      \ __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1345,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1345,1
    - Dst: cil_copy_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1346,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1332
    functionDepth: 5
    functionLinenumber: 1332
    functionLinenumberEnd: 1352
    functionName: cil_copy_devicetreecon
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_context_init
    - context::context
    - cil_copy_fill_context
    linkageType: ''
    returnType: int
    signature: "int cil_copy_devicetreecon(struct cil_db *db, void *data, void **copy,\n\t\t\t\t
      \ __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_context_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1368,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1368,1
    - Dst: cil_copy_fill_context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1369,1
    - Dst: context::context
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1375
      start: 1354
    functionDepth: 5
    functionLinenumber: 1354
    functionLinenumberEnd: 1375
    functionName: cil_copy_fsuse
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_context_init
    - context::context
    - cil_copy_fill_context
    linkageType: ''
    returnType: int
    signature: "int cil_copy_fsuse(struct cil_db *db, void *data, void **copy,\n\t\t
      \  __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1393,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1394,1
    - Dst: CIL_LIST::CIL_LIST
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1394,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1398,1
    - Dst: CIL_STRING::CIL_STRING
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1398,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1401,1
    - Dst: curr::curr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1401,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1404,1
    - Dst: curr::curr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1404,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1407,1
    - Dst: curr::curr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1407,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1410,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1413,1
    - Dst: curr::curr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1413,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 3
    argNames:
    - db
    - orig
    - new
    argTypes:
    - struct cil_db*
    - struct cil_list*
    - struct cil_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1377
    functionDepth: 3
    functionLinenumber: 1377
    functionLinenumberEnd: 1419
    functionName: cil_copy_expr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 6
    functionsReached:
    - CIL_LIST::CIL_LIST
    - curr::curr
    - cil_list_append
    - cil_log
    - CIL_STRING::CIL_STRING
    - cil_copy_expr
    linkageType: ''
    returnType: int
    signature: "int cil_copy_expr(struct cil_db *db, struct cil_list *orig,\n\t\t
      \ struct cil_list **new)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1393,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1394,1
    - Dst: CIL_LIST::CIL_LIST
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1394,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1398,1
    - Dst: CIL_STRING::CIL_STRING
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1398,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1401,1
    - Dst: curr::curr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1401,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1404,1
    - Dst: curr::curr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1404,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1407,1
    - Dst: curr::curr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1407,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1410,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1413,1
    - Dst: curr::curr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1413,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1389
    functionDepth: 4
    functionLinenumber: 1389
    functionLinenumberEnd: 1416
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 81
    functionsReached:
    - CIL_LIST::CIL_LIST
    - curr::curr
    - cil_list_append
    - cil_log
    - CIL_STRING::CIL_STRING
    - cil_copy_expr
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, orig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1428,1
    - Dst: classperms::classperms
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1428,1
    - Dst: cil_copy_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1430,1
    - Dst: str_expr::str_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1430,1
    - Dst: cil_copy_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1431,1
    - Dst: datum_expr::datum_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1421
    functionDepth: 6
    functionLinenumber: 1421
    functionLinenumberEnd: 1436
    functionName: cil_copy_constrain
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 1
    functionsReached:
    - classperms::classperms
    - cil_copy_classperms_list
    - datum_expr::datum_expr
    - cil_copy_expr
    - str_expr::str_expr
    linkageType: ''
    returnType: int
    signature: "int cil_copy_constrain(struct cil_db *db, void *data, void **copy,\n\t\t
      \      __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1448,1
    - Dst: str_expr::str_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1448,1
    - Dst: cil_copy_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1449,1
    - Dst: datum_expr::datum_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1438
    functionDepth: 4
    functionLinenumber: 1438
    functionLinenumberEnd: 1454
    functionName: cil_copy_validatetrans
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_copy_expr
    - str_expr::str_expr
    - datum_expr::datum_expr
    linkageType: ''
    returnType: int
    signature: "int cil_copy_validatetrans(struct cil_db *db, void *data, void **copy,\n\t\t\t
      \  __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_init
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1469,1
    - Dst: args_tree::args_tree
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1469,1
    - Dst: cil_copy_ast
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1470,1
    - Dst: args_tree::args_tree
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1456
    functionDepth: 2
    functionLinenumber: 1456
    functionLinenumberEnd: 1486
    functionName: cil_copy_call
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 1
    functionsReached:
    - args_tree::args_tree
    - cil_copy_ast
    - cil_tree_init
    linkageType: ''
    returnType: int
    signature: "int cil_copy_call(struct cil_db *db, void *data, void **copy,\n\t\t
      \ __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1495,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1497,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1498,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1498,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1500,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1500,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1502,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1502,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1505,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1505,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1506,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1506,1
    - Dst: cil_copy_list
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1512,1
    - Dst: params::params
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1512,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1488
    functionDepth: 4
    functionLinenumber: 1488
    functionLinenumberEnd: 1518
    functionName: cil_copy_macro
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_node_to_string
    - cil_symtab_get_datum
    - cil_tree_log
    - FLAVOR
    - params::params
    - NODE
    - cil_copy_list
    linkageType: ''
    returnType: int
    signature: "int cil_copy_macro(__attribute__((unused)) struct cil_db *db, void
      *data,\n\t\t\t  void **copy, symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1520
    functionDepth: 0
    functionLinenumber: 1520
    functionLinenumberEnd: 1530
    functionName: cil_copy_optional
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_optional(__attribute__((unused)) struct cil_db *db,\n\t\t
      \     __attribute__((unused)) void *data, void **copy,\n\t\t      __attribute__((unused))
      symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1535,1
    - Dst: ip::ip
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - new
    argTypes:
    - struct cil_ipaddr*
    - struct cil_ipaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1532
    functionDepth: 0
    functionLinenumber: 1532
    functionLinenumberEnd: 1536
    functionName: cil_copy_fill_ipaddr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 2
    functionsReached:
    - ip::ip
    - memcpy
    linkageType: ''
    returnType: void
    signature: void cil_copy_fill_ipaddr(struct cil_ipaddr *data, struct cil_ipaddr
      *new)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_get_datum
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1546,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1538
    functionDepth: 2
    functionLinenumber: 1538
    functionLinenumberEnd: 1557
    functionName: cil_copy_ipaddr
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 1
    functionsReached:
    - cil_log
    - cil_symtab_get_datum
    linkageType: ''
    returnType: int
    signature: "int cil_copy_ipaddr(__attribute__((unused)) struct cil_db *db, void
      *data,\n\t\t    void **copy, symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1559
    functionDepth: 0
    functionLinenumber: 1559
    functionLinenumberEnd: 1570
    functionName: cil_copy_condblock
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_condblock(__attribute__((unused)) struct cil_db *db,\n\t\t\t
      \     void *data, void **copy,\n\t\t\t      __attribute__((unused)) symtab_t
      *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1580,1
    - Dst: str_expr::str_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1580,1
    - Dst: cil_copy_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1581,1
    - Dst: datum_expr::datum_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1572
    functionDepth: 4
    functionLinenumber: 1572
    functionLinenumberEnd: 1587
    functionName: cil_copy_boolif
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 1
    functionsReached:
    - cil_copy_expr
    - str_expr::str_expr
    - datum_expr::datum_expr
    linkageType: ''
    returnType: int
    signature: "int cil_copy_boolif(struct cil_db *db, void *data, void **copy,\n\t\t
      \   __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1597,1
    - Dst: str_expr::str_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1597,1
    - Dst: cil_copy_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1598,1
    - Dst: datum_expr::datum_expr
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1603
      start: 1589
    functionDepth: 4
    functionLinenumber: 1589
    functionLinenumberEnd: 1603
    functionName: cil_copy_tunif
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_copy_expr
    - str_expr::str_expr
    - datum_expr::datum_expr
    linkageType: ''
    returnType: int
    signature: "int cil_copy_tunif(struct cil_db *db, void *data, void **copy,\n\t\t\t
      \ __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_list
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1617,1
    - Dst: class_strs::class_strs
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1605
    functionDepth: 4
    functionLinenumber: 1605
    functionLinenumberEnd: 1625
    functionName: cil_copy_default
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_copy_list
    - class_strs::class_strs
    linkageType: ''
    returnType: int
    signature: "int cil_copy_default(__attribute__((unused)) struct cil_db *db,\n\t\t\t
      \   void *data, void **copy,\n\t\t\t    __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_copy_list
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1637,1
    - Dst: class_strs::class_strs
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:1637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1627
    functionDepth: 4
    functionLinenumber: 1627
    functionLinenumberEnd: 1645
    functionName: cil_copy_defaultrange
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached:
    - cil_copy_list
    - class_strs::class_strs
    linkageType: ''
    returnType: int
    signature: "int cil_copy_defaultrange(__attribute__((unused)) struct cil_db *db,\n\t\t\t\t
      void *data, void **copy,\n\t\t\t\t __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1647
    functionDepth: 0
    functionLinenumber: 1647
    functionLinenumberEnd: 1659
    functionName: cil_copy_handleunknown
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_handleunknown(__attribute__((unused)) struct cil_db *db,\n\t\t\t\t
      \ void *data, void **copy,\n\t\t\t\t  __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1661
    functionDepth: 0
    functionLinenumber: 1661
    functionLinenumberEnd: 1672
    functionName: cil_copy_mls
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_mls(__attribute__((unused)) struct cil_db *db, void *data,\n\t\t\tvoid
      **copy, __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1674
    functionDepth: 0
    functionLinenumber: 1674
    functionLinenumberEnd: 1689
    functionName: cil_copy_bounds
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_bounds(__attribute__((unused)) struct cil_db *db,\n\t\t\t
      \  void *data, void **copy,\n\t\t\t   __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - db
    - data
    - copy
    - symtab
    argTypes:
    - struct cil_db*
    - void*
    - void**
    - symtab_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1691
    functionDepth: 0
    functionLinenumber: 1691
    functionLinenumberEnd: 1707
    functionName: cil_copy_src_info
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int cil_copy_src_info(__attribute__((unused)) struct cil_db *db,\n\t\t\t
      \    void *data, void **copy,\n\t\t\t     __attribute__((unused)) symtab_t *symtab)"
  - BBCount: 117
    BranchProfiles: []
    Callsites:
    - Dst: cil_flavor_to_symtab_index
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2014,1
    - Dst: cil_get_symtab
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2019,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2030,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2047,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2050,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2055,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2055,1
    - Dst: data::data
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2055,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2058,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2059,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2060,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2063,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2064,1
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2064,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2066,1
    - Dst: cil_add_decl_to_symtab
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2071,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2072,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2073,1
    - Dst: cil_symtab_datum_destroy
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2076,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2077,1
    - Dst: cil_verify_decl_does_not_shadow_macro_parameter
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2093,1
    - Dst: DATUM
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2095,1
    - Dst: flavor::flavor
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2102,1
    - Dst: data::data
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2103,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2110,1
    - Dst: parent::parent
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2116,1
    - Dst: parent::parent
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2119,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2127,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2128,1
    CyclomaticComplexity: 124
    EdgeCount: 124
    ICount: 377
    argCount: 3
    argNames:
    - orig
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2137
      start: 1709
    functionDepth: 5
    functionLinenumber: 1709
    functionLinenumberEnd: 2137
    functionName: __cil_copy_node_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 52
    functionsReached:
    - cil_get_symtab
    - cil_verify_decl_does_not_shadow_macro_parameter
    - cil_node_to_string
    - data::data
    - cil_list_append
    - cil_log
    - cil_symtab_datum_destroy
    - free
    - FLAVOR
    - cil_tree_log
    - cil_add_decl_to_symtab
    - cil_flavor_to_symtab_index
    - DATUM
    - flavor::flavor
    - NODE
    - parent::parent
    linkageType: ''
    returnType: int
    signature: "int __cil_copy_node_helper(struct cil_tree_node *orig,\n\t\t\t\t  uint32_t
      *finished, void *extra_args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - orig
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2154
      start: 2139
    functionDepth: 0
    functionLinenumber: 2139
    functionLinenumberEnd: 2154
    functionName: __cil_copy_last_child_helper
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int __cil_copy_last_child_helper(__attribute__((unused)) struct cil_tree_node
      *orig,\n\t\t\t     void *extra_args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2168,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2171,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2172,1
    - Dst: cil_node_to_string
      Src: /src/selinux/libsepol/cil/src/cil_copy_ast.c:2173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - db
    - orig
    - dest
    argTypes:
    - struct cil_db*
    - struct cil_tree_node*
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2158
    functionDepth: 7
    functionLinenumber: 2158
    functionLinenumberEnd: 2181
    functionName: cil_copy_ast
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    functionUses: 6
    functionsReached:
    - cil_node_to_string
    - cil_tree_walk
    - cil_tree_log
    linkageType: ''
    returnType: int
    signature: "int cil_copy_ast(struct cil_db *db, struct cil_tree_node *orig,\n\t\t
      struct cil_tree_node *dest)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil_fqn.c:59,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_fqn.c:61,1
    - Dst: strcpy
      Src: /src/selinux/libsepol/cil/src/cil_fqn.c:66,1
    - Dst: strcat
      Src: /src/selinux/libsepol/cil/src/cil_fqn.c:67,1
    - Dst: cil_strpool_add
      Src: /src/selinux/libsepol/cil/src/cil_fqn.c:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 72
    functionName: __cil_fqn_qualify_decls
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_fqn.c
    functionUses: 0
    functionsReached:
    - strcat
    - cil_strpool_add
    - strcpy
    - cil_log
    - strlen
    linkageType: ''
    returnType: int
    signature: "int __cil_fqn_qualify_decls(__attribute__((unused)) hashtab_key_t
      k,\n\t\t\t\t   hashtab_datum_t d, void *args)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: NODE
      Src: /src/selinux/libsepol/cil/src/cil_fqn.c:81,1
    - Dst: strlen
      Src: /src/selinux/libsepol/cil/src/cil_fqn.c:90,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_fqn.c:92,1
    - Dst: strcpy
      Src: /src/selinux/libsepol/cil/src/cil_fqn.c:101,1
    - Dst: strcat
      Src: /src/selinux/libsepol/cil/src/cil_fqn.c:102,1
    - Dst: strcat
      Src: /src/selinux/libsepol/cil/src/cil_fqn.c:103,1
    - Dst: cil_symtab_map
      Src: /src/selinux/libsepol/cil/src/cil_fqn.c:119,1
    - Dst: cil_symtab_map
      Src: /src/selinux/libsepol/cil/src/cil_fqn.c:129,1
    - Dst: cil_tree_log
      Src: /src/selinux/libsepol/cil/src/cil_fqn.c:134,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 74
    functionDepth: 4
    functionLinenumber: 74
    functionLinenumberEnd: 139
    functionName: __cil_fqn_qualify_blocks
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_fqn.c
    functionUses: 0
    functionsReached:
    - cil_symtab_map
    - strcat
    - strcpy
    - cil_log
    - cil_tree_log
    - NODE
    - strlen
    linkageType: ''
    returnType: int
    signature: "int __cil_fqn_qualify_blocks(__attribute__((unused)) hashtab_key_t
      k,\n\t\t\t\t    hashtab_datum_t d, void *args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cil_symtab_map
      Src: /src/selinux/libsepol/cil/src/cil_fqn.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - root_node
    argTypes:
    - struct cil_tree_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 152
    functionName: cil_fqn_qualify
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_fqn.c
    functionUses: 5
    functionsReached:
    - cil_symtab_map
    linkageType: ''
    returnType: int
    signature: int cil_fqn_qualify(struct cil_tree_node *root_node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - h
    - key
    argTypes:
    - hashtab_t
    - const_hashtab_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 57
    functionName: cil_strpool_hash
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_strpool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int cil_strpool_hash(hashtab_t h, const_hashtab_key_t key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsepol/cil/src/cil_strpool.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - h
    - key1
    - key2
    argTypes:
    - hashtab_t
    - const_hashtab_key_t
    - const_hashtab_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: cil_strpool_compare
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_strpool.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int cil_strpool_compare(hashtab_t h __attribute__((unused)),\n\t\t\t
      \      const_hashtab_key_t key1,\n\t\t\t       const_hashtab_key_t key2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/selinux/libsepol/cil/src/cil_strpool.c:70,1
    - Dst: hashtab_search
      Src: /src/selinux/libsepol/cil/src/cil_strpool.c:72,1
    - Dst: cil_malloc
      Src: /src/selinux/libsepol/cil/src/cil_strpool.c:75,1
    - Dst: cil_strdup
      Src: /src/selinux/libsepol/cil/src/cil_strpool.c:76,1
    - Dst: hashtab_insert
      Src: /src/selinux/libsepol/cil/src/cil_strpool.c:77,1
    - Dst: pthread_mutex_unlock
      Src: /src/selinux/libsepol/cil/src/cil_strpool.c:80,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_strpool.c:81,1
    - Dst: exit
      Src: /src/selinux/libsepol/cil/src/cil_strpool.c:82,1
    - Dst: pthread_mutex_unlock
      Src: /src/selinux/libsepol/cil/src/cil_strpool.c:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 88
    functionName: cil_strpool_add
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_strpool.c
    functionUses: 7
    functionsReached:
    - cil_strdup
    - hashtab_search
    - pthread_mutex_lock
    - cil_malloc
    - hashtab_insert
    - pthread_mutex_unlock
    - cil_log
    - exit
    linkageType: ''
    returnType: char
    signature: char *cil_strpool_add(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_strpool.c:95,1
    - Dst: free
      Src: /src/selinux/libsepol/cil/src/cil_strpool.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: cil_strpool_entry_destroy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_strpool.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: "int cil_strpool_entry_destroy(hashtab_key_t k __attribute__((unused)),\n\t\t\t\t
      \    hashtab_datum_t d,\n\t\t\t\t     void *args __attribute__((unused)))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/selinux/libsepol/cil/src/cil_strpool.c:102,1
    - Dst: hashtab_create
      Src: /src/selinux/libsepol/cil/src/cil_strpool.c:104,1
    - Dst: pthread_mutex_unlock
      Src: /src/selinux/libsepol/cil/src/cil_strpool.c:108,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_strpool.c:109,1
    - Dst: exit
      Src: /src/selinux/libsepol/cil/src/cil_strpool.c:110,1
    - Dst: pthread_mutex_unlock
      Src: /src/selinux/libsepol/cil/src/cil_strpool.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 115
    functionName: cil_strpool_init
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_strpool.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - cil_log
    - hashtab_create
    - exit
    linkageType: ''
    returnType: void
    signature: void cil_strpool_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/selinux/libsepol/cil/src/cil_strpool.c:119,1
    - Dst: hashtab_map
      Src: /src/selinux/libsepol/cil/src/cil_strpool.c:122,1
    - Dst: hashtab_destroy
      Src: /src/selinux/libsepol/cil/src/cil_strpool.c:123,1
    - Dst: pthread_mutex_unlock
      Src: /src/selinux/libsepol/cil/src/cil_strpool.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 127
    functionName: cil_strpool_destroy
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_strpool.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_lock
    - hashtab_destroy
    - hashtab_map
    - pthread_mutex_unlock
    linkageType: ''
    returnType: void
    signature: void cil_strpool_destroy(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_find.c:49,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_find.c:50,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_find.c:61,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_find.c:67,1
    - Dst: ebitmap_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:76,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 2
    argNames:
    - d1
    - d2
    argTypes:
    - struct cil_symtab_datum*
    - struct cil_symtab_datum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 81
    functionName: cil_type_match_any
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_find.c
    functionUses: 0
    functionsReached:
    - ebitmap_get_bit
    - FLAVOR
    - ebitmap_match_any
    linkageType: ''
    returnType: int
    signature: "int cil_type_match_any(struct cil_symtab_datum *d1,\n\t\t\t      struct
      cil_symtab_datum *d2)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_find.c:87,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_find.c:88,1
    - Dst: ebitmap_and
      Src: /src/selinux/libsepol/cil/src/cil_find.c:93,1
    - Dst: ebitmap_init
      Src: /src/selinux/libsepol/cil/src/cil_find.c:95,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_find.c:100,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_find.c:106,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_find.c:107,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/libsepol/cil/src/cil_find.c:113,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/libsepol/cil/src/cil_find.c:114,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_find.c:118,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - matches
    - d1
    - d2
    argTypes:
    - ebitmap_t*
    - struct cil_symtab_datum*
    - struct cil_symtab_datum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 123
    functionName: cil_type_matches
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_find.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - ebitmap_and
    - ebitmap_set_bit
    - ebitmap_get_bit
    - FLAVOR
    linkageType: ''
    returnType: int
    signature: "int cil_type_matches(ebitmap_t *matches, struct cil_symtab_datum *d1,\n\t\t\t
      \   struct cil_symtab_datum *d2)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_find.c:135,1
    - Dst: cil_type_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:136,1
    - Dst: cil_type_matches
      Src: /src/selinux/libsepol/cil/src/cil_find.c:140,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/cil/src/cil_find.c:144,1
    - Dst: ebitmap_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:147,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_find.c:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - s1
    - s2
    - t2
    argTypes:
    - struct cil_symtab_datum*
    - struct cil_symtab_datum*
    - struct cil_symtab_datum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 152
    functionName: cil_self_match_any
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_find.c
    functionUses: 0
    functionsReached:
    - cil_type_matches
    - ebitmap_destroy
    - cil_type_match_any
    - ebitmap_is_empty
    - FLAVOR
    - ebitmap_match_any
    linkageType: ''
    returnType: int
    signature: "int cil_self_match_any(struct cil_symtab_datum *s1,\n\t\t\t      struct
      cil_symtab_datum *s2,\n\t\t\t      struct cil_symtab_datum *t2)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_find.c:166,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_find.c:168,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_find.c:176,1
    - Dst: cil_type_matches
      Src: /src/selinux/libsepol/cil/src/cil_find.c:184,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/cil/src/cil_find.c:188,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_find.c:191,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_find.c:193,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_find.c:195,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_find.c:202,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_find.c:203,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_find.c:206,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_find.c:212,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 3
    argNames:
    - s1
    - s2
    - t2
    argTypes:
    - struct cil_symtab_datum*
    - struct cil_symtab_datum*
    - struct cil_symtab_datum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 216
    functionName: cil_notself_match_any
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_find.c
    functionUses: 0
    functionsReached:
    - cil_type_matches
    - ebitmap_destroy
    - ebitmap_for_each_positive_bit
    - ebitmap_is_empty
    - FLAVOR
    linkageType: ''
    returnType: int
    signature: "int cil_notself_match_any(struct cil_symtab_datum *s1,\n\t\t\t\t struct
      cil_symtab_datum *s2,\n\t\t\t\t struct cil_symtab_datum *t2)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_find.c:231,1
    - Dst: cil_type_matches
      Src: /src/selinux/libsepol/cil/src/cil_find.c:235,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/cil/src/cil_find.c:240,1
    - Dst: cil_type_matches
      Src: /src/selinux/libsepol/cil/src/cil_find.c:244,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_find.c:246,1
    - Dst: ebitmap_is_empty
      Src: /src/selinux/libsepol/cil/src/cil_find.c:250,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_find.c:251,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_find.c:255,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/libsepol/cil/src/cil_find.c:256,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_find.c:267,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/libsepol/cil/src/cil_find.c:268,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 3
    argNames:
    - s1
    - s2
    - t2
    argTypes:
    - struct cil_symtab_datum*
    - struct cil_symtab_datum*
    - struct cil_symtab_datum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 270
    functionName: cil_other_match_any
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_find.c
    functionUses: 0
    functionsReached:
    - cil_type_matches
    - ebitmap_destroy
    - ebitmap_for_each_positive_bit
    - ebitmap_is_empty
    - FLAVOR
    linkageType: ''
    returnType: int
    signature: "int cil_other_match_any(struct cil_symtab_datum *s1,\n\t\t\t       struct
      cil_symtab_datum *s2,\n\t\t\t       struct cil_symtab_datum *t2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_find.c:278,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/libsepol/cil/src/cil_find.c:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s2
    argTypes:
    - struct cil_symtab_datum*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 285
    functionName: cil_notself_other_match_any
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_find.c
    functionUses: 0
    functionsReached:
    - ebitmap_cardinality
    - FLAVOR
    linkageType: ''
    returnType: int
    signature: int cil_notself_other_match_any(struct cil_symtab_datum *s2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_find.c:297,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_find.c:299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - cp1
    - cp2
    argTypes:
    - struct cil_classperms*
    - struct cil_classperms*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 306
    functionName: cil_classperms_match_any
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_find.c
    functionUses: 3
    functionsReached:
    - cil_list_for_each
    linkageType: ''
    returnType: int
    signature: "int cil_classperms_match_any(struct cil_classperms *cp1,\n\t\t\t\t
      \   struct cil_classperms *cp2)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_find.c:317,1
    - Dst: cil_classperms_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:318,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_find.c:323,1
    - Dst: __cil_classperms_list_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:325,1
    - Dst: __cil_classperms_list_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:334,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - cp1
    - cpl2
    argTypes:
    - struct cil_classperms*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 341
    functionName: __cil_classperms_list_match_any
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_find.c
    functionUses: 1
    functionsReached:
    - __cil_classperms_list_match_any
    - cil_list_for_each
    - FLAVOR
    - cil_classperms_match_any
    linkageType: ''
    returnType: int
    signature: "int __cil_classperms_list_match_any(struct cil_classperms *cp1,\n\t\t\t\t\t
      \  struct cil_list *cpl2)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_find.c:317,1
    - Dst: cil_classperms_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:318,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_find.c:323,1
    - Dst: __cil_classperms_list_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:325,1
    - Dst: __cil_classperms_list_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:334,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 339
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_find.c
    functionUses: 84
    functionsReached:
    - __cil_classperms_list_match_any
    - cil_list_for_each
    - FLAVOR
    - cil_classperms_match_any
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, cpl2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_find.c:352,1
    - Dst: __cil_classperms_list_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:353,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_find.c:358,1
    - Dst: cil_classperms_list_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:360,1
    - Dst: cil_classperms_list_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:369,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - cpl1
    - cpl2
    argTypes:
    - struct cil_list*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 376
    functionName: cil_classperms_list_match_any
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_find.c
    functionUses: 8
    functionsReached:
    - __cil_classperms_list_match_any
    - cil_list_for_each
    - FLAVOR
    - cil_classperms_list_match_any
    linkageType: ''
    returnType: int
    signature: "int cil_classperms_list_match_any(struct cil_list *cpl1,\n\t\t\t\t\t
      struct cil_list *cpl2)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_find.c:352,1
    - Dst: __cil_classperms_list_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:353,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_find.c:358,1
    - Dst: cil_classperms_list_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:360,1
    - Dst: cil_classperms_list_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:369,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 374
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_find.c
    functionUses: 86
    functionsReached:
    - __cil_classperms_list_match_any
    - cil_list_for_each
    - FLAVOR
    - cil_classperms_list_match_any
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, cpl1)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_find.c:386,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_find.c:387,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_find.c:391,1
    - Dst: __add_classes_from_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_find.c:393,1
    - Dst: __add_classes_from_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_find.c:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - classperms
    - class_list
    argTypes:
    - struct cil_list*
    - struct cil_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 378
    functionDepth: 3
    functionLinenumber: 378
    functionLinenumberEnd: 404
    functionName: __add_classes_from_classperms_list
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_find.c
    functionUses: 1
    functionsReached:
    - __add_classes_from_classperms_list
    - cil_list_for_each
    - FLAVOR
    - cil_list_append
    linkageType: ''
    returnType: void
    signature: "void __add_classes_from_classperms_list(struct cil_list *classperms,\n\t\t\t\t\t
      \      struct cil_list *class_list)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_find.c:386,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_find.c:387,1
    - Dst: cil_list_for_each
      Src: /src/selinux/libsepol/cil/src/cil_find.c:391,1
    - Dst: __add_classes_from_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_find.c:393,1
    - Dst: __add_classes_from_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_find.c:400,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 383
    functionDepth: 4
    functionLinenumber: 383
    functionLinenumberEnd: 403
    functionName: cil_list_for_each
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_find.c
    functionUses: 88
    functionsReached:
    - __add_classes_from_classperms_list
    - cil_list_for_each
    - FLAVOR
    - cil_list_append
    linkageType: ''
    returnType: void
    signature: void cil_list_for_each(curr, classperms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __add_classes_from_classperms_list
      Src: /src/selinux/libsepol/cil/src/cil_find.c:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 406
    functionDepth: 4
    functionLinenumber: 406
    functionLinenumberEnd: 415
    functionName: __add_classes_from_map_perms
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_find.c
    functionUses: 0
    functionsReached:
    - __add_classes_from_classperms_list
    linkageType: ''
    returnType: int
    signature: "int __add_classes_from_map_perms(__attribute__((unused)) hashtab_key_t
      k,\n\t\t\t\t\thashtab_datum_t d, void *args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_list_init
      Src: /src/selinux/libsepol/cil/src/cil_find.c:421,1
    - Dst: FLAVOR
      Src: /src/selinux/libsepol/cil/src/cil_find.c:423,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_find.c:424,1
    - Dst: cil_symtab_map
      Src: /src/selinux/libsepol/cil/src/cil_find.c:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - class
    argTypes:
    - struct cil_class*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 417
    functionDepth: 3
    functionLinenumber: 417
    functionLinenumberEnd: 431
    functionName: cil_expand_class
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_find.c
    functionUses: 22
    functionsReached:
    - cil_list_init
    - cil_symtab_map
    - FLAVOR
    - cil_list_append
    linkageType: ''
    returnType: struct cil_list
    signature: struct cil_list *cil_expand_class(struct cil_class *class)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:443,1
    - Dst: cil_expand_class
      Src: /src/selinux/libsepol/cil/src/cil_find.c:446,1
    - Dst: cil_expand_class
      Src: /src/selinux/libsepol/cil/src/cil_find.c:447,1
    - Dst: cil_list_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:449,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_find.c:455,1
    - Dst: cil_list_destroy
      Src: /src/selinux/libsepol/cil/src/cil_find.c:456,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - px1
    - px2
    argTypes:
    - struct cil_permissionx*
    - struct cil_permissionx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 433
    functionDepth: 4
    functionLinenumber: 433
    functionLinenumberEnd: 459
    functionName: cil_permissionx_match_any
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_find.c
    functionUses: 0
    functionsReached:
    - cil_list_destroy
    - cil_list_match_any
    - cil_expand_class
    - ebitmap_match_any
    linkageType: ''
    returnType: int
    signature: "int cil_permissionx_match_any(struct cil_permissionx *px1,\n\t\t\t\t
      \    struct cil_permissionx *px2)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: cil_type_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:481,1
    - Dst: cil_self_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:492,1
    - Dst: cil_notself_other_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:501,1
    - Dst: cil_notself_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:503,1
    - Dst: cil_notself_other_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:509,1
    - Dst: cil_other_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:514,1
    - Dst: cil_self_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:518,1
    - Dst: cil_notself_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:520,1
    - Dst: cil_other_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:522,1
    - Dst: cil_type_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:524,1
    - Dst: cil_classperms_list_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:536,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_find.c:538,1
    - Dst: cil_permissionx_match_any
      Src: /src/selinux/libsepol/cil/src/cil_find.c:541,1
    - Dst: cil_list_append
      Src: /src/selinux/libsepol/cil/src/cil_find.c:543,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 83
    argCount: 5
    argNames:
    - node
    - avrule
    - target
    - matching
    - match_self
    argTypes:
    - struct cil_tree_node*
    - struct cil_avrule*
    - struct cil_avrule*
    - struct cil_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 461
    functionDepth: 5
    functionLinenumber: 461
    functionLinenumberEnd: 551
    functionName: cil_find_matching_avrule
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_find.c
    functionUses: 0
    functionsReached:
    - cil_notself_other_match_any
    - cil_other_match_any
    - cil_self_match_any
    - cil_type_match_any
    - cil_classperms_list_match_any
    - cil_list_append
    - cil_notself_match_any
    - cil_permissionx_match_any
    linkageType: ''
    returnType: int
    signature: "int cil_find_matching_avrule(struct cil_tree_node *node,\n\t\t\t\t
      \   struct cil_avrule *avrule,\n\t\t\t\t    struct cil_avrule *target,\n\t\t\t\t
      \   struct cil_list *matching, int match_self)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cil_find_matching_avrule
      Src: /src/selinux/libsepol/cil/src/cil_find.c:571,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - node
    - finished
    - extra_args
    argTypes:
    - struct cil_tree_node*
    - uint32_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 553
    functionDepth: 6
    functionLinenumber: 553
    functionLinenumberEnd: 580
    functionName: __cil_find_matching_avrule_in_ast
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_find.c
    functionUses: 0
    functionsReached:
    - cil_find_matching_avrule
    linkageType: ''
    returnType: int
    signature: "int __cil_find_matching_avrule_in_ast(struct cil_tree_node *node,\n\t\t\t\t\t
      \    uint32_t *finished,\n\t\t\t\t\t     void *extra_args)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cil_tree_walk
      Src: /src/selinux/libsepol/cil/src/cil_find.c:594,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_find.c:597,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - current
    - flavor
    - target
    - matching
    - match_self
    argTypes:
    - struct cil_tree_node*
    - enum cil_flavor
    - void*
    - struct cil_list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 582
    functionDepth: 7
    functionLinenumber: 582
    functionLinenumberEnd: 602
    functionName: cil_find_matching_avrule_in_ast
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_find.c
    functionUses: 3
    functionsReached:
    - cil_log
    - cil_tree_walk
    linkageType: ''
    returnType: int
    signature: "int cil_find_matching_avrule_in_ast(struct cil_tree_node *current,\n\t\t\t\t
      \   enum cil_flavor flavor, void *target,\n\t\t\t\t    struct cil_list *matching,
      int match_self)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsepol/cil/src/cil_mem.c:40,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_mem.c:45,1
    - Dst: exit
      Src: /src/selinux/libsepol/cil/src/cil_mem.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 50
    functionName: cil_malloc
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_mem.c
    functionUses: 150
    functionsReached:
    - cil_log
    - exit
    - malloc
    linkageType: ''
    returnType: void
    signature: void *cil_malloc(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsepol/cil/src/cil_mem.c:54,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_mem.c:56,1
    - Dst: exit
      Src: /src/selinux/libsepol/cil/src/cil_mem.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - num_elements
    - element_size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: cil_calloc
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_mem.c
    functionUses: 5
    functionsReached:
    - cil_log
    - exit
    - calloc
    linkageType: ''
    returnType: void
    signature: void *cil_calloc(size_t num_elements, size_t element_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/selinux/libsepol/cil/src/cil_mem.c:65,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_mem.c:70,1
    - Dst: exit
      Src: /src/selinux/libsepol/cil/src/cil_mem.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 75
    functionName: cil_realloc
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_mem.c
    functionUses: 0
    functionsReached:
    - cil_log
    - exit
    - realloc
    linkageType: ''
    returnType: void
    signature: void *cil_realloc(void *ptr, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_mul_overflow
      Src: /src/selinux/libsepol/cil/src/cil_mem.c:81,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_mem.c:82,1
    - Dst: exit
      Src: /src/selinux/libsepol/cil/src/cil_mem.c:83,1
    - Dst: cil_realloc
      Src: /src/selinux/libsepol/cil/src/cil_mem.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ptr
    - nmemb
    - size
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 87
    functionName: cil_reallocarray
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_mem.c
    functionUses: 1
    functionsReached:
    - cil_log
    - cil_realloc
    - __builtin_mul_overflow
    - exit
    linkageType: ''
    returnType: void
    signature: void *cil_reallocarray(void *ptr, size_t nmemb, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libsepol/cil/src/cil_mem.c:97,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_mem.c:99,1
    - Dst: exit
      Src: /src/selinux/libsepol/cil/src/cil_mem.c:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 104
    functionName: cil_strdup
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_mem.c
    functionUses: 26
    functionsReached:
    - cil_log
    - exit
    - strdup
    linkageType: ''
    returnType: char
    signature: char *cil_strdup(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/selinux/libsepol/cil/src/cil_mem.c:106,1
    - Dst: va_start
      Src: /src/selinux/libsepol/cil/src/cil_mem.c:112,1
    - Dst: vasprintf
      Src: /src/selinux/libsepol/cil/src/cil_mem.c:113,1
    - Dst: va_end
      Src: /src/selinux/libsepol/cil/src/cil_mem.c:114,1
    - Dst: cil_log
      Src: /src/selinux/libsepol/cil/src/cil_mem.c:117,1
    - Dst: exit
      Src: /src/selinux/libsepol/cil/src/cil_mem.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - strp
    - fmt
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 122
    functionName: cil_asprintf
    functionSourceFile: /src/selinux/libsepol/cil/src/cil_mem.c
    functionUses: 2
    functionsReached:
    - va_end
    - format
    - cil_log
    - vasprintf
    - va_start
    - exit
    linkageType: ''
    returnType: int
    signature: "int cil_asprintf(char **strp,\n\t\t\t\t\t\t       const char *fmt,
      ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/secilc/secil2conf.c:46,1
    - Dst: printf
      Src: /src/selinux/secilc/secil2conf.c:47,1
    - Dst: printf
      Src: /src/selinux/secilc/secil2conf.c:48,1
    - Dst: printf
      Src: /src/selinux/secilc/secil2conf.c:49,1
    - Dst: printf
      Src: /src/selinux/secilc/secil2conf.c:50,1
    - Dst: printf
      Src: /src/selinux/secilc/secil2conf.c:51,1
    - Dst: printf
      Src: /src/selinux/secilc/secil2conf.c:52,1
    - Dst: printf
      Src: /src/selinux/secilc/secil2conf.c:53,1
    - Dst: printf
      Src: /src/selinux/secilc/secil2conf.c:54,1
    - Dst: printf
      Src: /src/selinux/secilc/secil2conf.c:55,1
    - Dst: printf
      Src: /src/selinux/secilc/secil2conf.c:56,1
    - Dst: printf
      Src: /src/selinux/secilc/secil2conf.c:57,1
    - Dst: printf
      Src: /src/selinux/secilc/secil2conf.c:58,1
    - Dst: printf
      Src: /src/selinux/secilc/secil2conf.c:59,1
    - Dst: exit
      Src: /src/selinux/secilc/secil2conf.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - prog
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 61
    functionName: usage
    functionSourceFile: /src/selinux/secilc/secil2conf.c
    functionUses: 2
    functionsReached:
    - printf
    - exit
    linkageType: ''
    returnType: void
    signature: void usage(const char *prog)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/selinux/secilc/secil2conf.c:90,1
    - Dst: strcasecmp
      Src: /src/selinux/secilc/secil2conf.c:100,1
    - Dst: strcasecmp
      Src: /src/selinux/secilc/secil2conf.c:101,1
    - Dst: strcasecmp
      Src: /src/selinux/secilc/secil2conf.c:103,1
    - Dst: strcasecmp
      Src: /src/selinux/secilc/secil2conf.c:104,1
    - Dst: usage
      Src: /src/selinux/secilc/secil2conf.c:107,1
    - Dst: free
      Src: /src/selinux/secilc/secil2conf.c:117,1
    - Dst: strdup
      Src: /src/selinux/secilc/secil2conf.c:118,1
    - Dst: usage
      Src: /src/selinux/secilc/secil2conf.c:121,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secil2conf.c:125,1
    - Dst: usage
      Src: /src/selinux/secilc/secil2conf.c:126,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secil2conf.c:130,1
    - Dst: usage
      Src: /src/selinux/secilc/secil2conf.c:131,1
    - Dst: cil_set_log_level
      Src: /src/selinux/secilc/secil2conf.c:134,1
    - Dst: cil_db_init
      Src: /src/selinux/secilc/secil2conf.c:136,1
    - Dst: cil_set_preserve_tunables
      Src: /src/selinux/secilc/secil2conf.c:137,1
    - Dst: cil_set_qualified_names
      Src: /src/selinux/secilc/secil2conf.c:138,1
    - Dst: cil_set_mls
      Src: /src/selinux/secilc/secil2conf.c:139,1
    - Dst: cil_set_attrs_expand_generated
      Src: /src/selinux/secilc/secil2conf.c:140,1
    - Dst: cil_set_attrs_expand_size
      Src: /src/selinux/secilc/secil2conf.c:141,1
    - Dst: fopen
      Src: /src/selinux/secilc/secil2conf.c:144,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secil2conf.c:146,1
    - Dst: fstat
      Src: /src/selinux/secilc/secil2conf.c:150,1
    - Dst: fileno
      Src: /src/selinux/secilc/secil2conf.c:150,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secil2conf.c:152,1
    - Dst: malloc
      Src: /src/selinux/secilc/secil2conf.c:157,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secil2conf.c:159,1
    - Dst: fread
      Src: /src/selinux/secilc/secil2conf.c:164,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secil2conf.c:166,1
    - Dst: fclose
      Src: /src/selinux/secilc/secil2conf.c:169,1
    - Dst: cil_add_file
      Src: /src/selinux/secilc/secil2conf.c:172,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secil2conf.c:174,1
    - Dst: free
      Src: /src/selinux/secilc/secil2conf.c:178,1
    - Dst: cil_compile
      Src: /src/selinux/secilc/secil2conf.c:182,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secil2conf.c:184,1
    - Dst: fopen
      Src: /src/selinux/secilc/secil2conf.c:189,1
    - Dst: fopen
      Src: /src/selinux/secilc/secil2conf.c:191,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secil2conf.c:194,1
    - Dst: cil_write_policy_conf
      Src: /src/selinux/secilc/secil2conf.c:200,1
    - Dst: fclose
      Src: /src/selinux/secilc/secil2conf.c:202,1
    - Dst: fclose
      Src: /src/selinux/secilc/secil2conf.c:208,1
    - Dst: free
      Src: /src/selinux/secilc/secil2conf.c:210,1
    - Dst: free
      Src: /src/selinux/secilc/secil2conf.c:211,1
    - Dst: cil_db_destroy
      Src: /src/selinux/secilc/secil2conf.c:212,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 119
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 63
    functionDepth: 8
    functionLinenumber: 63
    functionLinenumberEnd: 214
    functionName: main
    functionSourceFile: /src/selinux/secilc/secil2conf.c
    functionUses: 0
    functionsReached:
    - cil_write_policy_conf
    - cil_set_log_level
    - fileno
    - fopen
    - cil_set_qualified_names
    - fprintf
    - cil_db_destroy
    - cil_set_preserve_tunables
    - cil_db_init
    - cil_add_file
    - malloc
    - free
    - fstat
    - cil_set_attrs_expand_generated
    - strcasecmp
    - cil_set_mls
    - cil_set_attrs_expand_size
    - strdup
    - cil_compile
    - fclose
    - getopt_long
    - usage
    - fread
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/secilc/secil2tree.c:53,1
    - Dst: printf
      Src: /src/selinux/secilc/secil2tree.c:54,1
    - Dst: printf
      Src: /src/selinux/secilc/secil2tree.c:55,1
    - Dst: printf
      Src: /src/selinux/secilc/secil2tree.c:56,1
    - Dst: printf
      Src: /src/selinux/secilc/secil2tree.c:57,1
    - Dst: printf
      Src: /src/selinux/secilc/secil2tree.c:58,1
    - Dst: printf
      Src: /src/selinux/secilc/secil2tree.c:59,1
    - Dst: printf
      Src: /src/selinux/secilc/secil2tree.c:60,1
    - Dst: printf
      Src: /src/selinux/secilc/secil2tree.c:61,1
    - Dst: printf
      Src: /src/selinux/secilc/secil2tree.c:62,1
    - Dst: printf
      Src: /src/selinux/secilc/secil2tree.c:63,1
    - Dst: printf
      Src: /src/selinux/secilc/secil2tree.c:64,1
    - Dst: exit
      Src: /src/selinux/secilc/secil2tree.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - prog
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 66
    functionName: usage
    functionSourceFile: /src/selinux/secilc/secil2tree.c
    functionUses: 3
    functionsReached:
    - printf
    - exit
    linkageType: ''
    returnType: void
    signature: void usage(const char *prog)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/selinux/secilc/secil2tree.c:95,1
    - Dst: strdup
      Src: /src/selinux/secilc/secil2tree.c:111,1
    - Dst: strcasecmp
      Src: /src/selinux/secilc/secil2tree.c:114,1
    - Dst: strcasecmp
      Src: /src/selinux/secilc/secil2tree.c:116,1
    - Dst: strcasecmp
      Src: /src/selinux/secilc/secil2tree.c:118,1
    - Dst: strcasecmp
      Src: /src/selinux/secilc/secil2tree.c:120,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secil2tree.c:123,1
    - Dst: usage
      Src: /src/selinux/secilc/secil2tree.c:125,1
    - Dst: usage
      Src: /src/selinux/secilc/secil2tree.c:129,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secil2tree.c:133,1
    - Dst: usage
      Src: /src/selinux/secilc/secil2tree.c:134,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secil2tree.c:139,1
    - Dst: usage
      Src: /src/selinux/secilc/secil2tree.c:140,1
    - Dst: cil_set_log_level
      Src: /src/selinux/secilc/secil2tree.c:143,1
    - Dst: cil_db_init
      Src: /src/selinux/secilc/secil2tree.c:145,1
    - Dst: cil_set_preserve_tunables
      Src: /src/selinux/secilc/secil2tree.c:146,1
    - Dst: cil_set_qualified_names
      Src: /src/selinux/secilc/secil2tree.c:147,1
    - Dst: cil_set_attrs_expand_generated
      Src: /src/selinux/secilc/secil2tree.c:148,1
    - Dst: cil_set_attrs_expand_size
      Src: /src/selinux/secilc/secil2tree.c:149,1
    - Dst: fopen
      Src: /src/selinux/secilc/secil2tree.c:152,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secil2tree.c:154,1
    - Dst: fstat
      Src: /src/selinux/secilc/secil2tree.c:158,1
    - Dst: fileno
      Src: /src/selinux/secilc/secil2tree.c:158,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secil2tree.c:160,1
    - Dst: malloc
      Src: /src/selinux/secilc/secil2tree.c:165,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secil2tree.c:167,1
    - Dst: fread
      Src: /src/selinux/secilc/secil2tree.c:172,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secil2tree.c:174,1
    - Dst: fclose
      Src: /src/selinux/secilc/secil2tree.c:177,1
    - Dst: cil_add_file
      Src: /src/selinux/secilc/secil2tree.c:180,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secil2tree.c:182,1
    - Dst: free
      Src: /src/selinux/secilc/secil2tree.c:186,1
    - Dst: fopen
      Src: /src/selinux/secilc/secil2tree.c:193,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secil2tree.c:195,1
    - Dst: cil_write_parse_ast
      Src: /src/selinux/secilc/secil2tree.c:204,1
    - Dst: cil_write_build_ast
      Src: /src/selinux/secilc/secil2tree.c:207,1
    - Dst: cil_write_resolve_ast
      Src: /src/selinux/secilc/secil2tree.c:210,1
    - Dst: cil_write_post_ast
      Src: /src/selinux/secilc/secil2tree.c:213,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secil2tree.c:218,1
    - Dst: fclose
      Src: /src/selinux/secilc/secil2tree.c:224,1
    - Dst: free
      Src: /src/selinux/secilc/secil2tree.c:226,1
    - Dst: free
      Src: /src/selinux/secilc/secil2tree.c:227,1
    - Dst: cil_db_destroy
      Src: /src/selinux/secilc/secil2tree.c:228,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 133
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 68
    functionDepth: 4
    functionLinenumber: 68
    functionLinenumberEnd: 230
    functionName: main
    functionSourceFile: /src/selinux/secilc/secil2tree.c
    functionUses: 0
    functionsReached:
    - cil_set_log_level
    - fileno
    - fopen
    - cil_set_qualified_names
    - fprintf
    - cil_db_destroy
    - cil_write_post_ast
    - cil_set_preserve_tunables
    - cil_db_init
    - cil_add_file
    - malloc
    - free
    - fstat
    - cil_set_attrs_expand_generated
    - strcasecmp
    - cil_set_attrs_expand_size
    - cil_write_build_ast
    - strdup
    - cil_write_resolve_ast
    - fclose
    - getopt_long
    - cil_write_parse_ast
    - usage
    - fread
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:46,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:47,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:48,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:49,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:50,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:51,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:52,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:53,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:54,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:55,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:56,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:57,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:58,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:59,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:61,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:62,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:63,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:64,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:65,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:66,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:67,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:68,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:69,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:70,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:71,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:72,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:73,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:74,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:75,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:76,1
    - Dst: printf
      Src: /src/selinux/secilc/secilc.c:77,1
    - Dst: exit
      Src: /src/selinux/secilc/secilc.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 1
    argNames:
    - prog
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 79
    functionName: usage
    functionSourceFile: /src/selinux/secilc/secilc.c
    functionUses: 4
    functionsReached:
    - printf
    - exit
    linkageType: ''
    returnType: void
    signature: void usage(const char *prog)
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/selinux/secilc/secilc.c:134,1
    - Dst: strcmp
      Src: /src/selinux/secilc/secilc.c:144,1
    - Dst: strcmp
      Src: /src/selinux/secilc/secilc.c:146,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilc.c:149,1
    - Dst: usage
      Src: /src/selinux/secilc/secilc.c:150,1
    - Dst: strcasecmp
      Src: /src/selinux/secilc/secilc.c:154,1
    - Dst: strcasecmp
      Src: /src/selinux/secilc/secilc.c:155,1
    - Dst: strcasecmp
      Src: /src/selinux/secilc/secilc.c:157,1
    - Dst: strcasecmp
      Src: /src/selinux/secilc/secilc.c:158,1
    - Dst: usage
      Src: /src/selinux/secilc/secilc.c:161,1
    - Dst: strtol
      Src: /src/selinux/secilc/secilc.c:167,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilc.c:169,1
    - Dst: usage
      Src: /src/selinux/secilc/secilc.c:171,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilc.c:175,1
    - Dst: usage
      Src: /src/selinux/secilc/secilc.c:179,1
    - Dst: strcasecmp
      Src: /src/selinux/secilc/secilc.c:184,1
    - Dst: strcasecmp
      Src: /src/selinux/secilc/secilc.c:186,1
    - Dst: strcasecmp
      Src: /src/selinux/secilc/secilc.c:188,1
    - Dst: usage
      Src: /src/selinux/secilc/secilc.c:191,1
    - Dst: free
      Src: /src/selinux/secilc/secilc.c:210,1
    - Dst: strdup
      Src: /src/selinux/secilc/secilc.c:211,1
    - Dst: free
      Src: /src/selinux/secilc/secilc.c:214,1
    - Dst: strdup
      Src: /src/selinux/secilc/secilc.c:215,1
    - Dst: strtol
      Src: /src/selinux/secilc/secilc.c:223,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilc.c:225,1
    - Dst: usage
      Src: /src/selinux/secilc/secilc.c:228,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilc.c:232,1
    - Dst: usage
      Src: /src/selinux/secilc/secilc.c:234,1
    - Dst: usage
      Src: /src/selinux/secilc/secilc.c:242,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilc.c:246,1
    - Dst: usage
      Src: /src/selinux/secilc/secilc.c:247,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilc.c:251,1
    - Dst: usage
      Src: /src/selinux/secilc/secilc.c:252,1
    - Dst: cil_set_log_level
      Src: /src/selinux/secilc/secilc.c:255,1
    - Dst: cil_db_init
      Src: /src/selinux/secilc/secilc.c:257,1
    - Dst: cil_set_disable_dontaudit
      Src: /src/selinux/secilc/secilc.c:258,1
    - Dst: cil_set_multiple_decls
      Src: /src/selinux/secilc/secilc.c:259,1
    - Dst: cil_set_disable_neverallow
      Src: /src/selinux/secilc/secilc.c:260,1
    - Dst: cil_set_preserve_tunables
      Src: /src/selinux/secilc/secilc.c:261,1
    - Dst: cil_set_qualified_names
      Src: /src/selinux/secilc/secilc.c:262,1
    - Dst: cil_set_handle_unknown
      Src: /src/selinux/secilc/secilc.c:264,1
    - Dst: cil_set_mls
      Src: /src/selinux/secilc/secilc.c:270,1
    - Dst: cil_set_target_platform
      Src: /src/selinux/secilc/secilc.c:271,1
    - Dst: cil_set_policy_version
      Src: /src/selinux/secilc/secilc.c:272,1
    - Dst: cil_set_attrs_expand_generated
      Src: /src/selinux/secilc/secilc.c:273,1
    - Dst: cil_set_attrs_expand_size
      Src: /src/selinux/secilc/secilc.c:275,1
    - Dst: fopen
      Src: /src/selinux/secilc/secilc.c:279,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilc.c:281,1
    - Dst: fstat
      Src: /src/selinux/secilc/secilc.c:285,1
    - Dst: fileno
      Src: /src/selinux/secilc/secilc.c:285,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilc.c:287,1
    - Dst: fclose
      Src: /src/selinux/secilc/secilc.c:294,1
    - Dst: malloc
      Src: /src/selinux/secilc/secilc.c:299,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilc.c:301,1
    - Dst: fread
      Src: /src/selinux/secilc/secilc.c:306,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilc.c:308,1
    - Dst: fclose
      Src: /src/selinux/secilc/secilc.c:312,1
    - Dst: cil_add_file
      Src: /src/selinux/secilc/secilc.c:315,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilc.c:317,1
    - Dst: free
      Src: /src/selinux/secilc/secilc.c:321,1
    - Dst: cil_compile
      Src: /src/selinux/secilc/secilc.c:325,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilc.c:327,1
    - Dst: cil_build_policydb
      Src: /src/selinux/secilc/secilc.c:331,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilc.c:333,1
    - Dst: sepol_policydb_optimize
      Src: /src/selinux/secilc/secilc.c:338,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilc.c:340,1
    - Dst: snprintf
      Src: /src/selinux/secilc/secilc.c:346,1
    - Dst: malloc
      Src: /src/selinux/secilc/secilc.c:347,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilc.c:349,1
    - Dst: snprintf
      Src: /src/selinux/secilc/secilc.c:353,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilc.c:355,1
    - Dst: fopen
      Src: /src/selinux/secilc/secilc.c:361,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilc.c:363,1
    - Dst: sepol_policy_file_create
      Src: /src/selinux/secilc/secilc.c:368,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilc.c:370,1
    - Dst: sepol_policy_file_set_fp
      Src: /src/selinux/secilc/secilc.c:374,1
    - Dst: sepol_policydb_write
      Src: /src/selinux/secilc/secilc.c:376,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilc.c:378,1
    - Dst: fclose
      Src: /src/selinux/secilc/secilc.c:382,1
    - Dst: cil_filecons_to_string
      Src: /src/selinux/secilc/secilc.c:385,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilc.c:387,1
    - Dst: fopen
      Src: /src/selinux/secilc/secilc.c:392,1
    - Dst: fopen
      Src: /src/selinux/secilc/secilc.c:394,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilc.c:398,1
    - Dst: fwrite
      Src: /src/selinux/secilc/secilc.c:403,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilc.c:404,1
    - Dst: fclose
      Src: /src/selinux/secilc/secilc.c:409,1
    - Dst: fclose
      Src: /src/selinux/secilc/secilc.c:416,1
    - Dst: fclose
      Src: /src/selinux/secilc/secilc.c:419,1
    - Dst: free
      Src: /src/selinux/secilc/secilc.c:421,1
    - Dst: free
      Src: /src/selinux/secilc/secilc.c:422,1
    - Dst: free
      Src: /src/selinux/secilc/secilc.c:423,1
    - Dst: cil_db_destroy
      Src: /src/selinux/secilc/secilc.c:424,1
    - Dst: sepol_policydb_free
      Src: /src/selinux/secilc/secilc.c:425,1
    - Dst: sepol_policy_file_free
      Src: /src/selinux/secilc/secilc.c:426,1
    - Dst: free
      Src: /src/selinux/secilc/secilc.c:427,1
    CyclomaticComplexity: 83
    EdgeCount: 83
    ICount: 278
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 81
    functionDepth: 9
    functionLinenumber: 81
    functionLinenumberEnd: 429
    functionName: main
    functionSourceFile: /src/selinux/secilc/secilc.c
    functionUses: 0
    functionsReached:
    - sepol_policydb_write
    - sepol_policydb_free
    - fwrite
    - cil_filecons_to_string
    - strcmp
    - sepol_policydb_optimize
    - cil_set_log_level
    - fileno
    - cil_set_disable_neverallow
    - fopen
    - cil_set_qualified_names
    - fprintf
    - cil_db_destroy
    - sepol_policy_file_create
    - cil_set_preserve_tunables
    - cil_db_init
    - cil_add_file
    - malloc
    - free
    - fstat
    - strtol
    - cil_set_attrs_expand_generated
    - strcasecmp
    - cil_set_mls
    - cil_set_attrs_expand_size
    - cil_build_policydb
    - cil_set_target_platform
    - strdup
    - cil_compile
    - sepol_policy_file_free
    - fclose
    - getopt_long
    - cil_set_policy_version
    - snprintf
    - sepol_policy_file_set_fp
    - usage
    - cil_set_handle_unknown
    - cil_set_disable_dontaudit
    - fread
    - cil_set_multiple_decls
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/selinux/secilc/secilcheck.c:57,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilcheck.c:59,1
    - Dst: fstat
      Src: /src/selinux/secilc/secilcheck.c:62,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilcheck.c:63,1
    - Dst: mmap
      Src: /src/selinux/secilc/secilcheck.c:66,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilcheck.c:69,1
    - Dst: sepol_policy_file_create
      Src: /src/selinux/secilc/secilcheck.c:73,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilcheck.c:74,1
    - Dst: sepol_policy_file_set_mem
      Src: /src/selinux/secilc/secilcheck.c:77,1
    - Dst: sepol_policydb_read
      Src: /src/selinux/secilc/secilcheck.c:79,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilcheck.c:80,1
    - Dst: close
      Src: /src/selinux/secilc/secilcheck.c:89,1
    - Dst: munmap
      Src: /src/selinux/secilc/secilcheck.c:91,1
    - Dst: sepol_policy_file_free
      Src: /src/selinux/secilc/secilcheck.c:92,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - filename
    - pdb
    argTypes:
    - char*
    - sepol_policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 48
    functionDepth: 9
    functionLinenumber: 48
    functionLinenumberEnd: 94
    functionName: get_binary_policy_db
    functionSourceFile: /src/selinux/secilc/secilcheck.c
    functionUses: 0
    functionsReached:
    - sepol_policy_file_create
    - sepol_policy_file_free
    - munmap
    - mmap
    - close
    - sepol_policydb_read
    - fstat
    - open
    - sepol_policy_file_set_mem
    - fprintf
    linkageType: ''
    returnType: int
    signature: int get_binary_policy_db(const char *filename, sepol_policydb_t *pdb)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: open_memstream
      Src: /src/selinux/secilc/secilcheck.c:104,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilcheck.c:106,1
    - Dst: sepol_kernel_policydb_decls_to_cil
      Src: /src/selinux/secilc/secilcheck.c:111,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilcheck.c:112,1
    - Dst: fflush
      Src: /src/selinux/secilc/secilcheck.c:116,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilcheck.c:117,1
    - Dst: cil_add_file
      Src: /src/selinux/secilc/secilcheck.c:122,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilcheck.c:123,1
    - Dst: fclose
      Src: /src/selinux/secilc/secilcheck.c:132,1
    - Dst: free
      Src: /src/selinux/secilc/secilcheck.c:134,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - filename
    - pdb
    - db
    argTypes:
    - char*
    - sepol_policydb_t*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 96
    functionDepth: 5
    functionLinenumber: 96
    functionLinenumberEnd: 136
    functionName: add_decls_to_cil
    functionSourceFile: /src/selinux/secilc/secilcheck.c
    functionUses: 0
    functionsReached:
    - fclose
    - cil_add_file
    - sepol_kernel_policydb_decls_to_cil
    - free
    - fflush
    - open_memstream
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int add_decls_to_cil(const char *filename, sepol_policydb_t *pdb,\n\t\t\t
      \   struct cil_db *db)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/secilc/secilcheck.c:146,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilcheck.c:148,1
    - Dst: fstat
      Src: /src/selinux/secilc/secilcheck.c:151,1
    - Dst: fileno
      Src: /src/selinux/secilc/secilcheck.c:151,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilcheck.c:152,1
    - Dst: malloc
      Src: /src/selinux/secilc/secilcheck.c:162,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilcheck.c:164,1
    - Dst: fread
      Src: /src/selinux/secilc/secilcheck.c:168,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilcheck.c:169,1
    - Dst: cil_add_file
      Src: /src/selinux/secilc/secilcheck.c:173,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilcheck.c:174,1
    - Dst: fclose
      Src: /src/selinux/secilc/secilcheck.c:182,1
    - Dst: free
      Src: /src/selinux/secilc/secilcheck.c:184,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 2
    argNames:
    - filename
    - cdb
    argTypes:
    - char*
    - struct cil_db*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 186
    functionName: add_cil_file
    functionSourceFile: /src/selinux/secilc/secilcheck.c
    functionUses: 0
    functionsReached:
    - fclose
    - fread
    - cil_add_file
    - malloc
    - fileno
    - free
    - fstat
    - fopen
    - fprintf
    linkageType: ''
    returnType: int
    signature: int add_cil_file(const char *filename, struct cil_db *cdb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/secilc/secilcheck.c:190,1
    - Dst: printf
      Src: /src/selinux/secilc/secilcheck.c:192,1
    - Dst: printf
      Src: /src/selinux/secilc/secilcheck.c:193,1
    - Dst: printf
      Src: /src/selinux/secilc/secilcheck.c:194,1
    - Dst: printf
      Src: /src/selinux/secilc/secilcheck.c:195,1
    - Dst: printf
      Src: /src/selinux/secilc/secilcheck.c:196,1
    - Dst: printf
      Src: /src/selinux/secilc/secilcheck.c:197,1
    - Dst: printf
      Src: /src/selinux/secilc/secilcheck.c:198,1
    - Dst: printf
      Src: /src/selinux/secilc/secilcheck.c:199,1
    - Dst: exit
      Src: /src/selinux/secilc/secilcheck.c:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - prog
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 201
    functionName: usage
    functionSourceFile: /src/selinux/secilc/secilcheck.c
    functionUses: 5
    functionsReached:
    - printf
    - exit
    linkageType: ''
    returnType: void
    signature: void usage(const char *prog)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/selinux/secilc/secilcheck.c:224,1
    - Dst: usage
      Src: /src/selinux/secilc/secilcheck.c:239,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilcheck.c:243,1
    - Dst: usage
      Src: /src/selinux/secilc/secilcheck.c:244,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilcheck.c:249,1
    - Dst: usage
      Src: /src/selinux/secilc/secilcheck.c:250,1
    - Dst: cil_set_log_level
      Src: /src/selinux/secilc/secilcheck.c:253,1
    - Dst: cil_db_init
      Src: /src/selinux/secilc/secilcheck.c:255,1
    - Dst: cil_set_multiple_decls
      Src: /src/selinux/secilc/secilcheck.c:256,1
    - Dst: cil_set_qualified_names
      Src: /src/selinux/secilc/secilcheck.c:257,1
    - Dst: sepol_policydb_create
      Src: /src/selinux/secilc/secilcheck.c:259,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilcheck.c:260,1
    - Dst: get_binary_policy_db
      Src: /src/selinux/secilc/secilcheck.c:263,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilcheck.c:264,1
    - Dst: add_decls_to_cil
      Src: /src/selinux/secilc/secilcheck.c:268,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilcheck.c:269,1
    - Dst: add_cil_file
      Src: /src/selinux/secilc/secilcheck.c:276,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilcheck.c:277,1
    - Dst: cil_compile
      Src: /src/selinux/secilc/secilcheck.c:285,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilcheck.c:287,1
    - Dst: cil_check_neverallows_against_pdb
      Src: /src/selinux/secilc/secilcheck.c:291,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilcheck.c:293,1
    - Dst: fprintf
      Src: /src/selinux/secilc/secilcheck.c:297,1
    - Dst: cil_db_destroy
      Src: /src/selinux/secilc/secilcheck.c:305,1
    - Dst: sepol_policydb_free
      Src: /src/selinux/secilc/secilcheck.c:306,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 84
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 203
    functionDepth: 10
    functionLinenumber: 203
    functionLinenumberEnd: 308
    functionName: main
    functionSourceFile: /src/selinux/secilc/secilcheck.c
    functionUses: 0
    functionsReached:
    - cil_compile
    - cil_db_destroy
    - getopt_long
    - sepol_policydb_free
    - cil_db_init
    - usage
    - sepol_policydb_create
    - get_binary_policy_db
    - cil_set_log_level
    - add_cil_file
    - add_decls_to_cil
    - cil_check_neverallows_against_pdb
    - cil_set_qualified_names
    - fprintf
    - cil_set_multiple_decls
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 29
    functionName: usage
    functionSourceFile: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c
    functionUses: 6
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: lgetxattr
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:38,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:41,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:45,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:49,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:52,1
    - Dst: lremovexattr
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:54,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:56,1
    - Dst: openat
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:65,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:69,1
    - Dst: fstat
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:76,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:78,1
    - Dst: close
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:80,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:86,1
    - Dst: close
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:89,1
    - Dst: fdopendir
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:94,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:96,1
    - Dst: close
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:97,1
    - Dst: readdir
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:106,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:109,1
    - Dst: asprintf
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:120,1
    - Dst: strcmp
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:121,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:124,1
    - Dst: closedir
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:125,1
    - Dst: unset
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:129,1
    - Dst: dirfd
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:129,1
    - Dst: free
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:132,1
    - Dst: closedir
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:135,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 66
    argCount: 7
    argNames:
    - atfd
    - path
    - fullpath
    - dry_run
    - recursive
    - verbose
    - root_dev
    argTypes:
    - int
    - char*
    - char*
    - bool
    - bool
    - bool
    - dev_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 136
    functionName: unset
    functionSourceFile: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c
    functionUses: 1
    functionsReached:
    - readdir
    - asprintf
    - close
    - openat
    - unset
    - dirfd
    - lremovexattr
    - strcmp
    - free
    - lgetxattr
    - fstat
    - fdopendir
    - closedir
    - printf
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void unset(int atfd, const char *path, const char *fullpath,\n\t\t
      \ bool dry_run, bool recursive, bool verbose, dev_t root_dev)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:144,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:147,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:162,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:168,1
    - Dst: is_selinux_enabled
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:172,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:173,1
    - Dst: stat
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:185,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:187,1
    - Dst: unset
      Src: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c:194,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 199
    functionName: main
    functionSourceFile: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c
    functionUses: 0
    functionsReached:
    - stat
    - getopt
    - unset
    - usage
    - fprintf
    - is_selinux_enabled
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:48,1
    - Dst: sprintf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:51,1
    - Dst: readlink
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:53,1
    - Dst: strcmp
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - command
    - pid
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 64
    functionName: cmp_cmdline
    functionSourceFile: /src/selinux/policycoreutils/sestatus/sestatus.c
    functionUses: 0
    functionsReached:
    - sprintf
    - strcmp
    - memset
    - readlink
    linkageType: ''
    returnType: int
    signature: int cmp_cmdline(const char *command, int pid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getpid
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:72,1
    - Dst: opendir
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:74,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:75,1
    - Dst: realpath
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:80,1
    - Dst: readdir
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:84,1
    - Dst: strtol
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:86,1
    - Dst: cmp_cmdline
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:89,1
    - Dst: closedir
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:95,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - command
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 97
    functionName: pidof
    functionSourceFile: /src/selinux/policycoreutils/sestatus/sestatus.c
    functionUses: 0
    functionsReached:
    - readdir
    - opendir
    - cmp_cmdline
    - getpid
    - realpath
    - perror
    - closedir
    - strtol
    linkageType: ''
    returnType: int
    signature: int pidof(const char *command)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: econf_readDirs
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:110,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:113,1
    - Dst: econf_errString
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:114,1
    - Dst: econf_getKeys
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:118,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:120,1
    - Dst: econf_errString
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:121,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:126,1
    - Dst: econf_free
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:131,1
    - Dst: econf_getKeys
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:134,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:136,1
    - Dst: econf_errString
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:137,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:142,1
    - Dst: econf_free
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:147,1
    - Dst: econf_free
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:150,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 4
    argNames:
    - pc
    - npc
    - fc
    - nfc
    argTypes:
    - char*[]
    - int*
    - char*[]
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 152
    functionName: load_checks_with_vendor_settings
    functionSourceFile: /src/selinux/policycoreutils/sestatus/sestatus.c
    functionUses: 0
    functionsReached:
    - econf_errString
    - econf_free
    - econf_getKeys
    - econf_readDirs
    - printf
    - strdup
    linkageType: ''
    returnType: void
    signature: "void load_checks_with_vendor_settings(char *pc[], int *npc, char *fc[],\n\t\t\t\t\t
      \    int *nfc)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: load_checks_with_vendor_settings
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:158,1
    - Dst: fopen
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:161,1
    - Dst: strlen
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:164,1
    - Dst: strlen
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:165,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:168,1
    - Dst: feof
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:172,1
    - Dst: fgets
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:173,1
    - Dst: strlen
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:176,1
    - Dst: isspace
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:181,1
    - Dst: strncmp
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:194,1
    - Dst: strncmp
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:196,1
    - Dst: malloc
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:203,1
    - Dst: memcpy
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:207,1
    - Dst: malloc
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:215,1
    - Dst: memcpy
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:219,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:226,1
    - Dst: fclose
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:235,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 62
    argCount: 4
    argNames:
    - pc
    - npc
    - fc
    - nfc
    argTypes:
    - char*[]
    - int*
    - char*[]
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 237
    functionName: load_checks
    functionSourceFile: /src/selinux/policycoreutils/sestatus/sestatus.c
    functionUses: 0
    functionsReached:
    - strncmp
    - fclose
    - isspace
    - feof
    - malloc
    - fgets
    - load_checks_with_vendor_settings
    - memcpy
    - fopen
    - fprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: void load_checks(char *pc[], int *npc, char *fc[], int *nfc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - outp
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: printf_tab
    functionSourceFile: /src/selinux/policycoreutils/sestatus/sestatus.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void printf_tab(const char *outp)
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: ttyname
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:252,1
    - Dst: getopt
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:272,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:284,1
    - Dst: basename
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:284,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:285,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:286,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:287,1
    - Dst: printf_tab
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:291,1
    - Dst: is_selinux_enabled
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:292,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:296,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:299,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:303,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:303,1
    - Dst: printf_tab
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:308,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:310,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:312,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:313,1
    - Dst: printf_tab
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:317,1
    - Dst: selinux_path
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:318,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:320,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:320,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:324,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:326,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:326,1
    - Dst: strlen
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:330,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:331,1
    - Dst: free
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:332,1
    - Dst: printf_tab
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:335,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:336,1
    - Dst: selinux_policy_root
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:336,1
    - Dst: basename
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:338,1
    - Dst: puts
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:339,1
    - Dst: free
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:340,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:342,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:342,1
    - Dst: printf_tab
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:345,1
    - Dst: security_getenforce
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:346,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:349,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:352,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:355,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:355,1
    - Dst: printf_tab
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:359,1
    - Dst: selinux_getenforcemode
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:360,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:363,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:366,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:369,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:373,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:373,1
    - Dst: printf_tab
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:376,1
    - Dst: is_selinux_mls_enabled
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:377,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:380,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:383,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:386,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:386,1
    - Dst: printf_tab
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:390,1
    - Dst: security_deny_unknown
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:391,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:394,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:397,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:400,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:400,1
    - Dst: printf_tab
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:404,1
    - Dst: security_get_checkreqprot
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:405,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:408,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:411,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:414,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:414,1
    - Dst: security_policyvers
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:418,1
    - Dst: printf_tab
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:419,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:421,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:421,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:423,1
    - Dst: security_get_boolean_names
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:427,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:428,1
    - Dst: strlen
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:431,1
    - Dst: strlen
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:432,1
    - Dst: printf_tab
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:435,1
    - Dst: security_get_boolean_active
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:437,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:440,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:443,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:446,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:447,1
    - Dst: security_get_boolean_pending
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:450,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:454,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:457,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:460,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:462,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:465,1
    - Dst: free
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:468,1
    - Dst: free
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:470,1
    - Dst: load_checks
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:477,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:479,1
    - Dst: printf_tab
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:481,1
    - Dst: getcon
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:482,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:483,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:484,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:486,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:486,1
    - Dst: printf_tab
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:488,1
    - Dst: getpidcon
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:489,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:490,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:491,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:493,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:493,1
    - Dst: pidof
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:496,1
    - Dst: getpidcon
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:498,1
    - Dst: printf_tab
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:501,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:502,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:503,1
    - Dst: free
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:505,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:508,1
    - Dst: printf_tab
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:511,1
    - Dst: lgetfilecon
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:512,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:513,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:514,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:516,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:516,1
    - Dst: lgetfilecon
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:520,1
    - Dst: printf_tab
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:521,1
    - Dst: lstat
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:524,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:525,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:527,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:528,1
    - Dst: free
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:529,1
    - Dst: S_ISLNK
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:532,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:534,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:535,1
    - Dst: getfilecon
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:537,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:538,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:539,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:541,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:542,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:545,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:546,1
    - Dst: free
      Src: /src/selinux/policycoreutils/sestatus/sestatus.c:549,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 240
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 553
    functionName: main
    functionSourceFile: /src/selinux/policycoreutils/sestatus/sestatus.c
    functionUses: 0
    functionsReached:
    - security_get_boolean_names
    - S_ISLNK
    - getfilecon
    - security_get_checkreqprot
    - strerror
    - ttyname
    - security_policyvers
    - fprintf
    - security_get_boolean_active
    - load_checks
    - free
    - printf
    - is_selinux_enabled
    - strlen
    - selinux_policy_root
    - lgetfilecon
    - security_get_boolean_pending
    - freecon
    - security_deny_unknown
    - puts
    - getpidcon
    - is_selinux_mls_enabled
    - basename
    - lstat
    - strdup
    - getopt
    - security_getenforce
    - selinux_getenforcemode
    - pidof
    - printf_tab
    - selinux_path
    - getcon
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 9
    functionName: xstreq
    functionSourceFile: /src/selinux/policycoreutils/secon/secon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: xstreq(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/secon/secon.c:86,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/secon/secon.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - exit_code
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 117
    functionName: usage
    functionSourceFile: /src/selinux/policycoreutils/secon/secon.c
    functionUses: 7
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *name, int exit_code)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/selinux/policycoreutils/secon/secon.c:122,1
    - Dst: strlen
      Src: /src/selinux/policycoreutils/secon/secon.c:128,1
    - Dst: strlen
      Src: /src/selinux/policycoreutils/secon/secon.c:128,1
    - Dst: memcmp
      Src: /src/selinux/policycoreutils/secon/secon.c:129,1
    - Dst: strlen
      Src: /src/selinux/policycoreutils/secon/secon.c:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - argv0
    - def
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 134
    functionName: opt_program_name
    functionSourceFile: /src/selinux/policycoreutils/secon/secon.c
    functionUses: 0
    functionsReached:
    - memcmp
    - strlen
    - strrchr
    linkageType: ''
    returnType: char
    signature: char *opt_program_name(const char *argv0, const char *def)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 148
    functionName: disp_num
    functionSourceFile: /src/selinux/policycoreutils/secon/secon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int disp_num(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: disp_num
      Src: /src/selinux/policycoreutils/secon/secon.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: disp_none
    functionSourceFile: /src/selinux/policycoreutils/secon/secon.c
    functionUses: 0
    functionsReached:
    - disp_num
    linkageType: ''
    returnType: int
    signature: int disp_none(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: disp_num
      Src: /src/selinux/policycoreutils/secon/secon.c:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: disp_multi
    functionSourceFile: /src/selinux/policycoreutils/secon/secon.c
    functionUses: 0
    functionsReached:
    - disp_num
    linkageType: ''
    returnType: int
    signature: int disp_multi(void)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: opt_program_name
      Src: /src/selinux/policycoreutils/secon/secon.c:207,1
    - Dst: getopt_long
      Src: /src/selinux/policycoreutils/secon/secon.c:209,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/secon/secon.c:213,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/secon/secon.c:215,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/secon/secon.c:217,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/secon/secon.c:219,1
    - Dst: getppid
      Src: /src/selinux/policycoreutils/secon/secon.c:275,1
    - Dst: getppid
      Src: /src/selinux/policycoreutils/secon/secon.c:279,1
    - Dst: getppid
      Src: /src/selinux/policycoreutils/secon/secon.c:283,1
    - Dst: getppid
      Src: /src/selinux/policycoreutils/secon/secon.c:287,1
    - Dst: atoi
      Src: /src/selinux/policycoreutils/secon/secon.c:300,1
    - Dst: atoi
      Src: /src/selinux/policycoreutils/secon/secon.c:304,1
    - Dst: atoi
      Src: /src/selinux/policycoreutils/secon/secon.c:308,1
    - Dst: atoi
      Src: /src/selinux/policycoreutils/secon/secon.c:312,1
    - Dst: assert
      Src: /src/selinux/policycoreutils/secon/secon.c:316,1
    - Dst: disp_none
      Src: /src/selinux/policycoreutils/secon/secon.c:331,1
    - Dst: err
      Src: /src/selinux/policycoreutils/secon/secon.c:332,1
    - Dst: isatty
      Src: /src/selinux/policycoreutils/secon/secon.c:338,1
    - Dst: errx
      Src: /src/selinux/policycoreutils/secon/secon.c:345,1
    - Dst: xstreq
      Src: /src/selinux/policycoreutils/secon/secon.c:349,1
    - Dst: is_selinux_enabled
      Src: /src/selinux/policycoreutils/secon/secon.c:351,1
    - Dst: errx
      Src: /src/selinux/policycoreutils/secon/secon.c:352,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 131
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts:
    - condition: (FALSE)
      pos:
        line_end: 315
        line_start: 315
        source_file: /src/selinux/policycoreutils/secon/secon.c
    constantsTouched: []
    func_position:
      end: 353
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 353
    functionName: cmd_line
    functionSourceFile: /src/selinux/policycoreutils/secon/secon.c
    functionUses: 0
    functionsReached:
    - err
    - isatty
    - getopt_long
    - xstreq
    - usage
    - errx
    - assert
    - atoi
    - disp_none
    - getppid
    - exit
    - fprintf
    - is_selinux_enabled
    - opt_program_name
    linkageType: ''
    returnType: void
    signature: void cmd_line(int argc, char *argv[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/policycoreutils/secon/secon.c:361,1
    - Dst: fopen
      Src: /src/selinux/policycoreutils/secon/secon.c:364,1
    - Dst: fgets
      Src: /src/selinux/policycoreutils/secon/secon.c:367,1
    - Dst: fclose
      Src: /src/selinux/policycoreutils/secon/secon.c:369,1
    - Dst: strchr
      Src: /src/selinux/policycoreutils/secon/secon.c:373,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/secon/secon.c:378,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - pid
    - con
    - val
    argTypes:
    - pid_t
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 383
    functionName: my_getXcon_raw
    functionSourceFile: /src/selinux/policycoreutils/secon/secon.c
    functionUses: 0
    functionsReached:
    - fclose
    - strchr
    - snprintf
    - fgets
    - fopen
    - strdup
    linkageType: ''
    returnType: int
    signature: int my_getXcon_raw(pid_t pid, char **con, const char *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: my_getXcon_raw
      Src: /src/selinux/policycoreutils/secon/secon.c:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pid
    - con
    argTypes:
    - pid_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 388
    functionName: my_getpidexeccon_raw
    functionSourceFile: /src/selinux/policycoreutils/secon/secon.c
    functionUses: 0
    functionsReached:
    - my_getXcon_raw
    linkageType: ''
    returnType: int
    signature: int my_getpidexeccon_raw(pid_t pid, char **con)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: my_getXcon_raw
      Src: /src/selinux/policycoreutils/secon/secon.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pid
    - con
    argTypes:
    - pid_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 392
    functionName: my_getpidfscreatecon_raw
    functionSourceFile: /src/selinux/policycoreutils/secon/secon.c
    functionUses: 0
    functionsReached:
    - my_getXcon_raw
    linkageType: ''
    returnType: int
    signature: int my_getpidfscreatecon_raw(pid_t pid, char **con)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: my_getXcon_raw
      Src: /src/selinux/policycoreutils/secon/secon.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pid
    - con
    argTypes:
    - pid_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 396
    functionName: my_getpidkeycreatecon_raw
    functionSourceFile: /src/selinux/policycoreutils/secon/secon.c
    functionUses: 0
    functionsReached:
    - my_getXcon_raw
    linkageType: ''
    returnType: int
    signature: int my_getpidkeycreatecon_raw(pid_t pid, char **con)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/policycoreutils/secon/secon.c:406,1
    - Dst: err
      Src: /src/selinux/policycoreutils/secon/secon.c:407,1
    - Dst: selinux_trans_to_raw_context
      Src: /src/selinux/policycoreutils/secon/secon.c:409,1
    - Dst: err
      Src: /src/selinux/policycoreutils/secon/secon.c:410,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/secon/secon.c:412,1
    - Dst: fgets
      Src: /src/selinux/policycoreutils/secon/secon.c:420,1
    - Dst: err
      Src: /src/selinux/policycoreutils/secon/secon.c:421,1
    - Dst: strspn
      Src: /src/selinux/policycoreutils/secon/secon.c:424,1
    - Dst: strcspn
      Src: /src/selinux/policycoreutils/secon/secon.c:425,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/secon/secon.c:428,1
    - Dst: err
      Src: /src/selinux/policycoreutils/secon/secon.c:429,1
    - Dst: selinux_trans_to_raw_context
      Src: /src/selinux/policycoreutils/secon/secon.c:431,1
    - Dst: err
      Src: /src/selinux/policycoreutils/secon/secon.c:432,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/secon/secon.c:434,1
    - Dst: getcon_raw
      Src: /src/selinux/policycoreutils/secon/secon.c:439,1
    - Dst: err
      Src: /src/selinux/policycoreutils/secon/secon.c:442,1
    - Dst: getexeccon_raw
      Src: /src/selinux/policycoreutils/secon/secon.c:446,1
    - Dst: err
      Src: /src/selinux/policycoreutils/secon/secon.c:449,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/secon/secon.c:453,1
    - Dst: getfscreatecon_raw
      Src: /src/selinux/policycoreutils/secon/secon.c:456,1
    - Dst: err
      Src: /src/selinux/policycoreutils/secon/secon.c:459,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/secon/secon.c:463,1
    - Dst: getkeycreatecon_raw
      Src: /src/selinux/policycoreutils/secon/secon.c:466,1
    - Dst: err
      Src: /src/selinux/policycoreutils/secon/secon.c:469,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/secon/secon.c:473,1
    - Dst: getpidcon_raw
      Src: /src/selinux/policycoreutils/secon/secon.c:477,1
    - Dst: err
      Src: /src/selinux/policycoreutils/secon/secon.c:480,1
    - Dst: my_getpidexeccon_raw
      Src: /src/selinux/policycoreutils/secon/secon.c:485,1
    - Dst: err
      Src: /src/selinux/policycoreutils/secon/secon.c:488,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/secon/secon.c:493,1
    - Dst: my_getpidfscreatecon_raw
      Src: /src/selinux/policycoreutils/secon/secon.c:496,1
    - Dst: err
      Src: /src/selinux/policycoreutils/secon/secon.c:499,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/secon/secon.c:504,1
    - Dst: my_getpidkeycreatecon_raw
      Src: /src/selinux/policycoreutils/secon/secon.c:512,1
    - Dst: err
      Src: /src/selinux/policycoreutils/secon/secon.c:515,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/secon/secon.c:520,1
    - Dst: err
      Src: /src/selinux/policycoreutils/secon/secon.c:522,1
    - Dst: getfilecon_raw
      Src: /src/selinux/policycoreutils/secon/secon.c:527,1
    - Dst: err
      Src: /src/selinux/policycoreutils/secon/secon.c:530,1
    - Dst: lgetfilecon_raw
      Src: /src/selinux/policycoreutils/secon/secon.c:536,1
    - Dst: err
      Src: /src/selinux/policycoreutils/secon/secon.c:539,1
    - Dst: assert
      Src: /src/selinux/policycoreutils/secon/secon.c:545,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (FALSE)
      pos:
        line_end: 544
        line_start: 544
        source_file: /src/selinux/policycoreutils/secon/secon.c
    constantsTouched: []
    func_position:
      end: 549
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 549
    functionName: get_scon
    functionSourceFile: /src/selinux/policycoreutils/secon/secon.c
    functionUses: 0
    functionsReached:
    - err
    - getexeccon_raw
    - my_getpidfscreatecon_raw
    - freecon
    - selinux_trans_to_raw_context
    - getcon_raw
    - getfscreatecon_raw
    - assert
    - fgets
    - my_getpidexeccon_raw
    - strspn
    - my_getpidkeycreatecon_raw
    - strcspn
    - getfilecon_raw
    - getkeycreatecon_raw
    - lgetfilecon_raw
    - getpidcon_raw
    - strdup
    linkageType: ''
    returnType: char
    signature: char *get_scon(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strncasecmp
      Src: /src/selinux/policycoreutils/secon/secon.c:558,1
    - Dst: strncasecmp
      Src: /src/selinux/policycoreutils/secon/secon.c:561,1
    - Dst: strncasecmp
      Src: /src/selinux/policycoreutils/secon/secon.c:564,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - color_str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 568
    functionName: disp__color_to_ansi
    functionSourceFile: /src/selinux/policycoreutils/secon/secon.c
    functionUses: 0
    functionsReached:
    - strncasecmp
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int disp__color_to_ansi(const char *color_str)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/policycoreutils/secon/secon.c:575,1
    - Dst: xstreq
      Src: /src/selinux/policycoreutils/secon/secon.c:579,1
    - Dst: disp__color_to_ansi
      Src: /src/selinux/policycoreutils/secon/secon.c:580,1
    - Dst: disp__color_to_ansi
      Src: /src/selinux/policycoreutils/secon/secon.c:581,1
    - Dst: xstreq
      Src: /src/selinux/policycoreutils/secon/secon.c:582,1
    - Dst: disp__color_to_ansi
      Src: /src/selinux/policycoreutils/secon/secon.c:583,1
    - Dst: disp__color_to_ansi
      Src: /src/selinux/policycoreutils/secon/secon.c:584,1
    - Dst: xstreq
      Src: /src/selinux/policycoreutils/secon/secon.c:585,1
    - Dst: disp__color_to_ansi
      Src: /src/selinux/policycoreutils/secon/secon.c:586,1
    - Dst: disp__color_to_ansi
      Src: /src/selinux/policycoreutils/secon/secon.c:587,1
    - Dst: xstreq
      Src: /src/selinux/policycoreutils/secon/secon.c:588,1
    - Dst: xstreq
      Src: /src/selinux/policycoreutils/secon/secon.c:588,1
    - Dst: xstreq
      Src: /src/selinux/policycoreutils/secon/secon.c:589,1
    - Dst: disp__color_to_ansi
      Src: /src/selinux/policycoreutils/secon/secon.c:590,1
    - Dst: disp__color_to_ansi
      Src: /src/selinux/policycoreutils/secon/secon.c:591,1
    - Dst: err
      Src: /src/selinux/policycoreutils/secon/secon.c:593,1
    - Dst: malloc
      Src: /src/selinux/policycoreutils/secon/secon.c:595,1
    - Dst: err
      Src: /src/selinux/policycoreutils/secon/secon.c:596,1
    - Dst: snprintf
      Src: /src/selinux/policycoreutils/secon/secon.c:597,1
    - Dst: err
      Src: /src/selinux/policycoreutils/secon/secon.c:598,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - name
    - color
    argTypes:
    - char*
    - struct context_color_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 601
    functionName: disp__con_color_ansi
    functionSourceFile: /src/selinux/policycoreutils/secon/secon.c
    functionUses: 0
    functionsReached:
    - err
    - snprintf
    - xstreq
    - malloc
    - disp__color_to_ansi
    - strlen
    linkageType: ''
    returnType: char
    signature: "char *disp__con_color_ansi(const char *name,\n\t\t\t\t  struct context_color_t
      *color)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/policycoreutils/secon/secon.c:608,1
    - Dst: assert
      Src: /src/selinux/policycoreutils/secon/secon.c:609,1
    - Dst: xstreq
      Src: /src/selinux/policycoreutils/secon/secon.c:616,1
    - Dst: disp__con_color_ansi
      Src: /src/selinux/policycoreutils/secon/secon.c:620,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/secon/secon.c:621,1
    - Dst: free
      Src: /src/selinux/policycoreutils/secon/secon.c:622,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/secon/secon.c:624,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/secon/secon.c:626,1
    - Dst: disp_multi
      Src: /src/selinux/policycoreutils/secon/secon.c:627,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/secon/secon.c:628,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/secon/secon.c:630,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - name
    - val
    - color
    argTypes:
    - char*
    - char*
    - struct context_color_t*
    assertStmts:
    - condition: (name)
      pos:
        line_end: 607
        line_start: 607
        source_file: /src/selinux/policycoreutils/secon/secon.c
    - condition: (color)
      pos:
        line_end: 608
        line_start: 608
        source_file: /src/selinux/policycoreutils/secon/secon.c
    constantsTouched: []
    func_position:
      end: 633
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 633
    functionName: disp__con_val
    functionSourceFile: /src/selinux/policycoreutils/secon/secon.c
    functionUses: 0
    functionsReached:
    - disp_multi
    - disp__con_color_ansi
    - xstreq
    - assert
    - free
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void disp__con_val(const char *name, const char *val,\n\t\t\t  struct
      context_color_t *color)"
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: selinux_raw_to_trans_context
      Src: /src/selinux/policycoreutils/secon/secon.c:643,1
    - Dst: errx
      Src: /src/selinux/policycoreutils/secon/secon.c:644,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/secon/secon.c:645,1
    - Dst: disp__con_val
      Src: /src/selinux/policycoreutils/secon/secon.c:654,1
    - Dst: disp__con_val
      Src: /src/selinux/policycoreutils/secon/secon.c:656,1
    - Dst: disp__con_val
      Src: /src/selinux/policycoreutils/secon/secon.c:658,1
    - Dst: disp__con_val
      Src: /src/selinux/policycoreutils/secon/secon.c:660,1
    - Dst: disp__con_val
      Src: /src/selinux/policycoreutils/secon/secon.c:662,1
    - Dst: disp__con_val
      Src: /src/selinux/policycoreutils/secon/secon.c:664,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/secon/secon.c:665,1
    - Dst: selinux_raw_context_to_color
      Src: /src/selinux/policycoreutils/secon/secon.c:670,1
    - Dst: errx
      Src: /src/selinux/policycoreutils/secon/secon.c:671,1
    - Dst: strtok
      Src: /src/selinux/policycoreutils/secon/secon.c:674,1
    - Dst: errx
      Src: /src/selinux/policycoreutils/secon/secon.c:676,1
    - Dst: strtok
      Src: /src/selinux/policycoreutils/secon/secon.c:677,1
    - Dst: errx
      Src: /src/selinux/policycoreutils/secon/secon.c:679,1
    - Dst: strtok
      Src: /src/selinux/policycoreutils/secon/secon.c:681,1
    - Dst: errx
      Src: /src/selinux/policycoreutils/secon/secon.c:683,1
    - Dst: strtok
      Src: /src/selinux/policycoreutils/secon/secon.c:684,1
    - Dst: errx
      Src: /src/selinux/policycoreutils/secon/secon.c:686,1
    - Dst: strtok
      Src: /src/selinux/policycoreutils/secon/secon.c:688,1
    - Dst: errx
      Src: /src/selinux/policycoreutils/secon/secon.c:690,1
    - Dst: strtok
      Src: /src/selinux/policycoreutils/secon/secon.c:691,1
    - Dst: errx
      Src: /src/selinux/policycoreutils/secon/secon.c:693,1
    - Dst: strtok
      Src: /src/selinux/policycoreutils/secon/secon.c:695,1
    - Dst: errx
      Src: /src/selinux/policycoreutils/secon/secon.c:697,1
    - Dst: strtok
      Src: /src/selinux/policycoreutils/secon/secon.c:698,1
    - Dst: errx
      Src: /src/selinux/policycoreutils/secon/secon.c:700,1
    - Dst: context_new
      Src: /src/selinux/policycoreutils/secon/secon.c:705,1
    - Dst: errx
      Src: /src/selinux/policycoreutils/secon/secon.c:706,1
    - Dst: disp__con_val
      Src: /src/selinux/policycoreutils/secon/secon.c:709,1
    - Dst: context_user_get
      Src: /src/selinux/policycoreutils/secon/secon.c:709,1
    - Dst: disp__con_val
      Src: /src/selinux/policycoreutils/secon/secon.c:712,1
    - Dst: context_role_get
      Src: /src/selinux/policycoreutils/secon/secon.c:712,1
    - Dst: disp__con_val
      Src: /src/selinux/policycoreutils/secon/secon.c:715,1
    - Dst: context_type_get
      Src: /src/selinux/policycoreutils/secon/secon.c:715,1
    - Dst: context_range_get
      Src: /src/selinux/policycoreutils/secon/secon.c:721,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/secon/secon.c:726,1
    - Dst: errx
      Src: /src/selinux/policycoreutils/secon/secon.c:728,1
    - Dst: strchr
      Src: /src/selinux/policycoreutils/secon/secon.c:730,1
    - Dst: strchr
      Src: /src/selinux/policycoreutils/secon/secon.c:731,1
    - Dst: disp__con_val
      Src: /src/selinux/policycoreutils/secon/secon.c:733,1
    - Dst: free
      Src: /src/selinux/policycoreutils/secon/secon.c:735,1
    - Dst: context_range_get
      Src: /src/selinux/policycoreutils/secon/secon.c:741,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/secon/secon.c:746,1
    - Dst: errx
      Src: /src/selinux/policycoreutils/secon/secon.c:748,1
    - Dst: strchr
      Src: /src/selinux/policycoreutils/secon/secon.c:750,1
    - Dst: disp__con_val
      Src: /src/selinux/policycoreutils/secon/secon.c:751,1
    - Dst: strchr
      Src: /src/selinux/policycoreutils/secon/secon.c:751,1
    - Dst: disp__con_val
      Src: /src/selinux/policycoreutils/secon/secon.c:754,1
    - Dst: free
      Src: /src/selinux/policycoreutils/secon/secon.c:756,1
    - Dst: disp__con_val
      Src: /src/selinux/policycoreutils/secon/secon.c:760,1
    - Dst: context_range_get
      Src: /src/selinux/policycoreutils/secon/secon.c:760,1
    - Dst: context_free
      Src: /src/selinux/policycoreutils/secon/secon.c:762,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/secon/secon.c:763,1
    - Dst: free
      Src: /src/selinux/policycoreutils/secon/secon.c:765,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 92
    argCount: 1
    argNames:
    - scon_raw
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 635
    functionDepth: 3
    functionLinenumber: 635
    functionLinenumberEnd: 766
    functionName: disp_con
    functionSourceFile: /src/selinux/policycoreutils/secon/secon.c
    functionUses: 0
    functionsReached:
    - selinux_raw_to_trans_context
    - freecon
    - context_new
    - context_user_get
    - context_role_get
    - strchr
    - context_range_get
    - strerror
    - selinux_raw_context_to_color
    - context_free
    - free
    - context_type_get
    - strtok
    - errx
    - disp__con_val
    - strdup
    linkageType: ''
    returnType: void
    signature: void disp_con(const char *scon_raw)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cmd_line
      Src: /src/selinux/policycoreutils/secon/secon.c:772,1
    - Dst: get_scon
      Src: /src/selinux/policycoreutils/secon/secon.c:774,1
    - Dst: disp_con
      Src: /src/selinux/policycoreutils/secon/secon.c:776,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/secon/secon.c:778,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/secon/secon.c:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 768
    functionDepth: 4
    functionLinenumber: 768
    functionLinenumberEnd: 781
    functionName: main
    functionSourceFile: /src/selinux/policycoreutils/secon/secon.c
    functionUses: 0
    functionsReached:
    - freecon
    - disp_con
    - get_scon
    - exit
    - cmd_line
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fputs
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:29,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: usage
    functionSourceFile: /src/selinux/policycoreutils/setsebool/setsebool.c
    functionUses: 8
    functionsReached:
    - fputs
    - exit
    linkageType: ''
    returnType: void
    signature: void usage(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:39,1
    - Dst: getopt
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:42,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:57,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:63,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:64,1
    - Dst: strchr
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:70,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:75,1
    - Dst: strlen
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:78,1
    - Dst: strlen
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:78,1
    - Dst: malloc
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:79,1
    - Dst: fputs
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:81,1
    - Dst: snprintf
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:84,1
    - Dst: setbool
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:86,1
    - Dst: free
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:87,1
    - Dst: setbool
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:89,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 92
    functionName: main
    functionSourceFile: /src/selinux/policycoreutils/setsebool/setsebool.c
    functionUses: 0
    functionsReached:
    - getopt
    - strchr
    - snprintf
    - usage
    - malloc
    - free
    - setbool
    - fputs
    - fprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: security_set_boolean_list
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:97,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:99,1
    - Dst: getuid
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:102,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:103,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - boolcnt
    - boollist
    argTypes:
    - size_t
    - SELboolean*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 113
    functionName: selinux_set_boolean_list
    functionSourceFile: /src/selinux/policycoreutils/setsebool/setsebool.c
    functionUses: 0
    functionsReached:
    - perror
    - getuid
    - fprintf
    - security_set_boolean_list
    linkageType: ''
    returnType: int
    signature: int selinux_set_boolean_list(size_t boolcnt, SELboolean *boollist)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: is_selinux_enabled
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:124,1
    - Dst: semanage_handle_create
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:126,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:128,1
    - Dst: semanage_msg_set_callback
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:133,1
    - Dst: semanage_is_managed
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:136,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:138,1
    - Dst: getuid
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:143,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:144,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:147,1
    - Dst: semanage_connect
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:153,1
    - Dst: semanage_begin_transaction
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:156,1
    - Dst: semanage_bool_create
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:160,1
    - Dst: semanage_bool_set_name
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:163,1
    - Dst: semanage_bool_set_value
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:167,1
    - Dst: semanage_bool_key_extract
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:169,1
    - Dst: semanage_bool_exists
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:172,1
    - Dst: semanage_bool_exists_local
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:174,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:176,1
    - Dst: semanage_bool_modify_local
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:182,1
    - Dst: semanage_bool_set_active
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:186,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:187,1
    - Dst: semanage_bool_key_free
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:191,1
    - Dst: semanage_bool_free
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:192,1
    - Dst: semanage_set_reload
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:198,1
    - Dst: semanage_commit
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:199,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:200,1
    - Dst: semanage_disconnect
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:204,1
    - Dst: semanage_handle_destroy
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:205,1
    - Dst: semanage_bool_key_free
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:209,1
    - Dst: semanage_bool_free
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:210,1
    - Dst: semanage_handle_destroy
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:211,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 80
    argCount: 2
    argNames:
    - boolcnt
    - boollist
    argTypes:
    - size_t
    - SELboolean*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 213
    functionName: semanage_set_boolean_list
    functionSourceFile: /src/selinux/policycoreutils/setsebool/setsebool.c
    functionUses: 0
    functionsReached:
    - semanage_disconnect
    - semanage_bool_key_free
    - semanage_bool_set_active
    - semanage_bool_set_value
    - fprintf
    - getuid
    - semanage_commit
    - semanage_handle_create
    - semanage_connect
    - semanage_bool_create
    - is_selinux_enabled
    - semanage_msg_set_callback
    - semanage_bool_exists
    - semanage_bool_modify_local
    - semanage_bool_exists_local
    - semanage_bool_free
    - semanage_begin_transaction
    - semanage_handle_destroy
    - semanage_is_managed
    - semanage_bool_set_name
    - semanage_bool_key_extract
    - semanage_set_reload
    linkageType: ''
    returnType: int
    signature: int semanage_set_boolean_list(size_t boolcnt, SELboolean *boollist)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:224,1
    - Dst: strchr
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:230,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:232,1
    - Dst: strcmp
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:239,1
    - Dst: strcasecmp
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:240,1
    - Dst: strcasecmp
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:241,1
    - Dst: strcmp
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:243,1
    - Dst: strcasecmp
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:244,1
    - Dst: strcasecmp
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:245,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:248,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:256,1
    - Dst: semanage_set_boolean_list
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:268,1
    - Dst: selinux_set_boolean_list
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:271,1
    - Dst: getpwuid
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:276,1
    - Dst: getuid
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:276,1
    - Dst: strchr
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:280,1
    - Dst: syslog
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:284,1
    - Dst: syslog
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:288,1
    - Dst: getuid
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:290,1
    - Dst: free
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:295,1
    - Dst: free
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:296,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:300,1
    - Dst: free
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:305,1
    - Dst: free
      Src: /src/selinux/policycoreutils/setsebool/setsebool.c:306,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 3
    argNames:
    - list
    - start
    - end
    argTypes:
    - char**
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 309
    functionName: setbool
    functionSourceFile: /src/selinux/policycoreutils/setsebool/setsebool.c
    functionUses: 1
    functionsReached:
    - getuid
    - strchr
    - semanage_set_boolean_list
    - strcmp
    - syslog
    - selinux_set_boolean_list
    - calloc
    - free
    - strcasecmp
    - fprintf
    - getpwuid
    - strdup
    linkageType: ''
    returnType: int
    signature: int setbool(char **list, size_t start, size_t end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msgid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: _
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(msgid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msgid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: _
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(msgid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/policycoreutils/newrole/newrole.c:127,1
    - Dst: strlen
      Src: /src/selinux/policycoreutils/newrole/newrole.c:127,1
    - Dst: strchr
      Src: /src/selinux/policycoreutils/newrole/newrole.c:131,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/newrole/newrole.c:132,1
    - Dst: strchr
      Src: /src/selinux/policycoreutils/newrole/newrole.c:137,1
    - Dst: strlen
      Src: /src/selinux/policycoreutils/newrole/newrole.c:140,1
    - Dst: strlen
      Src: /src/selinux/policycoreutils/newrole/newrole.c:140,1
    - Dst: malloc
      Src: /src/selinux/policycoreutils/newrole/newrole.c:141,1
    - Dst: snprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:144,1
    - Dst: strcmp
      Src: /src/selinux/policycoreutils/newrole/newrole.c:147,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/newrole/newrole.c:148,1
    - Dst: strlen
      Src: /src/selinux/policycoreutils/newrole/newrole.c:150,1
    - Dst: strlen
      Src: /src/selinux/policycoreutils/newrole/newrole.c:150,1
    - Dst: malloc
      Src: /src/selinux/policycoreutils/newrole/newrole.c:151,1
    - Dst: snprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:154,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - newlevel
    - range
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 159
    functionName: build_new_range
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached:
    - strchr
    - snprintf
    - malloc
    - strcmp
    - strlen
    - strdup
    linkageType: ''
    returnType: char
    signature: char *build_new_range(const char *newlevel, const char *range)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/selinux/policycoreutils/newrole/newrole.c:194,1
    - Dst: pam_set_item
      Src: /src/selinux/policycoreutils/newrole/newrole.c:199,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:201,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:201,1
    - Dst: pam_authenticate
      Src: /src/selinux/policycoreutils/newrole/newrole.c:207,1
    - Dst: pam_acct_mgmt
      Src: /src/selinux/policycoreutils/newrole/newrole.c:213,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - ttyn
    - pam_handle
    argTypes:
    - char*
    - pam_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 220
    functionName: authenticate_via_pam
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached:
    - strncmp
    - pam_acct_mgmt
    - pam_authenticate
    - pam_set_item
    - fprintf
    - _
    linkageType: ''
    returnType: int
    signature: int authenticate_via_pam(const char *ttyn, pam_handle_t *pam_handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:227,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - key
    - d
    - args
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 230
    functionName: free_hashtab_entry
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: "int free_hashtab_entry(hashtab_key_t key, hashtab_datum_t d,\n\t\t\t
      \     void *args __attribute__((unused)))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - h
    - key
    argTypes:
    - hashtab_t
    - const_hashtab_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 241
    functionName: reqsymhash
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int reqsymhash(hashtab_t h, const_hashtab_key_t key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/policycoreutils/newrole/newrole.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - h
    - key1
    - key2
    argTypes:
    - hashtab_t
    - const_hashtab_key_t
    - const_hashtab_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: reqsymcmp
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int reqsymcmp(hashtab_t h __attribute__((unused)),\n\t\t     const_hashtab_key_t
      key1, const_hashtab_key_t key2)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getline
      Src: /src/selinux/policycoreutils/newrole/newrole.c:262,1
    - Dst: isspace
      Src: /src/selinux/policycoreutils/newrole/newrole.c:265,1
    - Dst: sscanf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:273,1
    - Dst: hashtab_insert
      Src: /src/selinux/policycoreutils/newrole/newrole.c:277,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:279,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:280,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:285,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:286,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:290,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:293,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:294,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:295,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:295,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:297,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 299
    functionName: process_pam_config
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached:
    - isspace
    - sscanf
    - hashtab_insert
    - free
    - fprintf
    - getline
    - _
    linkageType: ''
    returnType: int
    signature: int process_pam_config(FILE *cfg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/policycoreutils/newrole/newrole.c:310,1
    - Dst: hashtab_create
      Src: /src/selinux/policycoreutils/newrole/newrole.c:314,1
    - Dst: process_pam_config
      Src: /src/selinux/policycoreutils/newrole/newrole.c:317,1
    - Dst: fclose
      Src: /src/selinux/policycoreutils/newrole/newrole.c:319,1
    - Dst: fclose
      Src: /src/selinux/policycoreutils/newrole/newrole.c:322,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 324
    functionName: read_pam_config
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached:
    - hashtab_create
    - fclose
    - process_pam_config
    - fopen
    linkageType: ''
    returnType: int
    signature: int read_pam_config(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 344
    functionName: memzero
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void memzero(void *ptr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/policycoreutils/newrole/newrole.c:350,1
    - Dst: strlen
      Src: /src/selinux/policycoreutils/newrole/newrole.c:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - computed
    - stored
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 360
    functionName: hash_equal
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int hash_equal(const char *computed, const char *stored)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setspent
      Src: /src/selinux/policycoreutils/newrole/newrole.c:382,1
    - Dst: getspnam
      Src: /src/selinux/policycoreutils/newrole/newrole.c:383,1
    - Dst: endspent
      Src: /src/selinux/policycoreutils/newrole/newrole.c:384,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:386,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:386,1
    - Dst: getpass
      Src: /src/selinux/policycoreutils/newrole/newrole.c:392,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:393,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:393,1
    - Dst: crypt
      Src: /src/selinux/policycoreutils/newrole/newrole.c:400,1
    - Dst: memzero
      Src: /src/selinux/policycoreutils/newrole/newrole.c:401,1
    - Dst: strlen
      Src: /src/selinux/policycoreutils/newrole/newrole.c:401,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:403,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:403,1
    - Dst: hash_equal
      Src: /src/selinux/policycoreutils/newrole/newrole.c:407,1
    - Dst: memzero
      Src: /src/selinux/policycoreutils/newrole/newrole.c:408,1
    - Dst: strlen
      Src: /src/selinux/policycoreutils/newrole/newrole.c:408,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - uname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 410
    functionName: authenticate_via_shadow_passwd
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached:
    - endspent
    - memzero
    - getpass
    - hash_equal
    - getspnam
    - crypt
    - setspent
    - fprintf
    - strlen
    - _
    linkageType: ''
    returnType: int
    signature: int authenticate_via_shadow_passwd(const char *uname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getusershell
      Src: /src/selinux/policycoreutils/newrole/newrole.c:425,1
    - Dst: strcmp
      Src: /src/selinux/policycoreutils/newrole/newrole.c:431,1
    - Dst: endusershell
      Src: /src/selinux/policycoreutils/newrole/newrole.c:436,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - shell_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 438
    functionName: verify_shell
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached:
    - endusershell
    - strcmp
    - getusershell
    linkageType: ''
    returnType: bool
    signature: bool verify_shell(const char *shell_name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: audit_getloginuid
      Src: /src/selinux/policycoreutils/newrole/newrole.c:454,1
    - Dst: getuid
      Src: /src/selinux/policycoreutils/newrole/newrole.c:456,1
    - Dst: getuid
      Src: /src/selinux/policycoreutils/newrole/newrole.c:458,1
    - Dst: setpwent
      Src: /src/selinux/policycoreutils/newrole/newrole.c:461,1
    - Dst: getpwuid
      Src: /src/selinux/policycoreutils/newrole/newrole.c:462,1
    - Dst: endpwent
      Src: /src/selinux/policycoreutils/newrole/newrole.c:463,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:466,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:467,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/newrole/newrole.c:473,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/newrole/newrole.c:474,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/newrole/newrole.c:475,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:478,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:478,1
    - Dst: verify_shell
      Src: /src/selinux/policycoreutils/newrole/newrole.c:482,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:483,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:483,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:489,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:490,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:491,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 1
    argNames:
    - pw_copy
    argTypes:
    - struct passwd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 496
    functionName: extract_pw_data
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached:
    - getuid
    - strdup
    - verify_shell
    - endpwent
    - free
    - setpwent
    - audit_getloginuid
    - fprintf
    - getpwuid
    - _
    linkageType: ''
    returnType: int
    signature: int extract_pw_data(struct passwd *pw_copy)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/selinux/policycoreutils/newrole/newrole.c:524,1
    - Dst: getenv
      Src: /src/selinux/policycoreutils/newrole/newrole.c:525,1
    - Dst: getenv
      Src: /src/selinux/policycoreutils/newrole/newrole.c:526,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/newrole/newrole.c:530,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/newrole/newrole.c:532,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/newrole/newrole.c:534,1
    - Dst: clearenv
      Src: /src/selinux/policycoreutils/newrole/newrole.c:542,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:543,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:543,1
    - Dst: setenv
      Src: /src/selinux/policycoreutils/newrole/newrole.c:549,1
    - Dst: setenv
      Src: /src/selinux/policycoreutils/newrole/newrole.c:551,1
    - Dst: setenv
      Src: /src/selinux/policycoreutils/newrole/newrole.c:553,1
    - Dst: setenv
      Src: /src/selinux/policycoreutils/newrole/newrole.c:554,1
    - Dst: setenv
      Src: /src/selinux/policycoreutils/newrole/newrole.c:555,1
    - Dst: setenv
      Src: /src/selinux/policycoreutils/newrole/newrole.c:556,1
    - Dst: setenv
      Src: /src/selinux/policycoreutils/newrole/newrole.c:557,1
    - Dst: setenv
      Src: /src/selinux/policycoreutils/newrole/newrole.c:558,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:560,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:561,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:562,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 3
    argNames:
    - preserve_environment
    - old_environ
    - pw
    argTypes:
    - int
    - char**
    - struct passwd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 564
    functionName: restore_environment
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached:
    - strdup
    - clearenv
    - getenv
    - setenv
    - free
    - fprintf
    - _
    linkageType: ''
    returnType: int
    signature: "int restore_environment(int preserve_environment, char **old_environ,\n\t\t\t
      \      const struct passwd *pw)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/selinux/policycoreutils/newrole/newrole.c:577,1
    - Dst: capng_setpid
      Src: /src/selinux/policycoreutils/newrole/newrole.c:581,1
    - Dst: getpid
      Src: /src/selinux/policycoreutils/newrole/newrole.c:581,1
    - Dst: capng_clear
      Src: /src/selinux/policycoreutils/newrole/newrole.c:582,1
    - Dst: prctl
      Src: /src/selinux/policycoreutils/newrole/newrole.c:584,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:585,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:585,1
    - Dst: setresuid
      Src: /src/selinux/policycoreutils/newrole/newrole.c:590,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:591,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:591,1
    - Dst: prctl
      Src: /src/selinux/policycoreutils/newrole/newrole.c:595,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:596,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:596,1
    - Dst: capng_update
      Src: /src/selinux/policycoreutils/newrole/newrole.c:601,1
    - Dst: capng_apply
      Src: /src/selinux/policycoreutils/newrole/newrole.c:603,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - full
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 604
    functionName: drop_capabilities
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached:
    - setresuid
    - getuid
    - capng_apply
    - getpid
    - capng_clear
    - capng_update
    - prctl
    - capng_setpid
    - fprintf
    - _
    linkageType: ''
    returnType: int
    signature: int drop_capabilities(int full)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/selinux/policycoreutils/newrole/newrole.c:621,1
    - Dst: capng_setpid
      Src: /src/selinux/policycoreutils/newrole/newrole.c:625,1
    - Dst: getpid
      Src: /src/selinux/policycoreutils/newrole/newrole.c:625,1
    - Dst: capng_clear
      Src: /src/selinux/policycoreutils/newrole/newrole.c:626,1
    - Dst: prctl
      Src: /src/selinux/policycoreutils/newrole/newrole.c:628,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:629,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:629,1
    - Dst: setresuid
      Src: /src/selinux/policycoreutils/newrole/newrole.c:634,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:635,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:635,1
    - Dst: prctl
      Src: /src/selinux/policycoreutils/newrole/newrole.c:639,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:640,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:640,1
    - Dst: capng_updatev
      Src: /src/selinux/policycoreutils/newrole/newrole.c:645,1
    - Dst: capng_apply
      Src: /src/selinux/policycoreutils/newrole/newrole.c:649,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - full
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 650
    functionName: drop_capabilities
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached:
    - setresuid
    - getuid
    - capng_updatev
    - capng_apply
    - getpid
    - capng_clear
    - prctl
    - capng_setpid
    - fprintf
    - _
    linkageType: ''
    returnType: int
    signature: int drop_capabilities(int full)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - full
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 656
    functionName: drop_capabilities
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int drop_capabilities(__attribute__((__unused__)) int full)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/selinux/policycoreutils/newrole/newrole.c:666,1
    - Dst: prctl
      Src: /src/selinux/policycoreutils/newrole/newrole.c:668,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:669,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:669,1
    - Dst: setresuid
      Src: /src/selinux/policycoreutils/newrole/newrole.c:673,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:674,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:674,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 678
    functionName: transition_to_caller_uid
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached:
    - setresuid
    - getuid
    - prctl
    - fprintf
    - _
    linkageType: ''
    returnType: int
    signature: int transition_to_caller_uid(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: audit_open
      Src: /src/selinux/policycoreutils/newrole/newrole.c:688,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:691,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:691,1
    - Dst: asprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:694,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:697,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:697,1
    - Dst: audit_log_user_message
      Src: /src/selinux/policycoreutils/newrole/newrole.c:701,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:704,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:704,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:710,1
    - Dst: close
      Src: /src/selinux/policycoreutils/newrole/newrole.c:711,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - success
    - old_context
    - new_context
    - ttyn
    argTypes:
    - int
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 713
    functionName: send_audit_message
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached:
    - audit_log_user_message
    - asprintf
    - close
    - audit_open
    - free
    - fprintf
    - _
    linkageType: ''
    returnType: int
    signature: "int send_audit_message(int success, const char *old_context,\n\t\t\t
      \     const char *new_context, const char *ttyn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - success
    - old_context
    - new_context
    - ttyn
    argTypes:
    - int
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 723
    functionName: send_audit_message
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int send_audit_message(int success __attribute__((unused)),\n\t\t\t\t
      \    const char *old_context\n\t\t\t\t     __attribute__((unused)),\n\t\t\t\t
      \    const char *new_context\n\t\t\t\t     __attribute__((unused)),\n\t\t\t\t
      \    const char *ttyn __attribute__((unused)))"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/selinux/policycoreutils/newrole/newrole.c:746,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:748,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:748,1
    - Dst: fcntl
      Src: /src/selinux/policycoreutils/newrole/newrole.c:752,1
    - Dst: fcntl
      Src: /src/selinux/policycoreutils/newrole/newrole.c:752,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:754,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:754,1
    - Dst: close
      Src: /src/selinux/policycoreutils/newrole/newrole.c:756,1
    - Dst: fgetfilecon
      Src: /src/selinux/policycoreutils/newrole/newrole.c:760,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:761,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:762,1
    - Dst: security_compute_relabel
      Src: /src/selinux/policycoreutils/newrole/newrole.c:770,1
    - Dst: string_to_security_class
      Src: /src/selinux/policycoreutils/newrole/newrole.c:771,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:773,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:774,1
    - Dst: fsetfilecon
      Src: /src/selinux/policycoreutils/newrole/newrole.c:782,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:783,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:784,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/newrole/newrole.c:786,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/newrole/newrole.c:797,1
    - Dst: close
      Src: /src/selinux/policycoreutils/newrole/newrole.c:798,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 5
    argNames:
    - ttyn
    - new_context
    - tty_context
    - new_tty_context
    - enforcing
    argTypes:
    - char*
    - char*
    - char**
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 800
    functionName: relabel_tty
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached:
    - fcntl
    - close
    - freecon
    - fsetfilecon
    - string_to_security_class
    - fgetfilecon
    - open
    - fprintf
    - security_compute_relabel
    - _
    linkageType: ''
    returnType: int
    signature: "int relabel_tty(const char *ttyn, const char *new_context,\n\t\t       char
      **tty_context, char **new_tty_context,\n\t\t       int enforcing)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fgetfilecon
      Src: /src/selinux/policycoreutils/newrole/newrole.c:824,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:825,1
    - Dst: strcmp
      Src: /src/selinux/policycoreutils/newrole/newrole.c:829,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:830,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:830,1
    - Dst: fsetfilecon
      Src: /src/selinux/policycoreutils/newrole/newrole.c:834,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:835,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:836,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/newrole/newrole.c:838,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 4
    argNames:
    - fd
    - ttyn
    - tty_context
    - new_tty_context
    argTypes:
    - int
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 811
    functionDepth: 1
    functionLinenumber: 811
    functionLinenumberEnd: 840
    functionName: restore_tty_label
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached:
    - freecon
    - fsetfilecon
    - strcmp
    - fgetfilecon
    - fprintf
    - _
    linkageType: ''
    returnType: int
    signature: "int restore_tty_label(int fd, const char *ttyn, const char *tty_context,\n\t\t\t
      \    const char *new_tty_context)"
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/selinux/policycoreutils/newrole/newrole.c:878,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:885,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/newrole/newrole.c:886,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:892,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:893,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:900,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:901,1
    - Dst: is_selinux_mls_enabled
      Src: /src/selinux/policycoreutils/newrole/newrole.c:907,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:908,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:908,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:913,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:913,1
    - Dst: fgetfilecon
      Src: /src/selinux/policycoreutils/newrole/newrole.c:918,1
    - Dst: selinux_check_securetty_context
      Src: /src/selinux/policycoreutils/newrole/newrole.c:919,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:921,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:922,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/newrole/newrole.c:923,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/newrole/newrole.c:926,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:928,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:929,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:937,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:944,1
    - Dst: get_default_type
      Src: /src/selinux/policycoreutils/newrole/newrole.c:951,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:952,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:952,1
    - Dst: send_audit_message
      Src: /src/selinux/policycoreutils/newrole/newrole.c:953,1
    - Dst: context_new
      Src: /src/selinux/policycoreutils/newrole/newrole.c:960,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:962,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:962,1
    - Dst: context_role_set
      Src: /src/selinux/policycoreutils/newrole/newrole.c:968,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:969,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:969,1
    - Dst: context_type_set
      Src: /src/selinux/policycoreutils/newrole/newrole.c:975,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:976,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:976,1
    - Dst: build_new_range
      Src: /src/selinux/policycoreutils/newrole/newrole.c:983,1
    - Dst: context_range_get
      Src: /src/selinux/policycoreutils/newrole/newrole.c:983,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:985,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:986,1
    - Dst: context_range_set
      Src: /src/selinux/policycoreutils/newrole/newrole.c:990,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:991,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:991,1
    - Dst: context_str
      Src: /src/selinux/policycoreutils/newrole/newrole.c:998,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:999,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:999,1
    - Dst: security_check_context
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1003,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1004,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1004,1
    - Dst: send_audit_message
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1005,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1009,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1011,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1011,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1015,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1016,1
    - Dst: context_free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1017,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1021,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1022,1
    - Dst: context_free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1024,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 127
    argCount: 7
    argNames:
    - argc
    - argv
    - ttyn
    - old_context
    - new_context
    - preserve_environment
    - enforcing
    argTypes:
    - int
    - char**
    - char*
    - char*
    - char**
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 1026
    functionName: parse_command_line_arguments
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached:
    - get_default_type
    - context_type_set
    - build_new_range
    - exit
    - fprintf
    - selinux_check_securetty_context
    - context_new
    - free
    - context_role_set
    - printf
    - freecon
    - context_range_get
    - is_selinux_mls_enabled
    - fgetfilecon
    - security_check_context
    - context_range_set
    - context_str
    - strdup
    - getopt_long
    - context_free
    - send_audit_message
    - _
    linkageType: ''
    returnType: int
    signature: "int parse_command_line_arguments(int argc, char **argv, char *ttyn,\n\t\t\t\t\tconst
      char *old_context,\n\t\t\t\t\tchar **new_context,\n\t\t\t\t\tint *preserve_environment,\n\t\t\t\t\tint
      enforcing)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1036,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1037,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1037,1
    - Dst: sigprocmask
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1041,1
    - Dst: signal
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1044,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1045,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1045,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1050
    functionName: set_signal_handles
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached:
    - sigemptyset
    - signal
    - sigprocmask
    - fprintf
    - _
    linkageType: ''
    returnType: int
    signature: int set_signal_handles(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1065,1
    - Dst: open
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1067,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1060
    functionDepth: 0
    functionLinenumber: 1060
    functionLinenumberEnd: 1072
    functionName: sanitize_std_fds
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 0
    functionsReached:
    - fcntl
    - open
    linkageType: ''
    returnType: int
    signature: int sanitize_std_fds(void)
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: sanitize_std_fds
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1116,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1117,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1118,1
    - Dst: drop_capabilities
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1121,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1122,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1122,1
    - Dst: set_signal_handles
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1125,1
    - Dst: setlocale
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1129,1
    - Dst: bindtextdomain
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1130,1
    - Dst: textdomain
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1131,1
    - Dst: is_selinux_enabled
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1137,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1138,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1138,1
    - Dst: security_getenforce
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1143,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1145,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1145,1
    - Dst: getprevcon
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1155,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1156,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1156,1
    - Dst: ttyname
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1160,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1162,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1163,1
    - Dst: parse_command_line_arguments
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1166,1
    - Dst: memset
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1179,1
    - Dst: extract_pw_data
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1180,1
    - Dst: read_pam_config
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1184,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1185,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1186,1
    - Dst: strcmp
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1191,1
    - Dst: sscanf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1197,1
    - Dst: hashtab_search
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1199,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1201,1
    - Dst: pam_start
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1208,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1211,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1211,1
    - Dst: authenticate_via_pam
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1215,1
    - Dst: authenticate_via_shadow_passwd
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1217,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1220,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1220,1
    - Dst: send_audit_message
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1222,1
    - Dst: relabel_tty
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1232,1
    - Dst: fork
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1244,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1248,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1248,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1249,1
    - Dst: restore_tty_label
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1250,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1251,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1251,1
    - Dst: close
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1252,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1253,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1253,1
    - Dst: waitpid
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1266,1
    - Dst: WIFEXITED
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1270,1
    - Dst: WEXITSTATUS
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1271,1
    - Dst: WIFSIGNALED
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1272,1
    - Dst: WTERMSIG
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1273,1
    - Dst: restore_tty_label
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1275,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1276,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1276,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1279,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1280,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1281,1
    - Dst: close
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1282,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1283,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1283,1
    - Dst: pam_close_session
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1288,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1290,1
    - Dst: pam_strerror
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1291,1
    - Dst: pam_end
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1295,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1297,1
    - Dst: pam_strerror
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1298,1
    - Dst: hashtab_map
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1301,1
    - Dst: hashtab_destroy
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1302,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1304,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1305,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1306,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1307,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1308,1
    - Dst: close
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1315,1
    - Dst: close
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1315,1
    - Dst: close
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1315,1
    - Dst: close
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1315,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1316,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1316,1
    - Dst: open
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1319,1
    - Dst: fcntl
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1322,1
    - Dst: fcntl
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1322,1
    - Dst: open
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1326,1
    - Dst: fcntl
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1329,1
    - Dst: fcntl
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1329,1
    - Dst: open
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1333,1
    - Dst: fcntl
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1336,1
    - Dst: fcntl
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1336,1
    - Dst: asprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1349,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1350,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1350,1
    - Dst: setexeccon
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1356,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1357,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1357,1
    - Dst: pam_open_session
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1363,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1365,1
    - Dst: pam_strerror
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1366,1
    - Dst: send_audit_message
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1371,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1372,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1372,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1375,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1377,1
    - Dst: transition_to_caller_uid
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1381,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1382,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1382,1
    - Dst: drop_capabilities
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1387,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1388,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1388,1
    - Dst: restore_environment
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1392,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1393,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1393,1
    - Dst: execv
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1397,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1404,1
    - Dst: _
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1404,1
    - Dst: pam_close_session
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1407,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1409,1
    - Dst: pam_strerror
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1410,1
    - Dst: pam_end
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1414,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1416,1
    - Dst: pam_strerror
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1417,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1420,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1421,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1422,1
    - Dst: freecon
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1423,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1424,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1425,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1426,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1427,1
    - Dst: hashtab_map
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1430,1
    - Dst: hashtab_destroy
      Src: /src/selinux/policycoreutils/newrole/newrole.c:1431,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 219
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1080
    functionDepth: 2
    functionLinenumber: 1080
    functionLinenumberEnd: 1435
    functionName: main
    functionSourceFile: /src/selinux/policycoreutils/newrole/newrole.c
    functionUses: 1
    functionsReached:
    - pam_start
    - pam_close_session
    - bindtextdomain
    - hashtab_map
    - sanitize_std_fds
    - strcmp
    - strerror
    - pam_open_session
    - WIFSIGNALED
    - restore_environment
    - drop_capabilities
    - ttyname
    - fprintf
    - send_audit_message
    - execv
    - pam_end
    - pam_strerror
    - WTERMSIG
    - fork
    - read_pam_config
    - waitpid
    - free
    - is_selinux_enabled
    - transition_to_caller_uid
    - asprintf
    - fcntl
    - freecon
    - hashtab_search
    - sscanf
    - extract_pw_data
    - memset
    - WEXITSTATUS
    - hashtab_destroy
    - setexeccon
    - relabel_tty
    - authenticate_via_pam
    - close
    - restore_tty_label
    - security_getenforce
    - authenticate_via_shadow_passwd
    - setlocale
    - getprevcon
    - WIFEXITED
    - perror
    - open
    - set_signal_handles
    - parse_command_line_arguments
    - textdomain
    - _
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/policycoreutils/newrole/hashtab.c:23,1
    - Dst: memset
      Src: /src/selinux/policycoreutils/newrole/hashtab.c:27,1
    - Dst: malloc
      Src: /src/selinux/policycoreutils/newrole/hashtab.c:32,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/hashtab.c:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - size
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 41
    functionName: hashtab_create
    functionSourceFile: /src/selinux/policycoreutils/newrole/hashtab.c
    functionUses: 6
    functionsReached:
    - free
    - malloc
    - memset
    linkageType: ''
    returnType: hashtab_t
    signature: "hashtab_t hashtab_create(unsigned int (*hash_value)(hashtab_t h,\n\t\t\t\t\t\t
      \   const_hashtab_key_t key),\n\t\t\t int (*keycmp)(hashtab_t h, const_hashtab_key_t
      key1,\n\t\t\t\t       const_hashtab_key_t key2),\n\t\t\t unsigned int size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_t::hash_value
      Src: /src/selinux/policycoreutils/newrole/hashtab.c:51,1
    - Dst: hashtab_t::keycmp
      Src: /src/selinux/policycoreutils/newrole/hashtab.c:54,1
    - Dst: hashtab_t::keycmp
      Src: /src/selinux/policycoreutils/newrole/hashtab.c:59,1
    - Dst: malloc
      Src: /src/selinux/policycoreutils/newrole/hashtab.c:62,1
    - Dst: memset
      Src: /src/selinux/policycoreutils/newrole/hashtab.c:65,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - h
    - key
    - datum
    argTypes:
    - hashtab_t
    - hashtab_key_t
    - hashtab_datum_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 78
    functionName: hashtab_insert
    functionSourceFile: /src/selinux/policycoreutils/newrole/hashtab.c
    functionUses: 44
    functionsReached:
    - hashtab_t::hash_value
    - hashtab_t::keycmp
    - memset
    - malloc
    linkageType: ''
    returnType: int
    signature: int hashtab_insert(hashtab_t h, hashtab_key_t key, hashtab_datum_t
      datum)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_t::hash_value
      Src: /src/selinux/policycoreutils/newrole/hashtab.c:91,1
    - Dst: hashtab_t::keycmp
      Src: /src/selinux/policycoreutils/newrole/hashtab.c:94,1
    - Dst: hashtab_t::keycmp
      Src: /src/selinux/policycoreutils/newrole/hashtab.c:99,1
    - Dst: destroy
      Src: /src/selinux/policycoreutils/newrole/hashtab.c:108,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/hashtab.c:109,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - h
    - key
    - args
    argTypes:
    - hashtab_t
    - hashtab_key_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 112
    functionName: hashtab_remove
    functionSourceFile: /src/selinux/policycoreutils/newrole/hashtab.c
    functionUses: 1
    functionsReached:
    - hashtab_t::hash_value
    - free
    - hashtab_t::keycmp
    - destroy
    linkageType: ''
    returnType: int
    signature: "int hashtab_remove(hashtab_t h, hashtab_key_t key,\n\t\t   void (*destroy)(hashtab_key_t
      k, hashtab_datum_t d,\n\t\t\t\t   void *args),\n\t\t   void *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_t::hash_value
      Src: /src/selinux/policycoreutils/newrole/hashtab.c:122,1
    - Dst: hashtab_t::keycmp
      Src: /src/selinux/policycoreutils/newrole/hashtab.c:124,1
    - Dst: hashtab_t::keycmp
      Src: /src/selinux/policycoreutils/newrole/hashtab.c:127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - h
    - key
    argTypes:
    - hashtab_t
    - const_hashtab_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 131
    functionName: hashtab_search
    functionSourceFile: /src/selinux/policycoreutils/newrole/hashtab.c
    functionUses: 103
    functionsReached:
    - hashtab_t::hash_value
    - hashtab_t::keycmp
    linkageType: ''
    returnType: hashtab_datum_t
    signature: hashtab_datum_t hashtab_search(hashtab_t h, const_hashtab_key_t key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/hashtab.c:146,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/hashtab.c:151,1
    - Dst: free
      Src: /src/selinux/policycoreutils/newrole/hashtab.c:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - h
    argTypes:
    - hashtab_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 155
    functionName: hashtab_destroy
    functionSourceFile: /src/selinux/policycoreutils/newrole/hashtab.c
    functionUses: 11
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void hashtab_destroy(hashtab_t h)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: apply
      Src: /src/selinux/policycoreutils/newrole/hashtab.c:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - h
    - args
    argTypes:
    - hashtab_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 178
    functionName: hashtab_map
    functionSourceFile: /src/selinux/policycoreutils/newrole/hashtab.c
    functionUses: 64
    functionsReached:
    - apply
    linkageType: ''
    returnType: int
    signature: "int hashtab_map(hashtab_t h,\n\t\tint (*apply)(hashtab_key_t k, hashtab_datum_t
      d, void *args),\n\t\tvoid *args)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/policycoreutils/newrole/hashtab.c:203,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - h
    - tag
    argTypes:
    - hashtab_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 205
    functionName: hashtab_hash_eval
    functionSourceFile: /src/selinux/policycoreutils/newrole/hashtab.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void hashtab_hash_eval(hashtab_t h, char *tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/policycoreutils/semodule/semodule.c:77,1
    - Dst: free
      Src: /src/selinux/policycoreutils/semodule/semodule.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: cleanup
    functionSourceFile: /src/selinux/policycoreutils/semodule/semodule.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void cleanup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - sig_num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: handle_signal
    functionSourceFile: /src/selinux/policycoreutils/semodule/semodule.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void handle_signal(int sig_num)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/policycoreutils/semodule/semodule.c:95,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:96,1
    - Dst: cleanup
      Src: /src/selinux/policycoreutils/semodule/semodule.c:103,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/semodule/semodule.c:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - storename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 105
    functionName: set_store
    functionSourceFile: /src/selinux/policycoreutils/semodule/semodule.c
    functionUses: 0
    functionsReached:
    - cleanup
    - exit
    - fprintf
    - strdup
    linkageType: ''
    returnType: void
    signature: void set_store(char *storename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/policycoreutils/semodule/semodule.c:109,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:110,1
    - Dst: cleanup
      Src: /src/selinux/policycoreutils/semodule/semodule.c:117,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/semodule/semodule.c:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 119
    functionName: set_store_root
    functionSourceFile: /src/selinux/policycoreutils/semodule/semodule.c
    functionUses: 0
    functionsReached:
    - cleanup
    - exit
    - fprintf
    - strdup
    linkageType: ''
    returnType: void
    signature: void set_store_root(char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/selinux/policycoreutils/semodule/semodule.c:124,1
    - Dst: signal
      Src: /src/selinux/policycoreutils/semodule/semodule.c:125,1
    - Dst: signal
      Src: /src/selinux/policycoreutils/semodule/semodule.c:126,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:127,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/semodule/semodule.c:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: create_signal_handlers
    functionSourceFile: /src/selinux/policycoreutils/semodule/semodule.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    - signal
    linkageType: ''
    returnType: void
    signature: void create_signal_handlers(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:134,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:135,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:136,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:137,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:138,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:139,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:140,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:141,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:142,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:143,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:144,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:145,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:146,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:147,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:148,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:149,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:150,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:151,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:152,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:153,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:154,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:155,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:156,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:157,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:158,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:159,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:160,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:161,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:162,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:164,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:165,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 168
    functionName: usage
    functionSourceFile: /src/selinux/policycoreutils/semodule/semodule.c
    functionUses: 9
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(char *progname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/selinux/policycoreutils/semodule/semodule.c:176,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:177,1
    - Dst: cleanup
      Src: /src/selinux/policycoreutils/semodule/semodule.c:178,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/semodule/semodule.c:179,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/semodule/semodule.c:186,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:187,1
    - Dst: cleanup
      Src: /src/selinux/policycoreutils/semodule/semodule.c:188,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/semodule/semodule.c:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - new_mode
    - arg
    argTypes:
    - enum client_modes
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 193
    functionName: set_mode
    functionSourceFile: /src/selinux/policycoreutils/semodule/semodule.c
    functionUses: 1
    functionsReached:
    - realloc
    - cleanup
    - exit
    - fprintf
    - strdup
    linkageType: ''
    returnType: void
    signature: void set_mode(enum client_modes new_mode, char *arg)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/selinux/policycoreutils/semodule/semodule.c:235,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:242,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/semodule/semodule.c:249,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/semodule/semodule.c:250,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:254,1
    - Dst: set_mode
      Src: /src/selinux/policycoreutils/semodule/semodule.c:256,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/semodule/semodule.c:259,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/semodule/semodule.c:260,1
    - Dst: set_mode
      Src: /src/selinux/policycoreutils/semodule/semodule.c:262,1
    - Dst: set_mode
      Src: /src/selinux/policycoreutils/semodule/semodule.c:265,1
    - Dst: set_mode
      Src: /src/selinux/policycoreutils/semodule/semodule.c:269,1
    - Dst: set_mode
      Src: /src/selinux/policycoreutils/semodule/semodule.c:273,1
    - Dst: set_mode
      Src: /src/selinux/policycoreutils/semodule/semodule.c:277,1
    - Dst: set_mode
      Src: /src/selinux/policycoreutils/semodule/semodule.c:283,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:286,1
    - Dst: set_mode
      Src: /src/selinux/policycoreutils/semodule/semodule.c:288,1
    - Dst: set_store
      Src: /src/selinux/policycoreutils/semodule/semodule.c:291,1
    - Dst: semanage_set_root
      Src: /src/selinux/policycoreutils/semodule/semodule.c:294,1
    - Dst: set_store_root
      Src: /src/selinux/policycoreutils/semodule/semodule.c:297,1
    - Dst: semanage_handle_create_with_path
      Src: /src/selinux/policycoreutils/semodule/semodule.c:321,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:323,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/semodule/semodule.c:326,1
    - Dst: set_mode
      Src: /src/selinux/policycoreutils/semodule/semodule.c:330,1
    - Dst: set_mode
      Src: /src/selinux/policycoreutils/semodule/semodule.c:333,1
    - Dst: set_mode
      Src: /src/selinux/policycoreutils/semodule/semodule.c:336,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/semodule/semodule.c:343,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/semodule/semodule.c:344,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:349,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/semodule/semodule.c:351,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/semodule/semodule.c:352,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:356,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/semodule/semodule.c:357,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/semodule/semodule.c:358,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:361,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/semodule/semodule.c:363,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/semodule/semodule.c:364,1
    - Dst: set_mode
      Src: /src/selinux/policycoreutils/semodule/semodule.c:381,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:384,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:386,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:387,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/semodule/semodule.c:388,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/semodule/semodule.c:389,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 145
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 392
    functionName: parse_command_line
    functionSourceFile: /src/selinux/policycoreutils/semodule/semodule.c
    functionUses: 0
    functionsReached:
    - getopt_long
    - semanage_handle_create_with_path
    - semanage_set_root
    - usage
    - set_mode
    - set_store_root
    - set_store
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void parse_command_line(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: semanage_module_key_create
      Src: /src/selinux/policycoreutils/semodule/semodule.c:403,1
    - Dst: semanage_module_key_set_name
      Src: /src/selinux/policycoreutils/semodule/semodule.c:408,1
    - Dst: semanage_module_key_set_priority
      Src: /src/selinux/policycoreutils/semodule/semodule.c:413,1
    - Dst: semanage_module_compute_checksum
      Src: /src/selinux/policycoreutils/semodule/semodule.c:418,1
    - Dst: free
      Src: /src/selinux/policycoreutils/semodule/semodule.c:425,1
    - Dst: semanage_module_key_destroy
      Src: /src/selinux/policycoreutils/semodule/semodule.c:426,1
    - Dst: free
      Src: /src/selinux/policycoreutils/semodule/semodule.c:427,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - module_name
    - prio
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 429
    functionName: hash_module_data
    functionSourceFile: /src/selinux/policycoreutils/semodule/semodule.c
    functionUses: 0
    functionsReached:
    - semanage_module_key_set_priority
    - semanage_module_key_destroy
    - semanage_module_compute_checksum
    - semanage_module_key_create
    - free
    - semanage_module_key_set_name
    linkageType: ''
    returnType: char
    signature: char *hash_module_data(const char *module_name, const int prio)
  - BBCount: 89
    BranchProfiles: []
    Callsites:
    - Dst: create_signal_handlers
      Src: /src/selinux/policycoreutils/semodule/semodule.c:437,1
    - Dst: strcmp
      Src: /src/selinux/policycoreutils/semodule/semodule.c:438,1
    - Dst: basename
      Src: /src/selinux/policycoreutils/semodule/semodule.c:438,1
    - Dst: parse_command_line
      Src: /src/selinux/policycoreutils/semodule/semodule.c:442,1
    - Dst: cil_set_log_level
      Src: /src/selinux/policycoreutils/semodule/semodule.c:444,1
    - Dst: semanage_handle_create
      Src: /src/selinux/policycoreutils/semodule/semodule.c:450,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:452,1
    - Dst: semanage_select_store
      Src: /src/selinux/policycoreutils/semodule/semodule.c:464,1
    - Dst: semanage_set_store_root
      Src: /src/selinux/policycoreutils/semodule/semodule.c:468,1
    - Dst: semanage_set_create_store
      Src: /src/selinux/policycoreutils/semodule/semodule.c:472,1
    - Dst: semanage_connect
      Src: /src/selinux/policycoreutils/semodule/semodule.c:474,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:475,1
    - Dst: semanage_reload_policy
      Src: /src/selinux/policycoreutils/semodule/semodule.c:481,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:482,1
    - Dst: semanage_begin_transaction
      Src: /src/selinux/policycoreutils/semodule/semodule.c:489,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:490,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/semodule/semodule.c:492,1
    - Dst: semanage_set_default_priority
      Src: /src/selinux/policycoreutils/semodule/semodule.c:497,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:498,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:511,1
    - Dst: semanage_module_install_file
      Src: /src/selinux/policycoreutils/semodule/semodule.c:514,1
    - Dst: semanage_module_key_create
      Src: /src/selinux/policycoreutils/semodule/semodule.c:529,1
    - Dst: semanage_module_key_set_name
      Src: /src/selinux/policycoreutils/semodule/semodule.c:534,1
    - Dst: semanage_module_get_module_info
      Src: /src/selinux/policycoreutils/semodule/semodule.c:541,1
    - Dst: semanage_module_info_get_priority
      Src: /src/selinux/policycoreutils/semodule/semodule.c:547,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:549,1
    - Dst: semanage_module_key_set_priority
      Src: /src/selinux/policycoreutils/semodule/semodule.c:554,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:561,1
    - Dst: semanage_module_extract
      Src: /src/selinux/policycoreutils/semodule/semodule.c:564,1
    - Dst: semanage_module_info_get_lang_ext
      Src: /src/selinux/policycoreutils/semodule/semodule.c:575,1
    - Dst: semanage_module_info_get_name
      Src: /src/selinux/policycoreutils/semodule/semodule.c:582,1
    - Dst: snprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:588,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:591,1
    - Dst: fopen
      Src: /src/selinux/policycoreutils/semodule/semodule.c:598,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:601,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:605,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/semodule/semodule.c:608,1
    - Dst: fwrite
      Src: /src/selinux/policycoreutils/semodule/semodule.c:613,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:614,1
    - Dst: fclose
      Src: /src/selinux/policycoreutils/semodule/semodule.c:621,1
    - Dst: munmap
      Src: /src/selinux/policycoreutils/semodule/semodule.c:624,1
    - Dst: semanage_module_info_destroy
      Src: /src/selinux/policycoreutils/semodule/semodule.c:626,1
    - Dst: free
      Src: /src/selinux/policycoreutils/semodule/semodule.c:627,1
    - Dst: semanage_module_key_destroy
      Src: /src/selinux/policycoreutils/semodule/semodule.c:628,1
    - Dst: free
      Src: /src/selinux/policycoreutils/semodule/semodule.c:629,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:640,1
    - Dst: semanage_module_remove
      Src: /src/selinux/policycoreutils/semodule/semodule.c:643,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:658,1
    - Dst: strcmp
      Src: /src/selinux/policycoreutils/semodule/semodule.c:662,1
    - Dst: semanage_module_list
      Src: /src/selinux/policycoreutils/semodule/semodule.c:663,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:669,1
    - Dst: semanage_module_list_nth
      Src: /src/selinux/policycoreutils/semodule/semodule.c:675,1
    - Dst: semanage_module_info_get_name
      Src: /src/selinux/policycoreutils/semodule/semodule.c:678,1
    - Dst: semanage_module_info_get_priority
      Src: /src/selinux/policycoreutils/semodule/semodule.c:684,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:689,1
    - Dst: hash_module_data
      Src: /src/selinux/policycoreutils/semodule/semodule.c:692,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:695,1
    - Dst: free
      Src: /src/selinux/policycoreutils/semodule/semodule.c:697,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:700,1
    - Dst: strcmp
      Src: /src/selinux/policycoreutils/semodule/semodule.c:702,1
    - Dst: semanage_module_list_all
      Src: /src/selinux/policycoreutils/semodule/semodule.c:704,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:710,1
    - Dst: semanage_module_compute_checksum
      Src: /src/selinux/policycoreutils/semodule/semodule.c:720,1
    - Dst: semanage_module_list_nth
      Src: /src/selinux/policycoreutils/semodule/semodule.c:729,1
    - Dst: semanage_module_info_get_name
      Src: /src/selinux/policycoreutils/semodule/semodule.c:732,1
    - Dst: strlen
      Src: /src/selinux/policycoreutils/semodule/semodule.c:737,1
    - Dst: semanage_module_info_get_lang_ext
      Src: /src/selinux/policycoreutils/semodule/semodule.c:742,1
    - Dst: strlen
      Src: /src/selinux/policycoreutils/semodule/semodule.c:747,1
    - Dst: semanage_module_list_nth
      Src: /src/selinux/policycoreutils/semodule/semodule.c:758,1
    - Dst: semanage_module_info_get_priority
      Src: /src/selinux/policycoreutils/semodule/semodule.c:762,1
    - Dst: semanage_module_info_get_name
      Src: /src/selinux/policycoreutils/semodule/semodule.c:767,1
    - Dst: semanage_module_info_get_enabled
      Src: /src/selinux/policycoreutils/semodule/semodule.c:773,1
    - Dst: semanage_module_info_get_lang_ext
      Src: /src/selinux/policycoreutils/semodule/semodule.c:779,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:784,1
    - Dst: hash_module_data
      Src: /src/selinux/policycoreutils/semodule/semodule.c:792,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:795,1
    - Dst: free
      Src: /src/selinux/policycoreutils/semodule/semodule.c:798,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:801,1
    - Dst: semanage_module_list_nth
      Src: /src/selinux/policycoreutils/semodule/semodule.c:809,1
    - Dst: semanage_module_info_destroy
      Src: /src/selinux/policycoreutils/semodule/semodule.c:810,1
    - Dst: free
      Src: /src/selinux/policycoreutils/semodule/semodule.c:813,1
    - Dst: strtoul
      Src: /src/selinux/policycoreutils/semodule/semodule.c:819,1
    - Dst: semanage_set_default_priority
      Src: /src/selinux/policycoreutils/semodule/semodule.c:822,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:824,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:834,1
    - Dst: semanage_module_key_create
      Src: /src/selinux/policycoreutils/semodule/semodule.c:840,1
    - Dst: semanage_module_key_set_name
      Src: /src/selinux/policycoreutils/semodule/semodule.c:844,1
    - Dst: semanage_module_set_enabled
      Src: /src/selinux/policycoreutils/semodule/semodule.c:849,1
    - Dst: semanage_module_key_destroy
      Src: /src/selinux/policycoreutils/semodule/semodule.c:854,1
    - Dst: free
      Src: /src/selinux/policycoreutils/semodule/semodule.c:855,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:861,1
    - Dst: semanage_module_key_create
      Src: /src/selinux/policycoreutils/semodule/semodule.c:867,1
    - Dst: semanage_module_key_set_name
      Src: /src/selinux/policycoreutils/semodule/semodule.c:871,1
    - Dst: semanage_module_set_enabled
      Src: /src/selinux/policycoreutils/semodule/semodule.c:876,1
    - Dst: semanage_module_key_destroy
      Src: /src/selinux/policycoreutils/semodule/semodule.c:881,1
    - Dst: free
      Src: /src/selinux/policycoreutils/semodule/semodule.c:882,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:887,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/semodule/semodule.c:889,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:895,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:899,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:905,1
    - Dst: semanage_set_reload
      Src: /src/selinux/policycoreutils/semodule/semodule.c:907,1
    - Dst: semanage_set_rebuild
      Src: /src/selinux/policycoreutils/semodule/semodule.c:909,1
    - Dst: semanage_set_check_ext_changes
      Src: /src/selinux/policycoreutils/semodule/semodule.c:911,1
    - Dst: semanage_set_disable_dontaudit
      Src: /src/selinux/policycoreutils/semodule/semodule.c:913,1
    - Dst: semanage_set_disable_dontaudit
      Src: /src/selinux/policycoreutils/semodule/semodule.c:915,1
    - Dst: semanage_set_preserve_tunables
      Src: /src/selinux/policycoreutils/semodule/semodule.c:917,1
    - Dst: semanage_set_ignore_module_cache
      Src: /src/selinux/policycoreutils/semodule/semodule.c:919,1
    - Dst: semanage_commit
      Src: /src/selinux/policycoreutils/semodule/semodule.c:921,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:925,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:928,1
    - Dst: semanage_disconnect
      Src: /src/selinux/policycoreutils/semodule/semodule.c:931,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:932,1
    - Dst: semanage_is_connected
      Src: /src/selinux/policycoreutils/semodule/semodule.c:938,1
    - Dst: semanage_disconnect
      Src: /src/selinux/policycoreutils/semodule/semodule.c:939,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/semodule/semodule.c:940,1
    - Dst: semanage_handle_destroy
      Src: /src/selinux/policycoreutils/semodule/semodule.c:943,1
    - Dst: cleanup
      Src: /src/selinux/policycoreutils/semodule/semodule.c:946,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/semodule/semodule.c:947,1
    CyclomaticComplexity: 136
    EdgeCount: 136
    ICount: 378
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 431
    functionDepth: 3
    functionLinenumber: 431
    functionLinenumberEnd: 948
    functionName: main
    functionSourceFile: /src/selinux/policycoreutils/semodule/semodule.c
    functionUses: 1
    functionsReached:
    - semanage_disconnect
    - semanage_module_key_set_priority
    - fwrite
    - semanage_module_list_nth
    - semanage_reload_policy
    - strtoul
    - strcmp
    - strerror
    - semanage_module_info_get_name
    - cil_set_log_level
    - semanage_set_rebuild
    - semanage_set_disable_dontaudit
    - semanage_is_connected
    - fopen
    - create_signal_handlers
    - exit
    - fprintf
    - semanage_commit
    - semanage_module_extract
    - semanage_handle_create
    - semanage_module_install_file
    - semanage_connect
    - semanage_set_check_ext_changes
    - free
    - semanage_module_info_get_enabled
    - printf
    - semanage_module_info_get_lang_ext
    - strlen
    - semanage_module_key_destroy
    - semanage_module_list
    - semanage_module_compute_checksum
    - semanage_set_preserve_tunables
    - semanage_set_create_store
    - semanage_module_get_module_info
    - semanage_module_info_get_priority
    - semanage_set_store_root
    - cleanup
    - basename
    - semanage_begin_transaction
    - semanage_set_ignore_module_cache
    - semanage_handle_destroy
    - munmap
    - fclose
    - snprintf
    - parse_command_line
    - semanage_module_remove
    - semanage_module_info_destroy
    - hash_module_data
    - usage
    - semanage_module_key_create
    - semanage_module_list_all
    - semanage_select_store
    - semanage_module_set_enabled
    - semanage_set_reload
    - semanage_set_default_priority
    - semanage_module_key_set_name
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:35,1
    - Dst: va_start
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:38,1
    - Dst: vfprintf
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:39,1
    - Dst: _exit
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:40,1
    - Dst: va_end
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:42,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:43,1
    - Dst: _exit
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 46
    functionName: log_err
    functionSourceFile: /src/selinux/policycoreutils/hll/pp/pp.c
    functionUses: 0
    functionsReached:
    - va_end
    - vfprintf
    - format
    - va_start
    - fprintf
    - _exit
    linkageType: ''
    returnType: void
    signature: void log_err(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:50,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:51,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:52,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:54,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:56,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:58,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:59,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:60,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:61,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: usage
    functionSourceFile: /src/selinux/policycoreutils/hll/pp/pp.c
    functionUses: 11
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(int err)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: signal
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:79,1
    - Dst: basename
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:81,1
    - Dst: getopt_long
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:83,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:86,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:89,1
    - Dst: strcmp
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:93,1
    - Dst: fopen
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:95,1
    - Dst: log_err
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:97,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:98,1
    - Dst: strcmp
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:107,1
    - Dst: fopen
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:109,1
    - Dst: log_err
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:111,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:112,1
    - Dst: log_err
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:121,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:122,1
    - Dst: sepol_ppfile_to_module_package
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:125,1
    - Dst: fclose
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:129,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:134,1
    - Dst: log_err
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:136,1
    - Dst: basename
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:140,1
    - Dst: strrchr
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:141,1
    - Dst: strcmp
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:145,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:146,1
    - Dst: free
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:150,1
    - Dst: sepol_module_package_to_cil
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:153,1
    - Dst: fclose
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:160,1
    - Dst: fclose
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:163,1
    - Dst: sepol_module_package_free
      Src: /src/selinux/policycoreutils/hll/pp/pp.c:165,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 78
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 65
    functionDepth: 11
    functionLinenumber: 65
    functionLinenumberEnd: 168
    functionName: main
    functionSourceFile: /src/selinux/policycoreutils/hll/pp/pp.c
    functionUses: 1
    functionsReached:
    - fclose
    - getopt_long
    - sepol_module_package_to_cil
    - strrchr
    - sepol_module_package_free
    - usage
    - strcmp
    - signal
    - strerror
    - free
    - log_err
    - fopen
    - sepol_ppfile_to_module_package
    - basename
    - fprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msgid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 13
    functionName: _
    functionSourceFile: /src/selinux/policycoreutils/load_policy/load_policy.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(msgid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msgid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: _
    functionSourceFile: /src/selinux/policycoreutils/load_policy/load_policy.c
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(msgid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/load_policy/load_policy.c:23,1
    - Dst: _
      Src: /src/selinux/policycoreutils/load_policy/load_policy.c:23,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/load_policy/load_policy.c:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 25
    functionName: usage
    functionSourceFile: /src/selinux/policycoreutils/load_policy/load_policy.c
    functionUses: 12
    functionsReached:
    - exit
    - fprintf
    - _
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: setlocale
      Src: /src/selinux/policycoreutils/load_policy/load_policy.c:32,1
    - Dst: bindtextdomain
      Src: /src/selinux/policycoreutils/load_policy/load_policy.c:33,1
    - Dst: textdomain
      Src: /src/selinux/policycoreutils/load_policy/load_policy.c:34,1
    - Dst: getopt
      Src: /src/selinux/policycoreutils/load_policy/load_policy.c:37,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/load_policy/load_policy.c:40,1
    - Dst: sepol_debug
      Src: /src/selinux/policycoreutils/load_policy/load_policy.c:46,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/load_policy/load_policy.c:52,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/load_policy/load_policy.c:58,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/load_policy/load_policy.c:60,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/load_policy/load_policy.c:65,1
    - Dst: selinux_init_load_policy
      Src: /src/selinux/policycoreutils/load_policy/load_policy.c:70,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/load_policy/load_policy.c:74,1
    - Dst: _
      Src: /src/selinux/policycoreutils/load_policy/load_policy.c:75,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/load_policy/load_policy.c:76,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/load_policy/load_policy.c:77,1
    - Dst: selinux_mkload_policy
      Src: /src/selinux/policycoreutils/load_policy/load_policy.c:81,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/load_policy/load_policy.c:84,1
    - Dst: _
      Src: /src/selinux/policycoreutils/load_policy/load_policy.c:84,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/load_policy/load_policy.c:85,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/load_policy/load_policy.c:86,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/load_policy/load_policy.c:88,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 89
    functionName: main
    functionSourceFile: /src/selinux/policycoreutils/load_policy/load_policy.c
    functionUses: 2
    functionsReached:
    - bindtextdomain
    - getopt
    - selinux_init_load_policy
    - sepol_debug
    - selinux_mkload_policy
    - usage
    - strerror
    - setlocale
    - exit
    - fprintf
    - textdomain
    - _
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:36,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:41,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 48
    functionName: usage
    functionSourceFile: /src/selinux/policycoreutils/setfiles/setfiles.c
    functionUses: 13
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *const name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:52,1
    - Dst: strncmp
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:52,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:53,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:55,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:58,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:60,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 65
    functionName: set_rootpath
    functionSourceFile: /src/selinux/policycoreutils/setfiles/setfiles.c
    functionUses: 0
    functionsReached:
    - strncmp
    - exit
    - fprintf
    - strlen
    - strdup
    linkageType: ''
    returnType: void
    signature: void set_rootpath(const char *arg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sepol_check_context
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:73,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:74,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:75,1
    - Dst: security_canonicalize_context_raw
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:77,1
    - Dst: free
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - contextp
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 85
    functionName: canoncon
    functionSourceFile: /src/selinux/policycoreutils/setfiles/setfiles.c
    functionUses: 0
    functionsReached:
    - sepol_check_context
    - security_canonicalize_context_raw
    - free
    - exit
    - fprintf
    linkageType: ''
    returnType: int
    signature: int canoncon(char **contextp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: audit_open
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:96,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:99,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:100,1
    - Dst: audit_log_user_message
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:104,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:108,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:109,1
    - Dst: audit_close
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - mass_relabel_errs
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 116
    functionName: audit_mass_relabel
    functionSourceFile: /src/selinux/policycoreutils/setfiles/setfiles.c
    functionUses: 0
    functionsReached:
    - audit_log_user_message
    - audit_close
    - audit_open
    - strerror
    - fprintf
    linkageType: ''
    returnType: void
    signature: void audit_mass_relabel(int mass_relabel_errs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:118,1
    - Dst: fflush
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:129,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:130,1
    - Dst: va_start
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:132,1
    - Dst: vfprintf
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:133,1
    - Dst: va_end
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - type
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 136
    functionName: log_callback
    functionSourceFile: /src/selinux/policycoreutils/setfiles/setfiles.c
    functionUses: 0
    functionsReached:
    - va_end
    - vfprintf
    - format
    - fflush
    - va_start
    - fprintf
    linkageType: ''
    returnType: int
    signature: int log_callback(int type, const char *fmt, ...)
  - BBCount: 65
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:156,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:166,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:167,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:169,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:171,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:172,1
    - Dst: basename
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:174,1
    - Dst: strcmp
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:176,1
    - Dst: strcmp
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:203,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:204,1
    - Dst: is_selinux_enabled
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:220,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:221,1
    - Dst: getopt
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:225,1
    - Dst: fopen
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:237,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:239,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:241,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:242,1
    - Dst: __fsetlocking
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:244,1
    - Dst: sepol_set_policydb_from_file
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:247,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:249,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:251,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:252,1
    - Dst: fclose
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:254,1
    - Dst: lstat
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:260,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:261,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:263,1
    - Dst: add_exclude
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:266,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:319,1
    - Dst: lstat
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:334,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:335,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:337,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:338,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:342,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:345,1
    - Dst: set_rootpath
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:347,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:356,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:358,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:364,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:366,1
    - Dst: strtoull
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:380,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:382,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:389,1
    - Dst: strcmp
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:394,1
    - Dst: selinux_set_callback
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:399,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:404,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:408,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:412,1
    - Dst: selinux_set_callback
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:420,1
    - Dst: stat
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:422,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:423,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:424,1
    - Dst: S_ISREG
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:426,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:427,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:430,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:436,1
    - Dst: restore_init
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:443,1
    - Dst: strcmp
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:450,1
    - Dst: fopen
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:451,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:454,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:455,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:456,1
    - Dst: __fsetlocking
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:458,1
    - Dst: getdelim
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:461,1
    - Dst: strcmp
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:464,1
    - Dst: process_glob
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:470,1
    - Dst: strcmp
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:474,1
    - Dst: fclose
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:475,1
    - Dst: process_glob
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:478,1
    - Dst: audit_mass_relabel
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:484,1
    - Dst: selabel_stats
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:487,1
    - Dst: selabel_close
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:489,1
    - Dst: restore_finish
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:490,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:493,1
    - Dst: selinux_restorecon_get_relabeled_files
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:498,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:499,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:502,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/setfiles.c:505,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 250
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 506
    functionName: main
    functionSourceFile: /src/selinux/policycoreutils/setfiles/setfiles.c
    functionUses: 2
    functionsReached:
    - stat
    - strcmp
    - strerror
    - selinux_restorecon_get_relabeled_files
    - fopen
    - exit
    - fprintf
    - audit_mass_relabel
    - process_glob
    - getdelim
    - add_exclude
    - sepol_set_policydb_from_file
    - selabel_close
    - printf
    - is_selinux_enabled
    - S_ISREG
    - __fsetlocking
    - memset
    - basename
    - lstat
    - set_rootpath
    - selinux_set_callback
    - strdup
    - fclose
    - getopt
    - selabel_stats
    - strtoull
    - usage
    - perror
    - restore_finish
    - restore_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: selabel_open
      Src: /src/selinux/policycoreutils/setfiles/restore.c:30,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/setfiles/restore.c:32,1
    - Dst: selinux_file_context_path
      Src: /src/selinux/policycoreutils/setfiles/restore.c:33,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/restore.c:34,1
    - Dst: selinux_restorecon_set_sehandle
      Src: /src/selinux/policycoreutils/setfiles/restore.c:48,1
    - Dst: selinux_restorecon_set_alt_rootpath
      Src: /src/selinux/policycoreutils/setfiles/restore.c:51,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/restore.c:53,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/setfiles/restore.c:55,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/restore.c:56,1
    - Dst: selinux_restorecon_set_exclude_list
      Src: /src/selinux/policycoreutils/setfiles/restore.c:61,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct restore_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 63
    functionName: restore_init
    functionSourceFile: /src/selinux/policycoreutils/setfiles/restore.c
    functionUses: 1
    functionsReached:
    - selinux_restorecon_set_alt_rootpath
    - selinux_restorecon_set_exclude_list
    - strerror
    - perror
    - selinux_file_context_path
    - selinux_restorecon_set_sehandle
    - exit
    - fprintf
    - selabel_open
    linkageType: ''
    returnType: void
    signature: void restore_init(struct restore_opts *opts)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/policycoreutils/setfiles/restore.c:71,1
    - Dst: free
      Src: /src/selinux/policycoreutils/setfiles/restore.c:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 74
    functionName: restore_finish
    functionSourceFile: /src/selinux/policycoreutils/setfiles/restore.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void restore_finish(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/policycoreutils/setfiles/restore.c:83,1
    - Dst: glob
      Src: /src/selinux/policycoreutils/setfiles/restore.c:85,1
    - Dst: strlen
      Src: /src/selinux/policycoreutils/setfiles/restore.c:92,1
    - Dst: strcmp
      Src: /src/selinux/policycoreutils/setfiles/restore.c:93,1
    - Dst: strcmp
      Src: /src/selinux/policycoreutils/setfiles/restore.c:96,1
    - Dst: selinux_restorecon_parallel
      Src: /src/selinux/policycoreutils/setfiles/restore.c:98,1
    - Dst: selinux_restorecon_get_skipped_errors
      Src: /src/selinux/policycoreutils/setfiles/restore.c:106,1
    - Dst: selinux_restorecon_get_relabeled_files
      Src: /src/selinux/policycoreutils/setfiles/restore.c:110,1
    - Dst: globfree
      Src: /src/selinux/policycoreutils/setfiles/restore.c:114,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 5
    argNames:
    - name
    - opts
    - nthreads
    - skipped_errors
    - relabeled_files
    argTypes:
    - char*
    - struct restore_opts*
    - size_t
    - long unsigned*
    - long unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 117
    functionName: process_glob
    functionSourceFile: /src/selinux/policycoreutils/setfiles/restore.c
    functionUses: 1
    functionsReached:
    - selinux_restorecon_parallel
    - selinux_restorecon_get_skipped_errors
    - glob
    - globfree
    - strcmp
    - selinux_restorecon_get_relabeled_files
    - memset
    - strlen
    linkageType: ''
    returnType: int
    signature: "int process_glob(char *name, struct restore_opts *opts, size_t nthreads,\n\t\t
      long unsigned *skipped_errors, long unsigned *relabeled_files)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/restore.c:124,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/restore.c:126,1
    - Dst: realloc
      Src: /src/selinux/policycoreutils/setfiles/restore.c:132,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/restore.c:134,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/restore.c:136,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/setfiles/restore.c:140,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/restore.c:142,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/restore.c:144,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - directory
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 148
    functionName: add_exclude
    functionSourceFile: /src/selinux/policycoreutils/setfiles/restore.c
    functionUses: 1
    functionsReached:
    - exit
    - fprintf
    - strdup
    - realloc
    linkageType: ''
    returnType: void
    signature: void add_exclude(const char *directory)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:19,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 33
    functionName: usage
    functionSourceFile: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c
    functionUses: 14
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:52,1
    - Dst: is_selinux_enabled
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:54,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:55,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:57,1
    - Dst: getopt
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:62,1
    - Dst: lstat
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:85,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:86,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:88,1
    - Dst: add_exclude
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:91,1
    - Dst: usage
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:97,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:102,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:103,1
    - Dst: selabel_open
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:110,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:114,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:119,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:120,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:122,1
    - Dst: selinux_restorecon_set_sehandle
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:126,1
    - Dst: selabel_digest
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:129,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:131,1
    - Dst: selabel_close
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:133,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:134,1
    - Dst: malloc
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:137,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:139,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:140,1
    - Dst: selabel_close
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:141,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:142,1
    - Dst: sprintf
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:146,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:148,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:150,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:153,1
    - Dst: free
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:155,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:156,1
    - Dst: selinux_restorecon_set_exclude_list
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:160,1
    - Dst: realpath
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:166,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:168,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:169,1
    - Dst: selinux_restorecon_xattr
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:174,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:175,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:176,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:185,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:189,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:193,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:197,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:201,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:205,1
    - Dst: free
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:215,1
    - Dst: free
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:216,1
    - Dst: free
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:217,1
    - Dst: free
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:224,1
    - Dst: selabel_close
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:225,1
    - Dst: restore_finish
      Src: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c:226,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 137
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 228
    functionName: main
    functionSourceFile: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c
    functionUses: 2
    functionsReached:
    - strerror
    - selabel_digest
    - selinux_restorecon_set_sehandle
    - exit
    - fprintf
    - realpath
    - malloc
    - add_exclude
    - free
    - selabel_close
    - printf
    - is_selinux_enabled
    - selinux_restorecon_xattr
    - selinux_restorecon_set_exclude_list
    - sprintf
    - lstat
    - selabel_open
    - getopt
    - usage
    - restore_finish
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tcgetattr
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:57,1
    - Dst: tcsetattr
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 88
    functionName: tty_semi_raw
    functionSourceFile: /src/selinux/policycoreutils/run_init/open_init_pty.c
    functionUses: 0
    functionsReached:
    - tcgetattr
    - tcsetattr
    linkageType: ''
    returnType: int
    signature: int tty_semi_raw(int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tcsetattr
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 101
    functionName: tty_atexit
    functionSourceFile: /src/selinux/policycoreutils/run_init/open_init_pty.c
    functionUses: 0
    functionsReached:
    - tcsetattr
    linkageType: ''
    returnType: void
    signature: void tty_atexit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - b
    - buf
    - size
    argTypes:
    - struct ring_buffer*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: rb_init
    functionSourceFile: /src/selinux/policycoreutils/run_init/open_init_pty.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rb_init(struct ring_buffer *b, char *buf, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct ring_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: rb_isempty
    functionSourceFile: /src/selinux/policycoreutils/run_init/open_init_pty.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rb_isempty(struct ring_buffer *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct ring_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 134
    functionName: rb_space
    functionSourceFile: /src/selinux/policycoreutils/run_init/open_init_pty.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t rb_space(struct ring_buffer *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct ring_buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: rb_chunk_size
    functionSourceFile: /src/selinux/policycoreutils/run_init/open_init_pty.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t rb_chunk_size(struct ring_buffer *b)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:151,1
    - Dst: rb_space
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - b
    - fd
    argTypes:
    - struct ring_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 161
    functionName: rb_read
    functionSourceFile: /src/selinux/policycoreutils/run_init/open_init_pty.c
    functionUses: 0
    functionsReached:
    - rb_space
    - read
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t rb_read(struct ring_buffer *b, int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:165,1
    - Dst: rb_chunk_size
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - b
    - fd
    argTypes:
    - struct ring_buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 175
    functionName: rb_write
    functionSourceFile: /src/selinux/policycoreutils/run_init/open_init_pty.c
    functionUses: 0
    functionsReached:
    - write
    - rb_chunk_size
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t rb_write(struct ring_buffer *b, int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:179,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:182,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:183,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:184,1
    - Dst: fcntl
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:187,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:188,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:189,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 192
    functionName: setfd_nonblock
    functionSourceFile: /src/selinux/policycoreutils/run_init/open_init_pty.c
    functionUses: 0
    functionsReached:
    - fprintf
    - exit
    - fcntl
    - strerror
    linkageType: ''
    returnType: void
    signature: void setfd_nonblock(int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fcntl
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:196,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:199,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:200,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:201,1
    - Dst: fcntl
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:204,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:205,1
    - Dst: strerror
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:206,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: setfd_block
    functionSourceFile: /src/selinux/policycoreutils/run_init/open_init_pty.c
    functionUses: 0
    functionsReached:
    - fprintf
    - exit
    - fcntl
    - strerror
    linkageType: ''
    returnType: void
    signature: void setfd_block(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setfd_block
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:213,1
    - Dst: setfd_block
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: setfd_atexit
    functionSourceFile: /src/selinux/policycoreutils/run_init/open_init_pty.c
    functionUses: 0
    functionsReached:
    - setfd_block
    linkageType: ''
    returnType: void
    signature: void setfd_atexit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - asig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: sigchld_handler
    functionSourceFile: /src/selinux/policycoreutils/run_init/open_init_pty.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sigchld_handler(int asig __attribute__((unused)))
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: rb_init
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:246,1
    - Dst: rb_init
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:247,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:250,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:251,1
    - Dst: signal
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:255,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:256,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:257,1
    - Dst: isatty
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:260,1
    - Dst: tcgetattr
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:262,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:263,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:264,1
    - Dst: ioctl
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:268,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:269,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:270,1
    - Dst: forkpty
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:273,1
    - Dst: forkpty
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:275,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:279,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:280,1
    - Dst: tcgetattr
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:284,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:285,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:286,1
    - Dst: tcsetattr
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:292,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:293,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:294,1
    - Dst: execvp
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:297,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:298,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:299,1
    - Dst: setfd_nonblock
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:304,1
    - Dst: setfd_nonblock
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:305,1
    - Dst: setfd_nonblock
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:306,1
    - Dst: atexit
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:307,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:308,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:309,1
    - Dst: isatty
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:312,1
    - Dst: tty_semi_raw
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:313,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:314,1
    - Dst: atexit
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:316,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:317,1
    - Dst: FD_ZERO
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:324,1
    - Dst: FD_ZERO
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:325,1
    - Dst: rb_space
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:327,1
    - Dst: FD_SET
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:328,1
    - Dst: rb_isempty
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:332,1
    - Dst: FD_SET
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:333,1
    - Dst: rb_space
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:337,1
    - Dst: FD_SET
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:338,1
    - Dst: rb_isempty
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:342,1
    - Dst: FD_SET
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:343,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:349,1
    - Dst: waitpid
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:352,1
    - Dst: select
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:360,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:362,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:363,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:366,1
    - Dst: FD_ISSET
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:369,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:371,1
    - Dst: rb_write
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:373,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:379,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:382,1
    - Dst: FD_ISSET
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:386,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:388,1
    - Dst: rb_write
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:390,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:396,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:400,1
    - Dst: FD_ISSET
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:404,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:406,1
    - Dst: rb_read
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:408,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:414,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:417,1
    - Dst: FD_ISSET
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:421,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:423,1
    - Dst: rb_read
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:425,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:431,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:434,1
    - Dst: waitpid
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:439,1
    - Dst: rb_isempty
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:442,1
    - Dst: rb_isempty
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:443,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:446,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:448,1
    - Dst: WIFEXITED
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:453,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:454,1
    - Dst: WEXITSTATUS
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:454,1
    - Dst: WIFSIGNALED
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:455,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:456,1
    - Dst: WTERMSIG
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:456,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/open_init_pty.c:458,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 132
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 459
    functionName: main
    functionSourceFile: /src/selinux/policycoreutils/run_init/open_init_pty.c
    functionUses: 2
    functionsReached:
    - isatty
    - FD_ISSET
    - FD_SET
    - tcgetattr
    - select
    - FD_ZERO
    - WIFSIGNALED
    - exit
    - fprintf
    - WTERMSIG
    - rb_init
    - signal
    - waitpid
    - rb_read
    - printf
    - atexit
    - rb_space
    - tty_semi_raw
    - execvp
    - rb_write
    - WEXITSTATUS
    - forkpty
    - tcsetattr
    - WIFEXITED
    - perror
    - rb_isempty
    - ioctl
    - setfd_nonblock
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msgid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: _
    functionSourceFile: /src/selinux/policycoreutils/run_init/run_init.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(msgid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msgid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: _
    functionSourceFile: /src/selinux/policycoreutils/run_init/run_init.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(msgid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pam_start
      Src: /src/selinux/policycoreutils/run_init/run_init.c:122,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/run_init.c:124,1
    - Dst: _
      Src: /src/selinux/policycoreutils/run_init/run_init.c:124,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/run_init.c:125,1
    - Dst: pam_authenticate
      Src: /src/selinux/policycoreutils/run_init/run_init.c:129,1
    - Dst: pam_acct_mgmt
      Src: /src/selinux/policycoreutils/run_init/run_init.c:136,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/run_init.c:137,1
    - Dst: _
      Src: /src/selinux/policycoreutils/run_init/run_init.c:137,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/run_init.c:138,1
    - Dst: pam_end
      Src: /src/selinux/policycoreutils/run_init/run_init.c:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - p_passwd_line
    argTypes:
    - struct passwd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 146
    functionName: authenticate_via_pam
    functionSourceFile: /src/selinux/policycoreutils/run_init/run_init.c
    functionUses: 1
    functionsReached:
    - pam_start
    - pam_end
    - pam_acct_mgmt
    - pam_authenticate
    - exit
    - fprintf
    - _
    linkageType: ''
    returnType: int
    signature: int authenticate_via_pam(const struct passwd *p_passwd_line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setspent
      Src: /src/selinux/policycoreutils/run_init/run_init.c:195,1
    - Dst: getspnam
      Src: /src/selinux/policycoreutils/run_init/run_init.c:196,1
    - Dst: endspent
      Src: /src/selinux/policycoreutils/run_init/run_init.c:197,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/run_init.c:199,1
    - Dst: _
      Src: /src/selinux/policycoreutils/run_init/run_init.c:200,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/run_init.c:201,1
    - Dst: getpass
      Src: /src/selinux/policycoreutils/run_init/run_init.c:205,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/run_init.c:206,1
    - Dst: _
      Src: /src/selinux/policycoreutils/run_init/run_init.c:206,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/run_init.c:207,1
    - Dst: crypt
      Src: /src/selinux/policycoreutils/run_init/run_init.c:214,1
    - Dst: memset
      Src: /src/selinux/policycoreutils/run_init/run_init.c:215,1
    - Dst: strlen
      Src: /src/selinux/policycoreutils/run_init/run_init.c:215,1
    - Dst: strcmp
      Src: /src/selinux/policycoreutils/run_init/run_init.c:222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - p_passwd_line
    argTypes:
    - struct passwd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 224
    functionName: authenticate_via_shadow_passwd
    functionSourceFile: /src/selinux/policycoreutils/run_init/run_init.c
    functionUses: 1
    functionsReached:
    - endspent
    - strcmp
    - exit
    - getpass
    - memset
    - getspnam
    - crypt
    - setspent
    - fprintf
    - strlen
    - _
    linkageType: ''
    returnType: int
    signature: int authenticate_via_shadow_passwd(const struct passwd *p_passwd_line)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/policycoreutils/run_init/run_init.c:307,1
    - Dst: selinux_contexts_path
      Src: /src/selinux/policycoreutils/run_init/run_init.c:308,1
    - Dst: fopen
      Src: /src/selinux/policycoreutils/run_init/run_init.c:309,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/run_init.c:311,1
    - Dst: _
      Src: /src/selinux/policycoreutils/run_init/run_init.c:311,1
    - Dst: fgets
      Src: /src/selinux/policycoreutils/run_init/run_init.c:317,1
    - Dst: strlen
      Src: /src/selinux/policycoreutils/run_init/run_init.c:320,1
    - Dst: isspace
      Src: /src/selinux/policycoreutils/run_init/run_init.c:325,1
    - Dst: strdup
      Src: /src/selinux/policycoreutils/run_init/run_init.c:329,1
    - Dst: fclose
      Src: /src/selinux/policycoreutils/run_init/run_init.c:332,1
    - Dst: fclose
      Src: /src/selinux/policycoreutils/run_init/run_init.c:337,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/run_init.c:338,1
    - Dst: _
      Src: /src/selinux/policycoreutils/run_init/run_init.c:338,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - context
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 341
    functionName: get_init_context
    functionSourceFile: /src/selinux/policycoreutils/run_init/run_init.c
    functionUses: 0
    functionsReached:
    - fclose
    - snprintf
    - isspace
    - strdup
    - fgets
    - selinux_contexts_path
    - fopen
    - fprintf
    - strlen
    - _
    linkageType: ''
    returnType: int
    signature: int get_init_context(char **context)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: setlocale
      Src: /src/selinux/policycoreutils/run_init/run_init.c:353,1
    - Dst: bindtextdomain
      Src: /src/selinux/policycoreutils/run_init/run_init.c:354,1
    - Dst: textdomain
      Src: /src/selinux/policycoreutils/run_init/run_init.c:355,1
    - Dst: is_selinux_enabled
      Src: /src/selinux/policycoreutils/run_init/run_init.c:359,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/run_init.c:360,1
    - Dst: _
      Src: /src/selinux/policycoreutils/run_init/run_init.c:361,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/run_init.c:362,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/run_init.c:372,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/run_init.c:373,1
    - Dst: authenticate_user
      Src: /src/selinux/policycoreutils/run_init/run_init.c:379,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/run_init.c:380,1
    - Dst: _
      Src: /src/selinux/policycoreutils/run_init/run_init.c:380,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/run_init.c:381,1
    - Dst: get_init_context
      Src: /src/selinux/policycoreutils/run_init/run_init.c:387,1
    - Dst: printf
      Src: /src/selinux/policycoreutils/run_init/run_init.c:389,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/run_init.c:392,1
    - Dst: chdir
      Src: /src/selinux/policycoreutils/run_init/run_init.c:399,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/run_init/run_init.c:400,1
    - Dst: free
      Src: /src/selinux/policycoreutils/run_init/run_init.c:401,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/run_init.c:402,1
    - Dst: setexeccon
      Src: /src/selinux/policycoreutils/run_init/run_init.c:405,1
    - Dst: fprintf
      Src: /src/selinux/policycoreutils/run_init/run_init.c:406,1
    - Dst: _
      Src: /src/selinux/policycoreutils/run_init/run_init.c:406,1
    - Dst: free
      Src: /src/selinux/policycoreutils/run_init/run_init.c:408,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/run_init.c:409,1
    - Dst: free
      Src: /src/selinux/policycoreutils/run_init/run_init.c:412,1
    - Dst: access
      Src: /src/selinux/policycoreutils/run_init/run_init.c:414,1
    - Dst: execvp
      Src: /src/selinux/policycoreutils/run_init/run_init.c:415,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/run_init/run_init.c:416,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/run_init.c:417,1
    - Dst: execvp
      Src: /src/selinux/policycoreutils/run_init/run_init.c:429,1
    - Dst: perror
      Src: /src/selinux/policycoreutils/run_init/run_init.c:430,1
    - Dst: exit
      Src: /src/selinux/policycoreutils/run_init/run_init.c:431,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 435
    functionName: main
    functionSourceFile: /src/selinux/policycoreutils/run_init/run_init.c
    functionUses: 3
    functionsReached:
    - get_init_context
    - bindtextdomain
    - chdir
    - authenticate_user
    - execvp
    - setlocale
    - perror
    - free
    - setexeccon
    - printf
    - access
    - exit
    - fprintf
    - is_selinux_enabled
    - textdomain
    - _
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - CON1
    - ','
    - CON2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: CU_ASSERT_CONTEXT_EQUAL
    functionSourceFile: /src/selinux/libsemanage/tests/utilities.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CU_ASSERT_CONTEXT_EQUAL(CON1, CON2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: CU_ASSERT_FATAL
    functionSourceFile: /src/selinux/libsemanage/tests/utilities.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CU_ASSERT_FATAL(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: CU_FAIL_FATAL
    functionSourceFile: /src/selinux/libsemanage/tests/utilities.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CU_FAIL_FATAL(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: CU_ASSERT_PTR_NOT_NULL_FATAL
    functionSourceFile: /src/selinux/libsemanage/tests/utilities.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CU_ASSERT_PTR_NOT_NULL_FATAL(value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:70,1
    - Dst: perror
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:73,1
    - Dst: fwrite
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:77,1
    - Dst: perror
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:78,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:79,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - data
    - data_len
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 86
    functionName: write_file_contexts
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - fwrite
    - perror
    - fclose
    - fopen
    linkageType: ''
    returnType: int
    signature: int write_file_contexts(const char *data, unsigned int data_len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: create_test_store
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:90,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:91,1
    - Dst: write_test_policy_from_file
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:95,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:96,1
    - Dst: write_file_contexts
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:100,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 106
    functionName: fcontext_test_init
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - create_test_store
    - write_test_policy_from_file
    - write_file_contexts
    - fprintf
    linkageType: ''
    returnType: int
    signature: int fcontext_test_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: destroy_test_store
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:110,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: fcontext_test_cleanup
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - destroy_test_store
    - fprintf
    linkageType: ''
    returnType: int
    signature: int fcontext_test_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:120,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:121,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:122,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:124,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:126,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:128,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:130,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:132,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:134,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:135,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:137,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:138,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:139,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:140,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:141,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:142,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:144,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:146,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:148,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:150,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - suite
    argTypes:
    - CU_pSuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 156
    functionName: fcontext_add_tests
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - CU_add_test
    linkageType: ''
    returnType: int
    signature: int fcontext_add_tests(CU_pSuite suite)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:169,1
    - Dst: semanage_fcontext_list
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:169,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:170,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:176,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 181
    functionName: get_fcontext_nth
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - semanage_fcontext_list
    - semanage_fcontext_free
    - free
    - CU_ASSERT_FATAL
    linkageType: ''
    returnType: semanage_fcontext_t
    signature: semanage_fcontext_t *get_fcontext_nth(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_fcontext_nth
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:191,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:193,1
    - Dst: semanage_fcontext_key_extract
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:193,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:194,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 199
    functionName: get_fcontext_key_nth
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - semanage_fcontext_free
    - get_fcontext_nth
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - CU_ASSERT_FATAL
    - semanage_fcontext_key_extract
    linkageType: ''
    returnType: semanage_fcontext_key_t
    signature: semanage_fcontext_key_t *get_fcontext_key_nth(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:206,1
    - Dst: get_fcontext_nth
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:208,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:210,1
    - Dst: semanage_fcontext_key_extract
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:210,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:211,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:213,1
    - Dst: semanage_fcontext_modify_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:213,1
    - Dst: semanage_fcontext_key_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:216,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - fcontext_idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 218
    functionName: add_local_fcontext
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - semanage_fcontext_free
    - semanage_fcontext_modify_local
    - get_fcontext_nth
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - CU_ASSERT_FATAL
    - semanage_fcontext_key_extract
    - semanage_fcontext_key_free
    linkageType: ''
    returnType: void
    signature: void add_local_fcontext(int fcontext_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:224,1
    - Dst: get_fcontext_key_nth
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:226,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:228,1
    - Dst: semanage_fcontext_del_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:228,1
    - Dst: semanage_fcontext_key_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fcontext_idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 231
    functionName: delete_local_fcontext
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - semanage_fcontext_key_free
    - semanage_fcontext_del_local
    - CU_ASSERT_FATAL
    - get_fcontext_key_nth
    linkageType: ''
    returnType: void
    signature: void delete_local_fcontext(int fcontext_idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fcontext_key_create
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:242,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:244,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - str
    - type
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 248
    functionName: get_fcontext_key_from_str
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - semanage_fcontext_key_create
    - CU_ASSERT_FATAL
    linkageType: ''
    returnType: semanage_fcontext_key_t
    signature: "semanage_fcontext_key_t *get_fcontext_key_from_str(const char *str,\n\t\t\t\t\t\t\t
      \ int type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:259,1
    - Dst: get_fcontext_nth
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:261,1
    - Dst: get_fcontext_key_nth
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:263,1
    - Dst: get_fcontext_key_nth
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:264,1
    - Dst: get_fcontext_key_nth
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:265,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:268,1
    - Dst: semanage_fcontext_compare
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:268,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:269,1
    - Dst: semanage_fcontext_compare
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:269,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:270,1
    - Dst: semanage_fcontext_compare
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:270,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:273,1
    - Dst: semanage_fcontext_key_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:274,1
    - Dst: semanage_fcontext_key_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:275,1
    - Dst: semanage_fcontext_key_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:276,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 278
    functionName: test_fcontext_compare
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - semanage_fcontext_free
    - semanage_fcontext_key_free
    - cleanup_handle
    - get_fcontext_nth
    - CU_ASSERT
    - setup_handle
    - get_fcontext_key_nth
    - semanage_fcontext_compare
    linkageType: ''
    returnType: void
    signature: void test_fcontext_compare(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:289,1
    - Dst: get_fcontext_nth
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:291,1
    - Dst: get_fcontext_nth
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:292,1
    - Dst: get_fcontext_nth
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:293,1
    - Dst: get_fcontext_nth
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:294,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:297,1
    - Dst: semanage_fcontext_compare2
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:297,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:298,1
    - Dst: semanage_fcontext_compare2
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:298,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:299,1
    - Dst: semanage_fcontext_compare2
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:299,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:302,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:303,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:304,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:305,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 307
    functionName: test_fcontext_compare2
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - semanage_fcontext_free
    - cleanup_handle
    - get_fcontext_nth
    - CU_ASSERT
    - setup_handle
    - semanage_fcontext_compare2
    linkageType: ''
    returnType: void
    signature: void test_fcontext_compare2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:315,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:318,1
    - Dst: semanage_fcontext_key_create
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:318,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:320,1
    - Dst: semanage_fcontext_key_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:322,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:326,1
    - Dst: semanage_fcontext_key_create
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:326,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:329,1
    - Dst: semanage_fcontext_key_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:331,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 335
    functionName: test_fcontext_key_create
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_PTR_NOT_NULL
    - cleanup_handle
    - CU_ASSERT
    - semanage_fcontext_key_create
    - setup_handle
    - semanage_fcontext_key_free
    linkageType: ''
    returnType: void
    signature: void test_fcontext_key_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:344,1
    - Dst: get_fcontext_nth
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:345,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:348,1
    - Dst: semanage_fcontext_key_extract
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:348,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:349,1
    - Dst: semanage_fcontext_key_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:352,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:353,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 355
    functionName: test_fcontext_key_extract
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_PTR_NOT_NULL
    - semanage_fcontext_free
    - cleanup_handle
    - get_fcontext_nth
    - CU_ASSERT
    - setup_handle
    - semanage_fcontext_key_extract
    - semanage_fcontext_key_free
    linkageType: ''
    returnType: void
    signature: void test_fcontext_key_extract(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:365,1
    - Dst: get_fcontext_nth
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:366,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:369,1
    - Dst: semanage_fcontext_set_expr
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:369,1
    - Dst: semanage_fcontext_get_expr
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:370,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:371,1
    - Dst: assert
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:372,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:373,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:376,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (expr)
      pos:
        line_end: 371
        line_start: 371
        source_file: /src/selinux/libsemanage/tests/test_fcontext.c
    constantsTouched: []
    func_position:
      end: 378
      start: 358
    functionDepth: 2
    functionLinenumber: 358
    functionLinenumberEnd: 378
    functionName: test_fcontext_get_set_expr
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_STRING_EQUAL
    - CU_ASSERT_PTR_NOT_NULL
    - semanage_fcontext_free
    - cleanup_handle
    - assert
    - get_fcontext_nth
    - CU_ASSERT
    - setup_handle
    - semanage_fcontext_get_expr
    - semanage_fcontext_set_expr
    linkageType: ''
    returnType: void
    signature: void test_fcontext_get_set_expr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:388,1
    - Dst: get_fcontext_nth
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:389,1
    - Dst: semanage_fcontext_set_type
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:392,1
    - Dst: semanage_fcontext_get_type
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:393,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:394,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:397,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 399
    functionName: test_fcontext_get_set_type
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - semanage_fcontext_free
    - cleanup_handle
    - get_fcontext_nth
    - CU_ASSERT
    - setup_handle
    - semanage_fcontext_set_type
    - semanage_fcontext_get_type
    linkageType: ''
    returnType: void
    signature: void test_fcontext_get_set_type(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:404,1
    - Dst: semanage_fcontext_get_type_str
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - exp_str
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 405
    functionName: helper_fcontext_get_type_str
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - semanage_fcontext_get_type_str
    - CU_ASSERT_STRING_EQUAL
    linkageType: ''
    returnType: void
    signature: void helper_fcontext_get_type_str(int type, const char *exp_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_fcontext_get_type_str
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:409,1
    - Dst: helper_fcontext_get_type_str
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:410,1
    - Dst: helper_fcontext_get_type_str
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:411,1
    - Dst: helper_fcontext_get_type_str
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:412,1
    - Dst: helper_fcontext_get_type_str
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:414,1
    - Dst: helper_fcontext_get_type_str
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:415,1
    - Dst: helper_fcontext_get_type_str
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:416,1
    - Dst: helper_fcontext_get_type_str
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:417,1
    - Dst: helper_fcontext_get_type_str
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:419,1
    - Dst: helper_fcontext_get_type_str
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 421
    functionName: test_fcontext_get_type_str
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - helper_fcontext_get_type_str
    linkageType: ''
    returnType: void
    signature: void test_fcontext_get_type_str(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:432,1
    - Dst: get_fcontext_nth
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:433,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:436,1
    - Dst: semanage_context_from_string
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:436,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:437,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:443,1
    - Dst: semanage_fcontext_set_con
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:443,1
    - Dst: semanage_fcontext_get_con
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:444,1
    - Dst: CU_ASSERT_CONTEXT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:447,1
    - Dst: CU_ASSERT_PTR_NULL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:449,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:453,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:454,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 3
    argNames:
    - level
    - fcontext_idx
    - con_str
    argTypes:
    - level_t
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 456
    functionName: helper_fcontext_get_set_con
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_PTR_NULL
    - semanage_fcontext_set_con
    - CU_ASSERT_PTR_NOT_NULL
    - semanage_fcontext_free
    - cleanup_handle
    - get_fcontext_nth
    - CU_ASSERT
    - semanage_context_from_string
    - setup_handle
    - CU_ASSERT_CONTEXT_EQUAL
    - semanage_context_free
    - semanage_fcontext_get_con
    linkageType: ''
    returnType: void
    signature: "void helper_fcontext_get_set_con(level_t level, int fcontext_idx,\n\t\t\t\t\tconst
      char *con_str)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_fcontext_get_set_con
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:460,1
    - Dst: helper_fcontext_get_set_con
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:461,1
    - Dst: helper_fcontext_get_set_con
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:463,1
    - Dst: helper_fcontext_get_set_con
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:465,1
    - Dst: helper_fcontext_get_set_con
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:466,1
    - Dst: helper_fcontext_get_set_con
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 458
    functionDepth: 3
    functionLinenumber: 458
    functionLinenumberEnd: 470
    functionName: test_fcontext_get_set_con
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - helper_fcontext_get_set_con
    linkageType: ''
    returnType: void
    signature: void test_fcontext_get_set_con(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:478,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:481,1
    - Dst: semanage_fcontext_create
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:481,1
    - Dst: CU_ASSERT_PTR_NULL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:482,1
    - Dst: semanage_fcontext_get_expr
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:482,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:483,1
    - Dst: semanage_fcontext_get_type
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:483,1
    - Dst: CU_ASSERT_PTR_NULL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:485,1
    - Dst: semanage_fcontext_get_con
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:485,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:488,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - level
    argTypes:
    - level_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 490
    functionName: helper_fcontext_create
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_PTR_NULL
    - semanage_fcontext_free
    - cleanup_handle
    - semanage_fcontext_create
    - CU_ASSERT
    - semanage_fcontext_get_expr
    - setup_handle
    - semanage_fcontext_get_con
    - semanage_fcontext_get_type
    linkageType: ''
    returnType: void
    signature: void helper_fcontext_create(level_t level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_fcontext_create
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:494,1
    - Dst: helper_fcontext_create
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:495,1
    - Dst: helper_fcontext_create
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:496,1
    - Dst: helper_fcontext_create
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 498
    functionName: test_fcontext_create
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - helper_fcontext_create
    linkageType: ''
    returnType: void
    signature: void test_fcontext_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:513,1
    - Dst: get_fcontext_nth
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:514,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:517,1
    - Dst: semanage_fcontext_clone
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:517,1
    - Dst: semanage_fcontext_get_expr
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:519,1
    - Dst: semanage_fcontext_get_expr
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:520,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:521,1
    - Dst: semanage_fcontext_get_type
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:523,1
    - Dst: semanage_fcontext_get_type
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:524,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:525,1
    - Dst: semanage_fcontext_get_con
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:527,1
    - Dst: semanage_fcontext_get_con
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:528,1
    - Dst: CU_ASSERT_CONTEXT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:529,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:532,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:533,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - level
    - fcontext_idx
    argTypes:
    - level_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 535
    functionName: helper_fcontext_clone
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_STRING_EQUAL
    - semanage_fcontext_free
    - cleanup_handle
    - get_fcontext_nth
    - semanage_fcontext_clone
    - CU_ASSERT_EQUAL
    - CU_ASSERT
    - setup_handle
    - semanage_fcontext_get_expr
    - CU_ASSERT_CONTEXT_EQUAL
    - semanage_fcontext_get_con
    - semanage_fcontext_get_type
    linkageType: ''
    returnType: void
    signature: void helper_fcontext_clone(level_t level, int fcontext_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_fcontext_clone
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:539,1
    - Dst: helper_fcontext_clone
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:540,1
    - Dst: helper_fcontext_clone
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:541,1
    - Dst: helper_fcontext_clone
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 537
    functionDepth: 3
    functionLinenumber: 537
    functionLinenumberEnd: 543
    functionName: test_fcontext_clone
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - helper_fcontext_clone
    linkageType: ''
    returnType: void
    signature: void test_fcontext_clone(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:554,1
    - Dst: get_fcontext_key_from_str
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:555,1
    - Dst: semanage_fcontext_query
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:558,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:561,1
    - Dst: semanage_fcontext_get_expr
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:562,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:563,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:564,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:566,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:567,1
    - Dst: semanage_fcontext_key_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:571,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:572,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - level
    - fcontext_expr
    - fcontext_type
    - exp_res
    argTypes:
    - level_t
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 573
    functionName: helper_fcontext_query
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_STRING_EQUAL
    - get_fcontext_key_from_str
    - semanage_fcontext_query
    - semanage_fcontext_free
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - semanage_fcontext_get_expr
    - semanage_fcontext_key_free
    linkageType: ''
    returnType: void
    signature: "void helper_fcontext_query(level_t level, const char *fcontext_expr,\n\t\t\t\t
      \ int fcontext_type, int exp_res)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_fcontext_query
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:577,1
    - Dst: helper_fcontext_query
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:579,1
    - Dst: helper_fcontext_query
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:580,1
    - Dst: helper_fcontext_query
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:581,1
    - Dst: helper_fcontext_query
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:582,1
    - Dst: helper_fcontext_query
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:584,1
    - Dst: helper_fcontext_query
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:585,1
    - Dst: helper_fcontext_query
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 575
    functionDepth: 3
    functionLinenumber: 575
    functionLinenumberEnd: 587
    functionName: test_fcontext_query
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - helper_fcontext_query
    linkageType: ''
    returnType: void
    signature: void test_fcontext_query(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:597,1
    - Dst: get_fcontext_key_from_str
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:598,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:601,1
    - Dst: semanage_fcontext_exists
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:601,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:602,1
    - Dst: semanage_fcontext_key_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:605,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - level
    - fcontext_expr
    - fcontext_type
    - exp_resp
    argTypes:
    - level_t
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 607
    functionName: helper_fcontext_exists
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - get_fcontext_key_from_str
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - semanage_fcontext_key_free
    - semanage_fcontext_exists
    linkageType: ''
    returnType: void
    signature: "void helper_fcontext_exists(level_t level, const char *fcontext_expr,\n\t\t\t\t
      \  int fcontext_type, int exp_resp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_fcontext_exists
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:611,1
    - Dst: helper_fcontext_exists
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:613,1
    - Dst: helper_fcontext_exists
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:614,1
    - Dst: helper_fcontext_exists
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:615,1
    - Dst: helper_fcontext_exists
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:616,1
    - Dst: helper_fcontext_exists
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:618,1
    - Dst: helper_fcontext_exists
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:619,1
    - Dst: helper_fcontext_exists
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 609
    functionDepth: 3
    functionLinenumber: 609
    functionLinenumberEnd: 621
    functionName: test_fcontext_exists
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - helper_fcontext_exists
    linkageType: ''
    returnType: void
    signature: void test_fcontext_exists(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:629,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:630,1
    - Dst: semanage_fcontext_count
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:630,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:631,1
    - Dst: semanage_fcontext_count
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:631,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:632,1
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:636,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:637,1
    - Dst: semanage_fcontext_count
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:637,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:638,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:639,1
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:643,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:644,1
    - Dst: semanage_fcontext_count
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:644,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:645,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 647
    functionName: test_fcontext_count
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    - setup_handle
    - cleanup_handle
    - semanage_fcontext_count
    linkageType: ''
    returnType: void
    signature: void test_fcontext_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - record
    - varg
    argTypes:
    - semanage_fcontext_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 658
    functionName: handler_fcontext_iterate
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_PTR_NOT_NULL
    linkageType: ''
    returnType: int
    signature: "int handler_fcontext_iterate(const semanage_fcontext_t *record,\n\t\t\t\t
      \   __attribute__((unused)) void *varg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:663,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:666,1
    - Dst: semanage_fcontext_iterate
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:666,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:668,1
    - Dst: semanage_fcontext_iterate
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:668,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 672
    functionName: helper_fcontext_iterate_invalid
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    - semanage_fcontext_iterate
    - setup_handle
    - cleanup_handle
    linkageType: ''
    returnType: void
    signature: void helper_fcontext_iterate_invalid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:677,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:681,1
    - Dst: semanage_fcontext_iterate
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:681,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:683,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - level
    argTypes:
    - level_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 687
    functionName: helper_fcontext_iterate
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    - semanage_fcontext_iterate
    - setup_handle
    - cleanup_handle
    linkageType: ''
    returnType: void
    signature: void helper_fcontext_iterate(level_t level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_fcontext_iterate_invalid
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:691,1
    - Dst: helper_fcontext_iterate
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:692,1
    - Dst: helper_fcontext_iterate
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 689
    functionDepth: 2
    functionLinenumber: 689
    functionLinenumberEnd: 694
    functionName: test_fcontext_iterate
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - helper_fcontext_iterate_invalid
    - helper_fcontext_iterate
    linkageType: ''
    returnType: void
    signature: void test_fcontext_iterate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:703,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:706,1
    - Dst: semanage_fcontext_list
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:706,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:707,1
    - Dst: semanage_fcontext_list
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:707,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:708,1
    - Dst: semanage_fcontext_list
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:708,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 712
    functionName: helper_fcontext_list_invalid
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - semanage_fcontext_list
    - CU_ASSERT
    - setup_handle
    - cleanup_handle
    linkageType: ''
    returnType: void
    signature: void helper_fcontext_list_invalid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:720,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:723,1
    - Dst: semanage_fcontext_list
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:723,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:724,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:727,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:730,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:732,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:735,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - level
    argTypes:
    - level_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 736
    functionName: helper_fcontext_list
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - semanage_fcontext_list
    - CU_ASSERT_PTR_NOT_NULL
    - semanage_fcontext_free
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - free
    linkageType: ''
    returnType: void
    signature: void helper_fcontext_list(level_t level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_fcontext_list_invalid
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:740,1
    - Dst: helper_fcontext_list
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:741,1
    - Dst: helper_fcontext_list
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 738
    functionDepth: 2
    functionLinenumber: 738
    functionLinenumberEnd: 743
    functionName: test_fcontext_list
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - helper_fcontext_list_invalid
    - helper_fcontext_list
    linkageType: ''
    returnType: void
    signature: void test_fcontext_list(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:756,1
    - Dst: get_fcontext_nth
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:757,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:758,1
    - Dst: semanage_fcontext_key_extract
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:758,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:759,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:762,1
    - Dst: semanage_context_from_string
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:762,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:763,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:768,1
    - Dst: semanage_fcontext_set_con
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:768,1
    - Dst: semanage_fcontext_modify_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:771,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:774,1
    - Dst: helper_commit
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:777,1
    - Dst: helper_begin_transaction
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:778,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:781,1
    - Dst: semanage_fcontext_query_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:781,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:783,1
    - Dst: semanage_fcontext_compare2
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:783,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:785,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:787,1
    - Dst: semanage_fcontext_del_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:787,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:788,1
    - Dst: semanage_fcontext_query_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:788,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:791,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:795,1
    - Dst: semanage_fcontext_key_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:796,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:797,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:798,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 4
    argNames:
    - level
    - fcontext_idx
    - con_str
    - exp_res
    argTypes:
    - level_t
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 746
    functionDepth: 2
    functionLinenumber: 746
    functionLinenumberEnd: 799
    functionName: helper_fcontext_modify_del_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - semanage_fcontext_query_local
    - semanage_fcontext_set_con
    - CU_ASSERT_PTR_NOT_NULL
    - semanage_fcontext_free
    - semanage_fcontext_del_local
    - semanage_fcontext_modify_local
    - semanage_context_free
    - get_fcontext_nth
    - cleanup_handle
    - CU_ASSERT
    - semanage_context_from_string
    - setup_handle
    - helper_commit
    - helper_begin_transaction
    - semanage_fcontext_key_extract
    - semanage_fcontext_key_free
    - semanage_fcontext_compare2
    linkageType: ''
    returnType: void
    signature: "void helper_fcontext_modify_del_local(level_t level, int fcontext_idx,\n\t\t\t\t\t
      \    const char *con_str, int exp_res)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_fcontext_modify_del_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:803,1
    - Dst: helper_fcontext_modify_del_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:805,1
    - Dst: helper_fcontext_modify_del_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:807,1
    - Dst: helper_fcontext_modify_del_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 801
    functionDepth: 3
    functionLinenumber: 801
    functionLinenumberEnd: 811
    functionName: test_fcontext_modify_del_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - helper_fcontext_modify_del_local
    linkageType: ''
    returnType: void
    signature: void test_fcontext_modify_del_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:820,1
    - Dst: get_fcontext_key_nth
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:822,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:823,1
    - Dst: semanage_fcontext_query_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:823,1
    - Dst: CU_ASSERT_PTR_NULL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:824,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:826,1
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:829,1
    - Dst: semanage_fcontext_key_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:831,1
    - Dst: get_fcontext_key_nth
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:832,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:833,1
    - Dst: semanage_fcontext_query_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:833,1
    - Dst: CU_ASSERT_PTR_NULL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:834,1
    - Dst: add_local_fcontext
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:836,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:837,1
    - Dst: semanage_fcontext_query_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:837,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:838,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:839,1
    - Dst: semanage_fcontext_key_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:842,1
    - Dst: get_fcontext_key_nth
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:843,1
    - Dst: add_local_fcontext
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:844,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:845,1
    - Dst: semanage_fcontext_query_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:845,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:846,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:847,1
    - Dst: semanage_fcontext_key_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:851,1
    - Dst: delete_local_fcontext
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:852,1
    - Dst: delete_local_fcontext
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:853,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 814
    functionDepth: 4
    functionLinenumber: 814
    functionLinenumberEnd: 855
    functionName: test_fcontext_query_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - semanage_fcontext_query_local
    - CU_ASSERT_PTR_NULL
    - add_local_fcontext
    - CU_ASSERT_PTR_NOT_NULL
    - semanage_fcontext_free
    - cleanup_handle
    - delete_local_fcontext
    - CU_ASSERT
    - setup_handle
    - get_fcontext_key_nth
    - semanage_fcontext_key_free
    linkageType: ''
    returnType: void
    signature: void test_fcontext_query_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:864,1
    - Dst: get_fcontext_key_nth
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:865,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:868,1
    - Dst: semanage_fcontext_exists_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:868,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:869,1
    - Dst: add_local_fcontext
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:871,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:874,1
    - Dst: semanage_fcontext_exists_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:874,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:875,1
    - Dst: delete_local_fcontext
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:877,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:880,1
    - Dst: semanage_fcontext_exists_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:880,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:881,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:885,1
    - Dst: semanage_fcontext_exists_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:885,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:886,1
    - Dst: semanage_fcontext_key_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:889,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 858
    functionDepth: 4
    functionLinenumber: 858
    functionLinenumberEnd: 891
    functionName: test_fcontext_exists_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - semanage_fcontext_exists_local
    - add_local_fcontext
    - cleanup_handle
    - delete_local_fcontext
    - CU_ASSERT
    - setup_handle
    - get_fcontext_key_nth
    - semanage_fcontext_key_free
    linkageType: ''
    returnType: void
    signature: void test_fcontext_exists_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:899,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:900,1
    - Dst: semanage_fcontext_count_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:900,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:901,1
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:904,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:905,1
    - Dst: semanage_fcontext_count_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:905,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:906,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:907,1
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:910,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:911,1
    - Dst: semanage_fcontext_count_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:911,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:912,1
    - Dst: add_local_fcontext
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:914,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:915,1
    - Dst: semanage_fcontext_count_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:915,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:916,1
    - Dst: add_local_fcontext
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:918,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:919,1
    - Dst: semanage_fcontext_count_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:919,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:920,1
    - Dst: delete_local_fcontext
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:922,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:923,1
    - Dst: semanage_fcontext_count_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:923,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:924,1
    - Dst: delete_local_fcontext
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:927,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 894
    functionDepth: 4
    functionLinenumber: 894
    functionLinenumberEnd: 929
    functionName: test_fcontext_count_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - add_local_fcontext
    - cleanup_handle
    - delete_local_fcontext
    - CU_ASSERT
    - setup_handle
    - semanage_fcontext_count_local
    linkageType: ''
    returnType: void
    signature: void test_fcontext_count_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - record
    - varg
    argTypes:
    - semanage_fcontext_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 940
    functionName: handler_fcontext_iterate_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_PTR_NOT_NULL
    linkageType: ''
    returnType: int
    signature: "int handler_fcontext_iterate_local(const semanage_fcontext_t *record,\n\t\t\t\t\t
      \ __attribute__((unused)) void *varg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:945,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:947,1
    - Dst: semanage_fcontext_iterate_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:947,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:949,1
    - Dst: semanage_fcontext_iterate_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:949,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:951,1
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:954,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:957,1
    - Dst: semanage_fcontext_iterate_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:957,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:959,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:960,1
    - Dst: semanage_fcontext_iterate_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:960,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:962,1
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:965,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:968,1
    - Dst: semanage_fcontext_iterate_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:968,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:970,1
    - Dst: add_local_fcontext
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:972,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:974,1
    - Dst: semanage_fcontext_iterate_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:974,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:976,1
    - Dst: add_local_fcontext
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:978,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:980,1
    - Dst: semanage_fcontext_iterate_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:980,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:982,1
    - Dst: delete_local_fcontext
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:985,1
    - Dst: delete_local_fcontext
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:986,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 942
    functionDepth: 4
    functionLinenumber: 942
    functionLinenumberEnd: 988
    functionName: test_fcontext_iterate_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - add_local_fcontext
    - semanage_fcontext_iterate_local
    - cleanup_handle
    - delete_local_fcontext
    - CU_ASSERT
    - setup_handle
    linkageType: ''
    returnType: void
    signature: void test_fcontext_iterate_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:997,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:999,1
    - Dst: semanage_fcontext_list_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:999,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1000,1
    - Dst: semanage_fcontext_list_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1000,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1001,1
    - Dst: semanage_fcontext_list_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1001,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1003,1
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1006,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1008,1
    - Dst: semanage_fcontext_list_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1008,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1009,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1011,1
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1014,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1016,1
    - Dst: semanage_fcontext_list_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1016,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1017,1
    - Dst: add_local_fcontext
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1019,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1020,1
    - Dst: semanage_fcontext_list_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1020,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1021,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1022,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1023,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1024,1
    - Dst: add_local_fcontext
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1026,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1027,1
    - Dst: semanage_fcontext_list_local
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1027,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1028,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1029,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1030,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1031,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1032,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1033,1
    - Dst: delete_local_fcontext
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1036,1
    - Dst: delete_local_fcontext
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1037,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_fcontext.c:1038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 991
    functionDepth: 4
    functionLinenumber: 991
    functionLinenumberEnd: 1039
    functionName: test_fcontext_list_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_fcontext.c
    functionUses: 0
    functionsReached:
    - add_local_fcontext
    - CU_ASSERT_PTR_NOT_NULL
    - semanage_fcontext_free
    - cleanup_handle
    - delete_local_fcontext
    - CU_ASSERT
    - semanage_fcontext_list_local
    - setup_handle
    - free
    linkageType: ''
    returnType: void
    signature: void test_fcontext_list_local(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_test_store
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:51,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:52,1
    - Dst: write_test_policy_from_file
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:56,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 62
    functionName: ibendport_test_init
    functionSourceFile: /src/selinux/libsemanage/tests/test_ibendport.c
    functionUses: 0
    functionsReached:
    - create_test_store
    - write_test_policy_from_file
    - fprintf
    linkageType: ''
    returnType: int
    signature: int ibendport_test_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: destroy_test_store
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:66,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: ibendport_test_cleanup
    functionSourceFile: /src/selinux/libsemanage/tests/test_ibendport.c
    functionUses: 0
    functionsReached:
    - destroy_test_store
    - fprintf
    linkageType: ''
    returnType: int
    signature: int ibendport_test_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:76,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:77,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:78,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:79,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:80,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:82,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:84,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:86,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:87,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - suite
    argTypes:
    - CU_pSuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 92
    functionName: ibendport_add_tests
    functionSourceFile: /src/selinux/libsemanage/tests/test_ibendport.c
    functionUses: 0
    functionsReached:
    - CU_add_test
    linkageType: ''
    returnType: int
    signature: int ibendport_add_tests(CU_pSuite suite)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:105,1
    - Dst: semanage_ibendport_list
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:105,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:106,1
    - Dst: semanage_ibendport_free
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:112,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 117
    functionName: get_ibendport_nth
    functionSourceFile: /src/selinux/libsemanage/tests/test_ibendport.c
    functionUses: 0
    functionsReached:
    - semanage_ibendport_free
    - free
    - semanage_ibendport_list
    - CU_ASSERT_FATAL
    linkageType: ''
    returnType: semanage_ibendport_t
    signature: semanage_ibendport_t *get_ibendport_nth(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_ibendport_nth
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:128,1
    - Dst: semanage_ibendport_key_extract
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:130,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:132,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:133,1
    - Dst: semanage_ibendport_free
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 138
    functionName: get_ibendport_key_nth
    functionSourceFile: /src/selinux/libsemanage/tests/test_ibendport.c
    functionUses: 0
    functionsReached:
    - semanage_ibendport_free
    - get_ibendport_nth
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - CU_ASSERT_FATAL
    - semanage_ibendport_key_extract
    linkageType: ''
    returnType: semanage_ibendport_key_t
    signature: semanage_ibendport_key_t *get_ibendport_key_nth(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_ibendport_nth
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:145,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:147,1
    - Dst: semanage_ibendport_key_extract
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:147,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:149,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:151,1
    - Dst: semanage_ibendport_modify_local
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:151,1
    - Dst: semanage_ibendport_key_free
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:154,1
    - Dst: semanage_ibendport_free
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 156
    functionName: add_local_ibendport
    functionSourceFile: /src/selinux/libsemanage/tests/test_ibendport.c
    functionUses: 0
    functionsReached:
    - semanage_ibendport_key_free
    - semanage_ibendport_free
    - get_ibendport_nth
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - CU_ASSERT_FATAL
    - semanage_ibendport_key_extract
    - semanage_ibendport_modify_local
    linkageType: ''
    returnType: void
    signature: void add_local_ibendport(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_ibendport_key_nth
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:161,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:162,1
    - Dst: semanage_ibendport_del_local
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:162,1
    - Dst: semanage_ibendport_key_free
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: delete_local_ibendport
    functionSourceFile: /src/selinux/libsemanage/tests/test_ibendport.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_FATAL
    - semanage_ibendport_key_free
    - semanage_ibendport_del_local
    - get_ibendport_key_nth
    linkageType: ''
    returnType: void
    signature: void delete_local_ibendport(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:179,1
    - Dst: get_ibendport_key_nth
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:180,1
    - Dst: get_ibendport_nth
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:181,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:184,1
    - Dst: semanage_ibendport_query
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:184,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:185,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:187,1
    - Dst: semanage_ibendport_get_ibdev_name
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:187,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:188,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:189,1
    - Dst: semanage_ibendport_get_ibdev_name
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:189,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:191,1
    - Dst: assert
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:192,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:193,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:195,1
    - Dst: semanage_ibendport_get_port
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:195,1
    - Dst: semanage_ibendport_get_port
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:196,1
    - Dst: semanage_ibendport_get_con
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:198,1
    - Dst: semanage_ibendport_get_con
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:199,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:200,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:201,1
    - Dst: CU_ASSERT_CONTEXT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:202,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:205,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:206,1
    - Dst: semanage_ibendport_key_free
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:207,1
    - Dst: semanage_ibendport_free
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:208,1
    - Dst: semanage_ibendport_free
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:209,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (name)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/selinux/libsemanage/tests/test_ibendport.c
    constantsTouched: []
    func_position:
      end: 211
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 211
    functionName: test_ibendport_query
    functionSourceFile: /src/selinux/libsemanage/tests/test_ibendport.c
    functionUses: 0
    functionsReached:
    - semanage_ibendport_query
    - semanage_ibendport_get_con
    - semanage_ibendport_get_ibdev_name
    - CU_ASSERT_STRING_EQUAL
    - semanage_ibendport_key_free
    - semanage_ibendport_free
    - cleanup_handle
    - assert
    - semanage_ibendport_get_port
    - CU_ASSERT
    - get_ibendport_nth
    - setup_handle
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - CU_ASSERT_CONTEXT_EQUAL
    - free
    - get_ibendport_key_nth
    linkageType: ''
    returnType: void
    signature: void test_ibendport_query(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:221,1
    - Dst: get_ibendport_key_nth
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:222,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:223,1
    - Dst: semanage_ibendport_key_create
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:223,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:226,1
    - Dst: semanage_ibendport_exists
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:226,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:227,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:229,1
    - Dst: semanage_ibendport_exists
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:229,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:230,1
    - Dst: semanage_ibendport_key_free
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:233,1
    - Dst: semanage_ibendport_key_free
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:234,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 236
    functionName: test_ibendport_exists
    functionSourceFile: /src/selinux/libsemanage/tests/test_ibendport.c
    functionUses: 0
    functionsReached:
    - semanage_ibendport_key_free
    - semanage_ibendport_exists
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - semanage_ibendport_key_create
    - get_ibendport_key_nth
    linkageType: ''
    returnType: void
    signature: void test_ibendport_exists(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:244,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:247,1
    - Dst: semanage_ibendport_count
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:247,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:248,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 252
    functionName: test_ibendport_count
    functionSourceFile: /src/selinux/libsemanage/tests/test_ibendport.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    - setup_handle
    - semanage_ibendport_count
    - cleanup_handle
    linkageType: ''
    returnType: void
    signature: void test_ibendport_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ibendport
    - fn_arg
    argTypes:
    - semanage_ibendport_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 264
    functionName: helper_ibendport_iterate
    functionSourceFile: /src/selinux/libsemanage/tests/test_ibendport.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    linkageType: ''
    returnType: int
    signature: "int helper_ibendport_iterate(__attribute__((unused))\n\t\t\t\t    const
      semanage_ibendport_t *ibendport,\n\t\t\t\t    void *fn_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ibendport
    - fn_arg
    argTypes:
    - semanage_ibendport_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 273
    functionName: helper_ibendport_iterate_error
    functionSourceFile: /src/selinux/libsemanage/tests/test_ibendport.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    linkageType: ''
    returnType: int
    signature: "int helper_ibendport_iterate_error(__attribute__((unused))\n\t\t\t\t\t
      \ const semanage_ibendport_t *ibendport,\n\t\t\t\t\t  void *fn_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ibendport
    - fn_arg
    argTypes:
    - semanage_ibendport_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 282
    functionName: helper_ibendport_iterate_break
    functionSourceFile: /src/selinux/libsemanage/tests/test_ibendport.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    linkageType: ''
    returnType: int
    signature: "int helper_ibendport_iterate_break(__attribute__((unused))\n\t\t\t\t\t
      \ const semanage_ibendport_t *ibendport,\n\t\t\t\t\t  void *fn_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:287,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:291,1
    - Dst: semanage_ibendport_iterate
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:291,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:293,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:297,1
    - Dst: semanage_ibendport_iterate
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:297,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:299,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:303,1
    - Dst: semanage_ibendport_iterate
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:303,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:305,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 309
    functionName: test_ibendport_iterate
    functionSourceFile: /src/selinux/libsemanage/tests/test_ibendport.c
    functionUses: 0
    functionsReached:
    - semanage_ibendport_iterate
    - CU_ASSERT
    - setup_handle
    - cleanup_handle
    linkageType: ''
    returnType: void
    signature: void test_ibendport_iterate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:320,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:323,1
    - Dst: semanage_ibendport_list
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:323,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:325,1
    - Dst: assert
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:326,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:327,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:330,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:331,1
    - Dst: semanage_ibendport_get_ibdev_name
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:331,1
    - Dst: semanage_ibendport_get_con
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:333,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:334,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:335,1
    - Dst: semanage_ibendport_free
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:340,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:342,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (records)
      pos:
        line_end: 325
        line_start: 325
        source_file: /src/selinux/libsemanage/tests/test_ibendport.c
    constantsTouched: []
    func_position:
      end: 344
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 344
    functionName: test_ibendport_list
    functionSourceFile: /src/selinux/libsemanage/tests/test_ibendport.c
    functionUses: 0
    functionsReached:
    - semanage_ibendport_get_con
    - semanage_ibendport_get_ibdev_name
    - semanage_ibendport_free
    - cleanup_handle
    - assert
    - CU_ASSERT
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - setup_handle
    - semanage_ibendport_list
    - free
    linkageType: ''
    returnType: void
    signature: void test_ibendport_list(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:356,1
    - Dst: get_ibendport_nth
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:357,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:358,1
    - Dst: semanage_ibendport_key_extract
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:358,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:359,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:362,1
    - Dst: semanage_ibendport_modify_local
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:362,1
    - Dst: helper_commit
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:365,1
    - Dst: helper_begin_transaction
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:366,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:368,1
    - Dst: semanage_ibendport_query_local
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:368,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:370,1
    - Dst: semanage_ibendport_free
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:371,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:373,1
    - Dst: semanage_ibendport_del_local
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:373,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:374,1
    - Dst: semanage_ibendport_query_local
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:374,1
    - Dst: semanage_ibendport_key_free
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:378,1
    - Dst: semanage_ibendport_free
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:379,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 381
    functionName: test_ibendport_modify_del_query_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_ibendport.c
    functionUses: 0
    functionsReached:
    - semanage_ibendport_del_local
    - CU_ASSERT_PTR_NOT_NULL
    - semanage_ibendport_free
    - semanage_ibendport_key_free
    - cleanup_handle
    - CU_ASSERT
    - get_ibendport_nth
    - setup_handle
    - helper_commit
    - helper_begin_transaction
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - semanage_ibendport_key_extract
    - semanage_ibendport_query_local
    - semanage_ibendport_modify_local
    linkageType: ''
    returnType: void
    signature: void test_ibendport_modify_del_query_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:391,1
    - Dst: add_local_ibendport
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:392,1
    - Dst: get_ibendport_key_nth
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:393,1
    - Dst: get_ibendport_key_nth
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:394,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:397,1
    - Dst: semanage_ibendport_exists_local
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:397,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:398,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:400,1
    - Dst: semanage_ibendport_exists_local
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:400,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:401,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:404,1
    - Dst: semanage_ibendport_del_local
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:404,1
    - Dst: semanage_ibendport_key_free
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:405,1
    - Dst: semanage_ibendport_key_free
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:406,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 384
    functionDepth: 3
    functionLinenumber: 384
    functionLinenumberEnd: 408
    functionName: test_ibendport_exists_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_ibendport.c
    functionUses: 0
    functionsReached:
    - add_local_ibendport
    - semanage_ibendport_del_local
    - semanage_ibendport_key_free
    - semanage_ibendport_exists_local
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - get_ibendport_key_nth
    linkageType: ''
    returnType: void
    signature: void test_ibendport_exists_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:416,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:419,1
    - Dst: semanage_ibendport_count_local
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:419,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:420,1
    - Dst: add_local_ibendport
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:422,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:423,1
    - Dst: semanage_ibendport_count_local
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:423,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:424,1
    - Dst: add_local_ibendport
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:426,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:427,1
    - Dst: semanage_ibendport_count_local
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:427,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:428,1
    - Dst: delete_local_ibendport
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:430,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:431,1
    - Dst: semanage_ibendport_count_local
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:431,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:432,1
    - Dst: delete_local_ibendport
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:434,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:435,1
    - Dst: semanage_ibendport_count_local
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:435,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:436,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 411
    functionDepth: 4
    functionLinenumber: 411
    functionLinenumberEnd: 440
    functionName: test_ibendport_count_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_ibendport.c
    functionUses: 0
    functionsReached:
    - add_local_ibendport
    - delete_local_ibendport
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - semanage_ibendport_count_local
    linkageType: ''
    returnType: void
    signature: void test_ibendport_count_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ibendport
    - fn_arg
    argTypes:
    - semanage_ibendport_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 452
    functionName: helper_ibendport_iterate_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_ibendport.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    linkageType: ''
    returnType: int
    signature: "int helper_ibendport_iterate_local(__attribute__((unused))\n\t\t\t\t\t
      \ const semanage_ibendport_t *ibendport,\n\t\t\t\t\t  void *fn_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ibendport
    - fn_arg
    argTypes:
    - semanage_ibendport_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 462
    functionName: helper_ibendport_iterate_local_error
    functionSourceFile: /src/selinux/libsemanage/tests/test_ibendport.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    linkageType: ''
    returnType: int
    signature: "int helper_ibendport_iterate_local_error(__attribute__((unused))\n\t\t\t\t
      \    const semanage_ibendport_t *ibendport,\n\t\t\t\t     void *fn_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ibendport
    - fn_arg
    argTypes:
    - semanage_ibendport_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 472
    functionName: helper_ibendport_iterate_local_break
    functionSourceFile: /src/selinux/libsemanage/tests/test_ibendport.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    linkageType: ''
    returnType: int
    signature: "int helper_ibendport_iterate_local_break(__attribute__((unused))\n\t\t\t\t
      \    const semanage_ibendport_t *ibendport,\n\t\t\t\t     void *fn_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:477,1
    - Dst: add_local_ibendport
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:478,1
    - Dst: add_local_ibendport
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:479,1
    - Dst: add_local_ibendport
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:480,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:484,1
    - Dst: semanage_ibendport_iterate_local
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:484,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:486,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:490,1
    - Dst: semanage_ibendport_iterate_local
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:490,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:493,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:497,1
    - Dst: semanage_ibendport_iterate_local
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:497,1
    - Dst: delete_local_ibendport
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:502,1
    - Dst: delete_local_ibendport
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:503,1
    - Dst: delete_local_ibendport
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:504,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 474
    functionDepth: 4
    functionLinenumber: 474
    functionLinenumberEnd: 506
    functionName: test_ibendport_iterate_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_ibendport.c
    functionUses: 0
    functionsReached:
    - add_local_ibendport
    - semanage_ibendport_iterate_local
    - delete_local_ibendport
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    linkageType: ''
    returnType: void
    signature: void test_ibendport_iterate_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:517,1
    - Dst: add_local_ibendport
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:518,1
    - Dst: add_local_ibendport
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:519,1
    - Dst: add_local_ibendport
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:520,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:523,1
    - Dst: semanage_ibendport_list_local
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:523,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:524,1
    - Dst: assert
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:525,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:526,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:529,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:530,1
    - Dst: semanage_ibendport_get_ibdev_name
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:530,1
    - Dst: semanage_ibendport_get_con
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:532,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:533,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:534,1
    - Dst: semanage_ibendport_free
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:539,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:541,1
    - Dst: delete_local_ibendport
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:542,1
    - Dst: delete_local_ibendport
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:543,1
    - Dst: delete_local_ibendport
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:544,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_ibendport.c:545,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (records)
      pos:
        line_end: 524
        line_start: 524
        source_file: /src/selinux/libsemanage/tests/test_ibendport.c
    constantsTouched: []
    func_position:
      end: 546
      start: 509
    functionDepth: 4
    functionLinenumber: 509
    functionLinenumberEnd: 546
    functionName: test_ibendport_list_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_ibendport.c
    functionUses: 0
    functionsReached:
    - add_local_ibendport
    - semanage_ibendport_list_local
    - semanage_ibendport_get_con
    - semanage_ibendport_get_ibdev_name
    - semanage_ibendport_free
    - delete_local_ibendport
    - cleanup_handle
    - assert
    - CU_ASSERT
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - setup_handle
    - free
    linkageType: ''
    returnType: void
    signature: void test_ibendport_list_local(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mkstemp
      Src: /src/selinux/libsemanage/tests/test_utilities.c:58,1
    - Dst: perror
      Src: /src/selinux/libsemanage/tests/test_utilities.c:61,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:62,1
    - Dst: fdopen
      Src: /src/selinux/libsemanage/tests/test_utilities.c:66,1
    - Dst: perror
      Src: /src/selinux/libsemanage/tests/test_utilities.c:68,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:69,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_utilities.c:72,1
    - Dst: rewind
      Src: /src/selinux/libsemanage/tests/test_utilities.c:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 76
    functionName: semanage_utilities_test_init
    functionSourceFile: /src/selinux/libsemanage/tests/test_utilities.c
    functionUses: 0
    functionsReached:
    - rewind
    - CU_FAIL_FATAL
    - perror
    - mkstemp
    - fdopen
    - fprintf
    linkageType: ''
    returnType: int
    signature: int semanage_utilities_test_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/selinux/libsemanage/tests/test_utilities.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: semanage_utilities_test_cleanup
    functionSourceFile: /src/selinux/libsemanage/tests/test_utilities.c
    functionUses: 0
    functionsReached:
    - unlink
    linkageType: ''
    returnType: int
    signature: int semanage_utilities_test_cleanup(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_utilities.c:87,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_utilities.c:90,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_utilities.c:94,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_utilities.c:97,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_utilities.c:101,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_utilities.c:104,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_utilities.c:107,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_utilities.c:112,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_utilities.c:116,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_utilities.c:120,1
    - Dst: CU_cleanup_registry
      Src: /src/selinux/libsemanage/tests/test_utilities.c:125,1
    - Dst: CU_get_error
      Src: /src/selinux/libsemanage/tests/test_utilities.c:126,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 1
    argNames:
    - suite
    argTypes:
    - CU_pSuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 127
    functionName: semanage_utilities_add_tests
    functionSourceFile: /src/selinux/libsemanage/tests/test_utilities.c
    functionUses: 0
    functionsReached:
    - CU_add_test
    - CU_cleanup_registry
    - CU_get_error
    linkageType: ''
    returnType: int
    signature: int semanage_utilities_add_tests(CU_pSuite suite)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT_TRUE
      Src: /src/selinux/libsemanage/tests/test_utilities.c:135,1
    - Dst: semanage_is_prefix
      Src: /src/selinux/libsemanage/tests/test_utilities.c:135,1
    - Dst: CU_ASSERT_TRUE
      Src: /src/selinux/libsemanage/tests/test_utilities.c:136,1
    - Dst: semanage_is_prefix
      Src: /src/selinux/libsemanage/tests/test_utilities.c:136,1
    - Dst: CU_ASSERT_TRUE
      Src: /src/selinux/libsemanage/tests/test_utilities.c:137,1
    - Dst: semanage_is_prefix
      Src: /src/selinux/libsemanage/tests/test_utilities.c:137,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsemanage/tests/test_utilities.c:138,1
    - Dst: semanage_is_prefix
      Src: /src/selinux/libsemanage/tests/test_utilities.c:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 139
    functionName: test_semanage_is_prefix
    functionSourceFile: /src/selinux/libsemanage/tests/test_utilities.c
    functionUses: 0
    functionsReached:
    - semanage_is_prefix
    - CU_ASSERT_FALSE
    - CU_ASSERT_TRUE
    linkageType: ''
    returnType: void
    signature: void test_semanage_is_prefix(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libsemanage/tests/test_utilities.c:143,1
    - Dst: CU_FAIL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:147,1
    - Dst: semanage_split_on_space
      Src: /src/selinux/libsemanage/tests/test_utilities.c:150,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:151,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:152,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_utilities.c:153,1
    - Dst: semanage_split_on_space
      Src: /src/selinux/libsemanage/tests/test_utilities.c:156,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:157,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:158,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_utilities.c:159,1
    - Dst: semanage_split_on_space
      Src: /src/selinux/libsemanage/tests/test_utilities.c:162,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:163,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:164,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_utilities.c:165,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_utilities.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 167
    functionName: test_semanage_split_on_space
    functionSourceFile: /src/selinux/libsemanage/tests/test_utilities.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_STRING_EQUAL
    - CU_FAIL
    - semanage_split_on_space
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - free
    - strdup
    linkageType: ''
    returnType: void
    signature: void test_semanage_split_on_space(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libsemanage/tests/test_utilities.c:171,1
    - Dst: CU_FAIL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:175,1
    - Dst: semanage_split
      Src: /src/selinux/libsemanage/tests/test_utilities.c:178,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:179,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:180,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_utilities.c:181,1
    - Dst: semanage_split
      Src: /src/selinux/libsemanage/tests/test_utilities.c:184,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:185,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:186,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_utilities.c:187,1
    - Dst: semanage_split
      Src: /src/selinux/libsemanage/tests/test_utilities.c:190,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:191,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:192,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_utilities.c:193,1
    - Dst: semanage_split
      Src: /src/selinux/libsemanage/tests/test_utilities.c:196,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:197,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:198,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_utilities.c:199,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_utilities.c:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 201
    functionName: test_semanage_split
    functionSourceFile: /src/selinux/libsemanage/tests/test_utilities.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_STRING_EQUAL
    - CU_FAIL
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - free
    - semanage_split
    - strdup
    linkageType: ''
    returnType: void
    signature: void test_semanage_split(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsemanage/tests/test_utilities.c:210,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/tests/test_utilities.c:210,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:211,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsemanage/tests/test_utilities.c:212,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/tests/test_utilities.c:212,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsemanage/tests/test_utilities.c:213,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/tests/test_utilities.c:213,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsemanage/tests/test_utilities.c:214,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/tests/test_utilities.c:214,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:218,1
    - Dst: semanage_list_pop
      Src: /src/selinux/libsemanage/tests/test_utilities.c:220,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:221,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsemanage/tests/test_utilities.c:222,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/tests/test_utilities.c:222,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_utilities.c:223,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:229,1
    - Dst: semanage_list_sort
      Src: /src/selinux/libsemanage/tests/test_utilities.c:231,1
    - Dst: CU_FAIL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:233,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:236,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:237,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:238,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:239,1
    - Dst: semanage_list_find
      Src: /src/selinux/libsemanage/tests/test_utilities.c:242,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:243,1
    - Dst: semanage_list_find
      Src: /src/selinux/libsemanage/tests/test_utilities.c:244,1
    - Dst: CU_ASSERT_PTR_NULL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:245,1
    - Dst: semanage_list_destroy
      Src: /src/selinux/libsemanage/tests/test_utilities.c:247,1
    - Dst: CU_ASSERT_PTR_NULL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:248,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 249
    functionName: test_semanage_list
    functionSourceFile: /src/selinux/libsemanage/tests/test_utilities.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_PTR_NULL
    - semanage_list_sort
    - CU_ASSERT_STRING_EQUAL
    - CU_ASSERT_PTR_NOT_NULL
    - CU_FAIL
    - semanage_list_pop
    - CU_ASSERT_EQUAL
    - semanage_list_push
    - CU_ASSERT_FALSE
    - free
    - semanage_list_find
    - semanage_list_destroy
    linkageType: ''
    returnType: void
    signature: void test_semanage_list(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:255,1
    - Dst: semanage_str_count
      Src: /src/selinux/libsemanage/tests/test_utilities.c:255,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:256,1
    - Dst: semanage_str_count
      Src: /src/selinux/libsemanage/tests/test_utilities.c:256,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:257,1
    - Dst: semanage_str_count
      Src: /src/selinux/libsemanage/tests/test_utilities.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: test_semanage_str_count
    functionSourceFile: /src/selinux/libsemanage/tests/test_utilities.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_EQUAL
    - semanage_str_count
    linkageType: ''
    returnType: void
    signature: void test_semanage_str_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libsemanage/tests/test_utilities.c:262,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:264,1
    - Dst: semanage_rtrim
      Src: /src/selinux/libsemanage/tests/test_utilities.c:266,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:267,1
    - Dst: semanage_rtrim
      Src: /src/selinux/libsemanage/tests/test_utilities.c:268,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:269,1
    - Dst: semanage_rtrim
      Src: /src/selinux/libsemanage/tests/test_utilities.c:270,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:271,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_utilities.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 274
    functionName: test_semanage_rtrim
    functionSourceFile: /src/selinux/libsemanage/tests/test_utilities.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_STRING_EQUAL
    - semanage_rtrim
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - free
    - strdup
    linkageType: ''
    returnType: void
    signature: void test_semanage_rtrim(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_str_replace
      Src: /src/selinux/libsemanage/tests/test_utilities.c:281,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:282,1
    - Dst: semanage_str_replace
      Src: /src/selinux/libsemanage/tests/test_utilities.c:284,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:285,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_utilities.c:286,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_utilities.c:287,1
    - Dst: semanage_str_replace
      Src: /src/selinux/libsemanage/tests/test_utilities.c:289,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:290,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_utilities.c:291,1
    - Dst: semanage_str_replace
      Src: /src/selinux/libsemanage/tests/test_utilities.c:293,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:294,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_utilities.c:295,1
    - Dst: semanage_str_replace
      Src: /src/selinux/libsemanage/tests/test_utilities.c:297,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:298,1
    - Dst: semanage_str_replace
      Src: /src/selinux/libsemanage/tests/test_utilities.c:300,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:301,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_utilities.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 303
    functionName: test_semanage_str_replace
    functionSourceFile: /src/selinux/libsemanage/tests/test_utilities.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_EQUAL
    - free
    - semanage_str_replace
    - CU_ASSERT_STRING_EQUAL
    linkageType: ''
    returnType: void
    signature: void test_semanage_str_replace(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:309,1
    - Dst: semanage_findval
      Src: /src/selinux/libsemanage/tests/test_utilities.c:311,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:312,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:313,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_utilities.c:314,1
    - Dst: rewind
      Src: /src/selinux/libsemanage/tests/test_utilities.c:315,1
    - Dst: semanage_findval
      Src: /src/selinux/libsemanage/tests/test_utilities.c:316,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:317,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:318,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_utilities.c:319,1
    - Dst: rewind
      Src: /src/selinux/libsemanage/tests/test_utilities.c:320,1
    - Dst: semanage_findval
      Src: /src/selinux/libsemanage/tests/test_utilities.c:321,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:322,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:323,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_utilities.c:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 325
    functionName: test_semanage_findval
    functionSourceFile: /src/selinux/libsemanage/tests/test_utilities.c
    functionUses: 0
    functionsReached:
    - rewind
    - CU_FAIL_FATAL
    - CU_ASSERT_STRING_EQUAL
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - semanage_findval
    - free
    linkageType: ''
    returnType: void
    signature: void test_semanage_findval(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_is_prefix
      Src: /src/selinux/libsemanage/tests/test_utilities.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: PREDICATE
    functionSourceFile: /src/selinux/libsemanage/tests/test_utilities.c
    functionUses: 0
    functionsReached:
    - semanage_is_prefix
    linkageType: ''
    returnType: int
    signature: int PREDICATE(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:338,1
    - Dst: rewind
      Src: /src/selinux/libsemanage/tests/test_utilities.c:340,1
    - Dst: semanage_slurp_file_filter
      Src: /src/selinux/libsemanage/tests/test_utilities.c:341,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:342,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:345,1
    - Dst: semanage_list_destroy
      Src: /src/selinux/libsemanage/tests/test_utilities.c:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 348
    functionName: test_slurp_file_filter
    functionSourceFile: /src/selinux/libsemanage/tests/test_utilities.c
    functionUses: 0
    functionsReached:
    - rewind
    - CU_FAIL_FATAL
    - semanage_slurp_file_filter
    - CU_ASSERT_EQUAL
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - semanage_list_destroy
    linkageType: ''
    returnType: void
    signature: void test_slurp_file_filter(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_basename
      Src: /src/selinux/libsemanage/tests/test_utilities.c:352,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:353,1
    - Dst: semanage_basename
      Src: /src/selinux/libsemanage/tests/test_utilities.c:355,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:356,1
    - Dst: semanage_basename
      Src: /src/selinux/libsemanage/tests/test_utilities.c:358,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:359,1
    - Dst: semanage_basename
      Src: /src/selinux/libsemanage/tests/test_utilities.c:361,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:362,1
    - Dst: semanage_basename
      Src: /src/selinux/libsemanage/tests/test_utilities.c:364,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:365,1
    - Dst: semanage_basename
      Src: /src/selinux/libsemanage/tests/test_utilities.c:367,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_utilities.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 369
    functionName: test_semanage_basename
    functionSourceFile: /src/selinux/libsemanage/tests/test_utilities.c
    functionUses: 0
    functionsReached:
    - semanage_basename
    - CU_ASSERT_STRING_EQUAL
    linkageType: ''
    returnType: void
    signature: void test_semanage_basename(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_test_store
      Src: /src/selinux/libsemanage/tests/test_iface.c:65,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_iface.c:66,1
    - Dst: write_test_policy_from_file
      Src: /src/selinux/libsemanage/tests/test_iface.c:70,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_iface.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 76
    functionName: iface_test_init
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - create_test_store
    - write_test_policy_from_file
    - fprintf
    linkageType: ''
    returnType: int
    signature: int iface_test_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: destroy_test_store
      Src: /src/selinux/libsemanage/tests/test_iface.c:80,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_iface.c:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: iface_test_cleanup
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - destroy_test_store
    - fprintf
    linkageType: ''
    returnType: int
    signature: int iface_test_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_iface.c:90,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_iface.c:91,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_iface.c:92,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_iface.c:93,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_iface.c:94,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_iface.c:95,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_iface.c:96,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_iface.c:97,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_iface.c:98,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_iface.c:100,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_iface.c:101,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_iface.c:102,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_iface.c:103,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_iface.c:104,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_iface.c:106,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_iface.c:108,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_iface.c:109,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_iface.c:110,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_iface.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - suite
    argTypes:
    - CU_pSuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 114
    functionName: iface_add_tests
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - CU_add_test
    linkageType: ''
    returnType: int
    signature: int iface_add_tests(CU_pSuite suite)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: semanage_iface_list
      Src: /src/selinux/libsemanage/tests/test_iface.c:128,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_iface.c:130,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_iface.c:131,1
    - Dst: semanage_iface_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:137,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_iface.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 142
    functionName: get_iface_nth
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - semanage_iface_free
    - free
    - CU_ASSERT_FATAL
    - semanage_iface_list
    linkageType: ''
    returnType: semanage_iface_t
    signature: semanage_iface_t *get_iface_nth(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_iface_nth
      Src: /src/selinux/libsemanage/tests/test_iface.c:153,1
    - Dst: semanage_iface_key_extract
      Src: /src/selinux/libsemanage/tests/test_iface.c:154,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_iface.c:156,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_iface.c:157,1
    - Dst: semanage_iface_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 163
    functionName: get_iface_key_nth
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - semanage_iface_free
    - semanage_iface_key_extract
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - get_iface_nth
    - CU_ASSERT_FATAL
    linkageType: ''
    returnType: semanage_iface_key_t
    signature: semanage_iface_key_t *get_iface_key_nth(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_iface_nth
      Src: /src/selinux/libsemanage/tests/test_iface.c:170,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_iface.c:172,1
    - Dst: semanage_iface_key_extract
      Src: /src/selinux/libsemanage/tests/test_iface.c:172,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_iface.c:173,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_iface.c:175,1
    - Dst: semanage_iface_modify_local
      Src: /src/selinux/libsemanage/tests/test_iface.c:175,1
    - Dst: semanage_iface_key_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:178,1
    - Dst: semanage_iface_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 180
    functionName: add_local_iface
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - semanage_iface_free
    - semanage_iface_key_extract
    - semanage_iface_modify_local
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - get_iface_nth
    - semanage_iface_key_free
    - CU_ASSERT_FATAL
    linkageType: ''
    returnType: void
    signature: void add_local_iface(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_iface_key_nth
      Src: /src/selinux/libsemanage/tests/test_iface.c:185,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_iface.c:186,1
    - Dst: semanage_iface_del_local
      Src: /src/selinux/libsemanage/tests/test_iface.c:186,1
    - Dst: semanage_iface_key_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 190
    functionName: delete_local_iface
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - semanage_iface_del_local
    - semanage_iface_key_free
    - get_iface_key_nth
    - CU_ASSERT_FATAL
    linkageType: ''
    returnType: void
    signature: void delete_local_iface(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:201,1
    - Dst: get_iface_nth
      Src: /src/selinux/libsemanage/tests/test_iface.c:202,1
    - Dst: get_iface_key_nth
      Src: /src/selinux/libsemanage/tests/test_iface.c:203,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:204,1
    - Dst: semanage_iface_key_create
      Src: /src/selinux/libsemanage/tests/test_iface.c:204,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_iface.c:205,1
    - Dst: semanage_iface_compare
      Src: /src/selinux/libsemanage/tests/test_iface.c:208,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:209,1
    - Dst: semanage_iface_compare
      Src: /src/selinux/libsemanage/tests/test_iface.c:210,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:211,1
    - Dst: semanage_iface_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:214,1
    - Dst: semanage_iface_key_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:215,1
    - Dst: semanage_iface_key_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:216,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 218
    functionName: test_iface_compare
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - semanage_iface_free
    - semanage_iface_key_create
    - get_iface_key_nth
    - CU_ASSERT_PTR_NOT_NULL
    - cleanup_handle
    - CU_ASSERT
    - semanage_iface_key_free
    - setup_handle
    - get_iface_nth
    - semanage_iface_compare
    linkageType: ''
    returnType: void
    signature: void test_iface_compare(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:229,1
    - Dst: get_iface_nth
      Src: /src/selinux/libsemanage/tests/test_iface.c:230,1
    - Dst: get_iface_nth
      Src: /src/selinux/libsemanage/tests/test_iface.c:231,1
    - Dst: get_iface_nth
      Src: /src/selinux/libsemanage/tests/test_iface.c:232,1
    - Dst: semanage_iface_compare2
      Src: /src/selinux/libsemanage/tests/test_iface.c:235,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:236,1
    - Dst: semanage_iface_compare2
      Src: /src/selinux/libsemanage/tests/test_iface.c:237,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:238,1
    - Dst: semanage_iface_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:241,1
    - Dst: semanage_iface_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:242,1
    - Dst: semanage_iface_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:243,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 245
    functionName: test_iface_compare2
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - semanage_iface_free
    - cleanup_handle
    - semanage_iface_compare2
    - CU_ASSERT
    - setup_handle
    - get_iface_nth
    linkageType: ''
    returnType: void
    signature: void test_iface_compare2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:253,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:256,1
    - Dst: semanage_iface_key_create
      Src: /src/selinux/libsemanage/tests/test_iface.c:256,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_iface.c:257,1
    - Dst: semanage_iface_key_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:260,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 262
    functionName: test_iface_key_create
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - semanage_iface_key_create
    - CU_ASSERT_PTR_NOT_NULL
    - cleanup_handle
    - CU_ASSERT
    - semanage_iface_key_free
    - setup_handle
    linkageType: ''
    returnType: void
    signature: void test_iface_key_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:271,1
    - Dst: get_iface_nth
      Src: /src/selinux/libsemanage/tests/test_iface.c:272,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:275,1
    - Dst: semanage_iface_key_extract
      Src: /src/selinux/libsemanage/tests/test_iface.c:275,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_iface.c:276,1
    - Dst: semanage_iface_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:279,1
    - Dst: semanage_iface_key_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:280,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 282
    functionName: test_iface_key_extract
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - semanage_iface_free
    - semanage_iface_key_extract
    - CU_ASSERT_PTR_NOT_NULL
    - cleanup_handle
    - CU_ASSERT
    - semanage_iface_key_free
    - setup_handle
    - get_iface_nth
    linkageType: ''
    returnType: void
    signature: void test_iface_key_extract(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:290,1
    - Dst: get_iface_nth
      Src: /src/selinux/libsemanage/tests/test_iface.c:291,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:294,1
    - Dst: semanage_iface_set_name
      Src: /src/selinux/libsemanage/tests/test_iface.c:294,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_iface.c:295,1
    - Dst: semanage_iface_get_name
      Src: /src/selinux/libsemanage/tests/test_iface.c:295,1
    - Dst: semanage_iface_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:298,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 300
    functionName: test_iface_get_set_name
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - semanage_iface_set_name
    - semanage_iface_free
    - CU_ASSERT_STRING_EQUAL
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - get_iface_nth
    - semanage_iface_get_name
    linkageType: ''
    returnType: void
    signature: void test_iface_get_set_name(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:310,1
    - Dst: get_iface_nth
      Src: /src/selinux/libsemanage/tests/test_iface.c:311,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:312,1
    - Dst: semanage_context_from_string
      Src: /src/selinux/libsemanage/tests/test_iface.c:312,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:316,1
    - Dst: semanage_iface_set_ifcon
      Src: /src/selinux/libsemanage/tests/test_iface.c:316,1
    - Dst: semanage_iface_get_ifcon
      Src: /src/selinux/libsemanage/tests/test_iface.c:317,1
    - Dst: CU_ASSERT_CONTEXT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_iface.c:318,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:321,1
    - Dst: semanage_iface_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:322,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 324
    functionName: test_iface_get_set_ifcon
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - semanage_iface_free
    - semanage_iface_set_ifcon
    - cleanup_handle
    - semanage_iface_get_ifcon
    - CU_ASSERT
    - semanage_context_from_string
    - setup_handle
    - get_iface_nth
    - CU_ASSERT_CONTEXT_EQUAL
    - semanage_context_free
    linkageType: ''
    returnType: void
    signature: void test_iface_get_set_ifcon(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:334,1
    - Dst: get_iface_nth
      Src: /src/selinux/libsemanage/tests/test_iface.c:335,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:336,1
    - Dst: semanage_context_from_string
      Src: /src/selinux/libsemanage/tests/test_iface.c:336,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:340,1
    - Dst: semanage_iface_set_msgcon
      Src: /src/selinux/libsemanage/tests/test_iface.c:340,1
    - Dst: semanage_iface_get_msgcon
      Src: /src/selinux/libsemanage/tests/test_iface.c:341,1
    - Dst: CU_ASSERT_CONTEXT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_iface.c:342,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:345,1
    - Dst: semanage_iface_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:346,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 348
    functionName: test_iface_get_set_msgcon
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - semanage_iface_free
    - cleanup_handle
    - semanage_iface_get_msgcon
    - semanage_iface_set_msgcon
    - CU_ASSERT
    - semanage_context_from_string
    - setup_handle
    - get_iface_nth
    - CU_ASSERT_CONTEXT_EQUAL
    - semanage_context_free
    linkageType: ''
    returnType: void
    signature: void test_iface_get_set_msgcon(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:358,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:361,1
    - Dst: semanage_iface_create
      Src: /src/selinux/libsemanage/tests/test_iface.c:361,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:362,1
    - Dst: semanage_iface_set_name
      Src: /src/selinux/libsemanage/tests/test_iface.c:362,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:363,1
    - Dst: semanage_context_from_string
      Src: /src/selinux/libsemanage/tests/test_iface.c:363,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:365,1
    - Dst: semanage_iface_set_ifcon
      Src: /src/selinux/libsemanage/tests/test_iface.c:365,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:366,1
    - Dst: semanage_context_from_string
      Src: /src/selinux/libsemanage/tests/test_iface.c:366,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:368,1
    - Dst: semanage_iface_set_msgcon
      Src: /src/selinux/libsemanage/tests/test_iface.c:368,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:371,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:372,1
    - Dst: semanage_iface_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:373,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 375
    functionName: test_iface_create
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - semanage_iface_set_name
    - semanage_iface_free
    - semanage_iface_set_ifcon
    - cleanup_handle
    - semanage_iface_set_msgcon
    - CU_ASSERT
    - semanage_context_from_string
    - setup_handle
    - semanage_iface_create
    - semanage_context_free
    linkageType: ''
    returnType: void
    signature: void test_iface_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:388,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:389,1
    - Dst: semanage_iface_create
      Src: /src/selinux/libsemanage/tests/test_iface.c:389,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:390,1
    - Dst: semanage_iface_set_name
      Src: /src/selinux/libsemanage/tests/test_iface.c:390,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:391,1
    - Dst: semanage_context_from_string
      Src: /src/selinux/libsemanage/tests/test_iface.c:391,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:393,1
    - Dst: semanage_iface_set_ifcon
      Src: /src/selinux/libsemanage/tests/test_iface.c:393,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:394,1
    - Dst: semanage_context_from_string
      Src: /src/selinux/libsemanage/tests/test_iface.c:394,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:396,1
    - Dst: semanage_iface_set_msgcon
      Src: /src/selinux/libsemanage/tests/test_iface.c:396,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:399,1
    - Dst: semanage_iface_clone
      Src: /src/selinux/libsemanage/tests/test_iface.c:399,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_iface.c:400,1
    - Dst: semanage_iface_get_name
      Src: /src/selinux/libsemanage/tests/test_iface.c:400,1
    - Dst: semanage_iface_get_ifcon
      Src: /src/selinux/libsemanage/tests/test_iface.c:402,1
    - Dst: CU_ASSERT_CONTEXT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_iface.c:403,1
    - Dst: semanage_iface_get_msgcon
      Src: /src/selinux/libsemanage/tests/test_iface.c:405,1
    - Dst: CU_ASSERT_CONTEXT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_iface.c:406,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:409,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:410,1
    - Dst: semanage_iface_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:411,1
    - Dst: semanage_iface_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:412,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 414
    functionName: test_iface_clone
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - semanage_iface_set_name
    - semanage_iface_free
    - semanage_iface_clone
    - CU_ASSERT_STRING_EQUAL
    - semanage_iface_set_ifcon
    - cleanup_handle
    - semanage_iface_get_msgcon
    - semanage_iface_set_msgcon
    - semanage_iface_get_ifcon
    - semanage_context_free
    - CU_ASSERT
    - semanage_context_from_string
    - setup_handle
    - semanage_iface_create
    - CU_ASSERT_CONTEXT_EQUAL
    - semanage_iface_get_name
    linkageType: ''
    returnType: void
    signature: void test_iface_clone(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:426,1
    - Dst: get_iface_key_nth
      Src: /src/selinux/libsemanage/tests/test_iface.c:427,1
    - Dst: get_iface_nth
      Src: /src/selinux/libsemanage/tests/test_iface.c:428,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:431,1
    - Dst: semanage_iface_query
      Src: /src/selinux/libsemanage/tests/test_iface.c:431,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_iface.c:432,1
    - Dst: semanage_iface_get_name
      Src: /src/selinux/libsemanage/tests/test_iface.c:432,1
    - Dst: semanage_iface_get_name
      Src: /src/selinux/libsemanage/tests/test_iface.c:433,1
    - Dst: semanage_iface_get_ifcon
      Src: /src/selinux/libsemanage/tests/test_iface.c:435,1
    - Dst: semanage_iface_get_ifcon
      Src: /src/selinux/libsemanage/tests/test_iface.c:436,1
    - Dst: CU_ASSERT_CONTEXT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_iface.c:437,1
    - Dst: semanage_iface_get_msgcon
      Src: /src/selinux/libsemanage/tests/test_iface.c:439,1
    - Dst: semanage_iface_get_msgcon
      Src: /src/selinux/libsemanage/tests/test_iface.c:440,1
    - Dst: CU_ASSERT_CONTEXT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_iface.c:441,1
    - Dst: semanage_iface_key_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:444,1
    - Dst: semanage_iface_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:445,1
    - Dst: semanage_iface_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:446,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 417
    functionDepth: 3
    functionLinenumber: 417
    functionLinenumberEnd: 448
    functionName: test_iface_query
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - semanage_iface_free
    - semanage_iface_query
    - get_iface_key_nth
    - CU_ASSERT_STRING_EQUAL
    - cleanup_handle
    - semanage_iface_get_msgcon
    - semanage_iface_get_ifcon
    - CU_ASSERT
    - semanage_iface_key_free
    - get_iface_nth
    - setup_handle
    - CU_ASSERT_CONTEXT_EQUAL
    - semanage_iface_get_name
    linkageType: ''
    returnType: void
    signature: void test_iface_query(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:458,1
    - Dst: get_iface_key_nth
      Src: /src/selinux/libsemanage/tests/test_iface.c:459,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:460,1
    - Dst: semanage_iface_key_create
      Src: /src/selinux/libsemanage/tests/test_iface.c:460,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:463,1
    - Dst: semanage_iface_exists
      Src: /src/selinux/libsemanage/tests/test_iface.c:463,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:464,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:465,1
    - Dst: semanage_iface_exists
      Src: /src/selinux/libsemanage/tests/test_iface.c:465,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:466,1
    - Dst: semanage_iface_key_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:469,1
    - Dst: semanage_iface_key_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:470,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 451
    functionDepth: 3
    functionLinenumber: 451
    functionLinenumberEnd: 472
    functionName: test_iface_exists
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - semanage_iface_key_create
    - get_iface_key_nth
    - cleanup_handle
    - semanage_iface_exists
    - CU_ASSERT
    - semanage_iface_key_free
    - setup_handle
    linkageType: ''
    returnType: void
    signature: void test_iface_exists(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:480,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:483,1
    - Dst: semanage_iface_count
      Src: /src/selinux/libsemanage/tests/test_iface.c:483,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:484,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 488
    functionName: test_iface_count
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    - setup_handle
    - cleanup_handle
    - semanage_iface_count
    linkageType: ''
    returnType: void
    signature: void test_iface_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - record
    - varg
    argTypes:
    - semanage_iface_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 500
    functionName: handler_iface_iterate
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int handler_iface_iterate(__attribute__((unused))\n\t\t\t\t const
      semanage_iface_t *record,\n\t\t\t\t __attribute__((unused)) void *varg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:505,1
    - Dst: semanage_iface_iterate
      Src: /src/selinux/libsemanage/tests/test_iface.c:508,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:509,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 513
    functionName: test_iface_iterate
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - semanage_iface_iterate
    - setup_handle
    - cleanup_handle
    - CU_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_iface_iterate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:522,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:525,1
    - Dst: semanage_iface_list
      Src: /src/selinux/libsemanage/tests/test_iface.c:525,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:526,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_iface.c:529,1
    - Dst: semanage_iface_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:532,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_iface.c:534,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:537,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 538
    functionName: test_iface_list
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - semanage_iface_free
    - CU_ASSERT_PTR_NOT_NULL
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - free
    - semanage_iface_list
    linkageType: ''
    returnType: void
    signature: void test_iface_list(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:550,1
    - Dst: get_iface_nth
      Src: /src/selinux/libsemanage/tests/test_iface.c:551,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:552,1
    - Dst: semanage_iface_key_extract
      Src: /src/selinux/libsemanage/tests/test_iface.c:552,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_iface.c:553,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:556,1
    - Dst: semanage_iface_modify_local
      Src: /src/selinux/libsemanage/tests/test_iface.c:556,1
    - Dst: helper_commit
      Src: /src/selinux/libsemanage/tests/test_iface.c:559,1
    - Dst: helper_begin_transaction
      Src: /src/selinux/libsemanage/tests/test_iface.c:560,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:562,1
    - Dst: semanage_iface_query_local
      Src: /src/selinux/libsemanage/tests/test_iface.c:562,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_iface.c:563,1
    - Dst: semanage_iface_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:564,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:566,1
    - Dst: semanage_iface_del_local
      Src: /src/selinux/libsemanage/tests/test_iface.c:566,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:567,1
    - Dst: semanage_iface_query_local
      Src: /src/selinux/libsemanage/tests/test_iface.c:567,1
    - Dst: semanage_iface_key_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:570,1
    - Dst: semanage_iface_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:571,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 573
    functionName: test_iface_modify_del_query_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - semanage_iface_free
    - semanage_iface_key_extract
    - semanage_iface_modify_local
    - CU_ASSERT_PTR_NOT_NULL
    - semanage_iface_query_local
    - cleanup_handle
    - semanage_iface_del_local
    - CU_ASSERT
    - helper_commit
    - setup_handle
    - get_iface_nth
    - helper_begin_transaction
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - semanage_iface_key_free
    linkageType: ''
    returnType: void
    signature: void test_iface_modify_del_query_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:583,1
    - Dst: add_local_iface
      Src: /src/selinux/libsemanage/tests/test_iface.c:584,1
    - Dst: get_iface_key_nth
      Src: /src/selinux/libsemanage/tests/test_iface.c:585,1
    - Dst: get_iface_key_nth
      Src: /src/selinux/libsemanage/tests/test_iface.c:586,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:589,1
    - Dst: semanage_iface_exists_local
      Src: /src/selinux/libsemanage/tests/test_iface.c:589,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:590,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:591,1
    - Dst: semanage_iface_exists_local
      Src: /src/selinux/libsemanage/tests/test_iface.c:591,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:592,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:595,1
    - Dst: semanage_iface_del_local
      Src: /src/selinux/libsemanage/tests/test_iface.c:595,1
    - Dst: semanage_iface_key_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:596,1
    - Dst: semanage_iface_key_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:597,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 576
    functionDepth: 3
    functionLinenumber: 576
    functionLinenumberEnd: 599
    functionName: test_iface_exists_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - semanage_iface_exists_local
    - get_iface_key_nth
    - add_local_iface
    - cleanup_handle
    - semanage_iface_del_local
    - CU_ASSERT
    - semanage_iface_key_free
    - setup_handle
    linkageType: ''
    returnType: void
    signature: void test_iface_exists_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:607,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:610,1
    - Dst: semanage_iface_count_local
      Src: /src/selinux/libsemanage/tests/test_iface.c:610,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:611,1
    - Dst: add_local_iface
      Src: /src/selinux/libsemanage/tests/test_iface.c:613,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:614,1
    - Dst: semanage_iface_count_local
      Src: /src/selinux/libsemanage/tests/test_iface.c:614,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:615,1
    - Dst: add_local_iface
      Src: /src/selinux/libsemanage/tests/test_iface.c:617,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:618,1
    - Dst: semanage_iface_count_local
      Src: /src/selinux/libsemanage/tests/test_iface.c:618,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:619,1
    - Dst: delete_local_iface
      Src: /src/selinux/libsemanage/tests/test_iface.c:621,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:622,1
    - Dst: semanage_iface_count_local
      Src: /src/selinux/libsemanage/tests/test_iface.c:622,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:623,1
    - Dst: delete_local_iface
      Src: /src/selinux/libsemanage/tests/test_iface.c:625,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:626,1
    - Dst: semanage_iface_count_local
      Src: /src/selinux/libsemanage/tests/test_iface.c:626,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:627,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 602
    functionDepth: 4
    functionLinenumber: 602
    functionLinenumberEnd: 631
    functionName: test_iface_count_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - add_local_iface
    - cleanup_handle
    - delete_local_iface
    - semanage_iface_count_local
    - CU_ASSERT
    - setup_handle
    linkageType: ''
    returnType: void
    signature: void test_iface_count_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - record
    - varg
    argTypes:
    - semanage_iface_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 642
    functionName: handler_iface_iterate_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int handler_iface_iterate_local(__attribute__((unused))\n\t\t\t\t
      \      const semanage_iface_t *record,\n\t\t\t\t       __attribute__((unused))
      void *varg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:647,1
    - Dst: add_local_iface
      Src: /src/selinux/libsemanage/tests/test_iface.c:648,1
    - Dst: add_local_iface
      Src: /src/selinux/libsemanage/tests/test_iface.c:649,1
    - Dst: add_local_iface
      Src: /src/selinux/libsemanage/tests/test_iface.c:650,1
    - Dst: semanage_iface_iterate_local
      Src: /src/selinux/libsemanage/tests/test_iface.c:653,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:654,1
    - Dst: delete_local_iface
      Src: /src/selinux/libsemanage/tests/test_iface.c:657,1
    - Dst: delete_local_iface
      Src: /src/selinux/libsemanage/tests/test_iface.c:658,1
    - Dst: delete_local_iface
      Src: /src/selinux/libsemanage/tests/test_iface.c:659,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 644
    functionDepth: 4
    functionLinenumber: 644
    functionLinenumberEnd: 661
    functionName: test_iface_iterate_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - add_local_iface
    - semanage_iface_iterate_local
    - cleanup_handle
    - delete_local_iface
    - CU_ASSERT
    - setup_handle
    linkageType: ''
    returnType: void
    signature: void test_iface_iterate_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:670,1
    - Dst: add_local_iface
      Src: /src/selinux/libsemanage/tests/test_iface.c:671,1
    - Dst: add_local_iface
      Src: /src/selinux/libsemanage/tests/test_iface.c:672,1
    - Dst: add_local_iface
      Src: /src/selinux/libsemanage/tests/test_iface.c:673,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:676,1
    - Dst: semanage_iface_list_local
      Src: /src/selinux/libsemanage/tests/test_iface.c:676,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_iface.c:677,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_iface.c:680,1
    - Dst: semanage_iface_free
      Src: /src/selinux/libsemanage/tests/test_iface.c:684,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_iface.c:685,1
    - Dst: delete_local_iface
      Src: /src/selinux/libsemanage/tests/test_iface.c:687,1
    - Dst: delete_local_iface
      Src: /src/selinux/libsemanage/tests/test_iface.c:688,1
    - Dst: delete_local_iface
      Src: /src/selinux/libsemanage/tests/test_iface.c:689,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_iface.c:690,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 664
    functionDepth: 4
    functionLinenumber: 664
    functionLinenumberEnd: 691
    functionName: test_iface_list_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_iface.c
    functionUses: 0
    functionsReached:
    - semanage_iface_list_local
    - semanage_iface_free
    - CU_ASSERT_PTR_NOT_NULL
    - add_local_iface
    - cleanup_handle
    - delete_local_iface
    - CU_ASSERT
    - setup_handle
    - free
    linkageType: ''
    returnType: void
    signature: void test_iface_list_local(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_test_store
      Src: /src/selinux/libsemanage/tests/test_port.c:70,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_port.c:71,1
    - Dst: write_test_policy_from_file
      Src: /src/selinux/libsemanage/tests/test_port.c:75,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_port.c:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 81
    functionName: port_test_init
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - create_test_store
    - write_test_policy_from_file
    - fprintf
    linkageType: ''
    returnType: int
    signature: int port_test_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: destroy_test_store
      Src: /src/selinux/libsemanage/tests/test_port.c:85,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_port.c:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 91
    functionName: port_test_cleanup
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - destroy_test_store
    - fprintf
    linkageType: ''
    returnType: int
    signature: int port_test_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_port.c:95,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_port.c:96,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_port.c:97,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_port.c:98,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_port.c:99,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_port.c:100,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_port.c:101,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_port.c:102,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_port.c:103,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_port.c:104,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_port.c:106,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_port.c:107,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_port.c:108,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_port.c:109,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_port.c:110,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_port.c:112,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_port.c:113,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_port.c:114,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_port.c:115,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_port.c:116,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_port.c:117,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_port.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - suite
    argTypes:
    - CU_pSuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 122
    functionName: port_add_tests
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - CU_add_test
    linkageType: ''
    returnType: int
    signature: int port_add_tests(CU_pSuite suite)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: semanage_port_list
      Src: /src/selinux/libsemanage/tests/test_port.c:136,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_port.c:138,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_port.c:139,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/tests/test_port.c:145,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_port.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 150
    functionName: get_port_nth
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - semanage_port_list
    - free
    - CU_ASSERT_FATAL
    - semanage_port_free
    linkageType: ''
    returnType: semanage_port_t
    signature: semanage_port_t *get_port_nth(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_port_nth
      Src: /src/selinux/libsemanage/tests/test_port.c:161,1
    - Dst: semanage_port_key_extract
      Src: /src/selinux/libsemanage/tests/test_port.c:163,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_port.c:165,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_port.c:166,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/tests/test_port.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 172
    functionName: get_port_key_nth
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - get_port_nth
    - semanage_port_free
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - CU_ASSERT_FATAL
    - semanage_port_key_extract
    linkageType: ''
    returnType: semanage_port_key_t
    signature: semanage_port_key_t *get_port_key_nth(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_port.c:179,1
    - Dst: get_port_nth
      Src: /src/selinux/libsemanage/tests/test_port.c:181,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_port.c:183,1
    - Dst: semanage_port_key_extract
      Src: /src/selinux/libsemanage/tests/test_port.c:183,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_port.c:184,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_port.c:186,1
    - Dst: semanage_port_modify_local
      Src: /src/selinux/libsemanage/tests/test_port.c:186,1
    - Dst: semanage_port_key_free
      Src: /src/selinux/libsemanage/tests/test_port.c:189,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/tests/test_port.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - port_idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 191
    functionName: add_local_port
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - get_port_nth
    - semanage_port_key_free
    - semanage_port_free
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - semanage_port_key_extract
    - CU_ASSERT_FATAL
    - semanage_port_modify_local
    linkageType: ''
    returnType: void
    signature: void add_local_port(int port_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_port.c:197,1
    - Dst: get_port_key_nth
      Src: /src/selinux/libsemanage/tests/test_port.c:199,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_port.c:201,1
    - Dst: semanage_port_del_local
      Src: /src/selinux/libsemanage/tests/test_port.c:201,1
    - Dst: semanage_port_key_free
      Src: /src/selinux/libsemanage/tests/test_port.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - port_idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 204
    functionName: delete_local_port
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - semanage_port_key_free
    - get_port_key_nth
    - semanage_port_del_local
    - CU_ASSERT_FATAL
    linkageType: ''
    returnType: void
    signature: void delete_local_port(int port_idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:214,1
    - Dst: get_port_nth
      Src: /src/selinux/libsemanage/tests/test_port.c:215,1
    - Dst: get_port_key_nth
      Src: /src/selinux/libsemanage/tests/test_port.c:216,1
    - Dst: semanage_port_compare
      Src: /src/selinux/libsemanage/tests/test_port.c:219,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:222,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:224,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/tests/test_port.c:228,1
    - Dst: semanage_port_key_free
      Src: /src/selinux/libsemanage/tests/test_port.c:229,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - idx1
    - idx2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 231
    functionName: helper_port_compare
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - semanage_port_compare
    - semanage_port_key_free
    - cleanup_handle
    - semanage_port_free
    - CU_ASSERT
    - setup_handle
    - get_port_nth
    - get_port_key_nth
    linkageType: ''
    returnType: void
    signature: void helper_port_compare(int idx1, int idx2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_port_compare
      Src: /src/selinux/libsemanage/tests/test_port.c:235,1
    - Dst: helper_port_compare
      Src: /src/selinux/libsemanage/tests/test_port.c:236,1
    - Dst: helper_port_compare
      Src: /src/selinux/libsemanage/tests/test_port.c:237,1
    - Dst: helper_port_compare
      Src: /src/selinux/libsemanage/tests/test_port.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 233
    functionDepth: 4
    functionLinenumber: 233
    functionLinenumberEnd: 239
    functionName: test_port_compare
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - helper_port_compare
    linkageType: ''
    returnType: void
    signature: void test_port_compare(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:249,1
    - Dst: get_port_nth
      Src: /src/selinux/libsemanage/tests/test_port.c:251,1
    - Dst: get_port_nth
      Src: /src/selinux/libsemanage/tests/test_port.c:252,1
    - Dst: semanage_port_compare2
      Src: /src/selinux/libsemanage/tests/test_port.c:255,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:258,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:260,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/tests/test_port.c:264,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/tests/test_port.c:265,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - idx1
    - idx2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 267
    functionName: helper_port_compare2
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - cleanup_handle
    - semanage_port_free
    - semanage_port_compare2
    - CU_ASSERT
    - setup_handle
    - get_port_nth
    linkageType: ''
    returnType: void
    signature: void helper_port_compare2(int idx1, int idx2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_port_compare2
      Src: /src/selinux/libsemanage/tests/test_port.c:271,1
    - Dst: helper_port_compare2
      Src: /src/selinux/libsemanage/tests/test_port.c:272,1
    - Dst: helper_port_compare2
      Src: /src/selinux/libsemanage/tests/test_port.c:273,1
    - Dst: helper_port_compare2
      Src: /src/selinux/libsemanage/tests/test_port.c:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 275
    functionName: test_port_compare2
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - helper_port_compare2
    linkageType: ''
    returnType: void
    signature: void test_port_compare2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:283,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:286,1
    - Dst: semanage_port_key_create
      Src: /src/selinux/libsemanage/tests/test_port.c:286,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_port.c:287,1
    - Dst: semanage_port_key_free
      Src: /src/selinux/libsemanage/tests/test_port.c:290,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 292
    functionName: test_port_key_create
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_PTR_NOT_NULL
    - semanage_port_key_free
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - semanage_port_key_create
    linkageType: ''
    returnType: void
    signature: void test_port_key_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:301,1
    - Dst: get_port_nth
      Src: /src/selinux/libsemanage/tests/test_port.c:302,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:305,1
    - Dst: semanage_port_key_extract
      Src: /src/selinux/libsemanage/tests/test_port.c:305,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_port.c:306,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/tests/test_port.c:309,1
    - Dst: semanage_port_key_free
      Src: /src/selinux/libsemanage/tests/test_port.c:310,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 312
    functionName: test_port_key_extract
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_PTR_NOT_NULL
    - semanage_port_key_free
    - cleanup_handle
    - semanage_port_free
    - CU_ASSERT
    - setup_handle
    - semanage_port_key_extract
    - get_port_nth
    linkageType: ''
    returnType: void
    signature: void test_port_key_extract(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:320,1
    - Dst: get_port_nth
      Src: /src/selinux/libsemanage/tests/test_port.c:321,1
    - Dst: semanage_port_set_proto
      Src: /src/selinux/libsemanage/tests/test_port.c:324,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:325,1
    - Dst: semanage_port_get_proto
      Src: /src/selinux/libsemanage/tests/test_port.c:325,1
    - Dst: semanage_port_set_proto
      Src: /src/selinux/libsemanage/tests/test_port.c:326,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:327,1
    - Dst: semanage_port_get_proto
      Src: /src/selinux/libsemanage/tests/test_port.c:327,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/tests/test_port.c:330,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 332
    functionName: helper_port_get_set_proto
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - semanage_port_get_proto
    - cleanup_handle
    - semanage_port_free
    - CU_ASSERT
    - setup_handle
    - get_port_nth
    - semanage_port_set_proto
    linkageType: ''
    returnType: void
    signature: void helper_port_get_set_proto(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_port_get_set_proto
      Src: /src/selinux/libsemanage/tests/test_port.c:336,1
    - Dst: helper_port_get_set_proto
      Src: /src/selinux/libsemanage/tests/test_port.c:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 338
    functionName: test_port_get_set_proto
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - helper_port_get_set_proto
    linkageType: ''
    returnType: void
    signature: void test_port_get_set_proto(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_port_get_proto_str
      Src: /src/selinux/libsemanage/tests/test_port.c:345,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_port.c:346,1
    - Dst: semanage_port_get_proto_str
      Src: /src/selinux/libsemanage/tests/test_port.c:348,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_port.c:349,1
    - Dst: semanage_port_get_proto_str
      Src: /src/selinux/libsemanage/tests/test_port.c:351,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_port.c:352,1
    - Dst: semanage_port_get_proto_str
      Src: /src/selinux/libsemanage/tests/test_port.c:354,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_port.c:355,1
    - Dst: semanage_port_get_proto_str
      Src: /src/selinux/libsemanage/tests/test_port.c:357,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_port.c:358,1
    - Dst: semanage_port_get_proto_str
      Src: /src/selinux/libsemanage/tests/test_port.c:360,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_port.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 362
    functionName: test_port_get_proto_str
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - semanage_port_get_proto_str
    - CU_ASSERT_STRING_EQUAL
    linkageType: ''
    returnType: void
    signature: void test_port_get_proto_str(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:371,1
    - Dst: get_port_nth
      Src: /src/selinux/libsemanage/tests/test_port.c:372,1
    - Dst: semanage_port_set_port
      Src: /src/selinux/libsemanage/tests/test_port.c:375,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:376,1
    - Dst: semanage_port_get_low
      Src: /src/selinux/libsemanage/tests/test_port.c:376,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:377,1
    - Dst: semanage_port_get_high
      Src: /src/selinux/libsemanage/tests/test_port.c:377,1
    - Dst: semanage_port_set_range
      Src: /src/selinux/libsemanage/tests/test_port.c:379,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:380,1
    - Dst: semanage_port_get_low
      Src: /src/selinux/libsemanage/tests/test_port.c:380,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:381,1
    - Dst: semanage_port_get_high
      Src: /src/selinux/libsemanage/tests/test_port.c:381,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/tests/test_port.c:384,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 366
    functionDepth: 2
    functionLinenumber: 366
    functionLinenumberEnd: 386
    functionName: test_port_get_set_port
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - semanage_port_set_port
    - semanage_port_get_high
    - cleanup_handle
    - semanage_port_free
    - semanage_port_set_range
    - CU_ASSERT
    - semanage_port_get_low
    - setup_handle
    - get_port_nth
    linkageType: ''
    returnType: void
    signature: void test_port_get_set_port(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:397,1
    - Dst: get_port_nth
      Src: /src/selinux/libsemanage/tests/test_port.c:398,1
    - Dst: get_port_nth
      Src: /src/selinux/libsemanage/tests/test_port.c:399,1
    - Dst: semanage_port_get_con
      Src: /src/selinux/libsemanage/tests/test_port.c:400,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:403,1
    - Dst: semanage_port_set_con
      Src: /src/selinux/libsemanage/tests/test_port.c:403,1
    - Dst: semanage_port_get_con
      Src: /src/selinux/libsemanage/tests/test_port.c:404,1
    - Dst: CU_ASSERT_CONTEXT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_port.c:405,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/tests/test_port.c:408,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/tests/test_port.c:409,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 411
    functionName: test_port_get_set_con
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - semanage_port_set_con
    - cleanup_handle
    - semanage_port_free
    - CU_ASSERT
    - setup_handle
    - CU_ASSERT_CONTEXT_EQUAL
    - get_port_nth
    - semanage_port_get_con
    linkageType: ''
    returnType: void
    signature: void test_port_get_set_con(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:419,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:422,1
    - Dst: semanage_port_create
      Src: /src/selinux/libsemanage/tests/test_port.c:422,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:423,1
    - Dst: semanage_port_get_low
      Src: /src/selinux/libsemanage/tests/test_port.c:423,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:424,1
    - Dst: semanage_port_get_high
      Src: /src/selinux/libsemanage/tests/test_port.c:424,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:425,1
    - Dst: semanage_port_get_con
      Src: /src/selinux/libsemanage/tests/test_port.c:425,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:426,1
    - Dst: semanage_port_get_proto
      Src: /src/selinux/libsemanage/tests/test_port.c:426,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/tests/test_port.c:429,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 431
    functionName: test_port_create
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - semanage_port_create
    - semanage_port_get_proto
    - semanage_port_get_high
    - cleanup_handle
    - semanage_port_free
    - CU_ASSERT
    - semanage_port_get_low
    - setup_handle
    - semanage_port_get_con
    linkageType: ''
    returnType: void
    signature: void test_port_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:442,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:443,1
    - Dst: semanage_port_create
      Src: /src/selinux/libsemanage/tests/test_port.c:443,1
    - Dst: semanage_port_set_range
      Src: /src/selinux/libsemanage/tests/test_port.c:444,1
    - Dst: semanage_port_set_proto
      Src: /src/selinux/libsemanage/tests/test_port.c:445,1
    - Dst: semanage_context_from_string
      Src: /src/selinux/libsemanage/tests/test_port.c:446,1
    - Dst: semanage_port_set_con
      Src: /src/selinux/libsemanage/tests/test_port.c:447,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:450,1
    - Dst: semanage_port_clone
      Src: /src/selinux/libsemanage/tests/test_port.c:450,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:451,1
    - Dst: semanage_port_get_low
      Src: /src/selinux/libsemanage/tests/test_port.c:451,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:452,1
    - Dst: semanage_port_get_high
      Src: /src/selinux/libsemanage/tests/test_port.c:452,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:453,1
    - Dst: semanage_port_get_proto
      Src: /src/selinux/libsemanage/tests/test_port.c:453,1
    - Dst: semanage_port_get_con
      Src: /src/selinux/libsemanage/tests/test_port.c:455,1
    - Dst: CU_ASSERT_CONTEXT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_port.c:456,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/tests/test_port.c:459,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/tests/test_port.c:460,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/tests/test_port.c:461,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 463
    functionName: test_port_clone
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - semanage_port_create
    - semanage_port_set_con
    - semanage_port_get_proto
    - semanage_port_get_high
    - cleanup_handle
    - semanage_port_free
    - semanage_port_set_range
    - CU_ASSERT
    - semanage_context_from_string
    - setup_handle
    - semanage_port_get_low
    - CU_ASSERT_CONTEXT_EQUAL
    - semanage_port_get_con
    - semanage_context_free
    - semanage_port_clone
    - semanage_port_set_proto
    linkageType: ''
    returnType: void
    signature: void test_port_clone(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:475,1
    - Dst: get_port_key_nth
      Src: /src/selinux/libsemanage/tests/test_port.c:476,1
    - Dst: get_port_nth
      Src: /src/selinux/libsemanage/tests/test_port.c:477,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:480,1
    - Dst: semanage_port_query
      Src: /src/selinux/libsemanage/tests/test_port.c:480,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:481,1
    - Dst: semanage_port_get_low
      Src: /src/selinux/libsemanage/tests/test_port.c:481,1
    - Dst: semanage_port_get_low
      Src: /src/selinux/libsemanage/tests/test_port.c:482,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:483,1
    - Dst: semanage_port_get_high
      Src: /src/selinux/libsemanage/tests/test_port.c:483,1
    - Dst: semanage_port_get_high
      Src: /src/selinux/libsemanage/tests/test_port.c:484,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:485,1
    - Dst: semanage_port_get_proto
      Src: /src/selinux/libsemanage/tests/test_port.c:485,1
    - Dst: semanage_port_get_proto
      Src: /src/selinux/libsemanage/tests/test_port.c:486,1
    - Dst: semanage_port_get_con
      Src: /src/selinux/libsemanage/tests/test_port.c:488,1
    - Dst: semanage_port_get_con
      Src: /src/selinux/libsemanage/tests/test_port.c:489,1
    - Dst: CU_ASSERT_CONTEXT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_port.c:490,1
    - Dst: semanage_port_key_free
      Src: /src/selinux/libsemanage/tests/test_port.c:493,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/tests/test_port.c:494,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/tests/test_port.c:495,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 466
    functionDepth: 3
    functionLinenumber: 466
    functionLinenumberEnd: 497
    functionName: test_port_query
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - semanage_port_get_proto
    - semanage_port_query
    - semanage_port_key_free
    - semanage_port_get_high
    - cleanup_handle
    - semanage_port_free
    - CU_ASSERT
    - setup_handle
    - semanage_port_get_low
    - CU_ASSERT_CONTEXT_EQUAL
    - get_port_nth
    - semanage_port_get_con
    - get_port_key_nth
    linkageType: ''
    returnType: void
    signature: void test_port_query(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:507,1
    - Dst: get_port_key_nth
      Src: /src/selinux/libsemanage/tests/test_port.c:508,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:509,1
    - Dst: semanage_port_key_create
      Src: /src/selinux/libsemanage/tests/test_port.c:509,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:512,1
    - Dst: semanage_port_exists
      Src: /src/selinux/libsemanage/tests/test_port.c:512,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:513,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:514,1
    - Dst: semanage_port_exists
      Src: /src/selinux/libsemanage/tests/test_port.c:514,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:515,1
    - Dst: semanage_port_key_free
      Src: /src/selinux/libsemanage/tests/test_port.c:518,1
    - Dst: semanage_port_key_free
      Src: /src/selinux/libsemanage/tests/test_port.c:519,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 500
    functionDepth: 3
    functionLinenumber: 500
    functionLinenumberEnd: 521
    functionName: test_port_exists
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - semanage_port_key_free
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - semanage_port_exists
    - semanage_port_key_create
    - get_port_key_nth
    linkageType: ''
    returnType: void
    signature: void test_port_exists(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:529,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:532,1
    - Dst: semanage_port_count
      Src: /src/selinux/libsemanage/tests/test_port.c:532,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:533,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 537
    functionName: test_port_count
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    - setup_handle
    - cleanup_handle
    - semanage_port_count
    linkageType: ''
    returnType: void
    signature: void test_port_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - record
    - varg
    argTypes:
    - semanage_port_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 548
    functionName: handler_port_iterate
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int handler_port_iterate(__attribute__((unused))\n\t\t\t\tconst semanage_port_t
      *record,\n\t\t\t\t__attribute__((unused)) void *varg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:553,1
    - Dst: semanage_port_iterate
      Src: /src/selinux/libsemanage/tests/test_port.c:556,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:557,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:560,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 561
    functionName: test_port_iterate
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - semanage_port_iterate
    - CU_ASSERT
    - setup_handle
    - cleanup_handle
    linkageType: ''
    returnType: void
    signature: void test_port_iterate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:570,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:573,1
    - Dst: semanage_port_list
      Src: /src/selinux/libsemanage/tests/test_port.c:573,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:574,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_port.c:577,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/tests/test_port.c:581,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_port.c:583,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:585,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 586
    functionName: test_port_list
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_PTR_NOT_NULL
    - cleanup_handle
    - semanage_port_free
    - CU_ASSERT
    - setup_handle
    - free
    - semanage_port_list
    linkageType: ''
    returnType: void
    signature: void test_port_list(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:598,1
    - Dst: get_port_nth
      Src: /src/selinux/libsemanage/tests/test_port.c:599,1
    - Dst: semanage_context_from_string
      Src: /src/selinux/libsemanage/tests/test_port.c:600,1
    - Dst: semanage_port_set_con
      Src: /src/selinux/libsemanage/tests/test_port.c:601,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:602,1
    - Dst: semanage_port_key_extract
      Src: /src/selinux/libsemanage/tests/test_port.c:602,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_port.c:603,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:606,1
    - Dst: semanage_port_modify_local
      Src: /src/selinux/libsemanage/tests/test_port.c:606,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:607,1
    - Dst: semanage_port_query_local
      Src: /src/selinux/libsemanage/tests/test_port.c:607,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_port.c:608,1
    - Dst: semanage_port_get_con
      Src: /src/selinux/libsemanage/tests/test_port.c:610,1
    - Dst: CU_ASSERT_CONTEXT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_port.c:611,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/tests/test_port.c:612,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:614,1
    - Dst: semanage_port_del_local
      Src: /src/selinux/libsemanage/tests/test_port.c:614,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:615,1
    - Dst: semanage_port_query_local
      Src: /src/selinux/libsemanage/tests/test_port.c:615,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/tests/test_port.c:618,1
    - Dst: semanage_port_key_free
      Src: /src/selinux/libsemanage/tests/test_port.c:619,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/tests/test_port.c:620,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 589
    functionDepth: 2
    functionLinenumber: 589
    functionLinenumberEnd: 622
    functionName: test_port_modify_del_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - semanage_port_set_con
    - semanage_port_query_local
    - semanage_port_del_local
    - CU_ASSERT_PTR_NOT_NULL
    - semanage_port_key_free
    - cleanup_handle
    - semanage_context_free
    - semanage_port_free
    - CU_ASSERT
    - semanage_context_from_string
    - setup_handle
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - semanage_port_key_extract
    - get_port_nth
    - semanage_port_get_con
    - CU_ASSERT_CONTEXT_EQUAL
    - semanage_port_modify_local
    linkageType: ''
    returnType: void
    signature: void test_port_modify_del_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:634,1
    - Dst: add_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:635,1
    - Dst: get_port_key_nth
      Src: /src/selinux/libsemanage/tests/test_port.c:636,1
    - Dst: get_port_nth
      Src: /src/selinux/libsemanage/tests/test_port.c:637,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:640,1
    - Dst: semanage_port_query_local
      Src: /src/selinux/libsemanage/tests/test_port.c:640,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:641,1
    - Dst: semanage_port_get_low
      Src: /src/selinux/libsemanage/tests/test_port.c:641,1
    - Dst: semanage_port_get_low
      Src: /src/selinux/libsemanage/tests/test_port.c:642,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:643,1
    - Dst: semanage_port_get_high
      Src: /src/selinux/libsemanage/tests/test_port.c:643,1
    - Dst: semanage_port_get_high
      Src: /src/selinux/libsemanage/tests/test_port.c:644,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:645,1
    - Dst: semanage_port_get_proto
      Src: /src/selinux/libsemanage/tests/test_port.c:645,1
    - Dst: semanage_port_get_proto
      Src: /src/selinux/libsemanage/tests/test_port.c:646,1
    - Dst: semanage_port_get_con
      Src: /src/selinux/libsemanage/tests/test_port.c:648,1
    - Dst: semanage_port_get_con
      Src: /src/selinux/libsemanage/tests/test_port.c:649,1
    - Dst: CU_ASSERT_CONTEXT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_port.c:650,1
    - Dst: delete_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:653,1
    - Dst: semanage_port_key_free
      Src: /src/selinux/libsemanage/tests/test_port.c:654,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/tests/test_port.c:655,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/tests/test_port.c:656,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 625
    functionDepth: 4
    functionLinenumber: 625
    functionLinenumberEnd: 658
    functionName: test_port_query_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - semanage_port_get_proto
    - semanage_port_query_local
    - semanage_port_key_free
    - semanage_port_get_high
    - cleanup_handle
    - semanage_port_free
    - CU_ASSERT
    - delete_local_port
    - setup_handle
    - semanage_port_get_low
    - CU_ASSERT_CONTEXT_EQUAL
    - get_port_nth
    - semanage_port_get_con
    - add_local_port
    - get_port_key_nth
    linkageType: ''
    returnType: void
    signature: void test_port_query_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:668,1
    - Dst: add_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:669,1
    - Dst: get_port_key_nth
      Src: /src/selinux/libsemanage/tests/test_port.c:670,1
    - Dst: get_port_key_nth
      Src: /src/selinux/libsemanage/tests/test_port.c:671,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:674,1
    - Dst: semanage_port_exists_local
      Src: /src/selinux/libsemanage/tests/test_port.c:674,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:675,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:676,1
    - Dst: semanage_port_exists_local
      Src: /src/selinux/libsemanage/tests/test_port.c:676,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:677,1
    - Dst: delete_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:680,1
    - Dst: semanage_port_key_free
      Src: /src/selinux/libsemanage/tests/test_port.c:681,1
    - Dst: semanage_port_key_free
      Src: /src/selinux/libsemanage/tests/test_port.c:682,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 661
    functionDepth: 4
    functionLinenumber: 661
    functionLinenumberEnd: 684
    functionName: test_port_exists_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - semanage_port_exists_local
    - semanage_port_key_free
    - cleanup_handle
    - CU_ASSERT
    - delete_local_port
    - setup_handle
    - add_local_port
    - get_port_key_nth
    linkageType: ''
    returnType: void
    signature: void test_port_exists_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:692,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:695,1
    - Dst: semanage_port_count_local
      Src: /src/selinux/libsemanage/tests/test_port.c:695,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:696,1
    - Dst: add_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:698,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:699,1
    - Dst: semanage_port_count_local
      Src: /src/selinux/libsemanage/tests/test_port.c:699,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:700,1
    - Dst: add_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:702,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:703,1
    - Dst: semanage_port_count_local
      Src: /src/selinux/libsemanage/tests/test_port.c:703,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:704,1
    - Dst: delete_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:706,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:707,1
    - Dst: semanage_port_count_local
      Src: /src/selinux/libsemanage/tests/test_port.c:707,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:708,1
    - Dst: delete_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:710,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:711,1
    - Dst: semanage_port_count_local
      Src: /src/selinux/libsemanage/tests/test_port.c:711,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:712,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 687
    functionDepth: 4
    functionLinenumber: 687
    functionLinenumberEnd: 716
    functionName: test_port_count_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - add_local_port
    - delete_local_port
    - semanage_port_count_local
    linkageType: ''
    returnType: void
    signature: void test_port_count_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - record
    - varg
    argTypes:
    - semanage_port_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 727
    functionName: handler_port_iterate_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int handler_port_iterate_local(__attribute__((unused))\n\t\t\t\t      const
      semanage_port_t *record,\n\t\t\t\t      __attribute__((unused)) void *varg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:732,1
    - Dst: add_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:733,1
    - Dst: add_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:734,1
    - Dst: add_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:735,1
    - Dst: semanage_port_iterate_local
      Src: /src/selinux/libsemanage/tests/test_port.c:738,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:739,1
    - Dst: delete_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:742,1
    - Dst: delete_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:743,1
    - Dst: delete_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:744,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 729
    functionDepth: 4
    functionLinenumber: 729
    functionLinenumberEnd: 746
    functionName: test_port_iterate_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - add_local_port
    - delete_local_port
    - semanage_port_iterate_local
    linkageType: ''
    returnType: void
    signature: void test_port_iterate_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:755,1
    - Dst: add_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:756,1
    - Dst: add_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:757,1
    - Dst: add_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:758,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:761,1
    - Dst: semanage_port_list_local
      Src: /src/selinux/libsemanage/tests/test_port.c:761,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:762,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_port.c:765,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/tests/test_port.c:769,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_port.c:771,1
    - Dst: delete_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:773,1
    - Dst: delete_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:774,1
    - Dst: delete_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:775,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:776,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 749
    functionDepth: 4
    functionLinenumber: 749
    functionLinenumberEnd: 777
    functionName: test_port_list_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_PTR_NOT_NULL
    - cleanup_handle
    - semanage_port_free
    - CU_ASSERT
    - setup_handle
    - semanage_port_list_local
    - free
    - add_local_port
    - delete_local_port
    linkageType: ''
    returnType: void
    signature: void test_port_list_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:786,1
    - Dst: add_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:787,1
    - Dst: helper_commit
      Src: /src/selinux/libsemanage/tests/test_port.c:788,1
    - Dst: get_port_key_nth
      Src: /src/selinux/libsemanage/tests/test_port.c:789,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:790,1
    - Dst: semanage_port_exists_local
      Src: /src/selinux/libsemanage/tests/test_port.c:790,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:791,1
    - Dst: helper_begin_transaction
      Src: /src/selinux/libsemanage/tests/test_port.c:794,1
    - Dst: delete_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:795,1
    - Dst: helper_commit
      Src: /src/selinux/libsemanage/tests/test_port.c:796,1
    - Dst: semanage_port_key_free
      Src: /src/selinux/libsemanage/tests/test_port.c:799,1
    - Dst: helper_begin_transaction
      Src: /src/selinux/libsemanage/tests/test_port.c:800,1
    - Dst: delete_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:801,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 780
    functionDepth: 4
    functionLinenumber: 780
    functionLinenumberEnd: 803
    functionName: helper_port_validate_local_noport
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - semanage_port_exists_local
    - semanage_port_key_free
    - cleanup_handle
    - helper_commit
    - CU_ASSERT
    - setup_handle
    - helper_begin_transaction
    - delete_local_port
    - add_local_port
    - get_port_key_nth
    linkageType: ''
    returnType: void
    signature: void helper_port_validate_local_noport(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:808,1
    - Dst: add_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:809,1
    - Dst: helper_commit
      Src: /src/selinux/libsemanage/tests/test_port.c:812,1
    - Dst: helper_begin_transaction
      Src: /src/selinux/libsemanage/tests/test_port.c:815,1
    - Dst: delete_local_port
      Src: /src/selinux/libsemanage/tests/test_port.c:816,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 805
    functionDepth: 4
    functionLinenumber: 805
    functionLinenumberEnd: 818
    functionName: helper_port_validate_local_oneport
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - cleanup_handle
    - helper_commit
    - helper_begin_transaction
    - setup_handle
    - add_local_port
    - delete_local_port
    linkageType: ''
    returnType: void
    signature: void helper_port_validate_local_oneport(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:830,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:831,1
    - Dst: semanage_port_key_create
      Src: /src/selinux/libsemanage/tests/test_port.c:831,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:832,1
    - Dst: semanage_port_key_create
      Src: /src/selinux/libsemanage/tests/test_port.c:832,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:833,1
    - Dst: semanage_port_create
      Src: /src/selinux/libsemanage/tests/test_port.c:833,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:834,1
    - Dst: semanage_port_create
      Src: /src/selinux/libsemanage/tests/test_port.c:834,1
    - Dst: semanage_port_set_range
      Src: /src/selinux/libsemanage/tests/test_port.c:836,1
    - Dst: semanage_port_set_range
      Src: /src/selinux/libsemanage/tests/test_port.c:837,1
    - Dst: semanage_port_set_proto
      Src: /src/selinux/libsemanage/tests/test_port.c:838,1
    - Dst: semanage_port_set_proto
      Src: /src/selinux/libsemanage/tests/test_port.c:839,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:841,1
    - Dst: semanage_context_from_string
      Src: /src/selinux/libsemanage/tests/test_port.c:841,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:843,1
    - Dst: semanage_context_from_string
      Src: /src/selinux/libsemanage/tests/test_port.c:843,1
    - Dst: semanage_port_set_con
      Src: /src/selinux/libsemanage/tests/test_port.c:846,1
    - Dst: semanage_port_set_con
      Src: /src/selinux/libsemanage/tests/test_port.c:847,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:849,1
    - Dst: semanage_port_modify_local
      Src: /src/selinux/libsemanage/tests/test_port.c:849,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:850,1
    - Dst: semanage_port_modify_local
      Src: /src/selinux/libsemanage/tests/test_port.c:850,1
    - Dst: helper_commit
      Src: /src/selinux/libsemanage/tests/test_port.c:853,1
    - Dst: helper_begin_transaction
      Src: /src/selinux/libsemanage/tests/test_port.c:856,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:857,1
    - Dst: semanage_port_del_local
      Src: /src/selinux/libsemanage/tests/test_port.c:857,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_port.c:858,1
    - Dst: semanage_port_del_local
      Src: /src/selinux/libsemanage/tests/test_port.c:858,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/tests/test_port.c:859,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/tests/test_port.c:860,1
    - Dst: semanage_port_key_free
      Src: /src/selinux/libsemanage/tests/test_port.c:861,1
    - Dst: semanage_port_key_free
      Src: /src/selinux/libsemanage/tests/test_port.c:862,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/tests/test_port.c:863,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/tests/test_port.c:864,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_port.c:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 866
    functionName: helper_port_validate_local_twoports
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - semanage_port_create
    - semanage_port_set_con
    - semanage_port_del_local
    - semanage_port_key_free
    - cleanup_handle
    - semanage_port_free
    - semanage_port_set_range
    - CU_ASSERT
    - semanage_context_from_string
    - setup_handle
    - helper_commit
    - helper_begin_transaction
    - semanage_port_key_create
    - semanage_context_free
    - semanage_port_modify_local
    - semanage_port_set_proto
    linkageType: ''
    returnType: void
    signature: void helper_port_validate_local_twoports(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_port_validate_local_noport
      Src: /src/selinux/libsemanage/tests/test_port.c:870,1
    - Dst: helper_port_validate_local_oneport
      Src: /src/selinux/libsemanage/tests/test_port.c:871,1
    - Dst: helper_port_validate_local_twoports
      Src: /src/selinux/libsemanage/tests/test_port.c:872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 868
    functionDepth: 5
    functionLinenumber: 868
    functionLinenumberEnd: 873
    functionName: test_port_validate_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_port.c
    functionUses: 0
    functionsReached:
    - helper_port_validate_local_oneport
    - helper_port_validate_local_noport
    - helper_port_validate_local_twoports
    linkageType: ''
    returnType: void
    signature: void test_port_validate_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - varg
    - handle
    - fmt
    argTypes:
    - void*
    - semanage_handle_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: test_msg_handler
    functionSourceFile: /src/selinux/libsemanage/tests/utilities.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void test_msg_handler(__attribute__((unused)) void *varg,\n\t\t      __attribute__((unused))
      semanage_handle_t *handle,\n\t\t      __attribute__((unused)) const char *fmt,
      ...)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mkdir
      Src: /src/selinux/libsemanage/tests/utilities.c:44,1
    - Dst: mkdir
      Src: /src/selinux/libsemanage/tests/utilities.c:47,1
    - Dst: mkdir
      Src: /src/selinux/libsemanage/tests/utilities.c:50,1
    - Dst: mkdir
      Src: /src/selinux/libsemanage/tests/utilities.c:53,1
    - Dst: mkdir
      Src: /src/selinux/libsemanage/tests/utilities.c:56,1
    - Dst: mkdir
      Src: /src/selinux/libsemanage/tests/utilities.c:59,1
    - Dst: fopen
      Src: /src/selinux/libsemanage/tests/utilities.c:62,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/tests/utilities.c:67,1
    - Dst: enable_test_store
      Src: /src/selinux/libsemanage/tests/utilities.c:69,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 71
    functionName: create_test_store
    functionSourceFile: /src/selinux/libsemanage/tests/utilities.c
    functionUses: 4
    functionsReached:
    - fopen
    - enable_test_store
    - fclose
    - mkdir
    linkageType: ''
    returnType: int
    signature: int create_test_store(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: disable_test_store
    functionSourceFile: /src/selinux/libsemanage/tests/utilities.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void disable_test_store(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: enable_test_store
    functionSourceFile: /src/selinux/libsemanage/tests/utilities.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void enable_test_store(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/libsemanage/tests/utilities.c:85,1
    - Dst: perror
      Src: /src/selinux/libsemanage/tests/utilities.c:88,1
    - Dst: fwrite
      Src: /src/selinux/libsemanage/tests/utilities.c:92,1
    - Dst: perror
      Src: /src/selinux/libsemanage/tests/utilities.c:93,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/tests/utilities.c:94,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/tests/utilities.c:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - data
    - data_len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 101
    functionName: write_test_policy
    functionSourceFile: /src/selinux/libsemanage/tests/utilities.c
    functionUses: 0
    functionsReached:
    - fwrite
    - perror
    - fclose
    - fopen
    linkageType: ''
    returnType: int
    signature: int write_test_policy(char *data, size_t data_len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/libsemanage/tests/utilities.c:107,1
    - Dst: perror
      Src: /src/selinux/libsemanage/tests/utilities.c:111,1
    - Dst: fseek
      Src: /src/selinux/libsemanage/tests/utilities.c:115,1
    - Dst: ftell
      Src: /src/selinux/libsemanage/tests/utilities.c:116,1
    - Dst: fseek
      Src: /src/selinux/libsemanage/tests/utilities.c:117,1
    - Dst: malloc
      Src: /src/selinux/libsemanage/tests/utilities.c:119,1
    - Dst: perror
      Src: /src/selinux/libsemanage/tests/utilities.c:122,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/tests/utilities.c:123,1
    - Dst: fread
      Src: /src/selinux/libsemanage/tests/utilities.c:127,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/tests/utilities.c:128,1
    - Dst: write_test_policy
      Src: /src/selinux/libsemanage/tests/utilities.c:130,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/utilities.c:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 133
    functionName: write_test_policy_from_file
    functionSourceFile: /src/selinux/libsemanage/tests/utilities.c
    functionUses: 4
    functionsReached:
    - write_test_policy
    - fclose
    - malloc
    - perror
    - free
    - fopen
    - fread
    - fseek
    - ftell
    linkageType: ''
    returnType: int
    signature: int write_test_policy_from_file(const char *filename)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mkdir
      Src: /src/selinux/libsemanage/tests/utilities.c:137,1
    - Dst: mkdir
      Src: /src/selinux/libsemanage/tests/utilities.c:140,1
    - Dst: fopen
      Src: /src/selinux/libsemanage/tests/utilities.c:144,1
    - Dst: perror
      Src: /src/selinux/libsemanage/tests/utilities.c:147,1
    - Dst: fwrite
      Src: /src/selinux/libsemanage/tests/utilities.c:151,1
    - Dst: perror
      Src: /src/selinux/libsemanage/tests/utilities.c:152,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/tests/utilities.c:153,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/tests/utilities.c:157,1
    - Dst: fopen
      Src: /src/selinux/libsemanage/tests/utilities.c:159,1
    - Dst: perror
      Src: /src/selinux/libsemanage/tests/utilities.c:163,1
    - Dst: fwrite
      Src: /src/selinux/libsemanage/tests/utilities.c:167,1
    - Dst: perror
      Src: /src/selinux/libsemanage/tests/utilities.c:168,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/tests/utilities.c:169,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/tests/utilities.c:173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - data
    - data_len
    argTypes:
    - unsigned char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 176
    functionName: write_test_policy_src
    functionSourceFile: /src/selinux/libsemanage/tests/utilities.c
    functionUses: 0
    functionsReached:
    - fclose
    - mkdir
    - fwrite
    - perror
    - fopen
    linkageType: ''
    returnType: int
    signature: int write_test_policy_src(unsigned char *data, unsigned int data_len)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: disable_test_store
      Src: /src/selinux/libsemanage/tests/utilities.c:184,1
    - Dst: fts_open
      Src: /src/selinux/libsemanage/tests/utilities.c:188,1
    - Dst: fts_read
      Src: /src/selinux/libsemanage/tests/utilities.c:193,1
    - Dst: remove
      Src: /src/selinux/libsemanage/tests/utilities.c:200,1
    - Dst: fts_close
      Src: /src/selinux/libsemanage/tests/utilities.c:206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 209
    functionName: destroy_test_store
    functionSourceFile: /src/selinux/libsemanage/tests/utilities.c
    functionUses: 4
    functionsReached:
    - disable_test_store
    - fts_close
    - remove
    - fts_open
    - fts_read
    linkageType: ''
    returnType: int
    signature: int destroy_test_store(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: semanage_set_root
      Src: /src/selinux/libsemanage/tests/utilities.c:214,1
    - Dst: semanage_handle_create
      Src: /src/selinux/libsemanage/tests/utilities.c:216,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/utilities.c:217,1
    - Dst: semanage_msg_set_callback
      Src: /src/selinux/libsemanage/tests/utilities.c:219,1
    - Dst: semanage_set_create_store
      Src: /src/selinux/libsemanage/tests/utilities.c:222,1
    - Dst: semanage_set_reload
      Src: /src/selinux/libsemanage/tests/utilities.c:223,1
    - Dst: semanage_set_store_root
      Src: /src/selinux/libsemanage/tests/utilities.c:224,1
    - Dst: semanage_select_store
      Src: /src/selinux/libsemanage/tests/utilities.c:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 227
    functionName: helper_handle_create
    functionSourceFile: /src/selinux/libsemanage/tests/utilities.c
    functionUses: 0
    functionsReached:
    - semanage_set_root
    - semanage_handle_create
    - CU_ASSERT_PTR_NOT_NULL
    - semanage_set_create_store
    - semanage_set_store_root
    - semanage_set_reload
    - semanage_select_store
    - semanage_msg_set_callback
    linkageType: ''
    returnType: void
    signature: void helper_handle_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_handle_destroy
      Src: /src/selinux/libsemanage/tests/utilities.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: helper_handle_destroy
    functionSourceFile: /src/selinux/libsemanage/tests/utilities.c
    functionUses: 0
    functionsReached:
    - semanage_handle_destroy
    linkageType: ''
    returnType: void
    signature: void helper_handle_destroy(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/utilities.c:236,1
    - Dst: semanage_connect
      Src: /src/selinux/libsemanage/tests/utilities.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: helper_connect
    functionSourceFile: /src/selinux/libsemanage/tests/utilities.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    - semanage_connect
    linkageType: ''
    returnType: void
    signature: void helper_connect(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/utilities.c:241,1
    - Dst: semanage_disconnect
      Src: /src/selinux/libsemanage/tests/utilities.c:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: helper_disconnect
    functionSourceFile: /src/selinux/libsemanage/tests/utilities.c
    functionUses: 0
    functionsReached:
    - semanage_disconnect
    - CU_ASSERT
    linkageType: ''
    returnType: void
    signature: void helper_disconnect(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/utilities.c:246,1
    - Dst: semanage_begin_transaction
      Src: /src/selinux/libsemanage/tests/utilities.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: helper_begin_transaction
    functionSourceFile: /src/selinux/libsemanage/tests/utilities.c
    functionUses: 6
    functionsReached:
    - CU_ASSERT
    - semanage_begin_transaction
    linkageType: ''
    returnType: void
    signature: void helper_begin_transaction(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/utilities.c:251,1
    - Dst: semanage_commit
      Src: /src/selinux/libsemanage/tests/utilities.c:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 252
    functionName: helper_commit
    functionSourceFile: /src/selinux/libsemanage/tests/utilities.c
    functionUses: 6
    functionsReached:
    - CU_ASSERT
    - semanage_commit
    linkageType: ''
    returnType: void
    signature: void helper_commit(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: helper_handle_create
      Src: /src/selinux/libsemanage/tests/utilities.c:260,1
    - Dst: helper_connect
      Src: /src/selinux/libsemanage/tests/utilities.c:263,1
    - Dst: helper_begin_transaction
      Src: /src/selinux/libsemanage/tests/utilities.c:266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - level
    argTypes:
    - level_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 267
    functionName: setup_handle
    functionSourceFile: /src/selinux/libsemanage/tests/utilities.c
    functionUses: 74
    functionsReached:
    - helper_connect
    - helper_begin_transaction
    - helper_handle_create
    linkageType: ''
    returnType: void
    signature: void setup_handle(level_t level)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: helper_commit
      Src: /src/selinux/libsemanage/tests/utilities.c:272,1
    - Dst: helper_disconnect
      Src: /src/selinux/libsemanage/tests/utilities.c:275,1
    - Dst: helper_handle_destroy
      Src: /src/selinux/libsemanage/tests/utilities.c:278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - level
    argTypes:
    - level_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 282
    functionName: cleanup_handle
    functionSourceFile: /src/selinux/libsemanage/tests/utilities.c
    functionUses: 74
    functionsReached:
    - helper_handle_destroy
    - helper_commit
    - helper_disconnect
    linkageType: ''
    returnType: void
    signature: void cleanup_handle(level_t level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/utilities.c:286,1
    - Dst: helper_handle_create
      Src: /src/selinux/libsemanage/tests/utilities.c:288,1
    - Dst: semanage_select_store
      Src: /src/selinux/libsemanage/tests/utilities.c:290,1
    - Dst: helper_connect
      Src: /src/selinux/libsemanage/tests/utilities.c:293,1
    - Dst: helper_begin_transaction
      Src: /src/selinux/libsemanage/tests/utilities.c:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - level
    argTypes:
    - level_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 297
    functionName: setup_handle_invalid_store
    functionSourceFile: /src/selinux/libsemanage/tests/utilities.c
    functionUses: 0
    functionsReached:
    - helper_connect
    - helper_begin_transaction
    - CU_ASSERT
    - semanage_select_store
    - helper_handle_create
    linkageType: ''
    returnType: void
    signature: void setup_handle_invalid_store(level_t level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_test_store
      Src: /src/selinux/libsemanage/tests/test_node.c:72,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_node.c:73,1
    - Dst: write_test_policy_from_file
      Src: /src/selinux/libsemanage/tests/test_node.c:77,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_node.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 83
    functionName: node_test_init
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - create_test_store
    - write_test_policy_from_file
    - fprintf
    linkageType: ''
    returnType: int
    signature: int node_test_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: destroy_test_store
      Src: /src/selinux/libsemanage/tests/test_node.c:87,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_node.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: node_test_cleanup
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - destroy_test_store
    - fprintf
    linkageType: ''
    returnType: int
    signature: int node_test_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_node.c:97,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_node.c:98,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_node.c:99,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_node.c:100,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_node.c:101,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_node.c:102,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_node.c:104,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_node.c:105,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_node.c:107,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_node.c:108,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_node.c:109,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_node.c:110,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_node.c:111,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_node.c:113,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_node.c:114,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_node.c:115,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_node.c:116,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_node.c:117,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_node.c:119,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_node.c:121,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_node.c:122,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_node.c:123,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_node.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - suite
    argTypes:
    - CU_pSuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 127
    functionName: node_add_tests
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - CU_add_test
    linkageType: ''
    returnType: int
    signature: int node_add_tests(CU_pSuite suite)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_node.c:140,1
    - Dst: semanage_node_list
      Src: /src/selinux/libsemanage/tests/test_node.c:140,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_node.c:141,1
    - Dst: semanage_node_free
      Src: /src/selinux/libsemanage/tests/test_node.c:147,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_node.c:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 152
    functionName: get_node_nth
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - semanage_node_list
    - free
    - CU_ASSERT_FATAL
    - semanage_node_free
    linkageType: ''
    returnType: semanage_node_t
    signature: semanage_node_t *get_node_nth(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_node_nth
      Src: /src/selinux/libsemanage/tests/test_node.c:163,1
    - Dst: semanage_node_key_extract
      Src: /src/selinux/libsemanage/tests/test_node.c:165,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_node.c:167,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_node.c:168,1
    - Dst: semanage_node_free
      Src: /src/selinux/libsemanage/tests/test_node.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 173
    functionName: get_node_key_nth
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - get_node_nth
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - semanage_node_key_extract
    - CU_ASSERT_FATAL
    - semanage_node_free
    linkageType: ''
    returnType: semanage_node_key_t
    signature: semanage_node_key_t *get_node_key_nth(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_node_nth
      Src: /src/selinux/libsemanage/tests/test_node.c:180,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_node.c:182,1
    - Dst: semanage_node_key_extract
      Src: /src/selinux/libsemanage/tests/test_node.c:182,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_node.c:183,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_node.c:185,1
    - Dst: semanage_node_modify_local
      Src: /src/selinux/libsemanage/tests/test_node.c:185,1
    - Dst: semanage_node_key_free
      Src: /src/selinux/libsemanage/tests/test_node.c:188,1
    - Dst: semanage_node_free
      Src: /src/selinux/libsemanage/tests/test_node.c:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 190
    functionName: add_local_node
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - semanage_node_modify_local
    - get_node_nth
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - semanage_node_key_extract
    - CU_ASSERT_FATAL
    - semanage_node_key_free
    - semanage_node_free
    linkageType: ''
    returnType: void
    signature: void add_local_node(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_node_key_nth
      Src: /src/selinux/libsemanage/tests/test_node.c:196,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_node.c:198,1
    - Dst: semanage_node_del_local
      Src: /src/selinux/libsemanage/tests/test_node.c:198,1
    - Dst: semanage_node_key_free
      Src: /src/selinux/libsemanage/tests/test_node.c:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 202
    functionName: delete_local_node
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - get_node_key_nth
    - semanage_node_key_free
    - semanage_node_del_local
    - CU_ASSERT_FATAL
    linkageType: ''
    returnType: void
    signature: void delete_local_node(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:213,1
    - Dst: get_node_nth
      Src: /src/selinux/libsemanage/tests/test_node.c:214,1
    - Dst: get_node_key_nth
      Src: /src/selinux/libsemanage/tests/test_node.c:215,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:216,1
    - Dst: semanage_node_key_create
      Src: /src/selinux/libsemanage/tests/test_node.c:216,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_node.c:218,1
    - Dst: semanage_node_compare
      Src: /src/selinux/libsemanage/tests/test_node.c:221,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:222,1
    - Dst: semanage_node_compare
      Src: /src/selinux/libsemanage/tests/test_node.c:223,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:224,1
    - Dst: semanage_node_free
      Src: /src/selinux/libsemanage/tests/test_node.c:227,1
    - Dst: semanage_node_key_free
      Src: /src/selinux/libsemanage/tests/test_node.c:228,1
    - Dst: semanage_node_key_free
      Src: /src/selinux/libsemanage/tests/test_node.c:229,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 231
    functionName: test_node_compare
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - get_node_key_nth
    - semanage_node_key_create
    - CU_ASSERT_PTR_NOT_NULL
    - get_node_nth
    - cleanup_handle
    - semanage_node_compare
    - CU_ASSERT
    - setup_handle
    - semanage_node_key_free
    - semanage_node_free
    linkageType: ''
    returnType: void
    signature: void test_node_compare(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:242,1
    - Dst: get_node_nth
      Src: /src/selinux/libsemanage/tests/test_node.c:243,1
    - Dst: get_node_nth
      Src: /src/selinux/libsemanage/tests/test_node.c:244,1
    - Dst: get_node_nth
      Src: /src/selinux/libsemanage/tests/test_node.c:245,1
    - Dst: semanage_node_compare2
      Src: /src/selinux/libsemanage/tests/test_node.c:248,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:249,1
    - Dst: semanage_node_compare2
      Src: /src/selinux/libsemanage/tests/test_node.c:250,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:251,1
    - Dst: semanage_node_free
      Src: /src/selinux/libsemanage/tests/test_node.c:254,1
    - Dst: semanage_node_free
      Src: /src/selinux/libsemanage/tests/test_node.c:255,1
    - Dst: semanage_node_free
      Src: /src/selinux/libsemanage/tests/test_node.c:256,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 258
    functionName: test_node_compare2
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - semanage_node_compare2
    - get_node_nth
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - semanage_node_free
    linkageType: ''
    returnType: void
    signature: void test_node_compare2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:266,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:269,1
    - Dst: semanage_node_key_create
      Src: /src/selinux/libsemanage/tests/test_node.c:269,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_node.c:271,1
    - Dst: semanage_node_key_free
      Src: /src/selinux/libsemanage/tests/test_node.c:274,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 276
    functionName: test_node_key_create
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - semanage_node_key_create
    - CU_ASSERT_PTR_NOT_NULL
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - semanage_node_key_free
    linkageType: ''
    returnType: void
    signature: void test_node_key_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:285,1
    - Dst: get_node_nth
      Src: /src/selinux/libsemanage/tests/test_node.c:286,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:289,1
    - Dst: semanage_node_key_extract
      Src: /src/selinux/libsemanage/tests/test_node.c:289,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_node.c:290,1
    - Dst: semanage_node_free
      Src: /src/selinux/libsemanage/tests/test_node.c:293,1
    - Dst: semanage_node_key_free
      Src: /src/selinux/libsemanage/tests/test_node.c:294,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 279
    functionDepth: 3
    functionLinenumber: 279
    functionLinenumberEnd: 296
    functionName: test_node_key_extract
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_PTR_NOT_NULL
    - get_node_nth
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - semanage_node_key_extract
    - semanage_node_key_free
    - semanage_node_free
    linkageType: ''
    returnType: void
    signature: void test_node_key_extract(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:305,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:306,1
    - Dst: semanage_node_create
      Src: /src/selinux/libsemanage/tests/test_node.c:306,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:309,1
    - Dst: semanage_node_set_addr
      Src: /src/selinux/libsemanage/tests/test_node.c:309,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:311,1
    - Dst: semanage_node_get_addr
      Src: /src/selinux/libsemanage/tests/test_node.c:311,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_node.c:312,1
    - Dst: assert
      Src: /src/selinux/libsemanage/tests/test_node.c:313,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_node.c:314,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_node.c:317,1
    - Dst: semanage_node_free
      Src: /src/selinux/libsemanage/tests/test_node.c:318,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (addr)
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/selinux/libsemanage/tests/test_node.c
    constantsTouched: []
    func_position:
      end: 320
      start: 299
    functionDepth: 3
    functionLinenumber: 299
    functionLinenumberEnd: 320
    functionName: test_node_get_set_addr
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_STRING_EQUAL
    - CU_ASSERT_PTR_NOT_NULL
    - semanage_node_set_addr
    - cleanup_handle
    - assert
    - CU_ASSERT
    - semanage_node_create
    - setup_handle
    - free
    - semanage_node_get_addr
    - semanage_node_free
    linkageType: ''
    returnType: void
    signature: void test_node_get_set_addr(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:332,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:333,1
    - Dst: semanage_node_create
      Src: /src/selinux/libsemanage/tests/test_node.c:333,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:336,1
    - Dst: semanage_node_set_addr_bytes
      Src: /src/selinux/libsemanage/tests/test_node.c:336,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:338,1
    - Dst: semanage_node_get_addr_bytes
      Src: /src/selinux/libsemanage/tests/test_node.c:338,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_node.c:340,1
    - Dst: assert
      Src: /src/selinux/libsemanage/tests/test_node.c:341,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:344,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_node.c:347,1
    - Dst: semanage_node_free
      Src: /src/selinux/libsemanage/tests/test_node.c:348,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (addr2)
      pos:
        line_end: 340
        line_start: 340
        source_file: /src/selinux/libsemanage/tests/test_node.c
    constantsTouched: []
    func_position:
      end: 350
      start: 323
    functionDepth: 3
    functionLinenumber: 323
    functionLinenumberEnd: 350
    functionName: test_node_get_set_addr_bytes
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - semanage_node_set_addr_bytes
    - CU_ASSERT_PTR_NOT_NULL
    - cleanup_handle
    - assert
    - semanage_node_get_addr_bytes
    - CU_ASSERT
    - setup_handle
    - free
    - semanage_node_create
    - semanage_node_free
    linkageType: ''
    returnType: void
    signature: void test_node_get_set_addr_bytes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:359,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:360,1
    - Dst: semanage_node_create
      Src: /src/selinux/libsemanage/tests/test_node.c:360,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:363,1
    - Dst: semanage_node_set_mask
      Src: /src/selinux/libsemanage/tests/test_node.c:363,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:365,1
    - Dst: semanage_node_get_mask
      Src: /src/selinux/libsemanage/tests/test_node.c:365,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_node.c:366,1
    - Dst: assert
      Src: /src/selinux/libsemanage/tests/test_node.c:367,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_node.c:368,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_node.c:371,1
    - Dst: semanage_node_free
      Src: /src/selinux/libsemanage/tests/test_node.c:372,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (mask)
      pos:
        line_end: 366
        line_start: 366
        source_file: /src/selinux/libsemanage/tests/test_node.c
    constantsTouched: []
    func_position:
      end: 374
      start: 353
    functionDepth: 3
    functionLinenumber: 353
    functionLinenumberEnd: 374
    functionName: test_node_get_set_mask
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_STRING_EQUAL
    - CU_ASSERT_PTR_NOT_NULL
    - cleanup_handle
    - assert
    - semanage_node_get_mask
    - CU_ASSERT
    - setup_handle
    - semanage_node_set_mask
    - free
    - semanage_node_create
    - semanage_node_free
    linkageType: ''
    returnType: void
    signature: void test_node_get_set_mask(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:386,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:387,1
    - Dst: semanage_node_create
      Src: /src/selinux/libsemanage/tests/test_node.c:387,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:390,1
    - Dst: semanage_node_set_mask_bytes
      Src: /src/selinux/libsemanage/tests/test_node.c:390,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:392,1
    - Dst: semanage_node_get_mask_bytes
      Src: /src/selinux/libsemanage/tests/test_node.c:392,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_node.c:394,1
    - Dst: assert
      Src: /src/selinux/libsemanage/tests/test_node.c:395,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:398,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_node.c:401,1
    - Dst: semanage_node_free
      Src: /src/selinux/libsemanage/tests/test_node.c:402,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (mask2)
      pos:
        line_end: 394
        line_start: 394
        source_file: /src/selinux/libsemanage/tests/test_node.c
    constantsTouched: []
    func_position:
      end: 404
      start: 377
    functionDepth: 3
    functionLinenumber: 377
    functionLinenumberEnd: 404
    functionName: test_node_get_set_mask_bytes
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_PTR_NOT_NULL
    - semanage_node_set_mask_bytes
    - cleanup_handle
    - semanage_node_get_mask_bytes
    - assert
    - CU_ASSERT
    - setup_handle
    - free
    - semanage_node_create
    - semanage_node_free
    linkageType: ''
    returnType: void
    signature: void test_node_get_set_mask_bytes(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:412,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:413,1
    - Dst: semanage_node_create
      Src: /src/selinux/libsemanage/tests/test_node.c:413,1
    - Dst: semanage_node_set_proto
      Src: /src/selinux/libsemanage/tests/test_node.c:416,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:417,1
    - Dst: semanage_node_get_proto
      Src: /src/selinux/libsemanage/tests/test_node.c:417,1
    - Dst: semanage_node_free
      Src: /src/selinux/libsemanage/tests/test_node.c:420,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 422
    functionName: test_node_get_set_proto
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - semanage_node_set_proto
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - semanage_node_get_proto
    - semanage_node_create
    - semanage_node_free
    linkageType: ''
    returnType: void
    signature: void test_node_get_set_proto(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_node.c:427,1
    - Dst: semanage_node_get_proto_str
      Src: /src/selinux/libsemanage/tests/test_node.c:427,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_node.c:429,1
    - Dst: semanage_node_get_proto_str
      Src: /src/selinux/libsemanage/tests/test_node.c:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 431
    functionName: test_node_get_proto_str
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - semanage_node_get_proto_str
    - CU_ASSERT_STRING_EQUAL
    linkageType: ''
    returnType: void
    signature: void test_node_get_proto_str(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:441,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:442,1
    - Dst: semanage_node_create
      Src: /src/selinux/libsemanage/tests/test_node.c:442,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:443,1
    - Dst: semanage_context_from_string
      Src: /src/selinux/libsemanage/tests/test_node.c:443,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:447,1
    - Dst: semanage_node_set_con
      Src: /src/selinux/libsemanage/tests/test_node.c:447,1
    - Dst: semanage_node_get_con
      Src: /src/selinux/libsemanage/tests/test_node.c:448,1
    - Dst: CU_ASSERT_CONTEXT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_node.c:449,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/tests/test_node.c:452,1
    - Dst: semanage_node_free
      Src: /src/selinux/libsemanage/tests/test_node.c:453,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 434
    functionDepth: 3
    functionLinenumber: 434
    functionLinenumberEnd: 455
    functionName: test_node_get_set_con
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - cleanup_handle
    - semanage_context_free
    - CU_ASSERT
    - semanage_context_from_string
    - setup_handle
    - CU_ASSERT_CONTEXT_EQUAL
    - semanage_node_set_con
    - semanage_node_get_con
    - semanage_node_create
    - semanage_node_free
    linkageType: ''
    returnType: void
    signature: void test_node_get_set_con(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:464,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:467,1
    - Dst: semanage_node_create
      Src: /src/selinux/libsemanage/tests/test_node.c:467,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:468,1
    - Dst: semanage_node_set_addr
      Src: /src/selinux/libsemanage/tests/test_node.c:468,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:470,1
    - Dst: semanage_node_set_mask
      Src: /src/selinux/libsemanage/tests/test_node.c:470,1
    - Dst: semanage_node_set_proto
      Src: /src/selinux/libsemanage/tests/test_node.c:472,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:473,1
    - Dst: semanage_context_from_string
      Src: /src/selinux/libsemanage/tests/test_node.c:473,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:475,1
    - Dst: semanage_node_set_con
      Src: /src/selinux/libsemanage/tests/test_node.c:475,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/tests/test_node.c:478,1
    - Dst: semanage_node_free
      Src: /src/selinux/libsemanage/tests/test_node.c:479,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 458
    functionDepth: 3
    functionLinenumber: 458
    functionLinenumberEnd: 481
    functionName: test_node_create
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - semanage_node_set_proto
    - semanage_node_set_addr
    - semanage_context_free
    - cleanup_handle
    - CU_ASSERT
    - semanage_context_from_string
    - setup_handle
    - semanage_node_set_mask
    - semanage_node_set_con
    - semanage_node_create
    - semanage_node_free
    linkageType: ''
    returnType: void
    signature: void test_node_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:496,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:497,1
    - Dst: semanage_node_create
      Src: /src/selinux/libsemanage/tests/test_node.c:497,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:498,1
    - Dst: semanage_node_set_addr
      Src: /src/selinux/libsemanage/tests/test_node.c:498,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:500,1
    - Dst: semanage_node_set_mask
      Src: /src/selinux/libsemanage/tests/test_node.c:500,1
    - Dst: semanage_node_set_proto
      Src: /src/selinux/libsemanage/tests/test_node.c:502,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:503,1
    - Dst: semanage_context_from_string
      Src: /src/selinux/libsemanage/tests/test_node.c:503,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:505,1
    - Dst: semanage_node_set_con
      Src: /src/selinux/libsemanage/tests/test_node.c:505,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:508,1
    - Dst: semanage_node_clone
      Src: /src/selinux/libsemanage/tests/test_node.c:508,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:510,1
    - Dst: semanage_node_get_addr
      Src: /src/selinux/libsemanage/tests/test_node.c:510,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_node.c:511,1
    - Dst: assert
      Src: /src/selinux/libsemanage/tests/test_node.c:512,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_node.c:513,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:515,1
    - Dst: semanage_node_get_mask
      Src: /src/selinux/libsemanage/tests/test_node.c:515,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_node.c:516,1
    - Dst: assert
      Src: /src/selinux/libsemanage/tests/test_node.c:517,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_node.c:518,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:520,1
    - Dst: semanage_node_get_proto
      Src: /src/selinux/libsemanage/tests/test_node.c:520,1
    - Dst: semanage_node_get_con
      Src: /src/selinux/libsemanage/tests/test_node.c:522,1
    - Dst: CU_ASSERT_CONTEXT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_node.c:523,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_node.c:526,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_node.c:527,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/tests/test_node.c:528,1
    - Dst: semanage_node_free
      Src: /src/selinux/libsemanage/tests/test_node.c:529,1
    - Dst: semanage_node_free
      Src: /src/selinux/libsemanage/tests/test_node.c:530,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (mask2)
      pos:
        line_end: 516
        line_start: 516
        source_file: /src/selinux/libsemanage/tests/test_node.c
    - condition: (addr2)
      pos:
        line_end: 511
        line_start: 511
        source_file: /src/selinux/libsemanage/tests/test_node.c
    constantsTouched: []
    func_position:
      end: 532
      start: 484
    functionDepth: 3
    functionLinenumber: 484
    functionLinenumberEnd: 532
    functionName: test_node_clone
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - assert
    - setup_handle
    - CU_ASSERT_CONTEXT_EQUAL
    - semanage_node_clone
    - semanage_node_set_addr
    - cleanup_handle
    - semanage_context_from_string
    - semanage_node_set_mask
    - free
    - semanage_node_get_proto
    - semanage_node_set_con
    - semanage_node_get_con
    - semanage_node_get_addr
    - CU_ASSERT_STRING_EQUAL
    - semanage_node_set_proto
    - CU_ASSERT_PTR_NOT_NULL
    - semanage_node_get_mask
    - CU_ASSERT
    - semanage_context_free
    - semanage_node_create
    - semanage_node_free
    linkageType: ''
    returnType: void
    signature: void test_node_clone(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:546,1
    - Dst: get_node_key_nth
      Src: /src/selinux/libsemanage/tests/test_node.c:547,1
    - Dst: get_node_nth
      Src: /src/selinux/libsemanage/tests/test_node.c:548,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:551,1
    - Dst: semanage_node_query
      Src: /src/selinux/libsemanage/tests/test_node.c:551,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:553,1
    - Dst: semanage_node_get_addr
      Src: /src/selinux/libsemanage/tests/test_node.c:553,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:554,1
    - Dst: semanage_node_get_addr
      Src: /src/selinux/libsemanage/tests/test_node.c:554,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_node.c:555,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_node.c:556,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_node.c:557,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:559,1
    - Dst: semanage_node_get_mask
      Src: /src/selinux/libsemanage/tests/test_node.c:559,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:560,1
    - Dst: semanage_node_get_mask
      Src: /src/selinux/libsemanage/tests/test_node.c:560,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_node.c:561,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_node.c:562,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_node.c:563,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:565,1
    - Dst: semanage_node_get_proto
      Src: /src/selinux/libsemanage/tests/test_node.c:565,1
    - Dst: semanage_node_get_proto
      Src: /src/selinux/libsemanage/tests/test_node.c:566,1
    - Dst: semanage_node_get_con
      Src: /src/selinux/libsemanage/tests/test_node.c:568,1
    - Dst: semanage_node_get_con
      Src: /src/selinux/libsemanage/tests/test_node.c:569,1
    - Dst: CU_ASSERT_CONTEXT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_node.c:570,1
    - Dst: semanage_node_key_free
      Src: /src/selinux/libsemanage/tests/test_node.c:573,1
    - Dst: semanage_node_free
      Src: /src/selinux/libsemanage/tests/test_node.c:574,1
    - Dst: semanage_node_free
      Src: /src/selinux/libsemanage/tests/test_node.c:575,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 535
    functionDepth: 3
    functionLinenumber: 535
    functionLinenumberEnd: 577
    functionName: test_node_query
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - get_node_key_nth
    - semanage_node_query
    - CU_ASSERT_STRING_EQUAL
    - get_node_nth
    - cleanup_handle
    - semanage_node_get_mask
    - CU_ASSERT
    - setup_handle
    - free
    - CU_ASSERT_CONTEXT_EQUAL
    - semanage_node_get_proto
    - semanage_node_key_free
    - semanage_node_get_con
    - semanage_node_get_addr
    - semanage_node_free
    linkageType: ''
    returnType: void
    signature: void test_node_query(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:587,1
    - Dst: get_node_key_nth
      Src: /src/selinux/libsemanage/tests/test_node.c:588,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:589,1
    - Dst: semanage_node_key_create
      Src: /src/selinux/libsemanage/tests/test_node.c:589,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:593,1
    - Dst: semanage_node_exists
      Src: /src/selinux/libsemanage/tests/test_node.c:593,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:594,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:595,1
    - Dst: semanage_node_exists
      Src: /src/selinux/libsemanage/tests/test_node.c:595,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:596,1
    - Dst: semanage_node_key_free
      Src: /src/selinux/libsemanage/tests/test_node.c:599,1
    - Dst: semanage_node_key_free
      Src: /src/selinux/libsemanage/tests/test_node.c:600,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 580
    functionDepth: 3
    functionLinenumber: 580
    functionLinenumberEnd: 602
    functionName: test_node_exists
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - get_node_key_nth
    - semanage_node_key_create
    - cleanup_handle
    - CU_ASSERT
    - semanage_node_exists
    - setup_handle
    - semanage_node_key_free
    linkageType: ''
    returnType: void
    signature: void test_node_exists(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:610,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:613,1
    - Dst: semanage_node_count
      Src: /src/selinux/libsemanage/tests/test_node.c:613,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:614,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 605
    functionDepth: 3
    functionLinenumber: 605
    functionLinenumberEnd: 618
    functionName: test_node_count
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - semanage_node_count
    - CU_ASSERT
    - setup_handle
    - cleanup_handle
    linkageType: ''
    returnType: void
    signature: void test_node_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - record
    - varg
    argTypes:
    - semanage_node_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 629
    functionName: handler_node_iterate
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int handler_node_iterate(__attribute__((unused))\n\t\t\t\tconst semanage_node_t
      *record,\n\t\t\t\t__attribute__((unused)) void *varg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:634,1
    - Dst: semanage_node_iterate
      Src: /src/selinux/libsemanage/tests/test_node.c:637,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:638,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 631
    functionDepth: 3
    functionLinenumber: 631
    functionLinenumberEnd: 642
    functionName: test_node_iterate
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - semanage_node_iterate
    - CU_ASSERT
    - setup_handle
    - cleanup_handle
    linkageType: ''
    returnType: void
    signature: void test_node_iterate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:651,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:654,1
    - Dst: semanage_node_list
      Src: /src/selinux/libsemanage/tests/test_node.c:654,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:655,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_node.c:658,1
    - Dst: semanage_node_free
      Src: /src/selinux/libsemanage/tests/test_node.c:661,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_node.c:663,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 645
    functionDepth: 3
    functionLinenumber: 645
    functionLinenumberEnd: 667
    functionName: test_node_list
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - semanage_node_list
    - CU_ASSERT_PTR_NOT_NULL
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - free
    - semanage_node_free
    linkageType: ''
    returnType: void
    signature: void test_node_list(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:681,1
    - Dst: get_node_nth
      Src: /src/selinux/libsemanage/tests/test_node.c:682,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:683,1
    - Dst: semanage_node_key_extract
      Src: /src/selinux/libsemanage/tests/test_node.c:683,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_node.c:684,1
    - Dst: get_node_nth
      Src: /src/selinux/libsemanage/tests/test_node.c:689,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:691,1
    - Dst: semanage_node_set_addr
      Src: /src/selinux/libsemanage/tests/test_node.c:691,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:693,1
    - Dst: semanage_node_key_extract
      Src: /src/selinux/libsemanage/tests/test_node.c:693,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_node.c:694,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:697,1
    - Dst: semanage_node_modify_local
      Src: /src/selinux/libsemanage/tests/test_node.c:697,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:698,1
    - Dst: semanage_node_modify_local
      Src: /src/selinux/libsemanage/tests/test_node.c:698,1
    - Dst: helper_commit
      Src: /src/selinux/libsemanage/tests/test_node.c:701,1
    - Dst: helper_begin_transaction
      Src: /src/selinux/libsemanage/tests/test_node.c:702,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:704,1
    - Dst: semanage_node_query_local
      Src: /src/selinux/libsemanage/tests/test_node.c:704,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_node.c:705,1
    - Dst: semanage_node_free
      Src: /src/selinux/libsemanage/tests/test_node.c:706,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:708,1
    - Dst: semanage_node_del_local
      Src: /src/selinux/libsemanage/tests/test_node.c:708,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:709,1
    - Dst: semanage_node_del_local
      Src: /src/selinux/libsemanage/tests/test_node.c:709,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:711,1
    - Dst: semanage_node_query_local
      Src: /src/selinux/libsemanage/tests/test_node.c:711,1
    - Dst: semanage_node_key_free
      Src: /src/selinux/libsemanage/tests/test_node.c:714,1
    - Dst: semanage_node_key_free
      Src: /src/selinux/libsemanage/tests/test_node.c:715,1
    - Dst: semanage_node_free
      Src: /src/selinux/libsemanage/tests/test_node.c:716,1
    - Dst: semanage_node_free
      Src: /src/selinux/libsemanage/tests/test_node.c:717,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 672
    functionDepth: 3
    functionLinenumber: 672
    functionLinenumberEnd: 719
    functionName: test_node_modify_del_query_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - semanage_node_modify_local
    - CU_ASSERT_PTR_NOT_NULL
    - get_node_nth
    - semanage_node_set_addr
    - cleanup_handle
    - semanage_node_del_local
    - CU_ASSERT
    - helper_commit
    - setup_handle
    - semanage_node_key_extract
    - helper_begin_transaction
    - semanage_node_query_local
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - semanage_node_key_free
    - semanage_node_free
    linkageType: ''
    returnType: void
    signature: void test_node_modify_del_query_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:729,1
    - Dst: add_local_node
      Src: /src/selinux/libsemanage/tests/test_node.c:730,1
    - Dst: get_node_key_nth
      Src: /src/selinux/libsemanage/tests/test_node.c:731,1
    - Dst: get_node_key_nth
      Src: /src/selinux/libsemanage/tests/test_node.c:732,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:735,1
    - Dst: semanage_node_exists_local
      Src: /src/selinux/libsemanage/tests/test_node.c:735,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:736,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:737,1
    - Dst: semanage_node_exists_local
      Src: /src/selinux/libsemanage/tests/test_node.c:737,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:738,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:741,1
    - Dst: semanage_node_del_local
      Src: /src/selinux/libsemanage/tests/test_node.c:741,1
    - Dst: semanage_node_key_free
      Src: /src/selinux/libsemanage/tests/test_node.c:742,1
    - Dst: semanage_node_key_free
      Src: /src/selinux/libsemanage/tests/test_node.c:743,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 722
    functionDepth: 3
    functionLinenumber: 722
    functionLinenumberEnd: 745
    functionName: test_node_exists_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - get_node_key_nth
    - semanage_node_key_free
    - cleanup_handle
    - semanage_node_del_local
    - CU_ASSERT
    - semanage_node_exists_local
    - setup_handle
    - add_local_node
    linkageType: ''
    returnType: void
    signature: void test_node_exists_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:753,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:756,1
    - Dst: semanage_node_count_local
      Src: /src/selinux/libsemanage/tests/test_node.c:756,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:757,1
    - Dst: add_local_node
      Src: /src/selinux/libsemanage/tests/test_node.c:759,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:760,1
    - Dst: semanage_node_count_local
      Src: /src/selinux/libsemanage/tests/test_node.c:760,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:761,1
    - Dst: add_local_node
      Src: /src/selinux/libsemanage/tests/test_node.c:763,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:764,1
    - Dst: semanage_node_count_local
      Src: /src/selinux/libsemanage/tests/test_node.c:764,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:765,1
    - Dst: delete_local_node
      Src: /src/selinux/libsemanage/tests/test_node.c:767,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:768,1
    - Dst: semanage_node_count_local
      Src: /src/selinux/libsemanage/tests/test_node.c:768,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:769,1
    - Dst: delete_local_node
      Src: /src/selinux/libsemanage/tests/test_node.c:771,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:772,1
    - Dst: semanage_node_count_local
      Src: /src/selinux/libsemanage/tests/test_node.c:772,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:773,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 748
    functionDepth: 4
    functionLinenumber: 748
    functionLinenumberEnd: 777
    functionName: test_node_count_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - cleanup_handle
    - CU_ASSERT
    - delete_local_node
    - setup_handle
    - add_local_node
    - semanage_node_count_local
    linkageType: ''
    returnType: void
    signature: void test_node_count_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - record
    - varg
    argTypes:
    - semanage_node_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 788
    functionName: handler_node_iterate_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int handler_node_iterate_local(__attribute__((unused))\n\t\t\t\t      const
      semanage_node_t *record,\n\t\t\t\t      __attribute__((unused)) void *varg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:793,1
    - Dst: add_local_node
      Src: /src/selinux/libsemanage/tests/test_node.c:794,1
    - Dst: add_local_node
      Src: /src/selinux/libsemanage/tests/test_node.c:795,1
    - Dst: add_local_node
      Src: /src/selinux/libsemanage/tests/test_node.c:796,1
    - Dst: semanage_node_iterate_local
      Src: /src/selinux/libsemanage/tests/test_node.c:799,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:800,1
    - Dst: delete_local_node
      Src: /src/selinux/libsemanage/tests/test_node.c:803,1
    - Dst: delete_local_node
      Src: /src/selinux/libsemanage/tests/test_node.c:804,1
    - Dst: delete_local_node
      Src: /src/selinux/libsemanage/tests/test_node.c:805,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 790
    functionDepth: 4
    functionLinenumber: 790
    functionLinenumberEnd: 807
    functionName: test_node_iterate_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - semanage_node_iterate_local
    - cleanup_handle
    - CU_ASSERT
    - delete_local_node
    - setup_handle
    - add_local_node
    linkageType: ''
    returnType: void
    signature: void test_node_iterate_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:816,1
    - Dst: add_local_node
      Src: /src/selinux/libsemanage/tests/test_node.c:817,1
    - Dst: add_local_node
      Src: /src/selinux/libsemanage/tests/test_node.c:818,1
    - Dst: add_local_node
      Src: /src/selinux/libsemanage/tests/test_node.c:819,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:822,1
    - Dst: semanage_node_list_local
      Src: /src/selinux/libsemanage/tests/test_node.c:822,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_node.c:823,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_node.c:826,1
    - Dst: semanage_node_free
      Src: /src/selinux/libsemanage/tests/test_node.c:830,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_node.c:832,1
    - Dst: delete_local_node
      Src: /src/selinux/libsemanage/tests/test_node.c:834,1
    - Dst: delete_local_node
      Src: /src/selinux/libsemanage/tests/test_node.c:835,1
    - Dst: delete_local_node
      Src: /src/selinux/libsemanage/tests/test_node.c:836,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_node.c:837,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 810
    functionDepth: 4
    functionLinenumber: 810
    functionLinenumberEnd: 838
    functionName: test_node_list_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_node.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_PTR_NOT_NULL
    - cleanup_handle
    - CU_ASSERT
    - delete_local_node
    - setup_handle
    - free
    - add_local_node
    - semanage_node_list_local
    - semanage_node_free
    linkageType: ''
    returnType: void
    signature: void test_node_list_local(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_test_store
      Src: /src/selinux/libsemanage/tests/test_handle.c:39,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_handle.c:40,1
    - Dst: write_test_policy_from_file
      Src: /src/selinux/libsemanage/tests/test_handle.c:44,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_handle.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: handle_test_init
    functionSourceFile: /src/selinux/libsemanage/tests/test_handle.c
    functionUses: 0
    functionsReached:
    - create_test_store
    - write_test_policy_from_file
    - fprintf
    linkageType: ''
    returnType: int
    signature: int handle_test_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: destroy_test_store
      Src: /src/selinux/libsemanage/tests/test_handle.c:54,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_handle.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: handle_test_cleanup
    functionSourceFile: /src/selinux/libsemanage/tests/test_handle.c
    functionUses: 0
    functionsReached:
    - destroy_test_store
    - fprintf
    linkageType: ''
    returnType: int
    signature: int handle_test_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_handle.c:64,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_handle.c:65,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_handle.c:66,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_handle.c:67,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_handle.c:68,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_handle.c:69,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_handle.c:70,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_handle.c:71,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_handle.c:72,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_handle.c:73,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_handle.c:74,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_handle.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - suite
    argTypes:
    - CU_pSuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 78
    functionName: handle_add_tests
    functionSourceFile: /src/selinux/libsemanage/tests/test_handle.c
    functionUses: 0
    functionsReached:
    - CU_add_test
    linkageType: ''
    returnType: int
    signature: int handle_add_tests(CU_pSuite suite)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_handle_create
      Src: /src/selinux/libsemanage/tests/test_handle.c:83,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_handle.c:84,1
    - Dst: semanage_handle_destroy
      Src: /src/selinux/libsemanage/tests/test_handle.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 86
    functionName: test_handle_create
    functionSourceFile: /src/selinux/libsemanage/tests/test_handle.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_PTR_NOT_NULL
    - semanage_handle_create
    - semanage_handle_destroy
    linkageType: ''
    returnType: void
    signature: void test_handle_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:92,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:93,1
    - Dst: semanage_connect
      Src: /src/selinux/libsemanage/tests/test_handle.c:93,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:94,1
    - Dst: semanage_disconnect
      Src: /src/selinux/libsemanage/tests/test_handle.c:94,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:95,1
    - Dst: setup_handle_invalid_store
      Src: /src/selinux/libsemanage/tests/test_handle.c:98,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:99,1
    - Dst: semanage_connect
      Src: /src/selinux/libsemanage/tests/test_handle.c:99,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:100,1
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:103,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:104,1
    - Dst: semanage_connect
      Src: /src/selinux/libsemanage/tests/test_handle.c:104,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:105,1
    - Dst: semanage_disconnect
      Src: /src/selinux/libsemanage/tests/test_handle.c:105,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 89
    functionDepth: 3
    functionLinenumber: 89
    functionLinenumberEnd: 107
    functionName: test_connect
    functionSourceFile: /src/selinux/libsemanage/tests/test_handle.c
    functionUses: 0
    functionsReached:
    - semanage_disconnect
    - setup_handle_invalid_store
    - semanage_connect
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    linkageType: ''
    returnType: void
    signature: void test_connect(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:112,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:113,1
    - Dst: semanage_disconnect
      Src: /src/selinux/libsemanage/tests/test_handle.c:113,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: test_disconnect
    functionSourceFile: /src/selinux/libsemanage/tests/test_handle.c
    functionUses: 0
    functionsReached:
    - semanage_disconnect
    - CU_ASSERT
    - setup_handle
    - cleanup_handle
    linkageType: ''
    returnType: void
    signature: void test_disconnect(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:121,1
    - Dst: helper_disconnect
      Src: /src/selinux/libsemanage/tests/test_handle.c:122,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:123,1
    - Dst: semanage_begin_transaction
      Src: /src/selinux/libsemanage/tests/test_handle.c:123,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:125,1
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:128,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:129,1
    - Dst: semanage_begin_transaction
      Src: /src/selinux/libsemanage/tests/test_handle.c:129,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:130,1
    - Dst: semanage_commit
      Src: /src/selinux/libsemanage/tests/test_handle.c:130,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 133
    functionName: test_transaction
    functionSourceFile: /src/selinux/libsemanage/tests/test_handle.c
    functionUses: 0
    functionsReached:
    - semanage_commit
    - cleanup_handle
    - helper_disconnect
    - CU_ASSERT
    - setup_handle
    - semanage_begin_transaction
    linkageType: ''
    returnType: void
    signature: void test_transaction(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:139,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:140,1
    - Dst: semanage_commit
      Src: /src/selinux/libsemanage/tests/test_handle.c:140,1
    - Dst: helper_begin_transaction
      Src: /src/selinux/libsemanage/tests/test_handle.c:143,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:144,1
    - Dst: semanage_commit
      Src: /src/selinux/libsemanage/tests/test_handle.c:144,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 147
    functionName: test_commit
    functionSourceFile: /src/selinux/libsemanage/tests/test_handle.c
    functionUses: 0
    functionsReached:
    - semanage_commit
    - cleanup_handle
    - CU_ASSERT
    - helper_begin_transaction
    - setup_handle
    linkageType: ''
    returnType: void
    signature: void test_commit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:153,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:154,1
    - Dst: semanage_is_connected
      Src: /src/selinux/libsemanage/tests/test_handle.c:154,1
    - Dst: helper_connect
      Src: /src/selinux/libsemanage/tests/test_handle.c:157,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:158,1
    - Dst: semanage_is_connected
      Src: /src/selinux/libsemanage/tests/test_handle.c:158,1
    - Dst: helper_begin_transaction
      Src: /src/selinux/libsemanage/tests/test_handle.c:161,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:162,1
    - Dst: semanage_is_connected
      Src: /src/selinux/libsemanage/tests/test_handle.c:162,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 150
    functionDepth: 3
    functionLinenumber: 150
    functionLinenumberEnd: 165
    functionName: test_is_connected
    functionSourceFile: /src/selinux/libsemanage/tests/test_handle.c
    functionUses: 0
    functionsReached:
    - helper_connect
    - cleanup_handle
    - CU_ASSERT
    - helper_begin_transaction
    - setup_handle
    - semanage_is_connected
    linkageType: ''
    returnType: void
    signature: void test_is_connected(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:173,1
    - Dst: semanage_access_check
      Src: /src/selinux/libsemanage/tests/test_handle.c:174,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:175,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:177,1
    - Dst: setup_handle_invalid_store
      Src: /src/selinux/libsemanage/tests/test_handle.c:180,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:181,1
    - Dst: semanage_access_check
      Src: /src/selinux/libsemanage/tests/test_handle.c:181,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:182,1
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:185,1
    - Dst: semanage_access_check
      Src: /src/selinux/libsemanage/tests/test_handle.c:186,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:187,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:189,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 190
    functionName: test_access_check
    functionSourceFile: /src/selinux/libsemanage/tests/test_handle.c
    functionUses: 0
    functionsReached:
    - semanage_access_check
    - setup_handle_invalid_store
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    linkageType: ''
    returnType: void
    signature: void test_access_check(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:198,1
    - Dst: semanage_is_managed
      Src: /src/selinux/libsemanage/tests/test_handle.c:199,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:200,1
    - Dst: helper_connect
      Src: /src/selinux/libsemanage/tests/test_handle.c:203,1
    - Dst: semanage_is_managed
      Src: /src/selinux/libsemanage/tests/test_handle.c:204,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:205,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 208
    functionName: test_is_managed
    functionSourceFile: /src/selinux/libsemanage/tests/test_handle.c
    functionUses: 0
    functionsReached:
    - helper_connect
    - cleanup_handle
    - semanage_is_managed
    - CU_ASSERT
    - setup_handle
    linkageType: ''
    returnType: void
    signature: void test_is_managed(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:216,1
    - Dst: semanage_mls_enabled
      Src: /src/selinux/libsemanage/tests/test_handle.c:217,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:218,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:219,1
    - Dst: setup_handle_invalid_store
      Src: /src/selinux/libsemanage/tests/test_handle.c:222,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:223,1
    - Dst: semanage_mls_enabled
      Src: /src/selinux/libsemanage/tests/test_handle.c:223,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:224,1
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:227,1
    - Dst: semanage_mls_enabled
      Src: /src/selinux/libsemanage/tests/test_handle.c:228,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:229,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 232
    functionName: test_mls_enabled
    functionSourceFile: /src/selinux/libsemanage/tests/test_handle.c
    functionUses: 0
    functionsReached:
    - semanage_mls_enabled
    - setup_handle_invalid_store
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    linkageType: ''
    returnType: void
    signature: void test_mls_enabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - varg
    - handle
    - fmt
    argTypes:
    - void*
    - semanage_handle_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 244
    functionName: helper_msg_set_callback
    functionSourceFile: /src/selinux/libsemanage/tests/test_handle.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void helper_msg_set_callback(__attribute__((unused)) void *varg,\n\t\t\t\t
      \   __attribute__((unused))\n\t\t\t\t    semanage_handle_t *handle,\n\t\t\t\t
      \   __attribute__((unused)) const char *fmt,\n\t\t\t\t    ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:248,1
    - Dst: semanage_msg_set_callback
      Src: /src/selinux/libsemanage/tests/test_handle.c:250,1
    - Dst: semanage_commit
      Src: /src/selinux/libsemanage/tests/test_handle.c:253,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:254,1
    - Dst: semanage_msg_set_callback
      Src: /src/selinux/libsemanage/tests/test_handle.c:255,1
    - Dst: semanage_commit
      Src: /src/selinux/libsemanage/tests/test_handle.c:258,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:259,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 246
    functionDepth: 3
    functionLinenumber: 246
    functionLinenumberEnd: 262
    functionName: test_msg_set_callback
    functionSourceFile: /src/selinux/libsemanage/tests/test_handle.c
    functionUses: 0
    functionsReached:
    - semanage_commit
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - semanage_msg_set_callback
    linkageType: ''
    returnType: void
    signature: void test_msg_set_callback(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:269,1
    - Dst: semanage_set_root
      Src: /src/selinux/libsemanage/tests/test_handle.c:269,1
    - Dst: semanage_root
      Src: /src/selinux/libsemanage/tests/test_handle.c:270,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_handle.c:271,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:273,1
    - Dst: semanage_set_root
      Src: /src/selinux/libsemanage/tests/test_handle.c:273,1
    - Dst: semanage_root
      Src: /src/selinux/libsemanage/tests/test_handle.c:274,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_handle.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 276
    functionName: helper_root
    functionSourceFile: /src/selinux/libsemanage/tests/test_handle.c
    functionUses: 0
    functionsReached:
    - semanage_set_root
    - CU_ASSERT
    - CU_ASSERT_STRING_EQUAL
    - semanage_root
    linkageType: ''
    returnType: void
    signature: void helper_root(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:281,1
    - Dst: helper_root
      Src: /src/selinux/libsemanage/tests/test_handle.c:282,1
    - Dst: helper_handle_create
      Src: /src/selinux/libsemanage/tests/test_handle.c:285,1
    - Dst: helper_root
      Src: /src/selinux/libsemanage/tests/test_handle.c:286,1
    - Dst: helper_connect
      Src: /src/selinux/libsemanage/tests/test_handle.c:289,1
    - Dst: helper_root
      Src: /src/selinux/libsemanage/tests/test_handle.c:290,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 278
    functionDepth: 3
    functionLinenumber: 278
    functionLinenumberEnd: 293
    functionName: test_root
    functionSourceFile: /src/selinux/libsemanage/tests/test_handle.c
    functionUses: 0
    functionsReached:
    - helper_root
    - helper_connect
    - cleanup_handle
    - setup_handle
    - helper_handle_create
    linkageType: ''
    returnType: void
    signature: void test_root(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:299,1
    - Dst: semanage_select_store
      Src: /src/selinux/libsemanage/tests/test_handle.c:304,1
    - Dst: semanage_connect
      Src: /src/selinux/libsemanage/tests/test_handle.c:306,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:309,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_handle.c:311,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:315,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_handle.c:317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - name
    - type
    - exp_res
    argTypes:
    - char*
    - enum semanage_connect_type
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 296
    functionDepth: 3
    functionLinenumber: 296
    functionLinenumberEnd: 318
    functionName: helper_select_store
    functionSourceFile: /src/selinux/libsemanage/tests/test_handle.c
    functionUses: 0
    functionsReached:
    - semanage_connect
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - semanage_select_store
    linkageType: ''
    returnType: void
    signature: "void helper_select_store(const char *name,\n\t\t\t\tenum semanage_connect_type
      type, int exp_res)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_select_store
      Src: /src/selinux/libsemanage/tests/test_handle.c:322,1
    - Dst: helper_select_store
      Src: /src/selinux/libsemanage/tests/test_handle.c:323,1
    - Dst: helper_select_store
      Src: /src/selinux/libsemanage/tests/test_handle.c:324,1
    - Dst: helper_select_store
      Src: /src/selinux/libsemanage/tests/test_handle.c:326,1
    - Dst: helper_select_store
      Src: /src/selinux/libsemanage/tests/test_handle.c:327,1
    - Dst: helper_select_store
      Src: /src/selinux/libsemanage/tests/test_handle.c:328,1
    - Dst: helper_select_store
      Src: /src/selinux/libsemanage/tests/test_handle.c:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 320
    functionDepth: 4
    functionLinenumber: 320
    functionLinenumberEnd: 330
    functionName: test_select_store
    functionSourceFile: /src/selinux/libsemanage/tests/test_handle.c
    functionUses: 0
    functionsReached:
    - helper_select_store
    linkageType: ''
    returnType: void
    signature: void test_select_store(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_test_store
      Src: /src/selinux/libsemanage/tests/test_bool.c:60,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_bool.c:61,1
    - Dst: write_test_policy_from_file
      Src: /src/selinux/libsemanage/tests/test_bool.c:65,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_bool.c:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 71
    functionName: boolean_test_init
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - create_test_store
    - write_test_policy_from_file
    - fprintf
    linkageType: ''
    returnType: int
    signature: int boolean_test_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: destroy_test_store
      Src: /src/selinux/libsemanage/tests/test_bool.c:75,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_bool.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 81
    functionName: boolean_test_cleanup
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - destroy_test_store
    - fprintf
    linkageType: ''
    returnType: int
    signature: int boolean_test_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_bool.c:85,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_bool.c:86,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_bool.c:87,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_bool.c:88,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_bool.c:89,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_bool.c:90,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_bool.c:91,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_bool.c:92,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_bool.c:94,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_bool.c:95,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_bool.c:96,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_bool.c:97,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_bool.c:98,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_bool.c:100,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_bool.c:101,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_bool.c:102,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_bool.c:103,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_bool.c:104,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_bool.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - suite
    argTypes:
    - CU_pSuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 108
    functionName: boolean_add_tests
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - CU_add_test
    linkageType: ''
    returnType: int
    signature: int boolean_add_tests(CU_pSuite suite)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: semanage_bool_list
      Src: /src/selinux/libsemanage/tests/test_bool.c:122,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_bool.c:124,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_bool.c:125,1
    - Dst: semanage_bool_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:131,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_bool.c:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 136
    functionName: get_bool_nth
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - semanage_bool_list
    - free
    - CU_ASSERT_FATAL
    - semanage_bool_free
    linkageType: ''
    returnType: semanage_bool_t
    signature: semanage_bool_t *get_bool_nth(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_bool_create
      Src: /src/selinux/libsemanage/tests/test_bool.c:143,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_bool.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 148
    functionName: get_bool_new
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - semanage_bool_create
    - CU_ASSERT_FATAL
    linkageType: ''
    returnType: semanage_bool_t
    signature: semanage_bool_t *get_bool_new(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_bool_nth
      Src: /src/selinux/libsemanage/tests/test_bool.c:159,1
    - Dst: semanage_bool_key_extract
      Src: /src/selinux/libsemanage/tests/test_bool.c:161,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_bool.c:163,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_bool.c:164,1
    - Dst: semanage_bool_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 169
    functionName: get_bool_key_nth
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - semanage_bool_free
    - get_bool_nth
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - semanage_bool_key_extract
    - CU_ASSERT_FATAL
    linkageType: ''
    returnType: semanage_bool_key_t
    signature: semanage_bool_key_t *get_bool_key_nth(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semanage_bool_key_create
      Src: /src/selinux/libsemanage/tests/test_bool.c:179,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_bool.c:181,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_bool.c:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 185
    functionName: get_bool_key_from_str
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - semanage_bool_key_create
    - CU_ASSERT_FATAL
    linkageType: ''
    returnType: semanage_bool_key_t
    signature: semanage_bool_key_t *get_bool_key_from_str(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_bool.c:192,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_bool.c:194,1
    - Dst: semanage_bool_key_create
      Src: /src/selinux/libsemanage/tests/test_bool.c:194,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_bool.c:195,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_bool.c:197,1
    - Dst: semanage_bool_query
      Src: /src/selinux/libsemanage/tests/test_bool.c:197,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_bool.c:198,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_bool.c:200,1
    - Dst: semanage_bool_modify_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:200,1
    - Dst: semanage_bool_key_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:202,1
    - Dst: semanage_bool_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 204
    functionName: add_local_bool
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - semanage_bool_key_free
    - semanage_bool_modify_local
    - semanage_bool_free
    - semanage_bool_query
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - CU_ASSERT_FATAL
    - semanage_bool_key_create
    linkageType: ''
    returnType: void
    signature: void add_local_bool(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_bool.c:210,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_bool.c:212,1
    - Dst: semanage_bool_key_create
      Src: /src/selinux/libsemanage/tests/test_bool.c:212,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_bool.c:213,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_bool.c:215,1
    - Dst: semanage_bool_del_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:215,1
    - Dst: semanage_bool_key_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 218
    functionName: delete_local_bool
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - semanage_bool_key_free
    - semanage_bool_del_local
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - CU_ASSERT_FATAL
    - semanage_bool_key_create
    linkageType: ''
    returnType: void
    signature: void delete_local_bool(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:226,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:228,1
    - Dst: semanage_bool_key_create
      Src: /src/selinux/libsemanage/tests/test_bool.c:228,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_bool.c:229,1
    - Dst: semanage_bool_key_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:231,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:235,1
    - Dst: semanage_bool_key_create
      Src: /src/selinux/libsemanage/tests/test_bool.c:235,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_bool.c:236,1
    - Dst: semanage_bool_key_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:238,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - level
    argTypes:
    - level_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 241
    functionName: helper_bool_key_create
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - semanage_bool_key_free
    - CU_ASSERT_PTR_NOT_NULL
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - semanage_bool_key_create
    linkageType: ''
    returnType: void
    signature: void helper_bool_key_create(level_t level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_bool_key_create
      Src: /src/selinux/libsemanage/tests/test_bool.c:245,1
    - Dst: helper_bool_key_create
      Src: /src/selinux/libsemanage/tests/test_bool.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 4
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: test_bool_key_create
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - helper_bool_key_create
    linkageType: ''
    returnType: void
    signature: void test_bool_key_create(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:260,1
    - Dst: get_bool_new
      Src: /src/selinux/libsemanage/tests/test_bool.c:267,1
    - Dst: get_bool_nth
      Src: /src/selinux/libsemanage/tests/test_bool.c:270,1
    - Dst: get_bool_nth
      Src: /src/selinux/libsemanage/tests/test_bool.c:273,1
    - Dst: CU_FAIL_FATAL
      Src: /src/selinux/libsemanage/tests/test_bool.c:276,1
    - Dst: semanage_bool_key_extract
      Src: /src/selinux/libsemanage/tests/test_bool.c:280,1
    - Dst: semanage_bool_key_extract
      Src: /src/selinux/libsemanage/tests/test_bool.c:282,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:284,1
    - Dst: semanage_bool_compare
      Src: /src/selinux/libsemanage/tests/test_bool.c:286,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:288,1
    - Dst: semanage_bool_key_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:290,1
    - Dst: semanage_bool_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:291,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:293,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - level
    - mode
    argTypes:
    - level_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 254
    functionDepth: 3
    functionLinenumber: 254
    functionLinenumberEnd: 294
    functionName: helper_bool_key_extract
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - semanage_bool_compare
    - CU_FAIL_FATAL
    - semanage_bool_key_free
    - semanage_bool_free
    - get_bool_nth
    - cleanup_handle
    - CU_ASSERT
    - semanage_bool_key_extract
    - setup_handle
    - get_bool_new
    linkageType: ''
    returnType: void
    signature: void helper_bool_key_extract(level_t level, int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_bool_key_extract
      Src: /src/selinux/libsemanage/tests/test_bool.c:298,1
    - Dst: helper_bool_key_extract
      Src: /src/selinux/libsemanage/tests/test_bool.c:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 4
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: test_bool_key_extract
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - helper_bool_key_extract
    linkageType: ''
    returnType: void
    signature: void test_bool_key_extract(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:313,1
    - Dst: get_bool_nth
      Src: /src/selinux/libsemanage/tests/test_bool.c:315,1
    - Dst: get_bool_key_nth
      Src: /src/selinux/libsemanage/tests/test_bool.c:316,1
    - Dst: semanage_bool_compare
      Src: /src/selinux/libsemanage/tests/test_bool.c:318,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:321,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:323,1
    - Dst: semanage_bool_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:326,1
    - Dst: semanage_bool_key_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:327,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - level
    - bool_idx1
    - bool_idx2
    argTypes:
    - level_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 329
    functionName: helper_bool_compare
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - semanage_bool_compare
    - semanage_bool_key_free
    - semanage_bool_free
    - get_bool_key_nth
    - get_bool_nth
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    linkageType: ''
    returnType: void
    signature: void helper_bool_compare(level_t level, int bool_idx1, int bool_idx2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_bool_compare
      Src: /src/selinux/libsemanage/tests/test_bool.c:333,1
    - Dst: helper_bool_compare
      Src: /src/selinux/libsemanage/tests/test_bool.c:334,1
    - Dst: helper_bool_compare
      Src: /src/selinux/libsemanage/tests/test_bool.c:335,1
    - Dst: helper_bool_compare
      Src: /src/selinux/libsemanage/tests/test_bool.c:336,1
    - Dst: helper_bool_compare
      Src: /src/selinux/libsemanage/tests/test_bool.c:338,1
    - Dst: helper_bool_compare
      Src: /src/selinux/libsemanage/tests/test_bool.c:339,1
    - Dst: helper_bool_compare
      Src: /src/selinux/libsemanage/tests/test_bool.c:340,1
    - Dst: helper_bool_compare
      Src: /src/selinux/libsemanage/tests/test_bool.c:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 331
    functionDepth: 4
    functionLinenumber: 331
    functionLinenumberEnd: 342
    functionName: test_bool_compare
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - helper_bool_compare
    linkageType: ''
    returnType: void
    signature: void test_bool_compare(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:351,1
    - Dst: get_bool_nth
      Src: /src/selinux/libsemanage/tests/test_bool.c:353,1
    - Dst: get_bool_nth
      Src: /src/selinux/libsemanage/tests/test_bool.c:354,1
    - Dst: semanage_bool_compare2
      Src: /src/selinux/libsemanage/tests/test_bool.c:356,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:359,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:361,1
    - Dst: semanage_bool_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:364,1
    - Dst: semanage_bool_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:365,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - level
    - bool_idx1
    - bool_idx2
    argTypes:
    - level_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 345
    functionDepth: 3
    functionLinenumber: 345
    functionLinenumberEnd: 367
    functionName: helper_bool_compare2
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - semanage_bool_free
    - get_bool_nth
    - semanage_bool_compare2
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    linkageType: ''
    returnType: void
    signature: void helper_bool_compare2(level_t level, int bool_idx1, int bool_idx2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_bool_compare2
      Src: /src/selinux/libsemanage/tests/test_bool.c:371,1
    - Dst: helper_bool_compare2
      Src: /src/selinux/libsemanage/tests/test_bool.c:372,1
    - Dst: helper_bool_compare2
      Src: /src/selinux/libsemanage/tests/test_bool.c:373,1
    - Dst: helper_bool_compare2
      Src: /src/selinux/libsemanage/tests/test_bool.c:374,1
    - Dst: helper_bool_compare2
      Src: /src/selinux/libsemanage/tests/test_bool.c:376,1
    - Dst: helper_bool_compare2
      Src: /src/selinux/libsemanage/tests/test_bool.c:377,1
    - Dst: helper_bool_compare2
      Src: /src/selinux/libsemanage/tests/test_bool.c:378,1
    - Dst: helper_bool_compare2
      Src: /src/selinux/libsemanage/tests/test_bool.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 369
    functionDepth: 4
    functionLinenumber: 369
    functionLinenumberEnd: 380
    functionName: test_bool_compare2
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - helper_bool_compare2
    linkageType: ''
    returnType: void
    signature: void test_bool_compare2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:389,1
    - Dst: get_bool_nth
      Src: /src/selinux/libsemanage/tests/test_bool.c:391,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:393,1
    - Dst: semanage_bool_set_name
      Src: /src/selinux/libsemanage/tests/test_bool.c:393,1
    - Dst: semanage_bool_get_name
      Src: /src/selinux/libsemanage/tests/test_bool.c:395,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_bool.c:397,1
    - Dst: assert
      Src: /src/selinux/libsemanage/tests/test_bool.c:399,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_bool.c:400,1
    - Dst: semanage_bool_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:402,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - level
    - bool_idx
    - name
    argTypes:
    - level_t
    - int
    - char*
    assertStmts:
    - condition: (new_name)
      pos:
        line_end: 398
        line_start: 398
        source_file: /src/selinux/libsemanage/tests/test_bool.c
    constantsTouched: []
    func_position:
      end: 404
      start: 383
    functionDepth: 3
    functionLinenumber: 383
    functionLinenumberEnd: 404
    functionName: helper_bool_get_set_name
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_STRING_EQUAL
    - CU_ASSERT_PTR_NOT_NULL
    - semanage_bool_free
    - get_bool_nth
    - cleanup_handle
    - assert
    - semanage_bool_set_name
    - CU_ASSERT
    - setup_handle
    - semanage_bool_get_name
    linkageType: ''
    returnType: void
    signature: "void helper_bool_get_set_name(level_t level, int bool_idx,\n\t\t\t\t
      \    const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_bool_get_set_name
      Src: /src/selinux/libsemanage/tests/test_bool.c:408,1
    - Dst: helper_bool_get_set_name
      Src: /src/selinux/libsemanage/tests/test_bool.c:409,1
    - Dst: helper_bool_get_set_name
      Src: /src/selinux/libsemanage/tests/test_bool.c:410,1
    - Dst: helper_bool_get_set_name
      Src: /src/selinux/libsemanage/tests/test_bool.c:411,1
    - Dst: helper_bool_get_set_name
      Src: /src/selinux/libsemanage/tests/test_bool.c:413,1
    - Dst: helper_bool_get_set_name
      Src: /src/selinux/libsemanage/tests/test_bool.c:414,1
    - Dst: helper_bool_get_set_name
      Src: /src/selinux/libsemanage/tests/test_bool.c:415,1
    - Dst: helper_bool_get_set_name
      Src: /src/selinux/libsemanage/tests/test_bool.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 406
    functionDepth: 4
    functionLinenumber: 406
    functionLinenumberEnd: 417
    functionName: test_bool_get_set_name
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - helper_bool_get_set_name
    linkageType: ''
    returnType: void
    signature: void test_bool_get_set_name(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:425,1
    - Dst: get_bool_nth
      Src: /src/selinux/libsemanage/tests/test_bool.c:426,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:427,1
    - Dst: semanage_bool_set_value
      Src: /src/selinux/libsemanage/tests/test_bool.c:429,1
    - Dst: semanage_bool_get_value
      Src: /src/selinux/libsemanage/tests/test_bool.c:431,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:433,1
    - Dst: semanage_bool_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - bool_idx
    - val
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 420
    functionDepth: 3
    functionLinenumber: 420
    functionLinenumberEnd: 436
    functionName: helper_bool_get_set_value
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - semanage_bool_free
    - get_bool_nth
    - cleanup_handle
    - semanage_bool_set_value
    - CU_ASSERT
    - setup_handle
    - semanage_bool_get_value
    linkageType: ''
    returnType: void
    signature: void helper_bool_get_set_value(int bool_idx, int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_bool_get_set_value
      Src: /src/selinux/libsemanage/tests/test_bool.c:440,1
    - Dst: helper_bool_get_set_value
      Src: /src/selinux/libsemanage/tests/test_bool.c:441,1
    - Dst: helper_bool_get_set_value
      Src: /src/selinux/libsemanage/tests/test_bool.c:442,1
    - Dst: helper_bool_get_set_value
      Src: /src/selinux/libsemanage/tests/test_bool.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 438
    functionDepth: 4
    functionLinenumber: 438
    functionLinenumberEnd: 444
    functionName: test_bool_get_set_value
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - helper_bool_get_set_value
    linkageType: ''
    returnType: void
    signature: void test_bool_get_set_value(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:451,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:453,1
    - Dst: semanage_bool_create
      Src: /src/selinux/libsemanage/tests/test_bool.c:453,1
    - Dst: CU_ASSERT_PTR_NULL
      Src: /src/selinux/libsemanage/tests/test_bool.c:455,1
    - Dst: semanage_bool_get_name
      Src: /src/selinux/libsemanage/tests/test_bool.c:455,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:456,1
    - Dst: semanage_bool_get_value
      Src: /src/selinux/libsemanage/tests/test_bool.c:456,1
    - Dst: semanage_bool_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:458,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - level
    argTypes:
    - level_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 447
    functionDepth: 3
    functionLinenumber: 447
    functionLinenumberEnd: 461
    functionName: helper_bool_create
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_PTR_NULL
    - semanage_bool_free
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - semanage_bool_create
    - semanage_bool_get_value
    - semanage_bool_get_name
    linkageType: ''
    returnType: void
    signature: void helper_bool_create(level_t level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_bool_create
      Src: /src/selinux/libsemanage/tests/test_bool.c:465,1
    - Dst: helper_bool_create
      Src: /src/selinux/libsemanage/tests/test_bool.c:466,1
    - Dst: helper_bool_create
      Src: /src/selinux/libsemanage/tests/test_bool.c:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 463
    functionDepth: 4
    functionLinenumber: 463
    functionLinenumberEnd: 468
    functionName: test_bool_create
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - helper_bool_create
    linkageType: ''
    returnType: void
    signature: void test_bool_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:480,1
    - Dst: get_bool_nth
      Src: /src/selinux/libsemanage/tests/test_bool.c:482,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:484,1
    - Dst: semanage_bool_clone
      Src: /src/selinux/libsemanage/tests/test_bool.c:484,1
    - Dst: semanage_bool_get_name
      Src: /src/selinux/libsemanage/tests/test_bool.c:486,1
    - Dst: semanage_bool_get_name
      Src: /src/selinux/libsemanage/tests/test_bool.c:487,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_bool.c:489,1
    - Dst: semanage_bool_get_value
      Src: /src/selinux/libsemanage/tests/test_bool.c:491,1
    - Dst: semanage_bool_get_value
      Src: /src/selinux/libsemanage/tests/test_bool.c:492,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_bool.c:494,1
    - Dst: semanage_bool_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:496,1
    - Dst: semanage_bool_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:497,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - level
    - bool_idx
    argTypes:
    - level_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 471
    functionDepth: 3
    functionLinenumber: 471
    functionLinenumberEnd: 500
    functionName: helper_bool_clone
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_STRING_EQUAL
    - semanage_bool_free
    - semanage_bool_clone
    - get_bool_nth
    - cleanup_handle
    - CU_ASSERT_EQUAL
    - CU_ASSERT
    - setup_handle
    - semanage_bool_get_value
    - semanage_bool_get_name
    linkageType: ''
    returnType: void
    signature: void helper_bool_clone(level_t level, int bool_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_bool_clone
      Src: /src/selinux/libsemanage/tests/test_bool.c:504,1
    - Dst: helper_bool_clone
      Src: /src/selinux/libsemanage/tests/test_bool.c:505,1
    - Dst: helper_bool_clone
      Src: /src/selinux/libsemanage/tests/test_bool.c:507,1
    - Dst: helper_bool_clone
      Src: /src/selinux/libsemanage/tests/test_bool.c:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 502
    functionDepth: 4
    functionLinenumber: 502
    functionLinenumberEnd: 509
    functionName: test_bool_clone
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - helper_bool_clone
    linkageType: ''
    returnType: void
    signature: void test_bool_clone(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:517,1
    - Dst: get_bool_key_from_str
      Src: /src/selinux/libsemanage/tests/test_bool.c:519,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:521,1
    - Dst: semanage_bool_query
      Src: /src/selinux/libsemanage/tests/test_bool.c:521,1
    - Dst: semanage_bool_get_name
      Src: /src/selinux/libsemanage/tests/test_bool.c:524,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_bool.c:525,1
    - Dst: CU_ASSERT_PTR_NULL
      Src: /src/selinux/libsemanage/tests/test_bool.c:527,1
    - Dst: semanage_bool_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:530,1
    - Dst: semanage_bool_key_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:531,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - level
    - bool_str
    - exp_res
    argTypes:
    - level_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 512
    functionDepth: 3
    functionLinenumber: 512
    functionLinenumberEnd: 534
    functionName: helper_bool_query
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_PTR_NULL
    - semanage_bool_key_free
    - CU_ASSERT_STRING_EQUAL
    - semanage_bool_free
    - cleanup_handle
    - semanage_bool_query
    - CU_ASSERT
    - setup_handle
    - get_bool_key_from_str
    - semanage_bool_get_name
    linkageType: ''
    returnType: void
    signature: void helper_bool_query(level_t level, const char *bool_str, int exp_res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_bool_query
      Src: /src/selinux/libsemanage/tests/test_bool.c:538,1
    - Dst: helper_bool_query
      Src: /src/selinux/libsemanage/tests/test_bool.c:539,1
    - Dst: helper_bool_query
      Src: /src/selinux/libsemanage/tests/test_bool.c:540,1
    - Dst: helper_bool_query
      Src: /src/selinux/libsemanage/tests/test_bool.c:542,1
    - Dst: helper_bool_query
      Src: /src/selinux/libsemanage/tests/test_bool.c:543,1
    - Dst: helper_bool_query
      Src: /src/selinux/libsemanage/tests/test_bool.c:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 536
    functionDepth: 4
    functionLinenumber: 536
    functionLinenumberEnd: 545
    functionName: test_bool_query
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - helper_bool_query
    linkageType: ''
    returnType: void
    signature: void test_bool_query(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:554,1
    - Dst: get_bool_key_from_str
      Src: /src/selinux/libsemanage/tests/test_bool.c:556,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:558,1
    - Dst: semanage_bool_exists
      Src: /src/selinux/libsemanage/tests/test_bool.c:558,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:559,1
    - Dst: semanage_bool_key_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:561,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - level
    - bool_str
    - exp_resp
    argTypes:
    - level_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 548
    functionDepth: 3
    functionLinenumber: 548
    functionLinenumberEnd: 564
    functionName: helper_bool_exists
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - semanage_bool_key_free
    - semanage_bool_exists
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - get_bool_key_from_str
    linkageType: ''
    returnType: void
    signature: "void helper_bool_exists(level_t level, const char *bool_str,\n\t\t\t
      \      int exp_resp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_bool_exists
      Src: /src/selinux/libsemanage/tests/test_bool.c:568,1
    - Dst: helper_bool_exists
      Src: /src/selinux/libsemanage/tests/test_bool.c:569,1
    - Dst: helper_bool_exists
      Src: /src/selinux/libsemanage/tests/test_bool.c:570,1
    - Dst: helper_bool_exists
      Src: /src/selinux/libsemanage/tests/test_bool.c:572,1
    - Dst: helper_bool_exists
      Src: /src/selinux/libsemanage/tests/test_bool.c:573,1
    - Dst: helper_bool_exists
      Src: /src/selinux/libsemanage/tests/test_bool.c:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 566
    functionDepth: 4
    functionLinenumber: 566
    functionLinenumberEnd: 575
    functionName: test_bool_exists
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - helper_bool_exists
    linkageType: ''
    returnType: void
    signature: void test_bool_exists(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:583,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:584,1
    - Dst: semanage_bool_count
      Src: /src/selinux/libsemanage/tests/test_bool.c:584,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:585,1
    - Dst: semanage_bool_count
      Src: /src/selinux/libsemanage/tests/test_bool.c:585,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:586,1
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:590,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:591,1
    - Dst: semanage_bool_count
      Src: /src/selinux/libsemanage/tests/test_bool.c:591,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:592,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:593,1
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:597,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:598,1
    - Dst: semanage_bool_count
      Src: /src/selinux/libsemanage/tests/test_bool.c:598,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:599,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 578
    functionDepth: 3
    functionLinenumber: 578
    functionLinenumberEnd: 601
    functionName: test_bool_count
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - semanage_bool_count
    - CU_ASSERT
    - setup_handle
    - cleanup_handle
    linkageType: ''
    returnType: void
    signature: void test_bool_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - record
    - varg
    argTypes:
    - semanage_bool_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 606
    functionDepth: 0
    functionLinenumber: 606
    functionLinenumberEnd: 612
    functionName: handler_bool_iterate
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int handler_bool_iterate(__attribute__((unused))\n\t\t\t\tconst semanage_bool_t
      *record,\n\t\t\t\t__attribute__((unused)) void *varg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:616,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:617,1
    - Dst: semanage_bool_iterate
      Src: /src/selinux/libsemanage/tests/test_bool.c:617,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:618,1
    - Dst: semanage_bool_iterate
      Src: /src/selinux/libsemanage/tests/test_bool.c:618,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 614
    functionDepth: 3
    functionLinenumber: 614
    functionLinenumberEnd: 620
    functionName: helper_bool_iterate_invalid
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - semanage_bool_iterate
    - CU_ASSERT
    - setup_handle
    - cleanup_handle
    linkageType: ''
    returnType: void
    signature: void helper_bool_iterate_invalid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:624,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:626,1
    - Dst: semanage_bool_iterate
      Src: /src/selinux/libsemanage/tests/test_bool.c:626,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:627,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - level
    argTypes:
    - level_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 622
    functionDepth: 3
    functionLinenumber: 622
    functionLinenumberEnd: 629
    functionName: helper_bool_iterate
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - semanage_bool_iterate
    - CU_ASSERT
    - setup_handle
    - cleanup_handle
    linkageType: ''
    returnType: void
    signature: void helper_bool_iterate(level_t level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_bool_iterate_invalid
      Src: /src/selinux/libsemanage/tests/test_bool.c:633,1
    - Dst: helper_bool_iterate
      Src: /src/selinux/libsemanage/tests/test_bool.c:634,1
    - Dst: helper_bool_iterate
      Src: /src/selinux/libsemanage/tests/test_bool.c:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 631
    functionDepth: 4
    functionLinenumber: 631
    functionLinenumberEnd: 636
    functionName: test_bool_iterate
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - helper_bool_iterate
    - helper_bool_iterate_invalid
    linkageType: ''
    returnType: void
    signature: void test_bool_iterate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:644,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:646,1
    - Dst: semanage_bool_list
      Src: /src/selinux/libsemanage/tests/test_bool.c:646,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:647,1
    - Dst: semanage_bool_list
      Src: /src/selinux/libsemanage/tests/test_bool.c:647,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:648,1
    - Dst: semanage_bool_list
      Src: /src/selinux/libsemanage/tests/test_bool.c:648,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 639
    functionDepth: 3
    functionLinenumber: 639
    functionLinenumberEnd: 651
    functionName: helper_bool_list_invalid
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - semanage_bool_list
    - CU_ASSERT
    - setup_handle
    - cleanup_handle
    linkageType: ''
    returnType: void
    signature: void helper_bool_list_invalid(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:658,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:660,1
    - Dst: semanage_bool_list
      Src: /src/selinux/libsemanage/tests/test_bool.c:660,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:661,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_bool.c:664,1
    - Dst: semanage_bool_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:667,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_bool.c:669,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:671,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - level
    argTypes:
    - level_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 653
    functionDepth: 3
    functionLinenumber: 653
    functionLinenumberEnd: 672
    functionName: helper_bool_list
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - semanage_bool_free
    - CU_ASSERT_PTR_NOT_NULL
    - cleanup_handle
    - semanage_bool_list
    - CU_ASSERT
    - setup_handle
    - free
    linkageType: ''
    returnType: void
    signature: void helper_bool_list(level_t level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_bool_list_invalid
      Src: /src/selinux/libsemanage/tests/test_bool.c:676,1
    - Dst: helper_bool_list
      Src: /src/selinux/libsemanage/tests/test_bool.c:677,1
    - Dst: helper_bool_list
      Src: /src/selinux/libsemanage/tests/test_bool.c:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 674
    functionDepth: 4
    functionLinenumber: 674
    functionLinenumberEnd: 679
    functionName: test_bool_list
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - helper_bool_list_invalid
    - helper_bool_list
    linkageType: ''
    returnType: void
    signature: void test_bool_list(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:692,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:694,1
    - Dst: semanage_bool_key_create
      Src: /src/selinux/libsemanage/tests/test_bool.c:694,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_bool.c:695,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:697,1
    - Dst: semanage_bool_query
      Src: /src/selinux/libsemanage/tests/test_bool.c:697,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_bool.c:698,1
    - Dst: semanage_bool_set_value
      Src: /src/selinux/libsemanage/tests/test_bool.c:701,1
    - Dst: semanage_bool_modify_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:704,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:707,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:709,1
    - Dst: helper_commit
      Src: /src/selinux/libsemanage/tests/test_bool.c:713,1
    - Dst: helper_begin_transaction
      Src: /src/selinux/libsemanage/tests/test_bool.c:714,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:717,1
    - Dst: semanage_bool_query_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:717,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:719,1
    - Dst: semanage_bool_compare2
      Src: /src/selinux/libsemanage/tests/test_bool.c:719,1
    - Dst: semanage_bool_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:720,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:722,1
    - Dst: semanage_bool_del_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:722,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:723,1
    - Dst: semanage_bool_query_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:723,1
    - Dst: semanage_bool_key_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:728,1
    - Dst: semanage_bool_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:729,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:731,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 4
    argNames:
    - level
    - name
    - old_val
    - exp_res
    argTypes:
    - level_t
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 682
    functionDepth: 3
    functionLinenumber: 682
    functionLinenumberEnd: 732
    functionName: helper_bool_modify_del_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - semanage_bool_key_free
    - semanage_bool_modify_local
    - semanage_bool_del_local
    - semanage_bool_free
    - CU_ASSERT_PTR_NOT_NULL
    - semanage_bool_query_local
    - semanage_bool_compare2
    - cleanup_handle
    - semanage_bool_query
    - semanage_bool_set_value
    - CU_ASSERT
    - helper_commit
    - setup_handle
    - helper_begin_transaction
    - semanage_bool_key_create
    linkageType: ''
    returnType: void
    signature: "void helper_bool_modify_del_local(level_t level, const char *name,\n\t\t\t\t\t
      int old_val, int exp_res)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: helper_bool_modify_del_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:736,1
    - Dst: helper_bool_modify_del_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:737,1
    - Dst: helper_bool_modify_del_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:738,1
    - Dst: helper_bool_modify_del_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 734
    functionDepth: 4
    functionLinenumber: 734
    functionLinenumberEnd: 740
    functionName: test_bool_modify_del_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - helper_bool_modify_del_local
    linkageType: ''
    returnType: void
    signature: void test_bool_modify_del_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:749,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:750,1
    - Dst: semanage_bool_key_create
      Src: /src/selinux/libsemanage/tests/test_bool.c:750,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_bool.c:751,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:753,1
    - Dst: semanage_bool_query_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:753,1
    - Dst: CU_ASSERT_PTR_NULL
      Src: /src/selinux/libsemanage/tests/test_bool.c:754,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:756,1
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:759,1
    - Dst: semanage_bool_key_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:760,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:761,1
    - Dst: semanage_bool_key_create
      Src: /src/selinux/libsemanage/tests/test_bool.c:761,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_bool.c:762,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:764,1
    - Dst: semanage_bool_query_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:764,1
    - Dst: CU_ASSERT_PTR_NULL
      Src: /src/selinux/libsemanage/tests/test_bool.c:765,1
    - Dst: semanage_bool_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:766,1
    - Dst: add_local_bool
      Src: /src/selinux/libsemanage/tests/test_bool.c:768,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:769,1
    - Dst: semanage_bool_query_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:769,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_bool.c:770,1
    - Dst: semanage_bool_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:771,1
    - Dst: semanage_bool_key_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:773,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:774,1
    - Dst: semanage_bool_key_create
      Src: /src/selinux/libsemanage/tests/test_bool.c:774,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_bool.c:775,1
    - Dst: add_local_bool
      Src: /src/selinux/libsemanage/tests/test_bool.c:777,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:778,1
    - Dst: semanage_bool_query_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:778,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_bool.c:779,1
    - Dst: semanage_bool_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:780,1
    - Dst: semanage_bool_key_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:783,1
    - Dst: delete_local_bool
      Src: /src/selinux/libsemanage/tests/test_bool.c:784,1
    - Dst: delete_local_bool
      Src: /src/selinux/libsemanage/tests/test_bool.c:785,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 743
    functionDepth: 3
    functionLinenumber: 743
    functionLinenumberEnd: 787
    functionName: test_bool_query_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_PTR_NULL
    - semanage_bool_key_free
    - add_local_bool
    - semanage_bool_free
    - CU_ASSERT_PTR_NOT_NULL
    - semanage_bool_query_local
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - delete_local_bool
    - semanage_bool_key_create
    linkageType: ''
    returnType: void
    signature: void test_bool_query_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:796,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:797,1
    - Dst: semanage_bool_key_create
      Src: /src/selinux/libsemanage/tests/test_bool.c:797,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_bool.c:798,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:801,1
    - Dst: semanage_bool_exists_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:801,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:802,1
    - Dst: add_local_bool
      Src: /src/selinux/libsemanage/tests/test_bool.c:804,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:806,1
    - Dst: semanage_bool_exists_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:806,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:807,1
    - Dst: delete_local_bool
      Src: /src/selinux/libsemanage/tests/test_bool.c:809,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:811,1
    - Dst: semanage_bool_exists_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:811,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:812,1
    - Dst: semanage_bool_key_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:815,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 790
    functionDepth: 3
    functionLinenumber: 790
    functionLinenumberEnd: 817
    functionName: test_bool_exists_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - semanage_bool_key_free
    - add_local_bool
    - semanage_bool_exists_local
    - CU_ASSERT_PTR_NOT_NULL
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - delete_local_bool
    - semanage_bool_key_create
    linkageType: ''
    returnType: void
    signature: void test_bool_exists_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:826,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:827,1
    - Dst: semanage_bool_count_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:827,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:828,1
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:831,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:832,1
    - Dst: semanage_bool_count_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:832,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:833,1
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:836,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:838,1
    - Dst: semanage_bool_count_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:838,1
    - Dst: add_local_bool
      Src: /src/selinux/libsemanage/tests/test_bool.c:841,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:842,1
    - Dst: semanage_bool_count_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:842,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:843,1
    - Dst: add_local_bool
      Src: /src/selinux/libsemanage/tests/test_bool.c:845,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:846,1
    - Dst: semanage_bool_count_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:846,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:847,1
    - Dst: delete_local_bool
      Src: /src/selinux/libsemanage/tests/test_bool.c:849,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:850,1
    - Dst: semanage_bool_count_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:850,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:851,1
    - Dst: delete_local_bool
      Src: /src/selinux/libsemanage/tests/test_bool.c:853,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:854,1
    - Dst: semanage_bool_count_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:854,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:855,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 820
    functionDepth: 3
    functionLinenumber: 820
    functionLinenumberEnd: 859
    functionName: test_bool_count_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - semanage_bool_count_local
    - add_local_bool
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - delete_local_bool
    linkageType: ''
    returnType: void
    signature: void test_bool_count_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - record
    - varg
    argTypes:
    - semanage_bool_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 870
    functionName: handler_bool_iterate_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int handler_bool_iterate_local(__attribute__((unused))\n\t\t\t\t      const
      semanage_bool_t *record,\n\t\t\t\t      __attribute__((unused)) void *varg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:877,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:878,1
    - Dst: semanage_bool_iterate_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:878,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:880,1
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:883,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:886,1
    - Dst: semanage_bool_iterate_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:886,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:890,1
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:893,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:896,1
    - Dst: semanage_bool_iterate_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:896,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:898,1
    - Dst: add_local_bool
      Src: /src/selinux/libsemanage/tests/test_bool.c:900,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:902,1
    - Dst: semanage_bool_iterate_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:902,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:904,1
    - Dst: add_local_bool
      Src: /src/selinux/libsemanage/tests/test_bool.c:906,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:908,1
    - Dst: semanage_bool_iterate_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:908,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:910,1
    - Dst: delete_local_bool
      Src: /src/selinux/libsemanage/tests/test_bool.c:913,1
    - Dst: delete_local_bool
      Src: /src/selinux/libsemanage/tests/test_bool.c:914,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 872
    functionDepth: 3
    functionLinenumber: 872
    functionLinenumberEnd: 916
    functionName: test_bool_iterate_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - add_local_bool
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - delete_local_bool
    - semanage_bool_iterate_local
    linkageType: ''
    returnType: void
    signature: void test_bool_iterate_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:926,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:928,1
    - Dst: semanage_bool_list_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:928,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:929,1
    - Dst: semanage_bool_list_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:929,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:930,1
    - Dst: semanage_bool_list_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:930,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:932,1
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:935,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:937,1
    - Dst: semanage_bool_list_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:937,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:940,1
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:943,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:945,1
    - Dst: semanage_bool_list_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:945,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:946,1
    - Dst: add_local_bool
      Src: /src/selinux/libsemanage/tests/test_bool.c:948,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:949,1
    - Dst: semanage_bool_list_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:949,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:950,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_bool.c:951,1
    - Dst: semanage_bool_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:952,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_bool.c:953,1
    - Dst: add_local_bool
      Src: /src/selinux/libsemanage/tests/test_bool.c:955,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:956,1
    - Dst: semanage_bool_list_local
      Src: /src/selinux/libsemanage/tests/test_bool.c:956,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_bool.c:957,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_bool.c:958,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_bool.c:959,1
    - Dst: semanage_bool_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:960,1
    - Dst: semanage_bool_free
      Src: /src/selinux/libsemanage/tests/test_bool.c:961,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_bool.c:962,1
    - Dst: delete_local_bool
      Src: /src/selinux/libsemanage/tests/test_bool.c:965,1
    - Dst: delete_local_bool
      Src: /src/selinux/libsemanage/tests/test_bool.c:966,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_bool.c:967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 919
    functionDepth: 3
    functionLinenumber: 919
    functionLinenumberEnd: 968
    functionName: test_bool_list_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_bool.c
    functionUses: 0
    functionsReached:
    - add_local_bool
    - semanage_bool_list_local
    - semanage_bool_free
    - CU_ASSERT_PTR_NOT_NULL
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - free
    - delete_local_bool
    linkageType: ''
    returnType: void
    signature: void test_bool_list_local(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_test_store
      Src: /src/selinux/libsemanage/tests/test_user.c:55,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_user.c:56,1
    - Dst: write_test_policy_from_file
      Src: /src/selinux/libsemanage/tests/test_user.c:60,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_user.c:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: user_test_init
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - create_test_store
    - write_test_policy_from_file
    - fprintf
    linkageType: ''
    returnType: int
    signature: int user_test_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: destroy_test_store
      Src: /src/selinux/libsemanage/tests/test_user.c:70,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/tests/test_user.c:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 76
    functionName: user_test_cleanup
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - destroy_test_store
    - fprintf
    linkageType: ''
    returnType: int
    signature: int user_test_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_user.c:80,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_user.c:81,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_user.c:82,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_user.c:83,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_user.c:84,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_user.c:85,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_user.c:86,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_user.c:87,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_user.c:88,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_user.c:89,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_user.c:90,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_user.c:92,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_user.c:93,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_user.c:94,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_user.c:95,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_user.c:96,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_user.c:98,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_user.c:100,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_user.c:101,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_user.c:102,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_user.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - suite
    argTypes:
    - CU_pSuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 106
    functionName: user_add_tests
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - CU_add_test
    linkageType: ''
    returnType: int
    signature: int user_add_tests(CU_pSuite suite)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_list
      Src: /src/selinux/libsemanage/tests/test_user.c:120,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_user.c:122,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_user.c:123,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/tests/test_user.c:129,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_user.c:131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 134
    functionName: get_user_nth
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - semanage_user_free
    - semanage_user_list
    - free
    - CU_ASSERT_FATAL
    linkageType: ''
    returnType: semanage_user_t
    signature: semanage_user_t *get_user_nth(int idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_user_nth
      Src: /src/selinux/libsemanage/tests/test_user.c:145,1
    - Dst: semanage_user_key_extract
      Src: /src/selinux/libsemanage/tests/test_user.c:147,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_user.c:149,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_user.c:150,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/tests/test_user.c:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 155
    functionName: get_user_key_nth
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - semanage_user_key_extract
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - CU_ASSERT_FATAL
    - semanage_user_free
    - get_user_nth
    linkageType: ''
    returnType: semanage_user_key_t
    signature: semanage_user_key_t *get_user_key_nth(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_user.c:162,1
    - Dst: get_user_nth
      Src: /src/selinux/libsemanage/tests/test_user.c:164,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_user.c:166,1
    - Dst: semanage_user_key_extract
      Src: /src/selinux/libsemanage/tests/test_user.c:166,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_user.c:167,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_user.c:169,1
    - Dst: semanage_user_modify_local
      Src: /src/selinux/libsemanage/tests/test_user.c:169,1
    - Dst: semanage_user_key_free
      Src: /src/selinux/libsemanage/tests/test_user.c:171,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/tests/test_user.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - user_idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 173
    functionName: add_local_user
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - semanage_user_modify_local
    - semanage_user_key_extract
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - semanage_user_key_free
    - CU_ASSERT_FATAL
    - semanage_user_free
    - get_user_nth
    linkageType: ''
    returnType: void
    signature: void add_local_user(int user_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_user.c:179,1
    - Dst: get_user_key_nth
      Src: /src/selinux/libsemanage/tests/test_user.c:181,1
    - Dst: CU_ASSERT_FATAL
      Src: /src/selinux/libsemanage/tests/test_user.c:183,1
    - Dst: semanage_user_del_local
      Src: /src/selinux/libsemanage/tests/test_user.c:183,1
    - Dst: semanage_user_key_free
      Src: /src/selinux/libsemanage/tests/test_user.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - user_idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 186
    functionName: delete_local_user
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - semanage_user_del_local
    - semanage_user_key_free
    - get_user_key_nth
    - CU_ASSERT_FATAL
    linkageType: ''
    returnType: void
    signature: void delete_local_user(int user_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:197,1
    - Dst: get_user_nth
      Src: /src/selinux/libsemanage/tests/test_user.c:198,1
    - Dst: get_user_key_nth
      Src: /src/selinux/libsemanage/tests/test_user.c:199,1
    - Dst: get_user_key_nth
      Src: /src/selinux/libsemanage/tests/test_user.c:200,1
    - Dst: semanage_user_compare
      Src: /src/selinux/libsemanage/tests/test_user.c:203,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:204,1
    - Dst: semanage_user_compare
      Src: /src/selinux/libsemanage/tests/test_user.c:205,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:206,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/tests/test_user.c:209,1
    - Dst: semanage_user_key_free
      Src: /src/selinux/libsemanage/tests/test_user.c:210,1
    - Dst: semanage_user_key_free
      Src: /src/selinux/libsemanage/tests/test_user.c:211,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 213
    functionName: test_user_compare
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - cleanup_handle
    - CU_ASSERT
    - semanage_user_key_free
    - setup_handle
    - get_user_key_nth
    - semanage_user_free
    - get_user_nth
    - semanage_user_compare
    linkageType: ''
    returnType: void
    signature: void test_user_compare(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:224,1
    - Dst: get_user_nth
      Src: /src/selinux/libsemanage/tests/test_user.c:225,1
    - Dst: get_user_nth
      Src: /src/selinux/libsemanage/tests/test_user.c:226,1
    - Dst: get_user_nth
      Src: /src/selinux/libsemanage/tests/test_user.c:227,1
    - Dst: semanage_user_compare2
      Src: /src/selinux/libsemanage/tests/test_user.c:230,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:231,1
    - Dst: semanage_user_compare2
      Src: /src/selinux/libsemanage/tests/test_user.c:232,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:233,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/tests/test_user.c:236,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/tests/test_user.c:237,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/tests/test_user.c:238,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 216
    functionDepth: 3
    functionLinenumber: 216
    functionLinenumberEnd: 240
    functionName: test_user_compare2
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - semanage_user_compare2
    - cleanup_handle
    - CU_ASSERT
    - setup_handle
    - semanage_user_free
    - get_user_nth
    linkageType: ''
    returnType: void
    signature: void test_user_compare2(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:248,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:251,1
    - Dst: semanage_user_key_create
      Src: /src/selinux/libsemanage/tests/test_user.c:251,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_user.c:252,1
    - Dst: semanage_user_key_free
      Src: /src/selinux/libsemanage/tests/test_user.c:255,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 257
    functionName: test_user_key_create
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_PTR_NOT_NULL
    - cleanup_handle
    - CU_ASSERT
    - semanage_user_key_free
    - semanage_user_key_create
    - setup_handle
    linkageType: ''
    returnType: void
    signature: void test_user_key_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:266,1
    - Dst: get_user_nth
      Src: /src/selinux/libsemanage/tests/test_user.c:267,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:270,1
    - Dst: semanage_user_key_extract
      Src: /src/selinux/libsemanage/tests/test_user.c:270,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_user.c:271,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/tests/test_user.c:274,1
    - Dst: semanage_user_key_free
      Src: /src/selinux/libsemanage/tests/test_user.c:275,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 260
    functionDepth: 3
    functionLinenumber: 260
    functionLinenumberEnd: 277
    functionName: test_user_key_extract
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_PTR_NOT_NULL
    - semanage_user_key_extract
    - cleanup_handle
    - CU_ASSERT
    - semanage_user_key_free
    - setup_handle
    - semanage_user_free
    - get_user_nth
    linkageType: ''
    returnType: void
    signature: void test_user_key_extract(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:285,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:286,1
    - Dst: semanage_user_create
      Src: /src/selinux/libsemanage/tests/test_user.c:286,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:289,1
    - Dst: semanage_user_set_name
      Src: /src/selinux/libsemanage/tests/test_user.c:289,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_user.c:290,1
    - Dst: semanage_user_get_name
      Src: /src/selinux/libsemanage/tests/test_user.c:290,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/tests/test_user.c:293,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 295
    functionName: test_user_get_set_name
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_STRING_EQUAL
    - semanage_user_get_name
    - cleanup_handle
    - semanage_user_set_name
    - CU_ASSERT
    - setup_handle
    - semanage_user_free
    - semanage_user_create
    linkageType: ''
    returnType: void
    signature: void test_user_get_set_name(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:303,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:304,1
    - Dst: semanage_user_create
      Src: /src/selinux/libsemanage/tests/test_user.c:304,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:307,1
    - Dst: semanage_user_set_prefix
      Src: /src/selinux/libsemanage/tests/test_user.c:307,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_user.c:308,1
    - Dst: semanage_user_get_prefix
      Src: /src/selinux/libsemanage/tests/test_user.c:308,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/tests/test_user.c:311,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 313
    functionName: test_user_get_set_prefix
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - semanage_user_get_prefix
    - CU_ASSERT_STRING_EQUAL
    - cleanup_handle
    - semanage_user_set_prefix
    - CU_ASSERT
    - setup_handle
    - semanage_user_free
    - semanage_user_create
    linkageType: ''
    returnType: void
    signature: void test_user_get_set_prefix(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:321,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:322,1
    - Dst: semanage_user_create
      Src: /src/selinux/libsemanage/tests/test_user.c:322,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:325,1
    - Dst: semanage_user_set_mlslevel
      Src: /src/selinux/libsemanage/tests/test_user.c:325,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_user.c:326,1
    - Dst: semanage_user_get_mlslevel
      Src: /src/selinux/libsemanage/tests/test_user.c:326,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/tests/test_user.c:329,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 316
    functionDepth: 3
    functionLinenumber: 316
    functionLinenumberEnd: 331
    functionName: test_user_get_set_mlslevel
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_STRING_EQUAL
    - cleanup_handle
    - semanage_user_get_mlslevel
    - CU_ASSERT
    - setup_handle
    - semanage_user_set_mlslevel
    - semanage_user_free
    - semanage_user_create
    linkageType: ''
    returnType: void
    signature: void test_user_get_set_mlslevel(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:339,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:340,1
    - Dst: semanage_user_create
      Src: /src/selinux/libsemanage/tests/test_user.c:340,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:343,1
    - Dst: semanage_user_set_mlsrange
      Src: /src/selinux/libsemanage/tests/test_user.c:343,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_user.c:344,1
    - Dst: semanage_user_get_mlsrange
      Src: /src/selinux/libsemanage/tests/test_user.c:344,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/tests/test_user.c:347,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 349
    functionName: test_user_get_set_mlsrange
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_STRING_EQUAL
    - cleanup_handle
    - semanage_user_set_mlsrange
    - CU_ASSERT
    - setup_handle
    - semanage_user_free
    - semanage_user_create
    - semanage_user_get_mlsrange
    linkageType: ''
    returnType: void
    signature: void test_user_get_set_mlsrange(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:364,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:365,1
    - Dst: semanage_user_create
      Src: /src/selinux/libsemanage/tests/test_user.c:365,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:368,1
    - Dst: semanage_user_get_num_roles
      Src: /src/selinux/libsemanage/tests/test_user.c:368,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:370,1
    - Dst: semanage_user_add_role
      Src: /src/selinux/libsemanage/tests/test_user.c:370,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:371,1
    - Dst: semanage_user_get_num_roles
      Src: /src/selinux/libsemanage/tests/test_user.c:371,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:373,1
    - Dst: semanage_user_has_role
      Src: /src/selinux/libsemanage/tests/test_user.c:373,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:374,1
    - Dst: semanage_user_has_role
      Src: /src/selinux/libsemanage/tests/test_user.c:374,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:376,1
    - Dst: semanage_user_add_role
      Src: /src/selinux/libsemanage/tests/test_user.c:376,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:377,1
    - Dst: semanage_user_get_num_roles
      Src: /src/selinux/libsemanage/tests/test_user.c:377,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:379,1
    - Dst: semanage_user_get_roles
      Src: /src/selinux/libsemanage/tests/test_user.c:379,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:381,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_user.c:382,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_user.c:383,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:385,1
    - Dst: semanage_user_set_roles
      Src: /src/selinux/libsemanage/tests/test_user.c:385,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:388,1
    - Dst: semanage_user_has_role
      Src: /src/selinux/libsemanage/tests/test_user.c:388,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:389,1
    - Dst: semanage_user_has_role
      Src: /src/selinux/libsemanage/tests/test_user.c:389,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:391,1
    - Dst: semanage_user_has_role
      Src: /src/selinux/libsemanage/tests/test_user.c:391,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:392,1
    - Dst: semanage_user_has_role
      Src: /src/selinux/libsemanage/tests/test_user.c:392,1
    - Dst: semanage_user_del_role
      Src: /src/selinux/libsemanage/tests/test_user.c:394,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:395,1
    - Dst: semanage_user_get_num_roles
      Src: /src/selinux/libsemanage/tests/test_user.c:395,1
    - Dst: semanage_user_del_role
      Src: /src/selinux/libsemanage/tests/test_user.c:397,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:398,1
    - Dst: semanage_user_get_num_roles
      Src: /src/selinux/libsemanage/tests/test_user.c:398,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_user.c:401,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/tests/test_user.c:402,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 404
    functionName: test_user_roles
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - semanage_user_set_roles
    - CU_ASSERT_STRING_EQUAL
    - semanage_user_del_role
    - cleanup_handle
    - semanage_user_get_num_roles
    - semanage_user_has_role
    - CU_ASSERT
    - setup_handle
    - free
    - semanage_user_add_role
    - semanage_user_free
    - semanage_user_create
    - semanage_user_get_roles
    linkageType: ''
    returnType: void
    signature: void test_user_roles(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:412,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:415,1
    - Dst: semanage_user_create
      Src: /src/selinux/libsemanage/tests/test_user.c:415,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:416,1
    - Dst: semanage_user_set_name
      Src: /src/selinux/libsemanage/tests/test_user.c:416,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:417,1
    - Dst: semanage_user_set_prefix
      Src: /src/selinux/libsemanage/tests/test_user.c:417,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:418,1
    - Dst: semanage_user_set_mlslevel
      Src: /src/selinux/libsemanage/tests/test_user.c:418,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:419,1
    - Dst: semanage_user_set_mlsrange
      Src: /src/selinux/libsemanage/tests/test_user.c:419,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/tests/test_user.c:422,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 407
    functionDepth: 3
    functionLinenumber: 407
    functionLinenumberEnd: 424
    functionName: test_user_create
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - cleanup_handle
    - semanage_user_set_mlsrange
    - semanage_user_set_name
    - semanage_user_set_prefix
    - CU_ASSERT
    - setup_handle
    - semanage_user_set_mlslevel
    - semanage_user_free
    - semanage_user_create
    linkageType: ''
    returnType: void
    signature: void test_user_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:433,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:434,1
    - Dst: semanage_user_create
      Src: /src/selinux/libsemanage/tests/test_user.c:434,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:435,1
    - Dst: semanage_user_set_name
      Src: /src/selinux/libsemanage/tests/test_user.c:435,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:436,1
    - Dst: semanage_user_set_prefix
      Src: /src/selinux/libsemanage/tests/test_user.c:436,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:437,1
    - Dst: semanage_user_set_mlslevel
      Src: /src/selinux/libsemanage/tests/test_user.c:437,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:438,1
    - Dst: semanage_user_set_mlsrange
      Src: /src/selinux/libsemanage/tests/test_user.c:438,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:441,1
    - Dst: semanage_user_clone
      Src: /src/selinux/libsemanage/tests/test_user.c:441,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_user.c:442,1
    - Dst: semanage_user_get_name
      Src: /src/selinux/libsemanage/tests/test_user.c:442,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_user.c:443,1
    - Dst: semanage_user_get_prefix
      Src: /src/selinux/libsemanage/tests/test_user.c:443,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_user.c:444,1
    - Dst: semanage_user_get_mlslevel
      Src: /src/selinux/libsemanage/tests/test_user.c:444,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_user.c:445,1
    - Dst: semanage_user_get_mlsrange
      Src: /src/selinux/libsemanage/tests/test_user.c:445,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/tests/test_user.c:448,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/tests/test_user.c:449,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 427
    functionDepth: 3
    functionLinenumber: 427
    functionLinenumberEnd: 451
    functionName: test_user_clone
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - semanage_user_get_prefix
    - CU_ASSERT_STRING_EQUAL
    - semanage_user_get_name
    - cleanup_handle
    - semanage_user_set_mlsrange
    - semanage_user_set_name
    - semanage_user_get_mlslevel
    - semanage_user_set_prefix
    - CU_ASSERT
    - setup_handle
    - semanage_user_set_mlslevel
    - semanage_user_free
    - semanage_user_create
    - semanage_user_get_mlsrange
    - semanage_user_clone
    linkageType: ''
    returnType: void
    signature: void test_user_clone(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:460,1
    - Dst: get_user_key_nth
      Src: /src/selinux/libsemanage/tests/test_user.c:461,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:464,1
    - Dst: semanage_user_query
      Src: /src/selinux/libsemanage/tests/test_user.c:464,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_user.c:467,1
    - Dst: semanage_user_key_free
      Src: /src/selinux/libsemanage/tests/test_user.c:470,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/tests/test_user.c:471,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 454
    functionDepth: 3
    functionLinenumber: 454
    functionLinenumberEnd: 473
    functionName: test_user_query
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_PTR_NOT_NULL
    - cleanup_handle
    - CU_ASSERT
    - semanage_user_key_free
    - setup_handle
    - get_user_key_nth
    - semanage_user_query
    - semanage_user_free
    linkageType: ''
    returnType: void
    signature: void test_user_query(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:483,1
    - Dst: get_user_key_nth
      Src: /src/selinux/libsemanage/tests/test_user.c:484,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:485,1
    - Dst: semanage_user_key_create
      Src: /src/selinux/libsemanage/tests/test_user.c:485,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:488,1
    - Dst: semanage_user_exists
      Src: /src/selinux/libsemanage/tests/test_user.c:488,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:489,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:490,1
    - Dst: semanage_user_exists
      Src: /src/selinux/libsemanage/tests/test_user.c:490,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:491,1
    - Dst: semanage_user_key_free
      Src: /src/selinux/libsemanage/tests/test_user.c:494,1
    - Dst: semanage_user_key_free
      Src: /src/selinux/libsemanage/tests/test_user.c:495,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 476
    functionDepth: 3
    functionLinenumber: 476
    functionLinenumberEnd: 497
    functionName: test_user_exists
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - cleanup_handle
    - CU_ASSERT
    - semanage_user_key_create
    - setup_handle
    - semanage_user_key_free
    - semanage_user_exists
    - get_user_key_nth
    linkageType: ''
    returnType: void
    signature: void test_user_exists(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:505,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:508,1
    - Dst: semanage_user_count
      Src: /src/selinux/libsemanage/tests/test_user.c:508,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:509,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 500
    functionDepth: 3
    functionLinenumber: 500
    functionLinenumberEnd: 513
    functionName: test_user_count
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT
    - setup_handle
    - cleanup_handle
    - semanage_user_count
    linkageType: ''
    returnType: void
    signature: void test_user_count(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - record
    - varg
    argTypes:
    - semanage_user_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 524
    functionName: handler_user_iterate
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int handler_user_iterate(__attribute__((unused))\n\t\t\t\tconst semanage_user_t
      *record,\n\t\t\t\t__attribute__((unused)) void *varg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:529,1
    - Dst: semanage_user_iterate
      Src: /src/selinux/libsemanage/tests/test_user.c:532,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:533,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 526
    functionDepth: 3
    functionLinenumber: 526
    functionLinenumberEnd: 537
    functionName: test_user_iterate
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - semanage_user_iterate
    - setup_handle
    - cleanup_handle
    - CU_ASSERT
    linkageType: ''
    returnType: void
    signature: void test_user_iterate(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:546,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:549,1
    - Dst: semanage_user_list
      Src: /src/selinux/libsemanage/tests/test_user.c:549,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:550,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_user.c:554,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/tests/test_user.c:558,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_user.c:560,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:562,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 540
    functionDepth: 3
    functionLinenumber: 540
    functionLinenumberEnd: 563
    functionName: test_user_list
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - CU_ASSERT_PTR_NOT_NULL
    - cleanup_handle
    - CU_ASSERT
    - semanage_user_list
    - setup_handle
    - free
    - semanage_user_free
    linkageType: ''
    returnType: void
    signature: void test_user_list(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:575,1
    - Dst: get_user_nth
      Src: /src/selinux/libsemanage/tests/test_user.c:576,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:577,1
    - Dst: semanage_user_key_extract
      Src: /src/selinux/libsemanage/tests/test_user.c:577,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_user.c:578,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:581,1
    - Dst: semanage_user_modify_local
      Src: /src/selinux/libsemanage/tests/test_user.c:581,1
    - Dst: helper_commit
      Src: /src/selinux/libsemanage/tests/test_user.c:584,1
    - Dst: helper_begin_transaction
      Src: /src/selinux/libsemanage/tests/test_user.c:585,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:587,1
    - Dst: semanage_user_query_local
      Src: /src/selinux/libsemanage/tests/test_user.c:587,1
    - Dst: CU_ASSERT_PTR_NOT_NULL_FATAL
      Src: /src/selinux/libsemanage/tests/test_user.c:588,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/tests/test_user.c:589,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:590,1
    - Dst: semanage_user_del_local
      Src: /src/selinux/libsemanage/tests/test_user.c:590,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:591,1
    - Dst: semanage_user_query_local
      Src: /src/selinux/libsemanage/tests/test_user.c:591,1
    - Dst: semanage_user_key_free
      Src: /src/selinux/libsemanage/tests/test_user.c:594,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/tests/test_user.c:595,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 568
    functionDepth: 3
    functionLinenumber: 568
    functionLinenumberEnd: 597
    functionName: test_user_modify_del_query_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - semanage_user_query_local
    - semanage_user_del_local
    - CU_ASSERT_PTR_NOT_NULL
    - semanage_user_modify_local
    - semanage_user_key_extract
    - cleanup_handle
    - CU_ASSERT
    - helper_commit
    - setup_handle
    - helper_begin_transaction
    - CU_ASSERT_PTR_NOT_NULL_FATAL
    - semanage_user_key_free
    - semanage_user_free
    - get_user_nth
    linkageType: ''
    returnType: void
    signature: void test_user_modify_del_query_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:608,1
    - Dst: add_local_user
      Src: /src/selinux/libsemanage/tests/test_user.c:609,1
    - Dst: get_user_key_nth
      Src: /src/selinux/libsemanage/tests/test_user.c:610,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:611,1
    - Dst: semanage_user_key_create
      Src: /src/selinux/libsemanage/tests/test_user.c:611,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_user.c:612,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:615,1
    - Dst: semanage_user_exists_local
      Src: /src/selinux/libsemanage/tests/test_user.c:615,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:616,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:617,1
    - Dst: semanage_user_exists_local
      Src: /src/selinux/libsemanage/tests/test_user.c:617,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:618,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:621,1
    - Dst: semanage_user_del_local
      Src: /src/selinux/libsemanage/tests/test_user.c:621,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/tests/test_user.c:622,1
    - Dst: semanage_user_key_free
      Src: /src/selinux/libsemanage/tests/test_user.c:623,1
    - Dst: semanage_user_key_free
      Src: /src/selinux/libsemanage/tests/test_user.c:624,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 600
    functionDepth: 3
    functionLinenumber: 600
    functionLinenumberEnd: 626
    functionName: test_user_exists_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - semanage_user_exists_local
    - semanage_user_del_local
    - CU_ASSERT_PTR_NOT_NULL
    - cleanup_handle
    - CU_ASSERT
    - semanage_user_key_create
    - setup_handle
    - semanage_user_key_free
    - get_user_key_nth
    - semanage_user_free
    - add_local_user
    linkageType: ''
    returnType: void
    signature: void test_user_exists_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:634,1
    - Dst: add_local_user
      Src: /src/selinux/libsemanage/tests/test_user.c:635,1
    - Dst: add_local_user
      Src: /src/selinux/libsemanage/tests/test_user.c:636,1
    - Dst: add_local_user
      Src: /src/selinux/libsemanage/tests/test_user.c:637,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:640,1
    - Dst: semanage_user_count_local
      Src: /src/selinux/libsemanage/tests/test_user.c:640,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:641,1
    - Dst: delete_local_user
      Src: /src/selinux/libsemanage/tests/test_user.c:644,1
    - Dst: delete_local_user
      Src: /src/selinux/libsemanage/tests/test_user.c:645,1
    - Dst: delete_local_user
      Src: /src/selinux/libsemanage/tests/test_user.c:646,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 629
    functionDepth: 4
    functionLinenumber: 629
    functionLinenumberEnd: 648
    functionName: test_user_count_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - cleanup_handle
    - semanage_user_count_local
    - CU_ASSERT
    - add_local_user
    - setup_handle
    - delete_local_user
    linkageType: ''
    returnType: void
    signature: void test_user_count_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - record
    - varg
    argTypes:
    - semanage_user_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 659
    functionName: handler_user_iterate_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int handler_user_iterate_local(__attribute__((unused))\n\t\t\t\t      const
      semanage_user_t *record,\n\t\t\t\t      __attribute__((unused)) void *varg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:664,1
    - Dst: add_local_user
      Src: /src/selinux/libsemanage/tests/test_user.c:665,1
    - Dst: add_local_user
      Src: /src/selinux/libsemanage/tests/test_user.c:666,1
    - Dst: add_local_user
      Src: /src/selinux/libsemanage/tests/test_user.c:667,1
    - Dst: semanage_user_iterate_local
      Src: /src/selinux/libsemanage/tests/test_user.c:670,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:671,1
    - Dst: delete_local_user
      Src: /src/selinux/libsemanage/tests/test_user.c:674,1
    - Dst: delete_local_user
      Src: /src/selinux/libsemanage/tests/test_user.c:675,1
    - Dst: delete_local_user
      Src: /src/selinux/libsemanage/tests/test_user.c:676,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 661
    functionDepth: 4
    functionLinenumber: 661
    functionLinenumberEnd: 678
    functionName: test_user_iterate_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - cleanup_handle
    - CU_ASSERT
    - add_local_user
    - setup_handle
    - delete_local_user
    - semanage_user_iterate_local
    linkageType: ''
    returnType: void
    signature: void test_user_iterate_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:687,1
    - Dst: add_local_user
      Src: /src/selinux/libsemanage/tests/test_user.c:688,1
    - Dst: add_local_user
      Src: /src/selinux/libsemanage/tests/test_user.c:689,1
    - Dst: add_local_user
      Src: /src/selinux/libsemanage/tests/test_user.c:690,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:693,1
    - Dst: semanage_user_list_local
      Src: /src/selinux/libsemanage/tests/test_user.c:693,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_user.c:694,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_user.c:697,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/tests/test_user.c:701,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_user.c:703,1
    - Dst: delete_local_user
      Src: /src/selinux/libsemanage/tests/test_user.c:705,1
    - Dst: delete_local_user
      Src: /src/selinux/libsemanage/tests/test_user.c:706,1
    - Dst: delete_local_user
      Src: /src/selinux/libsemanage/tests/test_user.c:707,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_user.c:708,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 681
    functionDepth: 4
    functionLinenumber: 681
    functionLinenumberEnd: 709
    functionName: test_user_list_local
    functionSourceFile: /src/selinux/libsemanage/tests/test_user.c
    functionUses: 0
    functionsReached:
    - semanage_user_list_local
    - CU_ASSERT_PTR_NOT_NULL
    - cleanup_handle
    - CU_ASSERT
    - delete_local_user
    - setup_handle
    - free
    - semanage_user_free
    - add_local_user
    linkageType: ''
    returnType: void
    signature: void test_user_list_local(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: other_test_init
    functionSourceFile: /src/selinux/libsemanage/tests/test_other.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int other_test_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    functionName: other_test_cleanup
    functionSourceFile: /src/selinux/libsemanage/tests/test_other.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int other_test_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_other.c:42,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_other.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - suite
    argTypes:
    - CU_pSuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: other_add_tests
    functionSourceFile: /src/selinux/libsemanage/tests/test_other.c
    functionUses: 0
    functionsReached:
    - CU_add_test
    linkageType: ''
    returnType: int
    signature: int other_add_tests(CU_pSuite suite)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setup_handle
      Src: /src/selinux/libsemanage/tests/test_other.c:63,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_other.c:66,1
    - Dst: semanage_context_create
      Src: /src/selinux/libsemanage/tests/test_other.c:66,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_other.c:68,1
    - Dst: semanage_context_set_user
      Src: /src/selinux/libsemanage/tests/test_other.c:68,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_other.c:69,1
    - Dst: semanage_context_get_user
      Src: /src/selinux/libsemanage/tests/test_other.c:69,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_other.c:70,1
    - Dst: semanage_context_set_role
      Src: /src/selinux/libsemanage/tests/test_other.c:70,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_other.c:71,1
    - Dst: semanage_context_get_role
      Src: /src/selinux/libsemanage/tests/test_other.c:71,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_other.c:72,1
    - Dst: semanage_context_set_type
      Src: /src/selinux/libsemanage/tests/test_other.c:72,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_other.c:73,1
    - Dst: semanage_context_get_type
      Src: /src/selinux/libsemanage/tests/test_other.c:73,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_other.c:74,1
    - Dst: semanage_context_set_mls
      Src: /src/selinux/libsemanage/tests/test_other.c:74,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_other.c:75,1
    - Dst: semanage_context_get_mls
      Src: /src/selinux/libsemanage/tests/test_other.c:75,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_other.c:77,1
    - Dst: semanage_context_to_string
      Src: /src/selinux/libsemanage/tests/test_other.c:77,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_other.c:78,1
    - Dst: assert
      Src: /src/selinux/libsemanage/tests/test_other.c:79,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_other.c:80,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/tests/test_other.c:82,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_other.c:85,1
    - Dst: semanage_context_from_string
      Src: /src/selinux/libsemanage/tests/test_other.c:85,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_other.c:87,1
    - Dst: semanage_context_get_user
      Src: /src/selinux/libsemanage/tests/test_other.c:87,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_other.c:88,1
    - Dst: semanage_context_get_role
      Src: /src/selinux/libsemanage/tests/test_other.c:88,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_other.c:89,1
    - Dst: semanage_context_get_type
      Src: /src/selinux/libsemanage/tests/test_other.c:89,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_other.c:90,1
    - Dst: semanage_context_get_mls
      Src: /src/selinux/libsemanage/tests/test_other.c:90,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_other.c:92,1
    - Dst: semanage_context_clone
      Src: /src/selinux/libsemanage/tests/test_other.c:92,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_other.c:93,1
    - Dst: semanage_context_get_user
      Src: /src/selinux/libsemanage/tests/test_other.c:93,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_other.c:94,1
    - Dst: semanage_context_get_role
      Src: /src/selinux/libsemanage/tests/test_other.c:94,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_other.c:95,1
    - Dst: semanage_context_get_type
      Src: /src/selinux/libsemanage/tests/test_other.c:95,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_other.c:96,1
    - Dst: semanage_context_get_mls
      Src: /src/selinux/libsemanage/tests/test_other.c:96,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_other.c:99,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/tests/test_other.c:100,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/tests/test_other.c:101,1
    - Dst: cleanup_handle
      Src: /src/selinux/libsemanage/tests/test_other.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (str)
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/selinux/libsemanage/tests/test_other.c
    constantsTouched: []
    func_position:
      end: 103
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 103
    functionName: test_semanage_context
    functionSourceFile: /src/selinux/libsemanage/tests/test_other.c
    functionUses: 0
    functionsReached:
    - semanage_context_set_role
    - semanage_context_clone
    - assert
    - setup_handle
    - semanage_context_get_role
    - semanage_context_to_string
    - cleanup_handle
    - semanage_context_from_string
    - free
    - semanage_context_set_mls
    - semanage_context_get_user
    - semanage_context_get_type
    - semanage_context_create
    - semanage_context_set_user
    - CU_ASSERT_STRING_EQUAL
    - CU_ASSERT_PTR_NOT_NULL
    - semanage_context_get_mls
    - CU_ASSERT
    - semanage_context_free
    - semanage_context_set_type
    linkageType: ''
    returnType: void
    signature: void test_semanage_context(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_handle_create
      Src: /src/selinux/libsemanage/tests/test_other.c:111,1
    - Dst: CU_ASSERT_PTR_NOT_NULL
      Src: /src/selinux/libsemanage/tests/test_other.c:112,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_other.c:113,1
    - Dst: semanage_connect
      Src: /src/selinux/libsemanage/tests/test_other.c:113,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_other.c:114,1
    - Dst: semanage_module_info_create
      Src: /src/selinux/libsemanage/tests/test_other.c:114,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_other.c:117,1
    - Dst: semanage_module_info_set_priority
      Src: /src/selinux/libsemanage/tests/test_other.c:117,1
    - Dst: semanage_module_info_destroy
      Src: /src/selinux/libsemanage/tests/test_other.c:121,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_other.c:122,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_other.c:123,1
    - Dst: semanage_disconnect
      Src: /src/selinux/libsemanage/tests/test_other.c:123,1
    - Dst: semanage_handle_destroy
      Src: /src/selinux/libsemanage/tests/test_other.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 125
    functionName: test_debug
    functionSourceFile: /src/selinux/libsemanage/tests/test_other.c
    functionUses: 0
    functionsReached:
    - semanage_disconnect
    - CU_ASSERT_PTR_NOT_NULL
    - semanage_handle_create
    - semanage_module_info_destroy
    - semanage_connect
    - CU_ASSERT
    - semanage_module_info_set_priority
    - free
    - semanage_module_info_create
    - semanage_handle_destroy
    linkageType: ''
    returnType: void
    signature: void test_debug(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: mkdir
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:63,1
    - Dst: mkdir
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:67,1
    - Dst: mkdir
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:71,1
    - Dst: mkdir
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:75,1
    - Dst: semanage_handle_create
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:80,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:88,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:89,1
    - Dst: semanage_check_init
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:92,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 97
    functionName: semanage_store_test_init
    functionSourceFile: /src/selinux/libsemanage/tests/test_semanage_store.c
    functionUses: 0
    functionsReached:
    - mkdir
    - semanage_handle_create
    - free
    - semanage_check_init
    - strdup
    linkageType: ''
    returnType: int
    signature: int semanage_store_test_init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rmdir
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:107,1
    - Dst: rmdir
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:111,1
    - Dst: rmdir
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:115,1
    - Dst: rmdir
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:119,1
    - Dst: semanage_handle_destroy
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 126
    functionName: semanage_store_test_cleanup
    functionSourceFile: /src/selinux/libsemanage/tests/test_semanage_store.c
    functionUses: 0
    functionsReached:
    - rmdir
    - semanage_handle_destroy
    linkageType: ''
    returnType: int
    signature: int semanage_store_test_cleanup(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:132,1
    - Dst: CU_cleanup_registry
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:134,1
    - Dst: CU_get_error
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:135,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:139,1
    - Dst: CU_cleanup_registry
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:140,1
    - Dst: CU_get_error
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:141,1
    - Dst: CU_add_test
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:145,1
    - Dst: CU_cleanup_registry
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:146,1
    - Dst: CU_get_error
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - suite
    argTypes:
    - CU_pSuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 151
    functionName: semanage_store_add_tests
    functionSourceFile: /src/selinux/libsemanage/tests/test_semanage_store.c
    functionUses: 0
    functionsReached:
    - CU_add_test
    - CU_cleanup_registry
    - CU_get_error
    linkageType: ''
    returnType: int
    signature: int semanage_store_add_tests(CU_pSuite suite)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mknod
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:160,1
    - Dst: chmod
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:163,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:164,1
    - Dst: chmod
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:165,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:166,1
    - Dst: chmod
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:167,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:168,1
    - Dst: semanage_store_access_check
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:170,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:171,1
    - Dst: chmod
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:174,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:175,1
    - Dst: chmod
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:176,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:177,1
    - Dst: chmod
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:178,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:179,1
    - Dst: semanage_store_access_check
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:181,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:182,1
    - Dst: chmod
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:185,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:186,1
    - Dst: chmod
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:187,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:188,1
    - Dst: chmod
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:189,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:190,1
    - Dst: semanage_store_access_check
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:192,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:193,1
    - Dst: chmod
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:196,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:197,1
    - Dst: chmod
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:198,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:199,1
    - Dst: chmod
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:200,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:201,1
    - Dst: semanage_store_access_check
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:203,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:204,1
    - Dst: chmod
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:207,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:208,1
    - Dst: chmod
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:209,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:210,1
    - Dst: chmod
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:211,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:212,1
    - Dst: semanage_store_access_check
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:214,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:215,1
    - Dst: remove
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:218,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:219,1
    - Dst: chmod
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:222,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:223,1
    - Dst: chmod
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:224,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:225,1
    - Dst: semanage_store_access_check
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:227,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:228,1
    - Dst: chmod
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:231,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:232,1
    - Dst: chmod
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:233,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:234,1
    - Dst: semanage_store_access_check
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:236,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:237,1
    - Dst: chmod
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:240,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:241,1
    - Dst: semanage_store_access_check
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:243,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:244,1
    - Dst: chmod
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:247,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:248,1
    - Dst: chmod
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:249,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:250,1
    - Dst: semanage_store_access_check
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:252,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 254
    functionName: test_semanage_store_access_check
    functionSourceFile: /src/selinux/libsemanage/tests/test_semanage_store.c
    functionUses: 0
    functionsReached:
    - chmod
    - semanage_store_access_check
    - CU_ASSERT
    - remove
    - mknod
    linkageType: ''
    returnType: void
    signature: void test_semanage_store_access_check(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_get_active_lock
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:263,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:264,1
    - Dst: semanage_get_active_lock
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:267,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:268,1
    - Dst: semanage_release_active_lock
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:271,1
    - Dst: semanage_get_active_lock
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:274,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:275,1
    - Dst: semanage_release_active_lock
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:278,1
    - Dst: semanage_get_trans_lock
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:281,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:282,1
    - Dst: semanage_get_trans_lock
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:285,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:286,1
    - Dst: semanage_release_trans_lock
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:289,1
    - Dst: semanage_get_trans_lock
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:292,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:293,1
    - Dst: semanage_release_trans_lock
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:296,1
    - Dst: remove
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:299,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:300,1
    - Dst: remove
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:301,1
    - Dst: CU_ASSERT
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 303
    functionName: test_semanage_get_lock
    functionSourceFile: /src/selinux/libsemanage/tests/test_semanage_store.c
    functionUses: 0
    functionsReached:
    - semanage_release_trans_lock
    - semanage_get_active_lock
    - CU_ASSERT
    - remove
    - semanage_get_trans_lock
    - semanage_release_active_lock
    linkageType: ''
    returnType: void
    signature: void test_semanage_get_lock(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:315,1
    - Dst: CU_FAIL
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:317,1
    - Dst: fstat
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:320,1
    - Dst: mmap
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:322,1
    - Dst: open
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:326,1
    - Dst: CU_FAIL
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:328,1
    - Dst: fstat
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:331,1
    - Dst: mmap
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:333,1
    - Dst: open
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:337,1
    - Dst: CU_FAIL
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:339,1
    - Dst: fstat
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:342,1
    - Dst: mmap
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:344,1
    - Dst: semanage_nc_sort
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:348,1
    - Dst: CU_ASSERT_FALSE
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:350,1
    - Dst: CU_ASSERT_STRING_EQUAL
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:351,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:354,1
    - Dst: semanage_nc_sort
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:358,1
    - Dst: CU_ASSERT_EQUAL
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:360,1
    - Dst: free
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:362,1
    - Dst: munmap
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:364,1
    - Dst: close
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:365,1
    - Dst: munmap
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:367,1
    - Dst: close
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:368,1
    - Dst: munmap
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:370,1
    - Dst: close
      Src: /src/selinux/libsemanage/tests/test_semanage_store.c:371,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 372
    functionName: test_semanage_nc_sort
    functionSourceFile: /src/selinux/libsemanage/tests/test_semanage_store.c
    functionUses: 0
    functionsReached:
    - munmap
    - mmap
    - close
    - CU_ASSERT_STRING_EQUAL
    - CU_FAIL
    - CU_ASSERT_EQUAL
    - CU_ASSERT_FALSE
    - free
    - fstat
    - open
    - semanage_nc_sort
    linkageType: ''
    returnType: void
    signature: void test_semanage_nc_sort(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 56
    functionName: DECLARE_SUITE
    functionSourceFile: /src/selinux/libsemanage/tests/libsemanage-tests.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_SUITE(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:59,1
    - Dst: printf
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:60,1
    - Dst: printf
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:61,1
    - Dst: printf
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: usage
    functionSourceFile: /src/selinux/libsemanage/tests/libsemanage-tests.c
    functionUses: 15
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(char *progname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CU_initialize_registry
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:71,1
    - Dst: CU_get_error
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:72,1
    - Dst: DECLARE_SUITE
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:74,1
    - Dst: DECLARE_SUITE
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:75,1
    - Dst: DECLARE_SUITE
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:76,1
    - Dst: DECLARE_SUITE
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:77,1
    - Dst: DECLARE_SUITE
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:78,1
    - Dst: DECLARE_SUITE
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:79,1
    - Dst: DECLARE_SUITE
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:80,1
    - Dst: DECLARE_SUITE
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:81,1
    - Dst: DECLARE_SUITE
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:82,1
    - Dst: DECLARE_SUITE
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:83,1
    - Dst: DECLARE_SUITE
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:84,1
    - Dst: CU_basic_set_mode
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:87,1
    - Dst: CU_basic_set_mode
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:89,1
    - Dst: CU_console_run_tests
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:92,1
    - Dst: CU_basic_run_tests
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:94,1
    - Dst: CU_get_number_of_tests_failed
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:95,1
    - Dst: CU_cleanup_registry
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:96,1
    - Dst: CU_get_error
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - interactive
    - verbose
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 98
    functionName: do_tests
    functionSourceFile: /src/selinux/libsemanage/tests/libsemanage-tests.c
    functionUses: 1
    functionsReached:
    - DECLARE_SUITE
    - CU_get_number_of_tests_failed
    - CU_basic_set_mode
    - CU_get_error
    - CU_basic_run_tests
    - CU_cleanup_registry
    - CU_initialize_registry
    - CU_console_run_tests
    linkageType: ''
    returnType: bool
    signature: bool do_tests(int interactive, int verbose)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:111,1
    - Dst: usage
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:121,1
    - Dst: exit
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:122,1
    - Dst: do_tests
      Src: /src/selinux/libsemanage/tests/libsemanage-tests.c:127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 131
    functionName: main
    functionSourceFile: /src/selinux/libsemanage/tests/libsemanage-tests.c
    functionUses: 3
    functionsReached:
    - exit
    - do_tests
    - usage
    - getopt_long
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_bool_dbase_policy
      Src: /src/selinux/libsemanage/src/booleans_policy.c:17,1
    - Dst: dbase_query
      Src: /src/selinux/libsemanage/src/booleans_policy.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_bool_key_t*
    - semanage_bool_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: semanage_bool_query
    functionSourceFile: /src/selinux/libsemanage/src/booleans_policy.c
    functionUses: 3
    functionsReached:
    - semanage_bool_dbase_policy
    - dbase_query
    linkageType: ''
    returnType: int
    signature: "int semanage_bool_query(semanage_handle_t *handle,\n\t\t\tconst semanage_bool_key_t
      *key,\n\t\t\tsemanage_bool_t **response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_bool_dbase_policy
      Src: /src/selinux/libsemanage/src/booleans_policy.c:24,1
    - Dst: dbase_exists
      Src: /src/selinux/libsemanage/src/booleans_policy.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_bool_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: semanage_bool_exists
    functionSourceFile: /src/selinux/libsemanage/src/booleans_policy.c
    functionUses: 2
    functionsReached:
    - semanage_bool_dbase_policy
    - dbase_exists
    linkageType: ''
    returnType: int
    signature: "int semanage_bool_exists(semanage_handle_t *handle,\n\t\t\t const
      semanage_bool_key_t *key, int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_bool_dbase_policy
      Src: /src/selinux/libsemanage/src/booleans_policy.c:30,1
    - Dst: dbase_count
      Src: /src/selinux/libsemanage/src/booleans_policy.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - response
    argTypes:
    - semanage_handle_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: semanage_bool_count
    functionSourceFile: /src/selinux/libsemanage/src/booleans_policy.c
    functionUses: 1
    functionsReached:
    - semanage_bool_dbase_policy
    - dbase_count
    linkageType: ''
    returnType: int
    signature: int semanage_bool_count(semanage_handle_t *handle, unsigned int *response)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_bool_dbase_policy
      Src: /src/selinux/libsemanage/src/booleans_policy.c:39,1
    - Dst: dbase_iterate
      Src: /src/selinux/libsemanage/src/booleans_policy.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - handler_arg
    argTypes:
    - semanage_handle_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: semanage_bool_iterate
    functionSourceFile: /src/selinux/libsemanage/src/booleans_policy.c
    functionUses: 2
    functionsReached:
    - semanage_bool_dbase_policy
    - dbase_iterate
    linkageType: ''
    returnType: int
    signature: "int semanage_bool_iterate(semanage_handle_t *handle,\n\t\t\t  int
      (*handler)(const semanage_bool_t *record,\n\t\t\t\t\t void *varg),\n\t\t\t  void
      *handler_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_bool_dbase_policy
      Src: /src/selinux/libsemanage/src/booleans_policy.c:46,1
    - Dst: dbase_list
      Src: /src/selinux/libsemanage/src/booleans_policy.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - records
    - count
    argTypes:
    - semanage_handle_t*
    - semanage_bool_t***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: semanage_bool_list
    functionSourceFile: /src/selinux/libsemanage/src/booleans_policy.c
    functionUses: 3
    functionsReached:
    - semanage_bool_dbase_policy
    - dbase_list
    linkageType: ''
    returnType: int
    signature: "int semanage_bool_list(semanage_handle_t *handle, semanage_bool_t
      ***records,\n\t\t       unsigned int *count)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_key_create
      Src: /src/selinux/libsemanage/src/seusers_local.c:30,1
    - Dst: semanage_user_query
      Src: /src/selinux/libsemanage/src/seusers_local.c:31,1
    - Dst: semanage_user_get_roles
      Src: /src/selinux/libsemanage/src/seusers_local.c:32,1
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/seusers_local.c:35,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/seusers_local.c:38,1
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/seusers_local.c:40,1
    - Dst: strcpy
      Src: /src/selinux/libsemanage/src/seusers_local.c:42,1
    - Dst: strcat
      Src: /src/selinux/libsemanage/src/seusers_local.c:45,1
    - Dst: strcat
      Src: /src/selinux/libsemanage/src/seusers_local.c:46,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/seusers_local.c:51,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/src/seusers_local.c:53,1
    - Dst: semanage_user_key_free
      Src: /src/selinux/libsemanage/src/seusers_local.c:55,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - handle
    - sename
    argTypes:
    - semanage_handle_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 58
    functionName: semanage_user_roles
    functionSourceFile: /src/selinux/libsemanage/src/seusers_local.c
    functionUses: 0
    functionsReached:
    - strcat
    - malloc
    - strcpy
    - semanage_user_key_create
    - free
    - semanage_user_key_free
    - semanage_user_query
    - semanage_user_free
    - semanage_user_get_roles
    - strlen
    - strdup
    linkageType: ''
    returnType: char
    signature: char *semanage_user_roles(semanage_handle_t *handle, const char *sename)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcpy
      Src: /src/selinux/libsemanage/src/seusers_local.c:75,1
    - Dst: semanage_seuser_get_name
      Src: /src/selinux/libsemanage/src/seusers_local.c:77,1
    - Dst: semanage_seuser_get_sename
      Src: /src/selinux/libsemanage/src/seusers_local.c:78,1
    - Dst: semanage_seuser_get_mlsrange
      Src: /src/selinux/libsemanage/src/seusers_local.c:79,1
    - Dst: semanage_user_roles
      Src: /src/selinux/libsemanage/src/seusers_local.c:80,1
    - Dst: semanage_seuser_get_name
      Src: /src/selinux/libsemanage/src/seusers_local.c:83,1
    - Dst: semanage_seuser_get_sename
      Src: /src/selinux/libsemanage/src/seusers_local.c:84,1
    - Dst: semanage_seuser_get_mlsrange
      Src: /src/selinux/libsemanage/src/seusers_local.c:85,1
    - Dst: semanage_user_roles
      Src: /src/selinux/libsemanage/src/seusers_local.c:86,1
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/seusers_local.c:89,1
    - Dst: strcat
      Src: /src/selinux/libsemanage/src/seusers_local.c:90,1
    - Dst: strcat
      Src: /src/selinux/libsemanage/src/seusers_local.c:91,1
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/seusers_local.c:94,1
    - Dst: strcat
      Src: /src/selinux/libsemanage/src/seusers_local.c:95,1
    - Dst: strcat
      Src: /src/selinux/libsemanage/src/seusers_local.c:96,1
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/seusers_local.c:99,1
    - Dst: strcat
      Src: /src/selinux/libsemanage/src/seusers_local.c:100,1
    - Dst: strcat
      Src: /src/selinux/libsemanage/src/seusers_local.c:101,1
    - Dst: audit_open
      Src: /src/selinux/libsemanage/src/seusers_local.c:105,1
    - Dst: audit_log_semanage_message
      Src: /src/selinux/libsemanage/src/seusers_local.c:116,1
    - Dst: audit_close
      Src: /src/selinux/libsemanage/src/seusers_local.c:121,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/seusers_local.c:122,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/seusers_local.c:123,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 5
    argNames:
    - handle
    - seuser
    - previous
    - audit_type
    - success
    argTypes:
    - semanage_handle_t*
    - semanage_seuser_t*
    - semanage_seuser_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 125
    functionName: semanage_seuser_audit
    functionSourceFile: /src/selinux/libsemanage/src/seusers_local.c
    functionUses: 0
    functionsReached:
    - semanage_seuser_get_sename
    - strcat
    - audit_log_semanage_message
    - audit_close
    - strcpy
    - strcmp
    - audit_open
    - semanage_user_roles
    - free
    - semanage_seuser_get_name
    - semanage_seuser_get_mlsrange
    linkageType: ''
    returnType: int
    signature: "int semanage_seuser_audit(semanage_handle_t *handle,\n\t\t\t\t const
      semanage_seuser_t *seuser,\n\t\t\t\t const semanage_seuser_t *previous,\n\t\t\t\t
      int audit_type, int success)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/selinux/libsemanage/src/seusers_local.c:132,1
    - Dst: semanage_seuser_dbase_local
      Src: /src/selinux/libsemanage/src/seusers_local.c:135,1
    - Dst: semanage_seuser_get_sename
      Src: /src/selinux/libsemanage/src/seusers_local.c:136,1
    - Dst: semanage_seuser_get_mlsrange
      Src: /src/selinux/libsemanage/src/seusers_local.c:137,1
    - Dst: semanage_seuser_clone
      Src: /src/selinux/libsemanage/src/seusers_local.c:145,1
    - Dst: semanage_mls_enabled
      Src: /src/selinux/libsemanage/src/seusers_local.c:150,1
    - Dst: semanage_user_key_create
      Src: /src/selinux/libsemanage/src/seusers_local.c:153,1
    - Dst: semanage_user_query
      Src: /src/selinux/libsemanage/src/seusers_local.c:157,1
    - Dst: semanage_user_key_free
      Src: /src/selinux/libsemanage/src/seusers_local.c:158,1
    - Dst: semanage_user_get_mlsrange
      Src: /src/selinux/libsemanage/src/seusers_local.c:160,1
    - Dst: semanage_seuser_set_mlsrange
      Src: /src/selinux/libsemanage/src/seusers_local.c:161,1
    - Dst: mls_range::mls_range
      Src: /src/selinux/libsemanage/src/seusers_local.c:161,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/src/seusers_local.c:163,1
    - Dst: semanage_seuser_query
      Src: /src/selinux/libsemanage/src/seusers_local.c:170,1
    - Dst: dbase_modify
      Src: /src/selinux/libsemanage/src/seusers_local.c:172,1
    - Dst: semanage_seuser_audit
      Src: /src/selinux/libsemanage/src/seusers_local.c:173,1
    - Dst: previous::previous
      Src: /src/selinux/libsemanage/src/seusers_local.c:173,1
    - Dst: semanage_seuser_free
      Src: /src/selinux/libsemanage/src/seusers_local.c:178,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 3
    argNames:
    - handle
    - key
    - data
    argTypes:
    - semanage_handle_t*
    - semanage_seuser_key_t*
    - semanage_seuser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 181
    functionName: semanage_seuser_modify_local
    functionSourceFile: /src/selinux/libsemanage/src/seusers_local.c
    functionUses: 0
    functionsReached:
    - semanage_mls_enabled
    - dbase_modify
    - semanage_seuser_free
    - semanage_seuser_get_sename
    - format
    - semanage_seuser_clone
    - semanage_seuser_set_mlsrange
    - semanage_user_query
    - previous::previous
    - semanage_user_key_create
    - semanage_user_key_free
    - mls_range::mls_range
    - semanage_seuser_dbase_local
    - semanage_user_free
    - semanage_seuser_query
    - semanage_seuser_audit
    - semanage_user_get_mlsrange
    - semanage_seuser_get_mlsrange
    linkageType: ''
    returnType: int
    signature: "int semanage_seuser_modify_local(semanage_handle_t *handle,\n\t\t\t\t
      const semanage_seuser_key_t *key,\n\t\t\t\t const semanage_seuser_t *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: semanage_seuser_dbase_local
      Src: /src/selinux/libsemanage/src/seusers_local.c:188,1
    - Dst: dbase_del
      Src: /src/selinux/libsemanage/src/seusers_local.c:189,1
    - Dst: semanage_seuser_query
      Src: /src/selinux/libsemanage/src/seusers_local.c:190,1
    - Dst: semanage_seuser_audit
      Src: /src/selinux/libsemanage/src/seusers_local.c:191,1
    - Dst: semanage_seuser_free
      Src: /src/selinux/libsemanage/src/seusers_local.c:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - handle
    - key
    argTypes:
    - semanage_handle_t*
    - semanage_seuser_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 197
    functionName: semanage_seuser_del_local
    functionSourceFile: /src/selinux/libsemanage/src/seusers_local.c
    functionUses: 0
    functionsReached:
    - semanage_seuser_free
    - dbase_del
    - semanage_seuser_dbase_local
    - semanage_seuser_query
    - semanage_seuser_audit
    linkageType: ''
    returnType: int
    signature: "int semanage_seuser_del_local(semanage_handle_t *handle,\n\t\t\t      const
      semanage_seuser_key_t *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_seuser_dbase_local
      Src: /src/selinux/libsemanage/src/seusers_local.c:203,1
    - Dst: dbase_query
      Src: /src/selinux/libsemanage/src/seusers_local.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_seuser_key_t*
    - semanage_seuser_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 205
    functionName: semanage_seuser_query_local
    functionSourceFile: /src/selinux/libsemanage/src/seusers_local.c
    functionUses: 0
    functionsReached:
    - dbase_query
    - semanage_seuser_dbase_local
    linkageType: ''
    returnType: int
    signature: "int semanage_seuser_query_local(semanage_handle_t *handle,\n\t\t\t\tconst
      semanage_seuser_key_t *key,\n\t\t\t\tsemanage_seuser_t **response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_seuser_dbase_local
      Src: /src/selinux/libsemanage/src/seusers_local.c:211,1
    - Dst: dbase_exists
      Src: /src/selinux/libsemanage/src/seusers_local.c:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_seuser_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 213
    functionName: semanage_seuser_exists_local
    functionSourceFile: /src/selinux/libsemanage/src/seusers_local.c
    functionUses: 0
    functionsReached:
    - dbase_exists
    - semanage_seuser_dbase_local
    linkageType: ''
    returnType: int
    signature: "int semanage_seuser_exists_local(semanage_handle_t *handle,\n\t\t\t\t
      const semanage_seuser_key_t *key,\n\t\t\t\t int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_seuser_dbase_local
      Src: /src/selinux/libsemanage/src/seusers_local.c:218,1
    - Dst: dbase_count
      Src: /src/selinux/libsemanage/src/seusers_local.c:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - response
    argTypes:
    - semanage_handle_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 220
    functionName: semanage_seuser_count_local
    functionSourceFile: /src/selinux/libsemanage/src/seusers_local.c
    functionUses: 0
    functionsReached:
    - dbase_count
    - semanage_seuser_dbase_local
    linkageType: ''
    returnType: int
    signature: "int semanage_seuser_count_local(semanage_handle_t *handle,\n\t\t\t\tunsigned
      int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_seuser_dbase_local
      Src: /src/selinux/libsemanage/src/seusers_local.c:227,1
    - Dst: dbase_iterate
      Src: /src/selinux/libsemanage/src/seusers_local.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - handler_arg
    argTypes:
    - semanage_handle_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 229
    functionName: semanage_seuser_iterate_local
    functionSourceFile: /src/selinux/libsemanage/src/seusers_local.c
    functionUses: 0
    functionsReached:
    - dbase_iterate
    - semanage_seuser_dbase_local
    linkageType: ''
    returnType: int
    signature: "int semanage_seuser_iterate_local(\n\tsemanage_handle_t *handle,\n\tint
      (*handler)(const semanage_seuser_t *record, void *varg),\n\tvoid *handler_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_seuser_dbase_local
      Src: /src/selinux/libsemanage/src/seusers_local.c:235,1
    - Dst: dbase_list
      Src: /src/selinux/libsemanage/src/seusers_local.c:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - records
    - count
    argTypes:
    - semanage_handle_t*
    - semanage_seuser_t***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 237
    functionName: semanage_seuser_list_local
    functionSourceFile: /src/selinux/libsemanage/src/seusers_local.c
    functionUses: 0
    functionsReached:
    - dbase_list
    - semanage_seuser_dbase_local
    linkageType: ''
    returnType: int
    signature: "int semanage_seuser_list_local(semanage_handle_t *handle,\n\t\t\t
      \      semanage_seuser_t ***records,\n\t\t\t       unsigned int *count)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: semanage_seuser_get_name
      Src: /src/selinux/libsemanage/src/seusers_local.c:256,1
    - Dst: semanage_seuser_get_sename
      Src: /src/selinux/libsemanage/src/seusers_local.c:257,1
    - Dst: semanage_seuser_get_mlsrange
      Src: /src/selinux/libsemanage/src/seusers_local.c:258,1
    - Dst: semanage_user_key_create
      Src: /src/selinux/libsemanage/src/seusers_local.c:262,1
    - Dst: semanage_user_exists
      Src: /src/selinux/libsemanage/src/seusers_local.c:264,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/seusers_local.c:267,1
    - Dst: sepol_policydb_mls_enabled
      Src: /src/selinux/libsemanage/src/seusers_local.c:273,1
    - Dst: semanage_user_query
      Src: /src/selinux/libsemanage/src/seusers_local.c:274,1
    - Dst: semanage_user_get_mlsrange
      Src: /src/selinux/libsemanage/src/seusers_local.c:276,1
    - Dst: sepol_mls_check
      Src: /src/selinux/libsemanage/src/seusers_local.c:278,1
    - Dst: sepol_mls_contains
      Src: /src/selinux/libsemanage/src/seusers_local.c:280,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/seusers_local.c:285,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/seusers_local.c:293,1
    - Dst: semanage_user_key_free
      Src: /src/selinux/libsemanage/src/seusers_local.c:300,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/src/seusers_local.c:301,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/seusers_local.c:305,1
    - Dst: semanage_user_key_free
      Src: /src/selinux/libsemanage/src/seusers_local.c:306,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/src/seusers_local.c:307,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/seusers_local.c:312,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/seusers_local.c:315,1
    - Dst: semanage_user_key_free
      Src: /src/selinux/libsemanage/src/seusers_local.c:317,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/src/seusers_local.c:318,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 51
    argCount: 2
    argNames:
    - seuser
    - varg
    argTypes:
    - semanage_seuser_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 320
    functionName: validate_handler
    functionSourceFile: /src/selinux/libsemanage/src/seusers_local.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_seuser_get_sename
    - sepol_mls_check
    - semanage_user_key_create
    - semanage_user_key_free
    - sepol_policydb_mls_enabled
    - semanage_user_exists
    - semanage_user_query
    - sepol_mls_contains
    - semanage_user_free
    - semanage_seuser_get_name
    - semanage_user_get_mlsrange
    - semanage_seuser_get_mlsrange
    linkageType: ''
    returnType: int
    signature: int validate_handler(const semanage_seuser_t *seuser, void *varg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_seuser_iterate_local
      Src: /src/selinux/libsemanage/src/seusers_local.c:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - handle
    - policydb
    argTypes:
    - semanage_handle_t*
    - sepol_policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 333
    functionName: semanage_seuser_validate_local
    functionSourceFile: /src/selinux/libsemanage/src/seusers_local.c
    functionUses: 0
    functionsReached:
    - semanage_seuser_iterate_local
    linkageType: ''
    returnType: int
    signature: "int semanage_seuser_validate_local(semanage_handle_t *handle,\n\t\t\t\t
      \  const sepol_policydb_t *policydb)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: semanage_iface_get_name
      Src: /src/selinux/libsemanage/src/interfaces_file.c:26,1
    - Dst: semanage_iface_get_ifcon
      Src: /src/selinux/libsemanage/src/interfaces_file.c:27,1
    - Dst: semanage_iface_get_msgcon
      Src: /src/selinux/libsemanage/src/interfaces_file.c:28,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/interfaces_file.c:30,1
    - Dst: semanage_context_to_string
      Src: /src/selinux/libsemanage/src/interfaces_file.c:33,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/interfaces_file.c:35,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/interfaces_file.c:37,1
    - Dst: semanage_context_to_string
      Src: /src/selinux/libsemanage/src/interfaces_file.c:40,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/interfaces_file.c:42,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/interfaces_file.c:44,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/interfaces_file.c:50,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/interfaces_file.c:51,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - handle
    - iface
    - str
    argTypes:
    - semanage_handle_t*
    - semanage_iface_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 53
    functionName: iface_print
    functionSourceFile: /src/selinux/libsemanage/src/interfaces_file.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_context_to_string
    - semanage_iface_get_msgcon
    - semanage_iface_get_ifcon
    - free
    - semanage_iface_get_name
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int iface_print(semanage_handle_t *handle, const semanage_iface_t
      *iface,\n\t\t       FILE *str)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: parse_skip_space
      Src: /src/selinux/libsemanage/src/interfaces_file.c:61,1
    - Dst: parse_assert_str
      Src: /src/selinux/libsemanage/src/interfaces_file.c:67,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/interfaces_file.c:69,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/interfaces_file.c:73,1
    - Dst: semanage_iface_set_name
      Src: /src/selinux/libsemanage/src/interfaces_file.c:75,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/interfaces_file.c:77,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/interfaces_file.c:81,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/interfaces_file.c:83,1
    - Dst: semanage_context_from_string
      Src: /src/selinux/libsemanage/src/interfaces_file.c:85,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/interfaces_file.c:86,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/interfaces_file.c:91,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/interfaces_file.c:97,1
    - Dst: semanage_iface_set_ifcon
      Src: /src/selinux/libsemanage/src/interfaces_file.c:100,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/src/interfaces_file.c:102,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/interfaces_file.c:106,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/interfaces_file.c:108,1
    - Dst: semanage_context_from_string
      Src: /src/selinux/libsemanage/src/interfaces_file.c:110,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/interfaces_file.c:111,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/interfaces_file.c:116,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/interfaces_file.c:122,1
    - Dst: semanage_iface_set_msgcon
      Src: /src/selinux/libsemanage/src/interfaces_file.c:125,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/src/interfaces_file.c:127,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/interfaces_file.c:130,1
    - Dst: parse_dispose_line
      Src: /src/selinux/libsemanage/src/interfaces_file.c:136,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/interfaces_file.c:140,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/interfaces_file.c:141,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/src/interfaces_file.c:142,1
    - Dst: parse_dispose_line
      Src: /src/selinux/libsemanage/src/interfaces_file.c:143,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 82
    argCount: 3
    argNames:
    - handle
    - info
    - iface
    argTypes:
    - semanage_handle_t*
    - parse_info_t*
    - semanage_iface_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 145
    functionName: iface_parse
    functionSourceFile: /src/selinux/libsemanage/src/interfaces_file.c
    functionUses: 0
    functionsReached:
    - semanage_iface_set_name
    - ERR
    - parse_assert_str
    - parse_assert_space
    - semanage_iface_set_ifcon
    - parse_skip_space
    - semanage_iface_set_msgcon
    - parse_dispose_line
    - semanage_context_from_string
    - free
    - parse_fetch_string
    - semanage_context_free
    linkageType: ''
    returnType: int
    signature: "int iface_parse(semanage_handle_t *handle, parse_info_t *info,\n\t\t
      \      semanage_iface_t *iface)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_file_init
      Src: /src/selinux/libsemanage/src/interfaces_file.c:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - handle
    - path_ro
    - path_rw
    - dconfig
    argTypes:
    - semanage_handle_t*
    - char*
    - char*
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 162
    functionName: iface_file_dbase_init
    functionSourceFile: /src/selinux/libsemanage/src/interfaces_file.c
    functionUses: 0
    functionsReached:
    - dbase_file_init
    linkageType: ''
    returnType: int
    signature: "int iface_file_dbase_init(semanage_handle_t *handle, const char *path_ro,\n\t\t\t
      \ const char *path_rw, dbase_config_t *dconfig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbase_file_release
      Src: /src/selinux/libsemanage/src/interfaces_file.c:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dconfig
    argTypes:
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 167
    functionName: iface_file_dbase_release
    functionSourceFile: /src/selinux/libsemanage/src/interfaces_file.c
    functionUses: 0
    functionsReached:
    - dbase_file_release
    linkageType: ''
    returnType: void
    signature: void iface_file_dbase_release(dbase_config_t *dconfig)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: security_get_boolean_names
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:33,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:34,1
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:39,1
    - Dst: semanage_bool_create
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:47,1
    - Dst: semanage_bool_set_name
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:51,1
    - Dst: security_get_boolean_active
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:55,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:57,1
    - Dst: semanage_bool_set_value
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:64,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:69,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:70,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:77,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:80,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:82,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:83,1
    - Dst: semanage_bool_free
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:85,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:86,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 3
    argNames:
    - handle
    - booleans
    - count
    argTypes:
    - semanage_handle_t*
    - semanage_bool_t***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 88
    functionName: bool_read_list
    functionSourceFile: /src/selinux/libsemanage/src/booleans_activedb.c
    functionUses: 0
    functionsReached:
    - security_get_boolean_active
    - ERR
    - security_get_boolean_names
    - semanage_bool_free
    - malloc
    - semanage_bool_set_value
    - semanage_bool_set_name
    - free
    - semanage_bool_create
    linkageType: ''
    returnType: int
    signature: "int bool_read_list(semanage_handle_t *handle,\n\t\t\t  semanage_bool_t
      ***booleans, unsigned int *count)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:100,1
    - Dst: semanage_bool_get_name
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:106,1
    - Dst: semanage_bool_get_value
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:109,1
    - Dst: security_get_boolean_active
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:110,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:113,1
    - Dst: security_set_boolean_list
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:121,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:122,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:127,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:128,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:132,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:135,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:137,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:138,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 3
    argNames:
    - handle
    - booleans
    - count
    argTypes:
    - semanage_handle_t*
    - semanage_bool_t**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 140
    functionName: bool_commit_list
    functionSourceFile: /src/selinux/libsemanage/src/booleans_activedb.c
    functionUses: 0
    functionsReached:
    - security_get_boolean_active
    - ERR
    - security_set_boolean_list
    - semanage_bool_get_name
    - malloc
    - free
    - semanage_bool_get_value
    - strdup
    linkageType: ''
    returnType: int
    signature: "int bool_commit_list(semanage_handle_t *handle,\n\t\t\t    semanage_bool_t
      **booleans, unsigned int count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_activedb_init
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - handle
    - dconfig
    argTypes:
    - semanage_handle_t*
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 157
    functionName: bool_activedb_dbase_init
    functionSourceFile: /src/selinux/libsemanage/src/booleans_activedb.c
    functionUses: 0
    functionsReached:
    - dbase_activedb_init
    linkageType: ''
    returnType: int
    signature: int bool_activedb_dbase_init(semanage_handle_t *handle, dbase_config_t
      *dconfig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbase_activedb_release
      Src: /src/selinux/libsemanage/src/booleans_activedb.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dconfig
    argTypes:
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: bool_activedb_dbase_release
    functionSourceFile: /src/selinux/libsemanage/src/booleans_activedb.c
    functionUses: 0
    functionsReached:
    - dbase_activedb_release
    linkageType: ''
    returnType: void
    signature: void bool_activedb_dbase_release(dbase_config_t *dconfig)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: semanage_node_get_proto
      Src: /src/selinux/libsemanage/src/nodes_file.c:29,1
    - Dst: semanage_node_get_proto_str
      Src: /src/selinux/libsemanage/src/nodes_file.c:30,1
    - Dst: semanage_node_get_con
      Src: /src/selinux/libsemanage/src/nodes_file.c:31,1
    - Dst: semanage_node_get_addr
      Src: /src/selinux/libsemanage/src/nodes_file.c:33,1
    - Dst: semanage_node_get_mask
      Src: /src/selinux/libsemanage/src/nodes_file.c:36,1
    - Dst: semanage_context_to_string
      Src: /src/selinux/libsemanage/src/nodes_file.c:39,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/nodes_file.c:42,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/nodes_file.c:46,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/nodes_file.c:47,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/nodes_file.c:48,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/nodes_file.c:52,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/nodes_file.c:53,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/nodes_file.c:54,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/nodes_file.c:55,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - handle
    - node
    - str
    argTypes:
    - semanage_handle_t*
    - semanage_node_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 57
    functionName: node_print
    functionSourceFile: /src/selinux/libsemanage/src/nodes_file.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_context_to_string
    - semanage_node_get_addr
    - semanage_node_get_mask
    - free
    - semanage_node_get_proto
    - fprintf
    - semanage_node_get_con
    - semanage_node_get_proto_str
    linkageType: ''
    returnType: int
    signature: "int node_print(semanage_handle_t *handle, const semanage_node_t *node,\n\t\t
      \     FILE *str)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: parse_skip_space
      Src: /src/selinux/libsemanage/src/nodes_file.c:66,1
    - Dst: parse_assert_str
      Src: /src/selinux/libsemanage/src/nodes_file.c:72,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/nodes_file.c:74,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/nodes_file.c:78,1
    - Dst: strcasecmp
      Src: /src/selinux/libsemanage/src/nodes_file.c:80,1
    - Dst: strcasecmp
      Src: /src/selinux/libsemanage/src/nodes_file.c:82,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/nodes_file.c:85,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/nodes_file.c:89,1
    - Dst: semanage_node_set_proto
      Src: /src/selinux/libsemanage/src/nodes_file.c:92,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/nodes_file.c:95,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/nodes_file.c:97,1
    - Dst: semanage_node_set_addr
      Src: /src/selinux/libsemanage/src/nodes_file.c:99,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/nodes_file.c:101,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/nodes_file.c:103,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/nodes_file.c:107,1
    - Dst: semanage_node_set_mask
      Src: /src/selinux/libsemanage/src/nodes_file.c:109,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/nodes_file.c:111,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/nodes_file.c:113,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/nodes_file.c:117,1
    - Dst: semanage_context_from_string
      Src: /src/selinux/libsemanage/src/nodes_file.c:119,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/nodes_file.c:120,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/nodes_file.c:125,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/nodes_file.c:131,1
    - Dst: semanage_node_set_con
      Src: /src/selinux/libsemanage/src/nodes_file.c:134,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/nodes_file.c:137,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/src/nodes_file.c:140,1
    - Dst: parse_dispose_line
      Src: /src/selinux/libsemanage/src/nodes_file.c:144,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/nodes_file.c:148,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/nodes_file.c:149,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/src/nodes_file.c:150,1
    - Dst: parse_dispose_line
      Src: /src/selinux/libsemanage/src/nodes_file.c:151,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 86
    argCount: 3
    argNames:
    - handle
    - info
    - node
    argTypes:
    - semanage_handle_t*
    - parse_info_t*
    - semanage_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 153
    functionName: node_parse
    functionSourceFile: /src/selinux/libsemanage/src/nodes_file.c
    functionUses: 0
    functionsReached:
    - ERR
    - parse_assert_str
    - parse_assert_space
    - semanage_node_set_proto
    - parse_skip_space
    - semanage_node_set_addr
    - semanage_context_free
    - parse_dispose_line
    - semanage_context_from_string
    - free
    - parse_fetch_string
    - semanage_node_set_mask
    - semanage_node_set_con
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: "int node_parse(semanage_handle_t *handle, parse_info_t *info,\n\t\t
      \     semanage_node_t *node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_file_init
      Src: /src/selinux/libsemanage/src/nodes_file.c:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - handle
    - path_ro
    - path_rw
    - dconfig
    argTypes:
    - semanage_handle_t*
    - char*
    - char*
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 170
    functionName: node_file_dbase_init
    functionSourceFile: /src/selinux/libsemanage/src/nodes_file.c
    functionUses: 0
    functionsReached:
    - dbase_file_init
    linkageType: ''
    returnType: int
    signature: "int node_file_dbase_init(semanage_handle_t *handle, const char *path_ro,\n\t\t\t
      const char *path_rw, dbase_config_t *dconfig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbase_file_release
      Src: /src/selinux/libsemanage/src/nodes_file.c:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dconfig
    argTypes:
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 175
    functionName: node_file_dbase_release
    functionSourceFile: /src/selinux/libsemanage/src/nodes_file.c
    functionUses: 0
    functionsReached:
    - dbase_file_release
    linkageType: ''
    returnType: void
    signature: void node_file_dbase_release(dbase_config_t *dconfig)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/libsemanage/src/compressed_file.c:52,1
    - Dst: fwrite
      Src: /src/selinux/libsemanage/src/compressed_file.c:57,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/compressed_file.c:58,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/compressed_file.c:61,1
    - Dst: BZ2_bzWriteOpen
      Src: /src/selinux/libsemanage/src/compressed_file.c:65,1
    - Dst: BZ2_bzWriteClose
      Src: /src/selinux/libsemanage/src/compressed_file.c:67,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/compressed_file.c:68,1
    - Dst: BZ2_bzWrite
      Src: /src/selinux/libsemanage/src/compressed_file.c:78,1
    - Dst: BZ2_bzWriteClose
      Src: /src/selinux/libsemanage/src/compressed_file.c:80,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/compressed_file.c:81,1
    - Dst: BZ2_bzWriteClose
      Src: /src/selinux/libsemanage/src/compressed_file.c:87,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/compressed_file.c:88,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 4
    argNames:
    - sh
    - filename
    - data
    - num_bytes
    argTypes:
    - semanage_handle_t*
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 93
    functionName: bzip
    functionSourceFile: /src/selinux/libsemanage/src/compressed_file.c
    functionUses: 0
    functionsReached:
    - fclose
    - fwrite
    - BZ2_bzWriteClose
    - fopen
    - BZ2_bzWrite
    - BZ2_bzWriteOpen
    linkageType: ''
    returnType: int
    signature: "int bzip(semanage_handle_t *sh, const char *filename, void *data,\n\t\tsize_t
      num_bytes)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/compressed_file.c:110,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/compressed_file.c:112,1
    - Dst: fread
      Src: /src/selinux/libsemanage/src/compressed_file.c:117,1
    - Dst: fseek
      Src: /src/selinux/libsemanage/src/compressed_file.c:119,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/compressed_file.c:120,1
    - Dst: memcmp
      Src: /src/selinux/libsemanage/src/compressed_file.c:125,1
    - Dst: BZ2_bzReadOpen
      Src: /src/selinux/libsemanage/src/compressed_file.c:129,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/compressed_file.c:131,1
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/compressed_file.c:135,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/compressed_file.c:137,1
    - Dst: BZ2_bzRead
      Src: /src/selinux/libsemanage/src/compressed_file.c:142,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/compressed_file.c:145,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/compressed_file.c:150,1
    - Dst: realloc
      Src: /src/selinux/libsemanage/src/compressed_file.c:154,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/compressed_file.c:156,1
    - Dst: memcpy
      Src: /src/selinux/libsemanage/src/compressed_file.c:161,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/compressed_file.c:166,1
    - Dst: BZ2_bzReadClose
      Src: /src/selinux/libsemanage/src/compressed_file.c:174,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/compressed_file.c:175,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/compressed_file.c:177,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 71
    argCount: 3
    argNames:
    - sh
    - f
    - data
    argTypes:
    - semanage_handle_t*
    - FILE*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 180
    functionName: bunzip
    functionSourceFile: /src/selinux/libsemanage/src/compressed_file.c
    functionUses: 0
    functionsReached:
    - ERR
    - BZ2_bzReadClose
    - malloc
    - realloc
    - free
    - memcmp
    - memcpy
    - BZ2_bzRead
    - fread
    - fseek
    - BZ2_bzReadOpen
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t bunzip(semanage_handle_t *sh, FILE *f, void **data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/selinux/libsemanage/src/compressed_file.c:190,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/compressed_file.c:192,1
    - Dst: fdopen
      Src: /src/selinux/libsemanage/src/compressed_file.c:196,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/compressed_file.c:198,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/compressed_file.c:199,1
    - Dst: bunzip
      Src: /src/selinux/libsemanage/src/compressed_file.c:203,1
    - Dst: fstat
      Src: /src/selinux/libsemanage/src/compressed_file.c:209,1
    - Dst: mmap
      Src: /src/selinux/libsemanage/src/compressed_file.c:210,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/compressed_file.c:219,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - sh
    - path
    - contents
    argTypes:
    - semanage_handle_t*
    - char*
    - struct file_contents*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 221
    functionName: map_compressed_file
    functionSourceFile: /src/selinux/libsemanage/src/compressed_file.c
    functionUses: 0
    functionsReached:
    - ERR
    - fclose
    - close
    - mmap
    - open
    - fstat
    - bunzip
    - fdopen
    linkageType: ''
    returnType: int
    signature: "int map_compressed_file(semanage_handle_t *sh, const char *path,\n\t\t\tstruct
      file_contents *contents)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsemanage/src/compressed_file.c:229,1
    - Dst: munmap
      Src: /src/selinux/libsemanage/src/compressed_file.c:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - contents
    argTypes:
    - struct file_contents*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 233
    functionName: unmap_compressed_file
    functionSourceFile: /src/selinux/libsemanage/src/compressed_file.c
    functionUses: 0
    functionsReached:
    - munmap
    - free
    linkageType: ''
    returnType: void
    signature: void unmap_compressed_file(struct file_contents *contents)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bzip
      Src: /src/selinux/libsemanage/src/compressed_file.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - sh
    - path
    - data
    - len
    argTypes:
    - semanage_handle_t*
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 239
    functionName: write_compressed_file
    functionSourceFile: /src/selinux/libsemanage/src/compressed_file.c
    functionUses: 0
    functionsReached:
    - bzip
    linkageType: ''
    returnType: int
    signature: "int write_compressed_file(semanage_handle_t *sh, const char *path,
      void *data,\n\t\t\t  size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibendport_dbase_local
      Src: /src/selinux/libsemanage/src/ibendports_local.c:21,1
    - Dst: dbase_modify
      Src: /src/selinux/libsemanage/src/ibendports_local.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - data
    argTypes:
    - semanage_handle_t*
    - semanage_ibendport_key_t*
    - semanage_ibendport_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: semanage_ibendport_modify_local
    functionSourceFile: /src/selinux/libsemanage/src/ibendports_local.c
    functionUses: 2
    functionsReached:
    - semanage_ibendport_dbase_local
    - dbase_modify
    linkageType: ''
    returnType: int
    signature: "int semanage_ibendport_modify_local(semanage_handle_t *handle,\n\t\t\t\t
      \   const semanage_ibendport_key_t *key,\n\t\t\t\t    const semanage_ibendport_t
      *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibendport_dbase_local
      Src: /src/selinux/libsemanage/src/ibendports_local.c:29,1
    - Dst: dbase_del
      Src: /src/selinux/libsemanage/src/ibendports_local.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - key
    argTypes:
    - semanage_handle_t*
    - semanage_ibendport_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: semanage_ibendport_del_local
    functionSourceFile: /src/selinux/libsemanage/src/ibendports_local.c
    functionUses: 3
    functionsReached:
    - semanage_ibendport_dbase_local
    - dbase_del
    linkageType: ''
    returnType: int
    signature: "int semanage_ibendport_del_local(semanage_handle_t *handle,\n\t\t\t\t
      const semanage_ibendport_key_t *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibendport_dbase_local
      Src: /src/selinux/libsemanage/src/ibendports_local.c:38,1
    - Dst: dbase_query
      Src: /src/selinux/libsemanage/src/ibendports_local.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_ibendport_key_t*
    - semanage_ibendport_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: semanage_ibendport_query_local
    functionSourceFile: /src/selinux/libsemanage/src/ibendports_local.c
    functionUses: 1
    functionsReached:
    - semanage_ibendport_dbase_local
    - dbase_query
    linkageType: ''
    returnType: int
    signature: "int semanage_ibendport_query_local(semanage_handle_t *handle,\n\t\t\t\t
      \  const semanage_ibendport_key_t *key,\n\t\t\t\t   semanage_ibendport_t **response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibendport_dbase_local
      Src: /src/selinux/libsemanage/src/ibendports_local.c:47,1
    - Dst: dbase_exists
      Src: /src/selinux/libsemanage/src/ibendports_local.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_ibendport_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: semanage_ibendport_exists_local
    functionSourceFile: /src/selinux/libsemanage/src/ibendports_local.c
    functionUses: 1
    functionsReached:
    - dbase_exists
    - semanage_ibendport_dbase_local
    linkageType: ''
    returnType: int
    signature: "int semanage_ibendport_exists_local(semanage_handle_t *handle,\n\t\t\t\t
      \   const semanage_ibendport_key_t *key,\n\t\t\t\t    int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibendport_dbase_local
      Src: /src/selinux/libsemanage/src/ibendports_local.c:55,1
    - Dst: dbase_count
      Src: /src/selinux/libsemanage/src/ibendports_local.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - response
    argTypes:
    - semanage_handle_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: semanage_ibendport_count_local
    functionSourceFile: /src/selinux/libsemanage/src/ibendports_local.c
    functionUses: 1
    functionsReached:
    - semanage_ibendport_dbase_local
    - dbase_count
    linkageType: ''
    returnType: int
    signature: "int semanage_ibendport_count_local(semanage_handle_t *handle,\n\t\t\t\t
      \  unsigned int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibendport_dbase_local
      Src: /src/selinux/libsemanage/src/ibendports_local.c:65,1
    - Dst: dbase_iterate
      Src: /src/selinux/libsemanage/src/ibendports_local.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - handler_arg
    argTypes:
    - semanage_handle_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: semanage_ibendport_iterate_local
    functionSourceFile: /src/selinux/libsemanage/src/ibendports_local.c
    functionUses: 1
    functionsReached:
    - semanage_ibendport_dbase_local
    - dbase_iterate
    linkageType: ''
    returnType: int
    signature: "int semanage_ibendport_iterate_local(\n\tsemanage_handle_t *handle,\n\tint
      (*handler)(const semanage_ibendport_t *record, void *varg),\n\tvoid *handler_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibendport_dbase_local
      Src: /src/selinux/libsemanage/src/ibendports_local.c:73,1
    - Dst: dbase_list
      Src: /src/selinux/libsemanage/src/ibendports_local.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - records
    - count
    argTypes:
    - semanage_handle_t*
    - semanage_ibendport_t***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: semanage_ibendport_list_local
    functionSourceFile: /src/selinux/libsemanage/src/ibendports_local.c
    functionUses: 1
    functionsReached:
    - semanage_ibendport_dbase_local
    - dbase_list
    linkageType: ''
    returnType: int
    signature: "int semanage_ibendport_list_local(semanage_handle_t *handle,\n\t\t\t\t
      \ semanage_ibendport_t ***records,\n\t\t\t\t  unsigned int *count)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibendport_list_local
      Src: /src/selinux/libsemanage/src/ibendports_local.c:89,1
    - Dst: qsort
      Src: /src/selinux/libsemanage/src/ibendports_local.c:94,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ibendports_local.c:101,1
    - Dst: semanage_ibendport_get_ibdev_name
      Src: /src/selinux/libsemanage/src/ibendports_local.c:104,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/ibendports_local.c:106,1
    - Dst: semanage_ibendport_get_port
      Src: /src/selinux/libsemanage/src/ibendports_local.c:110,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ibendports_local.c:119,1
    - Dst: semanage_ibendport_get_ibdev_name
      Src: /src/selinux/libsemanage/src/ibendports_local.c:122,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/ibendports_local.c:124,1
    - Dst: semanage_ibendport_get_port
      Src: /src/selinux/libsemanage/src/ibendports_local.c:127,1
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/ibendports_local.c:129,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/ibendports_local.c:133,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ibendports_local.c:142,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ibendports_local.c:143,1
    - Dst: semanage_ibendport_free
      Src: /src/selinux/libsemanage/src/ibendports_local.c:145,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ibendports_local.c:146,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/ibendports_local.c:150,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ibendports_local.c:153,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ibendports_local.c:154,1
    - Dst: semanage_ibendport_free
      Src: /src/selinux/libsemanage/src/ibendports_local.c:156,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ibendports_local.c:157,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 159
    functionName: semanage_ibendport_validate_local
    functionSourceFile: /src/selinux/libsemanage/src/ibendports_local.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_ibendport_list_local
    - semanage_ibendport_get_ibdev_name
    - semanage_ibendport_free
    - strcmp
    - semanage_ibendport_get_port
    - qsort
    - free
    linkageType: ''
    returnType: int
    signature: int semanage_ibendport_validate_local(semanage_handle_t *handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_policydb_init
      Src: /src/selinux/libsemanage/src/users_base_policydb.c:51,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/users_base_policydb.c:53,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/users_base_policydb.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - handle
    - dconfig
    argTypes:
    - semanage_handle_t*
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 61
    functionName: user_base_policydb_dbase_init
    functionSourceFile: /src/selinux/libsemanage/src/users_base_policydb.c
    functionUses: 0
    functionsReached:
    - dbase_policydb_init
    - semanage_path
    linkageType: ''
    returnType: int
    signature: "int user_base_policydb_dbase_init(semanage_handle_t *handle,\n\t\t\t\t
      \ dbase_config_t *dconfig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbase_policydb_release
      Src: /src/selinux/libsemanage/src/users_base_policydb.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dconfig
    argTypes:
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: user_base_policydb_dbase_release
    functionSourceFile: /src/selinux/libsemanage/src/users_base_policydb.c
    functionUses: 0
    functionsReached:
    - dbase_policydb_release
    linkageType: ''
    returnType: void
    signature: void user_base_policydb_dbase_release(dbase_config_t *dconfig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsemanage/src/handle.c:46,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/handle.c:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - root
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 51
    functionName: semanage_set_root
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 3
    functionsReached:
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: int semanage_set_root(const char *root)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: semanage_root
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *semanage_root(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsemanage/src/handle.c:66,1
    - Dst: semanage_conf_parse
      Src: /src/selinux/libsemanage/src/handle.c:69,1
    - Dst: sepol_handle_create
      Src: /src/selinux/libsemanage/src/handle.c:73,1
    - Dst: sepol_msg_set_callback
      Src: /src/selinux/libsemanage/src/handle.c:76,1
    - Dst: is_selinux_enabled
      Src: /src/selinux/libsemanage/src/handle.c:88,1
    - Dst: semanage_handle_destroy
      Src: /src/selinux/libsemanage/src/handle.c:106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - conf_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 108
    functionName: semanage_handle_create_with_path
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 1
    functionsReached:
    - sepol_handle_create
    - sepol_msg_set_callback
    - calloc
    - semanage_conf_parse
    - is_selinux_enabled
    - semanage_handle_destroy
    linkageType: ''
    returnType: semanage_handle_t
    signature: semanage_handle_t *semanage_handle_create_with_path(const char *conf_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: semanage_conf_path
      Src: /src/selinux/libsemanage/src/handle.c:115,1
    - Dst: semanage_handle_create_with_path
      Src: /src/selinux/libsemanage/src/handle.c:118,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/handle.c:121,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/handle.c:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 128
    functionName: semanage_handle_create
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 6
    functionsReached:
    - free
    - semanage_conf_path
    - semanage_handle_create_with_path
    linkageType: ''
    returnType: semanage_handle_t
    signature: semanage_handle_t *semanage_handle_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sh
    - do_rebuild
    argTypes:
    - semanage_handle_t*
    - int
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/selinux/libsemanage/src/handle.c
    constantsTouched: []
    func_position:
      end: 135
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: semanage_set_rebuild
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void semanage_set_rebuild(semanage_handle_t *sh, int do_rebuild)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sh
    - do_reload
    argTypes:
    - semanage_handle_t*
    - int
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/selinux/libsemanage/src/handle.c
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: semanage_set_reload
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void semanage_set_reload(semanage_handle_t *sh, int do_reload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sh
    - do_check
    argTypes:
    - semanage_handle_t*
    - int
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 145
        line_start: 145
        source_file: /src/selinux/libsemanage/src/handle.c
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: semanage_set_check_ext_changes
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void semanage_set_check_ext_changes(semanage_handle_t *sh, int do_check)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:159,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:160,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/handle.c:162,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/handle.c:164,1
    - Dst: tolower
      Src: /src/selinux/libsemanage/src/handle.c:170,1
    - Dst: asprintf
      Src: /src/selinux/libsemanage/src/handle.c:173,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/handle.c:175,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/handle.c:184,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - sh
    - lang_ext
    - compiler_path
    argTypes:
    - semanage_handle_t*
    - char*
    - char**
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/selinux/libsemanage/src/handle.c
    - condition: (lang_ext != NULL)
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/selinux/libsemanage/src/handle.c
    constantsTouched: []
    func_position:
      end: 186
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 186
    functionName: semanage_get_hll_compiler_path
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 0
    functionsReached:
    - ERR
    - asprintf
    - assert
    - free
    - tolower
    - strdup
    linkageType: ''
    returnType: int
    signature: "int semanage_get_hll_compiler_path(semanage_handle_t *sh, const char
      *lang_ext,\n\t\t\t\t   char **compiler_path)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sh
    - create_store
    argTypes:
    - semanage_handle_t*
    - int
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/selinux/libsemanage/src/handle.c
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: semanage_set_create_store
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void semanage_set_create_store(semanage_handle_t *sh, int create_store)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:197,1
    - Dst: sepol_get_disable_dontaudit
      Src: /src/selinux/libsemanage/src/handle.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 196
        line_start: 196
        source_file: /src/selinux/libsemanage/src/handle.c
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 200
    functionName: semanage_get_disable_dontaudit
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 0
    functionsReached:
    - sepol_get_disable_dontaudit
    - assert
    linkageType: ''
    returnType: int
    signature: int semanage_get_disable_dontaudit(semanage_handle_t *sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:205,1
    - Dst: sepol_set_disable_dontaudit
      Src: /src/selinux/libsemanage/src/handle.c:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sh
    - disable_dontaudit
    argTypes:
    - semanage_handle_t*
    - int
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/selinux/libsemanage/src/handle.c
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: semanage_set_disable_dontaudit
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 1
    functionsReached:
    - sepol_set_disable_dontaudit
    - assert
    linkageType: ''
    returnType: void
    signature: "void semanage_set_disable_dontaudit(semanage_handle_t *sh,\n\t\t\t\t
      \   int disable_dontaudit)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:212,1
    - Dst: sepol_get_preserve_tunables
      Src: /src/selinux/libsemanage/src/handle.c:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 211
        line_start: 211
        source_file: /src/selinux/libsemanage/src/handle.c
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: semanage_get_preserve_tunables
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 0
    functionsReached:
    - sepol_get_preserve_tunables
    - assert
    linkageType: ''
    returnType: int
    signature: int semanage_get_preserve_tunables(semanage_handle_t *sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:219,1
    - Dst: sepol_set_preserve_tunables
      Src: /src/selinux/libsemanage/src/handle.c:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sh
    - preserve_tunables
    argTypes:
    - semanage_handle_t*
    - int
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 218
        line_start: 218
        source_file: /src/selinux/libsemanage/src/handle.c
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: semanage_set_preserve_tunables
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 1
    functionsReached:
    - sepol_set_preserve_tunables
    - assert
    linkageType: ''
    returnType: void
    signature: "void semanage_set_preserve_tunables(semanage_handle_t *sh,\n\t\t\t\t
      \   int preserve_tunables)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 224
        line_start: 224
        source_file: /src/selinux/libsemanage/src/handle.c
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: semanage_get_ignore_module_cache
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int semanage_get_ignore_module_cache(semanage_handle_t *sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sh
    - ignore_module_cache
    argTypes:
    - semanage_handle_t*
    - int
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/selinux/libsemanage/src/handle.c
    constantsTouched: []
    func_position:
      end: 234
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 234
    functionName: semanage_set_ignore_module_cache
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: "void semanage_set_ignore_module_cache(semanage_handle_t *sh,\n\t\t\t\t
      \     int ignore_module_cache)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sh
    - do_check_contexts
    argTypes:
    - semanage_handle_t*
    - int
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 237
        line_start: 237
        source_file: /src/selinux/libsemanage/src/handle.c
    constantsTouched: []
    func_position:
      end: 241
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 241
    functionName: semanage_set_check_contexts
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void semanage_set_check_contexts(semanage_handle_t *sh, int do_check_contexts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 244
        line_start: 244
        source_file: /src/selinux/libsemanage/src/handle.c
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: semanage_get_default_priority
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t semanage_get_default_priority(semanage_handle_t *sh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:251,1
    - Dst: semanage_module_validate_priority
      Src: /src/selinux/libsemanage/src/handle.c:254,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/handle.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sh
    - priority
    argTypes:
    - semanage_handle_t*
    - uint16_t
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 250
        line_start: 250
        source_file: /src/selinux/libsemanage/src/handle.c
    constantsTouched: []
    func_position:
      end: 261
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 261
    functionName: semanage_set_default_priority
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 1
    functionsReached:
    - semanage_module_validate_priority
    - ERR
    - assert
    linkageType: ''
    returnType: int
    signature: int semanage_set_default_priority(semanage_handle_t *sh, uint16_t priority)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/selinux/libsemanage/src/handle.c
    constantsTouched: []
    func_position:
      end: 267
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 267
    functionName: semanage_is_connected
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 2
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: int semanage_is_connected(semanage_handle_t *sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:272,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/handle.c:276,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/handle.c:277,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - sh
    - storename
    - storetype
    argTypes:
    - semanage_handle_t*
    - char*
    - enum semanage_connect_type
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/selinux/libsemanage/src/handle.c
    - condition: (sh->conf->store_path)
      pos:
        line_end: 277
        line_start: 277
        source_file: /src/selinux/libsemanage/src/handle.c
    constantsTouched: []
    func_position:
      end: 280
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 280
    functionName: semanage_select_store
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 4
    functionsReached:
    - free
    - assert
    - strdup
    linkageType: ''
    returnType: void
    signature: "void semanage_select_store(semanage_handle_t *sh, const char *storename,\n\t\t\t
      \  enum semanage_connect_type storetype)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:284,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/handle.c:286,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/handle.c:287,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - sh
    - store_root
    argTypes:
    - semanage_handle_t*
    - char*
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 283
        line_start: 283
        source_file: /src/selinux/libsemanage/src/handle.c
    - condition: (sh->conf->store_root_path)
      pos:
        line_end: 287
        line_start: 287
        source_file: /src/selinux/libsemanage/src/handle.c
    constantsTouched: []
    func_position:
      end: 289
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 289
    functionName: semanage_set_store_root
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 2
    functionsReached:
    - free
    - assert
    - strdup
    linkageType: ''
    returnType: void
    signature: void semanage_set_store_root(semanage_handle_t *sh, const char *store_root)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:293,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/handle.c:295,1
    - Dst: semanage_direct_is_managed
      Src: /src/selinux/libsemanage/src/handle.c:300,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/handle.c:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/selinux/libsemanage/src/handle.c
    constantsTouched: []
    func_position:
      end: 307
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 307
    functionName: semanage_is_managed
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 2
    functionsReached:
    - ERR
    - assert
    - semanage_direct_is_managed
    linkageType: ''
    returnType: int
    signature: int semanage_is_managed(semanage_handle_t *sh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:311,1
    - Dst: semanage_direct_mls_enabled
      Src: /src/selinux/libsemanage/src/handle.c:314,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/handle.c:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/selinux/libsemanage/src/handle.c
    constantsTouched: []
    func_position:
      end: 321
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 321
    functionName: semanage_mls_enabled
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 2
    functionsReached:
    - ERR
    - semanage_direct_mls_enabled
    - assert
    linkageType: ''
    returnType: int
    signature: int semanage_mls_enabled(semanage_handle_t *sh)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:325,1
    - Dst: semanage_direct_connect
      Src: /src/selinux/libsemanage/src/handle.c:328,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/handle.c:334,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 324
        line_start: 324
        source_file: /src/selinux/libsemanage/src/handle.c
    constantsTouched: []
    func_position:
      end: 341
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 341
    functionName: semanage_connect
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 6
    functionsReached:
    - ERR
    - semanage_direct_connect
    - assert
    linkageType: ''
    returnType: int
    signature: int semanage_connect(semanage_handle_t *sh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:345,1
    - Dst: semanage_direct_access_check
      Src: /src/selinux/libsemanage/src/handle.c:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 344
        line_start: 344
        source_file: /src/selinux/libsemanage/src/handle.c
    constantsTouched: []
    func_position:
      end: 352
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 352
    functionName: semanage_access_check
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 1
    functionsReached:
    - semanage_direct_access_check
    - assert
    linkageType: ''
    returnType: int
    signature: int semanage_access_check(semanage_handle_t *sh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:356,1
    - Dst: semanage_handle_t*::funcs::disconnect
      Src: /src/selinux/libsemanage/src/handle.c:360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts:
    - condition: (sh != NULL)
      pos:
        line_end: 355
        line_start: 355
        source_file: /src/selinux/libsemanage/src/handle.c
    constantsTouched: []
    func_position:
      end: 367
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 367
    functionName: semanage_disconnect
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 6
    functionsReached:
    - semanage_handle_t*::funcs::disconnect
    - assert
    linkageType: ''
    returnType: int
    signature: int semanage_disconnect(semanage_handle_t *sh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: semanage_handle_t*::funcs::destroy
      Src: /src/selinux/libsemanage/src/handle.c:375,1
    - Dst: semanage_conf_destroy
      Src: /src/selinux/libsemanage/src/handle.c:376,1
    - Dst: sepol_handle_destroy
      Src: /src/selinux/libsemanage/src/handle.c:377,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/handle.c:378,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 379
    functionName: semanage_handle_destroy
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 7
    functionsReached:
    - semanage_handle_t*::funcs::destroy
    - sepol_handle_destroy
    - free
    - semanage_conf_destroy
    linkageType: ''
    returnType: void
    signature: void semanage_handle_destroy(semanage_handle_t *sh)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:384,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/handle.c:387,1
    - Dst: semanage_handle_t*::funcs::begin_trans
      Src: /src/selinux/libsemanage/src/handle.c:394,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts:
    - condition: "(sh != NULL && sh->funcs != NULL &&\n\t       sh->funcs->begin_trans
        != NULL)"
      pos:
        line_end: 384
        line_start: 383
        source_file: /src/selinux/libsemanage/src/handle.c
    constantsTouched: []
    func_position:
      end: 399
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 399
    functionName: semanage_begin_transaction
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 4
    functionsReached:
    - ERR
    - assert
    - semanage_handle_t*::funcs::begin_trans
    linkageType: ''
    returnType: int
    signature: int semanage_begin_transaction(semanage_handle_t *sh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/handle.c:404,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/handle.c:406,1
    - Dst: semanage_handle_t*::funcs::commit
      Src: /src/selinux/libsemanage/src/handle.c:410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts:
    - condition: (sh != NULL && sh->funcs != NULL && sh->funcs->commit != NULL)
      pos:
        line_end: 403
        line_start: 403
        source_file: /src/selinux/libsemanage/src/handle.c
    constantsTouched: []
    func_position:
      end: 414
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 414
    functionName: semanage_commit
    functionSourceFile: /src/selinux/libsemanage/src/handle.c
    functionUses: 6
    functionsReached:
    - ERR
    - semanage_handle_t*::funcs::commit
    - assert
    linkageType: ''
    returnType: int
    signature: int semanage_commit(semanage_handle_t *sh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_policydb_init
      Src: /src/selinux/libsemanage/src/interfaces_policydb.c:52,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/interfaces_policydb.c:54,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/interfaces_policydb.c:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - handle
    - dconfig
    argTypes:
    - semanage_handle_t*
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 62
    functionName: iface_policydb_dbase_init
    functionSourceFile: /src/selinux/libsemanage/src/interfaces_policydb.c
    functionUses: 0
    functionsReached:
    - dbase_policydb_init
    - semanage_path
    linkageType: ''
    returnType: int
    signature: "int iface_policydb_dbase_init(semanage_handle_t *handle,\n\t\t\t      dbase_config_t
      *dconfig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbase_policydb_release
      Src: /src/selinux/libsemanage/src/interfaces_policydb.c:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dconfig
    argTypes:
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: iface_policydb_dbase_release
    functionSourceFile: /src/selinux/libsemanage/src/interfaces_policydb.c
    functionUses: 0
    functionsReached:
    - dbase_policydb_release
    linkageType: ''
    returnType: void
    signature: void iface_policydb_dbase_release(dbase_config_t *dconfig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibpkey_dbase_local
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:21,1
    - Dst: dbase_modify
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - data
    argTypes:
    - semanage_handle_t*
    - semanage_ibpkey_key_t*
    - semanage_ibpkey_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: semanage_ibpkey_modify_local
    functionSourceFile: /src/selinux/libsemanage/src/ibpkeys_local.c
    functionUses: 0
    functionsReached:
    - dbase_modify
    - semanage_ibpkey_dbase_local
    linkageType: ''
    returnType: int
    signature: "int semanage_ibpkey_modify_local(semanage_handle_t *handle,\n\t\t\t\t
      const semanage_ibpkey_key_t *key,\n\t\t\t\t const semanage_ibpkey_t *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibpkey_dbase_local
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:29,1
    - Dst: dbase_del
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - key
    argTypes:
    - semanage_handle_t*
    - semanage_ibpkey_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: semanage_ibpkey_del_local
    functionSourceFile: /src/selinux/libsemanage/src/ibpkeys_local.c
    functionUses: 0
    functionsReached:
    - semanage_ibpkey_dbase_local
    - dbase_del
    linkageType: ''
    returnType: int
    signature: "int semanage_ibpkey_del_local(semanage_handle_t *handle,\n\t\t\t      const
      semanage_ibpkey_key_t *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibpkey_dbase_local
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:38,1
    - Dst: dbase_query
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_ibpkey_key_t*
    - semanage_ibpkey_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: semanage_ibpkey_query_local
    functionSourceFile: /src/selinux/libsemanage/src/ibpkeys_local.c
    functionUses: 0
    functionsReached:
    - semanage_ibpkey_dbase_local
    - dbase_query
    linkageType: ''
    returnType: int
    signature: "int semanage_ibpkey_query_local(semanage_handle_t *handle,\n\t\t\t\tconst
      semanage_ibpkey_key_t *key,\n\t\t\t\tsemanage_ibpkey_t **response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibpkey_dbase_local
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:47,1
    - Dst: dbase_exists
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_ibpkey_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: semanage_ibpkey_exists_local
    functionSourceFile: /src/selinux/libsemanage/src/ibpkeys_local.c
    functionUses: 0
    functionsReached:
    - dbase_exists
    - semanage_ibpkey_dbase_local
    linkageType: ''
    returnType: int
    signature: "int semanage_ibpkey_exists_local(semanage_handle_t *handle,\n\t\t\t\t
      const semanage_ibpkey_key_t *key,\n\t\t\t\t int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibpkey_dbase_local
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:55,1
    - Dst: dbase_count
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - response
    argTypes:
    - semanage_handle_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: semanage_ibpkey_count_local
    functionSourceFile: /src/selinux/libsemanage/src/ibpkeys_local.c
    functionUses: 0
    functionsReached:
    - dbase_count
    - semanage_ibpkey_dbase_local
    linkageType: ''
    returnType: int
    signature: "int semanage_ibpkey_count_local(semanage_handle_t *handle,\n\t\t\t\tunsigned
      int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibpkey_dbase_local
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:65,1
    - Dst: dbase_iterate
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - handler_arg
    argTypes:
    - semanage_handle_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: semanage_ibpkey_iterate_local
    functionSourceFile: /src/selinux/libsemanage/src/ibpkeys_local.c
    functionUses: 0
    functionsReached:
    - semanage_ibpkey_dbase_local
    - dbase_iterate
    linkageType: ''
    returnType: int
    signature: "int semanage_ibpkey_iterate_local(\n\tsemanage_handle_t *handle,\n\tint
      (*handler)(const semanage_ibpkey_t *record, void *varg),\n\tvoid *handler_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibpkey_dbase_local
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:74,1
    - Dst: dbase_list
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - records
    - count
    argTypes:
    - semanage_handle_t*
    - semanage_ibpkey_t***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: semanage_ibpkey_list_local
    functionSourceFile: /src/selinux/libsemanage/src/ibpkeys_local.c
    functionUses: 0
    functionsReached:
    - semanage_ibpkey_dbase_local
    - dbase_list
    linkageType: ''
    returnType: int
    signature: "int semanage_ibpkey_list_local(semanage_handle_t *handle,\n\t\t\t
      \      semanage_ibpkey_t ***records,\n\t\t\t       unsigned int *count)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibpkey_list_local
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:92,1
    - Dst: qsort
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:96,1
    - Dst: semanage_ibpkey_get_subnet_prefix
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:102,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:104,1
    - Dst: semanage_ibpkey_get_subnet_prefix_bytes
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:109,1
    - Dst: semanage_ibpkey_get_low
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:110,1
    - Dst: semanage_ibpkey_get_high
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:111,1
    - Dst: semanage_ibpkey_get_subnet_prefix
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:122,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:124,1
    - Dst: semanage_ibpkey_get_subnet_prefix_bytes
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:129,1
    - Dst: semanage_ibpkey_get_low
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:131,1
    - Dst: semanage_ibpkey_get_high
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:132,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:137,1
    - Dst: semanage_ibpkey_free
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:156,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:157,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:161,1
    - Dst: semanage_ibpkey_free
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:165,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ibpkeys_local.c:166,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 168
    functionName: semanage_ibpkey_validate_local
    functionSourceFile: /src/selinux/libsemanage/src/ibpkeys_local.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_ibpkey_get_subnet_prefix_bytes
    - semanage_ibpkey_free
    - semanage_ibpkey_get_subnet_prefix
    - semanage_ibpkey_list_local
    - qsort
    - semanage_ibpkey_get_low
    - free
    - semanage_ibpkey_get_high
    linkageType: ''
    returnType: int
    signature: int semanage_ibpkey_validate_local(semanage_handle_t *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_compare
      Src: /src/selinux/libsemanage/src/port_record.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - port
    - key
    argTypes:
    - semanage_port_t*
    - semanage_port_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: semanage_port_compare
    functionSourceFile: /src/selinux/libsemanage/src/port_record.c
    functionUses: 1
    functionsReached:
    - sepol_port_compare
    linkageType: ''
    returnType: int
    signature: "int semanage_port_compare(const semanage_port_t *port,\n\t\t\t  const
      semanage_port_key_t *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_compare2
      Src: /src/selinux/libsemanage/src/port_record.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - port
    - port2
    argTypes:
    - semanage_port_t*
    - semanage_port_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: semanage_port_compare2
    functionSourceFile: /src/selinux/libsemanage/src/port_record.c
    functionUses: 1
    functionsReached:
    - sepol_port_compare2
    linkageType: ''
    returnType: int
    signature: "int semanage_port_compare2(const semanage_port_t *port,\n\t\t\t   const
      semanage_port_t *port2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_compare2
      Src: /src/selinux/libsemanage/src/port_record.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: semanage_port_compare2_qsort
    functionSourceFile: /src/selinux/libsemanage/src/port_record.c
    functionUses: 0
    functionsReached:
    - sepol_port_compare2
    linkageType: ''
    returnType: int
    signature: int semanage_port_compare2_qsort(const void *p1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_key_create
      Src: /src/selinux/libsemanage/src/port_record.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - handle
    - low
    - high
    - proto
    - key_ptr
    argTypes:
    - semanage_handle_t*
    - int
    - int
    - int
    - semanage_port_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: semanage_port_key_create
    functionSourceFile: /src/selinux/libsemanage/src/port_record.c
    functionUses: 3
    functionsReached:
    - sepol_port_key_create
    linkageType: ''
    returnType: int
    signature: "int semanage_port_key_create(semanage_handle_t *handle, int low, int
      high,\n\t\t\t     int proto, semanage_port_key_t **key_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_key_extract
      Src: /src/selinux/libsemanage/src/port_record.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - port
    - key_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_port_t*
    - semanage_port_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: semanage_port_key_extract
    functionSourceFile: /src/selinux/libsemanage/src/port_record.c
    functionUses: 4
    functionsReached:
    - sepol_port_key_extract
    linkageType: ''
    returnType: int
    signature: "int semanage_port_key_extract(semanage_handle_t *handle,\n\t\t\t      const
      semanage_port_t *port,\n\t\t\t      semanage_port_key_t **key_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_key_free
      Src: /src/selinux/libsemanage/src/port_record.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - semanage_port_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: semanage_port_key_free
    functionSourceFile: /src/selinux/libsemanage/src/port_record.c
    functionUses: 12
    functionsReached:
    - sepol_port_key_free
    linkageType: ''
    returnType: void
    signature: void semanage_port_key_free(semanage_port_key_t *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_get_proto
      Src: /src/selinux/libsemanage/src/port_record.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - semanage_port_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: semanage_port_get_proto
    functionSourceFile: /src/selinux/libsemanage/src/port_record.c
    functionUses: 5
    functionsReached:
    - sepol_port_get_proto
    linkageType: ''
    returnType: int
    signature: int semanage_port_get_proto(const semanage_port_t *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_set_proto
      Src: /src/selinux/libsemanage/src/port_record.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - port
    - proto
    argTypes:
    - semanage_port_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: semanage_port_set_proto
    functionSourceFile: /src/selinux/libsemanage/src/port_record.c
    functionUses: 3
    functionsReached:
    - sepol_port_set_proto
    linkageType: ''
    returnType: void
    signature: void semanage_port_set_proto(semanage_port_t *port, int proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_get_proto_str
      Src: /src/selinux/libsemanage/src/port_record.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proto
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: semanage_port_get_proto_str
    functionSourceFile: /src/selinux/libsemanage/src/port_record.c
    functionUses: 1
    functionsReached:
    - sepol_port_get_proto_str
    linkageType: ''
    returnType: char
    signature: char *semanage_port_get_proto_str(int proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_get_low
      Src: /src/selinux/libsemanage/src/port_record.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - semanage_port_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: semanage_port_get_low
    functionSourceFile: /src/selinux/libsemanage/src/port_record.c
    functionUses: 5
    functionsReached:
    - sepol_port_get_low
    linkageType: ''
    returnType: int
    signature: int semanage_port_get_low(const semanage_port_t *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_get_high
      Src: /src/selinux/libsemanage/src/port_record.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - semanage_port_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: semanage_port_get_high
    functionSourceFile: /src/selinux/libsemanage/src/port_record.c
    functionUses: 5
    functionsReached:
    - sepol_port_get_high
    linkageType: ''
    returnType: int
    signature: int semanage_port_get_high(const semanage_port_t *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_set_port
      Src: /src/selinux/libsemanage/src/port_record.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - port
    - port_num
    argTypes:
    - semanage_port_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: semanage_port_set_port
    functionSourceFile: /src/selinux/libsemanage/src/port_record.c
    functionUses: 1
    functionsReached:
    - sepol_port_set_port
    linkageType: ''
    returnType: void
    signature: void semanage_port_set_port(semanage_port_t *port, int port_num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_set_range
      Src: /src/selinux/libsemanage/src/port_record.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - port
    - low
    - high
    argTypes:
    - semanage_port_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: semanage_port_set_range
    functionSourceFile: /src/selinux/libsemanage/src/port_record.c
    functionUses: 3
    functionsReached:
    - sepol_port_set_range
    linkageType: ''
    returnType: void
    signature: void semanage_port_set_range(semanage_port_t *port, int low, int high)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_get_con
      Src: /src/selinux/libsemanage/src/port_record.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - semanage_port_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: semanage_port_get_con
    functionSourceFile: /src/selinux/libsemanage/src/port_record.c
    functionUses: 6
    functionsReached:
    - sepol_port_get_con
    linkageType: ''
    returnType: semanage_context_t
    signature: semanage_context_t *semanage_port_get_con(const semanage_port_t *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_set_con
      Src: /src/selinux/libsemanage/src/port_record.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - port
    - con
    argTypes:
    - semanage_handle_t*
    - semanage_port_t*
    - semanage_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: semanage_port_set_con
    functionSourceFile: /src/selinux/libsemanage/src/port_record.c
    functionUses: 4
    functionsReached:
    - sepol_port_set_con
    linkageType: ''
    returnType: int
    signature: "int semanage_port_set_con(semanage_handle_t *handle, semanage_port_t
      *port,\n\t\t\t  semanage_context_t *con)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_create
      Src: /src/selinux/libsemanage/src/port_record.c:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - port_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_port_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: semanage_port_create
    functionSourceFile: /src/selinux/libsemanage/src/port_record.c
    functionUses: 3
    functionsReached:
    - sepol_port_create
    linkageType: ''
    returnType: int
    signature: int semanage_port_create(semanage_handle_t *handle, semanage_port_t
      **port_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_clone
      Src: /src/selinux/libsemanage/src/port_record.c:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - port
    - port_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_port_t*
    - semanage_port_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: semanage_port_clone
    functionSourceFile: /src/selinux/libsemanage/src/port_record.c
    functionUses: 1
    functionsReached:
    - sepol_port_clone
    linkageType: ''
    returnType: int
    signature: "int semanage_port_clone(semanage_handle_t *handle, const semanage_port_t
      *port,\n\t\t\tsemanage_port_t **port_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_port_free
      Src: /src/selinux/libsemanage/src/port_record.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - port
    argTypes:
    - semanage_port_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: semanage_port_free
    functionSourceFile: /src/selinux/libsemanage/src/port_record.c
    functionUses: 17
    functionsReached:
    - sepol_port_free
    linkageType: ''
    returnType: void
    signature: void semanage_port_free(semanage_port_t *port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_key_extract
      Src: /src/selinux/libsemanage/src/user_base_record.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - user
    - key
    argTypes:
    - semanage_handle_t*
    - semanage_user_base_t*
    - semanage_user_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 33
    functionName: semanage_user_base_key_extract
    functionSourceFile: /src/selinux/libsemanage/src/user_base_record.c
    functionUses: 0
    functionsReached:
    - sepol_user_key_extract
    linkageType: ''
    returnType: int
    signature: "int semanage_user_base_key_extract(semanage_handle_t *handle,\n\t\t\t\t
      \  const semanage_user_base_t *user,\n\t\t\t\t   semanage_user_key_t **key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_compare
      Src: /src/selinux/libsemanage/src/user_base_record.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - user
    - key
    argTypes:
    - semanage_user_base_t*
    - semanage_user_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: semanage_user_base_compare
    functionSourceFile: /src/selinux/libsemanage/src/user_base_record.c
    functionUses: 0
    functionsReached:
    - sepol_user_compare
    linkageType: ''
    returnType: int
    signature: "int semanage_user_base_compare(const semanage_user_base_t *user,\n\t\t\t\t
      \     const semanage_user_key_t *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_compare2
      Src: /src/selinux/libsemanage/src/user_base_record.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - user
    - user2
    argTypes:
    - semanage_user_base_t*
    - semanage_user_base_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: semanage_user_base_compare2
    functionSourceFile: /src/selinux/libsemanage/src/user_base_record.c
    functionUses: 0
    functionsReached:
    - sepol_user_compare2
    linkageType: ''
    returnType: int
    signature: "int semanage_user_base_compare2(const semanage_user_base_t *user,\n\t\t\t\t
      \      const semanage_user_base_t *user2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_compare2
      Src: /src/selinux/libsemanage/src/user_base_record.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: semanage_user_base_compare2_qsort
    functionSourceFile: /src/selinux/libsemanage/src/user_base_record.c
    functionUses: 0
    functionsReached:
    - sepol_user_compare2
    linkageType: ''
    returnType: int
    signature: int semanage_user_base_compare2_qsort(const void *p1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_get_name
      Src: /src/selinux/libsemanage/src/user_base_record.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user
    argTypes:
    - semanage_user_base_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: semanage_user_base_get_name
    functionSourceFile: /src/selinux/libsemanage/src/user_base_record.c
    functionUses: 0
    functionsReached:
    - sepol_user_get_name
    linkageType: ''
    returnType: char
    signature: char *semanage_user_base_get_name(const semanage_user_base_t *user)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_set_name
      Src: /src/selinux/libsemanage/src/user_base_record.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - user
    - name
    argTypes:
    - semanage_handle_t*
    - semanage_user_base_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: semanage_user_base_set_name
    functionSourceFile: /src/selinux/libsemanage/src/user_base_record.c
    functionUses: 0
    functionsReached:
    - sepol_user_set_name
    linkageType: ''
    returnType: int
    signature: "int semanage_user_base_set_name(semanage_handle_t *handle,\n\t\t\t\tsemanage_user_base_t
      *user, const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_get_mlslevel
      Src: /src/selinux/libsemanage/src/user_base_record.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user
    argTypes:
    - semanage_user_base_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: semanage_user_base_get_mlslevel
    functionSourceFile: /src/selinux/libsemanage/src/user_base_record.c
    functionUses: 0
    functionsReached:
    - sepol_user_get_mlslevel
    linkageType: ''
    returnType: char
    signature: char *semanage_user_base_get_mlslevel(const semanage_user_base_t *user)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_set_mlslevel
      Src: /src/selinux/libsemanage/src/user_base_record.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - user
    - mls_level
    argTypes:
    - semanage_handle_t*
    - semanage_user_base_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: semanage_user_base_set_mlslevel
    functionSourceFile: /src/selinux/libsemanage/src/user_base_record.c
    functionUses: 0
    functionsReached:
    - sepol_user_set_mlslevel
    linkageType: ''
    returnType: int
    signature: "int semanage_user_base_set_mlslevel(semanage_handle_t *handle,\n\t\t\t\t
      \   semanage_user_base_t *user,\n\t\t\t\t    const char *mls_level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_get_mlsrange
      Src: /src/selinux/libsemanage/src/user_base_record.c:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user
    argTypes:
    - semanage_user_base_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: semanage_user_base_get_mlsrange
    functionSourceFile: /src/selinux/libsemanage/src/user_base_record.c
    functionUses: 0
    functionsReached:
    - sepol_user_get_mlsrange
    linkageType: ''
    returnType: char
    signature: char *semanage_user_base_get_mlsrange(const semanage_user_base_t *user)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_set_mlsrange
      Src: /src/selinux/libsemanage/src/user_base_record.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - user
    - mls_range
    argTypes:
    - semanage_handle_t*
    - semanage_user_base_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: semanage_user_base_set_mlsrange
    functionSourceFile: /src/selinux/libsemanage/src/user_base_record.c
    functionUses: 0
    functionsReached:
    - sepol_user_set_mlsrange
    linkageType: ''
    returnType: int
    signature: "int semanage_user_base_set_mlsrange(semanage_handle_t *handle,\n\t\t\t\t
      \   semanage_user_base_t *user,\n\t\t\t\t    const char *mls_range)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_get_num_roles
      Src: /src/selinux/libsemanage/src/user_base_record.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user
    argTypes:
    - semanage_user_base_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: semanage_user_base_get_num_roles
    functionSourceFile: /src/selinux/libsemanage/src/user_base_record.c
    functionUses: 0
    functionsReached:
    - sepol_user_get_num_roles
    linkageType: ''
    returnType: int
    signature: int semanage_user_base_get_num_roles(const semanage_user_base_t *user)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_add_role
      Src: /src/selinux/libsemanage/src/user_base_record.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - user
    - role
    argTypes:
    - semanage_handle_t*
    - semanage_user_base_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: semanage_user_base_add_role
    functionSourceFile: /src/selinux/libsemanage/src/user_base_record.c
    functionUses: 0
    functionsReached:
    - sepol_user_add_role
    linkageType: ''
    returnType: int
    signature: "int semanage_user_base_add_role(semanage_handle_t *handle,\n\t\t\t\tsemanage_user_base_t
      *user, const char *role)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_del_role
      Src: /src/selinux/libsemanage/src/user_base_record.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - user
    - role
    argTypes:
    - semanage_user_base_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: semanage_user_base_del_role
    functionSourceFile: /src/selinux/libsemanage/src/user_base_record.c
    functionUses: 0
    functionsReached:
    - sepol_user_del_role
    linkageType: ''
    returnType: void
    signature: void semanage_user_base_del_role(semanage_user_base_t *user, const
      char *role)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_has_role
      Src: /src/selinux/libsemanage/src/user_base_record.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - user
    - role
    argTypes:
    - semanage_user_base_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: semanage_user_base_has_role
    functionSourceFile: /src/selinux/libsemanage/src/user_base_record.c
    functionUses: 0
    functionsReached:
    - sepol_user_has_role
    linkageType: ''
    returnType: int
    signature: "int semanage_user_base_has_role(const semanage_user_base_t *user,\n\t\t\t\tconst
      char *role)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_get_roles
      Src: /src/selinux/libsemanage/src/user_base_record.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - user
    - roles_arr
    - num_roles
    argTypes:
    - semanage_handle_t*
    - semanage_user_base_t*
    - char***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: semanage_user_base_get_roles
    functionSourceFile: /src/selinux/libsemanage/src/user_base_record.c
    functionUses: 0
    functionsReached:
    - sepol_user_get_roles
    linkageType: ''
    returnType: int
    signature: "int semanage_user_base_get_roles(semanage_handle_t *handle,\n\t\t\t\t
      const semanage_user_base_t *user,\n\t\t\t\t const char ***roles_arr,\n\t\t\t\t
      unsigned int *num_roles)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_set_roles
      Src: /src/selinux/libsemanage/src/user_base_record.c:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - user
    - roles_arr
    - num_roles
    argTypes:
    - semanage_handle_t*
    - semanage_user_base_t*
    - char**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: semanage_user_base_set_roles
    functionSourceFile: /src/selinux/libsemanage/src/user_base_record.c
    functionUses: 0
    functionsReached:
    - sepol_user_set_roles
    linkageType: ''
    returnType: int
    signature: "int semanage_user_base_set_roles(semanage_handle_t *handle,\n\t\t\t\t
      semanage_user_base_t *user,\n\t\t\t\t const char **roles_arr, unsigned int num_roles)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_create
      Src: /src/selinux/libsemanage/src/user_base_record.c:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - user_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_user_base_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: semanage_user_base_create
    functionSourceFile: /src/selinux/libsemanage/src/user_base_record.c
    functionUses: 0
    functionsReached:
    - sepol_user_create
    linkageType: ''
    returnType: int
    signature: "int semanage_user_base_create(semanage_handle_t *handle,\n\t\t\t      semanage_user_base_t
      **user_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_clone
      Src: /src/selinux/libsemanage/src/user_base_record.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - user
    - user_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_user_base_t*
    - semanage_user_base_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: semanage_user_base_clone
    functionSourceFile: /src/selinux/libsemanage/src/user_base_record.c
    functionUses: 0
    functionsReached:
    - sepol_user_clone
    linkageType: ''
    returnType: int
    signature: "int semanage_user_base_clone(semanage_handle_t *handle,\n\t\t\t     const
      semanage_user_base_t *user,\n\t\t\t     semanage_user_base_t **user_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_free
      Src: /src/selinux/libsemanage/src/user_base_record.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user
    argTypes:
    - semanage_user_base_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 147
    functionName: semanage_user_base_free
    functionSourceFile: /src/selinux/libsemanage/src/user_base_record.c
    functionUses: 0
    functionsReached:
    - sepol_user_free
    linkageType: ''
    returnType: void
    signature: void semanage_user_base_free(semanage_user_base_t *user)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dbase_llist_get_rtable
      Src: /src/selinux/libsemanage/src/database_activedb.c:34,1
    - Dst: dbase_llist_needs_resync
      Src: /src/selinux/libsemanage/src/database_activedb.c:42,1
    - Dst: dbase_llist_cache_init
      Src: /src/selinux/libsemanage/src/database_activedb.c:46,1
    - Dst: dbase_llist_set_serial
      Src: /src/selinux/libsemanage/src/database_activedb.c:47,1
    - Dst: record_activedb_table_t*::read_list
      Src: /src/selinux/libsemanage/src/database_activedb.c:51,1
    - Dst: dbase_llist_cache_prepend
      Src: /src/selinux/libsemanage/src/database_activedb.c:56,1
    - Dst: record_table_t*::free
      Src: /src/selinux/libsemanage/src/database_activedb.c:59,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/database_activedb.c:62,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_activedb.c:66,1
    - Dst: record_table_t*::free
      Src: /src/selinux/libsemanage/src/database_activedb.c:68,1
    - Dst: dbase_llist_drop_cache
      Src: /src/selinux/libsemanage/src/database_activedb.c:69,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/database_activedb.c:70,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - handle
    - dbase
    argTypes:
    - semanage_handle_t*
    - dbase_activedb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 72
    functionName: dbase_activedb_cache
    functionSourceFile: /src/selinux/libsemanage/src/database_activedb.c
    functionUses: 0
    functionsReached:
    - dbase_llist_get_rtable
    - ERR
    - dbase_llist_drop_cache
    - record_table_t*::free
    - dbase_llist_needs_resync
    - dbase_llist_set_serial
    - free
    - dbase_llist_cache_prepend
    - dbase_llist_cache_init
    - record_activedb_table_t*::read_list
    linkageType: ''
    returnType: int
    signature: "int dbase_activedb_cache(semanage_handle_t *handle,\n\t\t\t\tdbase_activedb_t
      *dbase)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dbase_llist_get_rtable
      Src: /src/selinux/libsemanage/src/database_activedb.c:77,1
    - Dst: dbase_llist_is_modified
      Src: /src/selinux/libsemanage/src/database_activedb.c:85,1
    - Dst: dbase_llist_list
      Src: /src/selinux/libsemanage/src/database_activedb.c:89,1
    - Dst: record_activedb_table_t*::commit_list
      Src: /src/selinux/libsemanage/src/database_activedb.c:93,1
    - Dst: record_table_t*::free
      Src: /src/selinux/libsemanage/src/database_activedb.c:97,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/database_activedb.c:98,1
    - Dst: dbase_llist_set_modified
      Src: /src/selinux/libsemanage/src/database_activedb.c:99,1
    - Dst: record_table_t*::free
      Src: /src/selinux/libsemanage/src/database_activedb.c:104,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/database_activedb.c:105,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_activedb.c:106,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - handle
    - dbase
    argTypes:
    - semanage_handle_t*
    - dbase_activedb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 108
    functionName: dbase_activedb_flush
    functionSourceFile: /src/selinux/libsemanage/src/database_activedb.c
    functionUses: 0
    functionsReached:
    - dbase_llist_get_rtable
    - ERR
    - record_table_t*::free
    - dbase_llist_set_modified
    - dbase_llist_list
    - free
    - dbase_llist_is_modified
    - record_activedb_table_t*::commit_list
    linkageType: ''
    returnType: int
    signature: "int dbase_activedb_flush(semanage_handle_t *handle,\n\t\t\t\tdbase_activedb_t
      *dbase)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/database_activedb.c:115,1
    - Dst: dbase_llist_init
      Src: /src/selinux/libsemanage/src/database_activedb.c:121,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_activedb.c:128,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/database_activedb.c:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - handle
    - rtable
    - ratable
    - dbase
    argTypes:
    - semanage_handle_t*
    - record_table_t*
    - record_activedb_table_t*
    - dbase_activedb_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 131
    functionName: dbase_activedb_init
    functionSourceFile: /src/selinux/libsemanage/src/database_activedb.c
    functionUses: 1
    functionsReached:
    - dbase_llist_init
    - ERR
    - free
    - malloc
    linkageType: ''
    returnType: int
    signature: "int dbase_activedb_init(semanage_handle_t *handle, const record_table_t
      *rtable,\n\t\t\tconst record_activedb_table_t *ratable,\n\t\t\tdbase_activedb_t
      **dbase)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_llist_drop_cache
      Src: /src/selinux/libsemanage/src/database_activedb.c:139,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/database_activedb.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dbase
    argTypes:
    - dbase_activedb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: dbase_activedb_release
    functionSourceFile: /src/selinux/libsemanage/src/database_activedb.c
    functionUses: 1
    functionsReached:
    - dbase_llist_drop_cache
    - free
    linkageType: ''
    returnType: void
    signature: void dbase_activedb_release(dbase_activedb_t *dbase)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibpkey_get_low
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:29,1
    - Dst: semanage_ibpkey_get_high
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:30,1
    - Dst: semanage_ibpkey_get_subnet_prefix
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:32,1
    - Dst: semanage_ibpkey_get_con
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:36,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:38,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:42,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:45,1
    - Dst: semanage_context_to_string
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:49,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:51,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:54,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:55,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:59,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:61,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:62,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 3
    argNames:
    - handle
    - ibpkey
    - str
    argTypes:
    - semanage_handle_t*
    - semanage_ibpkey_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 64
    functionName: ibpkey_print
    functionSourceFile: /src/selinux/libsemanage/src/ibpkeys_file.c
    functionUses: 0
    functionsReached:
    - semanage_ibpkey_get_con
    - ERR
    - semanage_ibpkey_get_subnet_prefix
    - semanage_context_to_string
    - semanage_ibpkey_get_low
    - free
    - semanage_ibpkey_get_high
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int ibpkey_print(semanage_handle_t *handle,\n\t\t\tconst semanage_ibpkey_t
      *ibpkey, FILE *str)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: parse_skip_space
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:73,1
    - Dst: parse_assert_str
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:79,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:81,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:85,1
    - Dst: semanage_ibpkey_set_subnet_prefix
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:87,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:89,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:93,1
    - Dst: parse_fetch_int
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:95,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:104,1
    - Dst: parse_optional_ch
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:108,1
    - Dst: parse_skip_space
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:109,1
    - Dst: parse_fetch_int
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:111,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:113,1
    - Dst: semanage_ibpkey_set_range
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:115,1
    - Dst: semanage_ibpkey_set_pkey
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:117,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:120,1
    - Dst: semanage_context_from_string
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:122,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:123,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:128,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:133,1
    - Dst: semanage_ibpkey_set_con
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:136,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:139,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:142,1
    - Dst: parse_dispose_line
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:146,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:150,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:151,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:152,1
    - Dst: parse_dispose_line
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:153,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 80
    argCount: 3
    argNames:
    - handle
    - info
    - ibpkey
    argTypes:
    - semanage_handle_t*
    - parse_info_t*
    - semanage_ibpkey_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 155
    functionName: ibpkey_parse
    functionSourceFile: /src/selinux/libsemanage/src/ibpkeys_file.c
    functionUses: 0
    functionsReached:
    - ERR
    - parse_assert_str
    - parse_assert_space
    - semanage_ibpkey_set_subnet_prefix
    - semanage_ibpkey_set_pkey
    - parse_skip_space
    - parse_dispose_line
    - semanage_ibpkey_set_con
    - semanage_context_from_string
    - free
    - parse_fetch_string
    - semanage_context_free
    - parse_optional_ch
    - semanage_ibpkey_set_range
    - parse_fetch_int
    linkageType: ''
    returnType: int
    signature: "int ibpkey_parse(semanage_handle_t *handle, parse_info_t *info,\n\t\t\tsemanage_ibpkey_t
      *ibpkey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_file_init
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - handle
    - path_ro
    - path_rw
    - dconfig
    argTypes:
    - semanage_handle_t*
    - char*
    - char*
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 172
    functionName: ibpkey_file_dbase_init
    functionSourceFile: /src/selinux/libsemanage/src/ibpkeys_file.c
    functionUses: 0
    functionsReached:
    - dbase_file_init
    linkageType: ''
    returnType: int
    signature: "int ibpkey_file_dbase_init(semanage_handle_t *handle, const char *path_ro,\n\t\t\t
      \  const char *path_rw, dbase_config_t *dconfig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbase_file_release
      Src: /src/selinux/libsemanage/src/ibpkeys_file.c:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dconfig
    argTypes:
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: ibpkey_file_dbase_release
    functionSourceFile: /src/selinux/libsemanage/src/ibpkeys_file.c
    functionUses: 0
    functionsReached:
    - dbase_file_release
    linkageType: ''
    returnType: void
    signature: void ibpkey_file_dbase_release(dbase_config_t *dconfig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_bool_dbase_local
      Src: /src/selinux/libsemanage/src/booleans_local.c:17,1
    - Dst: dbase_modify
      Src: /src/selinux/libsemanage/src/booleans_local.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - data
    argTypes:
    - semanage_handle_t*
    - semanage_bool_key_t*
    - semanage_bool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: semanage_bool_modify_local
    functionSourceFile: /src/selinux/libsemanage/src/booleans_local.c
    functionUses: 3
    functionsReached:
    - dbase_modify
    - semanage_bool_dbase_local
    linkageType: ''
    returnType: int
    signature: "int semanage_bool_modify_local(semanage_handle_t *handle,\n\t\t\t
      \      const semanage_bool_key_t *key,\n\t\t\t       const semanage_bool_t *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_bool_dbase_local
      Src: /src/selinux/libsemanage/src/booleans_local.c:24,1
    - Dst: dbase_del
      Src: /src/selinux/libsemanage/src/booleans_local.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - key
    argTypes:
    - semanage_handle_t*
    - semanage_bool_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: semanage_bool_del_local
    functionSourceFile: /src/selinux/libsemanage/src/booleans_local.c
    functionUses: 2
    functionsReached:
    - dbase_del
    - semanage_bool_dbase_local
    linkageType: ''
    returnType: int
    signature: "int semanage_bool_del_local(semanage_handle_t *handle,\n\t\t\t    const
      semanage_bool_key_t *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_bool_dbase_local
      Src: /src/selinux/libsemanage/src/booleans_local.c:32,1
    - Dst: dbase_query
      Src: /src/selinux/libsemanage/src/booleans_local.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_bool_key_t*
    - semanage_bool_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: semanage_bool_query_local
    functionSourceFile: /src/selinux/libsemanage/src/booleans_local.c
    functionUses: 2
    functionsReached:
    - dbase_query
    - semanage_bool_dbase_local
    linkageType: ''
    returnType: int
    signature: "int semanage_bool_query_local(semanage_handle_t *handle,\n\t\t\t      const
      semanage_bool_key_t *key,\n\t\t\t      semanage_bool_t **response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_bool_dbase_local
      Src: /src/selinux/libsemanage/src/booleans_local.c:39,1
    - Dst: dbase_exists
      Src: /src/selinux/libsemanage/src/booleans_local.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_bool_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: semanage_bool_exists_local
    functionSourceFile: /src/selinux/libsemanage/src/booleans_local.c
    functionUses: 2
    functionsReached:
    - dbase_exists
    - semanage_bool_dbase_local
    linkageType: ''
    returnType: int
    signature: "int semanage_bool_exists_local(semanage_handle_t *handle,\n\t\t\t
      \      const semanage_bool_key_t *key, int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_bool_dbase_local
      Src: /src/selinux/libsemanage/src/booleans_local.c:45,1
    - Dst: dbase_count
      Src: /src/selinux/libsemanage/src/booleans_local.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - response
    argTypes:
    - semanage_handle_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: semanage_bool_count_local
    functionSourceFile: /src/selinux/libsemanage/src/booleans_local.c
    functionUses: 1
    functionsReached:
    - dbase_count
    - semanage_bool_dbase_local
    linkageType: ''
    returnType: int
    signature: int semanage_bool_count_local(semanage_handle_t *handle, unsigned int
      *response)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_bool_dbase_local
      Src: /src/selinux/libsemanage/src/booleans_local.c:54,1
    - Dst: dbase_iterate
      Src: /src/selinux/libsemanage/src/booleans_local.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - handler_arg
    argTypes:
    - semanage_handle_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: semanage_bool_iterate_local
    functionSourceFile: /src/selinux/libsemanage/src/booleans_local.c
    functionUses: 1
    functionsReached:
    - dbase_iterate
    - semanage_bool_dbase_local
    linkageType: ''
    returnType: int
    signature: "int semanage_bool_iterate_local(semanage_handle_t *handle,\n\t\t\t\tint
      (*handler)(const semanage_bool_t *record,\n\t\t\t\t\t       void *varg),\n\t\t\t\tvoid
      *handler_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_bool_dbase_local
      Src: /src/selinux/libsemanage/src/booleans_local.c:61,1
    - Dst: dbase_list
      Src: /src/selinux/libsemanage/src/booleans_local.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - records
    - count
    argTypes:
    - semanage_handle_t*
    - semanage_bool_t***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: semanage_bool_list_local
    functionSourceFile: /src/selinux/libsemanage/src/booleans_local.c
    functionUses: 1
    functionsReached:
    - dbase_list
    - semanage_bool_dbase_local
    linkageType: ''
    returnType: int
    signature: "int semanage_bool_list_local(semanage_handle_t *handle,\n\t\t\t     semanage_bool_t
      ***records, unsigned int *count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_seuser_dbase_policy
      Src: /src/selinux/libsemanage/src/seusers_policy.c:21,1
    - Dst: dbase_query
      Src: /src/selinux/libsemanage/src/seusers_policy.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_seuser_key_t*
    - semanage_seuser_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 23
    functionName: semanage_seuser_query
    functionSourceFile: /src/selinux/libsemanage/src/seusers_policy.c
    functionUses: 2
    functionsReached:
    - semanage_seuser_dbase_policy
    - dbase_query
    linkageType: ''
    returnType: int
    signature: "int semanage_seuser_query(semanage_handle_t *handle,\n\t\t\t  const
      semanage_seuser_key_t *key,\n\t\t\t  semanage_seuser_t **response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_seuser_dbase_policy
      Src: /src/selinux/libsemanage/src/seusers_policy.c:28,1
    - Dst: dbase_exists
      Src: /src/selinux/libsemanage/src/seusers_policy.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_seuser_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: semanage_seuser_exists
    functionSourceFile: /src/selinux/libsemanage/src/seusers_policy.c
    functionUses: 0
    functionsReached:
    - semanage_seuser_dbase_policy
    - dbase_exists
    linkageType: ''
    returnType: int
    signature: "int semanage_seuser_exists(semanage_handle_t *handle,\n\t\t\t   const
      semanage_seuser_key_t *key, int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_seuser_dbase_policy
      Src: /src/selinux/libsemanage/src/seusers_policy.c:34,1
    - Dst: dbase_count
      Src: /src/selinux/libsemanage/src/seusers_policy.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - response
    argTypes:
    - semanage_handle_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: semanage_seuser_count
    functionSourceFile: /src/selinux/libsemanage/src/seusers_policy.c
    functionUses: 0
    functionsReached:
    - semanage_seuser_dbase_policy
    - dbase_count
    linkageType: ''
    returnType: int
    signature: int semanage_seuser_count(semanage_handle_t *handle, unsigned int *response)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_seuser_dbase_policy
      Src: /src/selinux/libsemanage/src/seusers_policy.c:43,1
    - Dst: dbase_iterate
      Src: /src/selinux/libsemanage/src/seusers_policy.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - handler_arg
    argTypes:
    - semanage_handle_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: semanage_seuser_iterate
    functionSourceFile: /src/selinux/libsemanage/src/seusers_policy.c
    functionUses: 0
    functionsReached:
    - semanage_seuser_dbase_policy
    - dbase_iterate
    linkageType: ''
    returnType: int
    signature: "int semanage_seuser_iterate(semanage_handle_t *handle,\n\t\t\t    int
      (*handler)(const semanage_seuser_t *record,\n\t\t\t\t\t   void *varg),\n\t\t\t
      \   void *handler_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_seuser_dbase_policy
      Src: /src/selinux/libsemanage/src/seusers_policy.c:50,1
    - Dst: dbase_list
      Src: /src/selinux/libsemanage/src/seusers_policy.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - records
    - count
    argTypes:
    - semanage_handle_t*
    - semanage_seuser_t***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: semanage_seuser_list
    functionSourceFile: /src/selinux/libsemanage/src/seusers_policy.c
    functionUses: 0
    functionsReached:
    - semanage_seuser_dbase_policy
    - dbase_list
    linkageType: ''
    returnType: int
    signature: "int semanage_seuser_list(semanage_handle_t *handle,\n\t\t\t semanage_seuser_t
      ***records, unsigned int *count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibendport_compare
      Src: /src/selinux/libsemanage/src/ibendport_record.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ibendport
    - key
    argTypes:
    - semanage_ibendport_t*
    - semanage_ibendport_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: semanage_ibendport_compare
    functionSourceFile: /src/selinux/libsemanage/src/ibendport_record.c
    functionUses: 0
    functionsReached:
    - sepol_ibendport_compare
    linkageType: ''
    returnType: int
    signature: "int semanage_ibendport_compare(const semanage_ibendport_t *ibendport,\n\t\t\t
      \      const semanage_ibendport_key_t *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibendport_compare2
      Src: /src/selinux/libsemanage/src/ibendport_record.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ibendport
    - ibendport2
    argTypes:
    - semanage_ibendport_t*
    - semanage_ibendport_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: semanage_ibendport_compare2
    functionSourceFile: /src/selinux/libsemanage/src/ibendport_record.c
    functionUses: 0
    functionsReached:
    - sepol_ibendport_compare2
    linkageType: ''
    returnType: int
    signature: "int semanage_ibendport_compare2(const semanage_ibendport_t *ibendport,\n\t\t\t\tconst
      semanage_ibendport_t *ibendport2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibendport_compare2
      Src: /src/selinux/libsemanage/src/ibendport_record.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: semanage_ibendport_compare2_qsort
    functionSourceFile: /src/selinux/libsemanage/src/ibendport_record.c
    functionUses: 0
    functionsReached:
    - sepol_ibendport_compare2
    linkageType: ''
    returnType: int
    signature: int semanage_ibendport_compare2_qsort(const void *p1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibendport_key_create
      Src: /src/selinux/libsemanage/src/ibendport_record.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - ibdev_name
    - port
    - key_ptr
    argTypes:
    - semanage_handle_t*
    - char*
    - int
    - semanage_ibendport_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: semanage_ibendport_key_create
    functionSourceFile: /src/selinux/libsemanage/src/ibendport_record.c
    functionUses: 1
    functionsReached:
    - sepol_ibendport_key_create
    linkageType: ''
    returnType: int
    signature: "int semanage_ibendport_key_create(semanage_handle_t *handle,\n\t\t\t\t
      \ const char *ibdev_name, int port,\n\t\t\t\t  semanage_ibendport_key_t **key_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibendport_key_extract
      Src: /src/selinux/libsemanage/src/ibendport_record.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - ibendport
    - key_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_ibendport_t*
    - semanage_ibendport_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: semanage_ibendport_key_extract
    functionSourceFile: /src/selinux/libsemanage/src/ibendport_record.c
    functionUses: 3
    functionsReached:
    - sepol_ibendport_key_extract
    linkageType: ''
    returnType: int
    signature: "int semanage_ibendport_key_extract(semanage_handle_t *handle,\n\t\t\t\t
      \  const semanage_ibendport_t *ibendport,\n\t\t\t\t   semanage_ibendport_key_t
      **key_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibendport_key_free
      Src: /src/selinux/libsemanage/src/ibendport_record.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - semanage_ibendport_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: semanage_ibendport_key_free
    functionSourceFile: /src/selinux/libsemanage/src/ibendport_record.c
    functionUses: 6
    functionsReached:
    - sepol_ibendport_key_free
    linkageType: ''
    returnType: void
    signature: void semanage_ibendport_key_free(semanage_ibendport_key_t *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibendport_get_ibdev_name
      Src: /src/selinux/libsemanage/src/ibendport_record.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - ibendport
    - ibdev_name_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_ibendport_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: semanage_ibendport_get_ibdev_name
    functionSourceFile: /src/selinux/libsemanage/src/ibendport_record.c
    functionUses: 4
    functionsReached:
    - sepol_ibendport_get_ibdev_name
    linkageType: ''
    returnType: int
    signature: "int semanage_ibendport_get_ibdev_name(semanage_handle_t *handle,\n\t\t\t\t
      \     const semanage_ibendport_t *ibendport,\n\t\t\t\t      char **ibdev_name_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibendport_set_ibdev_name
      Src: /src/selinux/libsemanage/src/ibendport_record.c:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - ibendport
    - ibdev_name
    argTypes:
    - semanage_handle_t*
    - semanage_ibendport_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: semanage_ibendport_set_ibdev_name
    functionSourceFile: /src/selinux/libsemanage/src/ibendport_record.c
    functionUses: 0
    functionsReached:
    - sepol_ibendport_set_ibdev_name
    linkageType: ''
    returnType: int
    signature: "int semanage_ibendport_set_ibdev_name(semanage_handle_t *handle,\n\t\t\t\t
      \     semanage_ibendport_t *ibendport,\n\t\t\t\t      const char *ibdev_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibendport_get_port
      Src: /src/selinux/libsemanage/src/ibendport_record.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ibendport
    argTypes:
    - semanage_ibendport_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: semanage_ibendport_get_port
    functionSourceFile: /src/selinux/libsemanage/src/ibendport_record.c
    functionUses: 2
    functionsReached:
    - sepol_ibendport_get_port
    linkageType: ''
    returnType: int
    signature: int semanage_ibendport_get_port(const semanage_ibendport_t *ibendport)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibendport_set_port
      Src: /src/selinux/libsemanage/src/ibendport_record.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ibendport
    - port
    argTypes:
    - semanage_ibendport_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: semanage_ibendport_set_port
    functionSourceFile: /src/selinux/libsemanage/src/ibendport_record.c
    functionUses: 0
    functionsReached:
    - sepol_ibendport_set_port
    linkageType: ''
    returnType: void
    signature: void semanage_ibendport_set_port(semanage_ibendport_t *ibendport, int
      port)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibendport_get_con
      Src: /src/selinux/libsemanage/src/ibendport_record.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ibendport
    argTypes:
    - semanage_ibendport_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: semanage_ibendport_get_con
    functionSourceFile: /src/selinux/libsemanage/src/ibendport_record.c
    functionUses: 3
    functionsReached:
    - sepol_ibendport_get_con
    linkageType: ''
    returnType: semanage_context_t
    signature: 'semanage_context_t *

      semanage_ibendport_get_con(const semanage_ibendport_t *ibendport)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibendport_set_con
      Src: /src/selinux/libsemanage/src/ibendport_record.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - ibendport
    - con
    argTypes:
    - semanage_handle_t*
    - semanage_ibendport_t*
    - semanage_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: semanage_ibendport_set_con
    functionSourceFile: /src/selinux/libsemanage/src/ibendport_record.c
    functionUses: 0
    functionsReached:
    - sepol_ibendport_set_con
    linkageType: ''
    returnType: int
    signature: "int semanage_ibendport_set_con(semanage_handle_t *handle,\n\t\t\t
      \      semanage_ibendport_t *ibendport,\n\t\t\t       semanage_context_t *con)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibendport_create
      Src: /src/selinux/libsemanage/src/ibendport_record.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - ibendport_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_ibendport_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: semanage_ibendport_create
    functionSourceFile: /src/selinux/libsemanage/src/ibendport_record.c
    functionUses: 0
    functionsReached:
    - sepol_ibendport_create
    linkageType: ''
    returnType: int
    signature: "int semanage_ibendport_create(semanage_handle_t *handle,\n\t\t\t      semanage_ibendport_t
      **ibendport_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibendport_clone
      Src: /src/selinux/libsemanage/src/ibendport_record.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - ibendport
    - ibendport_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_ibendport_t*
    - semanage_ibendport_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: semanage_ibendport_clone
    functionSourceFile: /src/selinux/libsemanage/src/ibendport_record.c
    functionUses: 0
    functionsReached:
    - sepol_ibendport_clone
    linkageType: ''
    returnType: int
    signature: "int semanage_ibendport_clone(semanage_handle_t *handle,\n\t\t\t     const
      semanage_ibendport_t *ibendport,\n\t\t\t     semanage_ibendport_t **ibendport_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibendport_free
      Src: /src/selinux/libsemanage/src/ibendport_record.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ibendport
    argTypes:
    - semanage_ibendport_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: semanage_ibendport_free
    functionSourceFile: /src/selinux/libsemanage/src/ibendport_record.c
    functionUses: 8
    functionsReached:
    - sepol_ibendport_free
    linkageType: ''
    returnType: void
    signature: void semanage_ibendport_free(semanage_ibendport_t *ibendport)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_port_dbase_policy
      Src: /src/selinux/libsemanage/src/ports_policy.c:17,1
    - Dst: dbase_query
      Src: /src/selinux/libsemanage/src/ports_policy.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_port_key_t*
    - semanage_port_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: semanage_port_query
    functionSourceFile: /src/selinux/libsemanage/src/ports_policy.c
    functionUses: 1
    functionsReached:
    - semanage_port_dbase_policy
    - dbase_query
    linkageType: ''
    returnType: int
    signature: "int semanage_port_query(semanage_handle_t *handle,\n\t\t\tconst semanage_port_key_t
      *key,\n\t\t\tsemanage_port_t **response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_port_dbase_policy
      Src: /src/selinux/libsemanage/src/ports_policy.c:24,1
    - Dst: dbase_exists
      Src: /src/selinux/libsemanage/src/ports_policy.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_port_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: semanage_port_exists
    functionSourceFile: /src/selinux/libsemanage/src/ports_policy.c
    functionUses: 1
    functionsReached:
    - semanage_port_dbase_policy
    - dbase_exists
    linkageType: ''
    returnType: int
    signature: "int semanage_port_exists(semanage_handle_t *handle,\n\t\t\t const
      semanage_port_key_t *key, int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_port_dbase_policy
      Src: /src/selinux/libsemanage/src/ports_policy.c:30,1
    - Dst: dbase_count
      Src: /src/selinux/libsemanage/src/ports_policy.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - response
    argTypes:
    - semanage_handle_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: semanage_port_count
    functionSourceFile: /src/selinux/libsemanage/src/ports_policy.c
    functionUses: 1
    functionsReached:
    - semanage_port_dbase_policy
    - dbase_count
    linkageType: ''
    returnType: int
    signature: int semanage_port_count(semanage_handle_t *handle, unsigned int *response)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_port_dbase_policy
      Src: /src/selinux/libsemanage/src/ports_policy.c:39,1
    - Dst: dbase_iterate
      Src: /src/selinux/libsemanage/src/ports_policy.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - handler_arg
    argTypes:
    - semanage_handle_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: semanage_port_iterate
    functionSourceFile: /src/selinux/libsemanage/src/ports_policy.c
    functionUses: 1
    functionsReached:
    - semanage_port_dbase_policy
    - dbase_iterate
    linkageType: ''
    returnType: int
    signature: "int semanage_port_iterate(semanage_handle_t *handle,\n\t\t\t  int
      (*handler)(const semanage_port_t *record,\n\t\t\t\t\t void *varg),\n\t\t\t  void
      *handler_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_port_dbase_policy
      Src: /src/selinux/libsemanage/src/ports_policy.c:46,1
    - Dst: dbase_list
      Src: /src/selinux/libsemanage/src/ports_policy.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - records
    - count
    argTypes:
    - semanage_handle_t*
    - semanage_port_t***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: semanage_port_list
    functionSourceFile: /src/selinux/libsemanage/src/ports_policy.c
    functionUses: 2
    functionsReached:
    - semanage_port_dbase_policy
    - dbase_list
    linkageType: ''
    returnType: int
    signature: "int semanage_port_list(semanage_handle_t *handle, semanage_port_t
      ***records,\n\t\t       unsigned int *count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: semanage_msg_get_level
    functionSourceFile: /src/selinux/libsemanage/src/debug.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int semanage_msg_get_level(semanage_handle_t *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: semanage_msg_get_channel
    functionSourceFile: /src/selinux/libsemanage/src/debug.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *semanage_msg_get_channel(semanage_handle_t *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: semanage_msg_get_fname
    functionSourceFile: /src/selinux/libsemanage/src/debug.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *semanage_msg_get_fname(semanage_handle_t *handle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/selinux/libsemanage/src/debug.c:47,1
    - Dst: semanage_msg_get_level
      Src: /src/selinux/libsemanage/src/debug.c:56,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/debug.c:69,1
    - Dst: semanage_msg_get_channel
      Src: /src/selinux/libsemanage/src/debug.c:69,1
    - Dst: semanage_msg_get_fname
      Src: /src/selinux/libsemanage/src/debug.c:70,1
    - Dst: va_start
      Src: /src/selinux/libsemanage/src/debug.c:73,1
    - Dst: vfprintf
      Src: /src/selinux/libsemanage/src/debug.c:74,1
    - Dst: va_end
      Src: /src/selinux/libsemanage/src/debug.c:75,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/debug.c:79,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/debug.c:82,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - varg
    - handle
    - fmt
    argTypes:
    - void*
    - semanage_handle_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 83
    functionName: semanage_msg_default_handler
    functionSourceFile: /src/selinux/libsemanage/src/debug.c
    functionUses: 0
    functionsReached:
    - va_end
    - format
    - vfprintf
    - semanage_msg_get_fname
    - semanage_msg_get_channel
    - semanage_msg_get_level
    - va_start
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void semanage_msg_default_handler(void *varg __attribute__((unused)),\n\t\t\t\t
      \ semanage_handle_t *handle, const char *fmt,\n\t\t\t\t  ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/selinux/libsemanage/src/debug.c:86,1
    - Dst: va_start
      Src: /src/selinux/libsemanage/src/debug.c:98,1
    - Dst: vsnprintf
      Src: /src/selinux/libsemanage/src/debug.c:99,1
    - Dst: va_end
      Src: /src/selinux/libsemanage/src/debug.c:100,1
    - Dst: sepol_msg_get_fname
      Src: /src/selinux/libsemanage/src/debug.c:102,1
    - Dst: sepol_msg_get_channel
      Src: /src/selinux/libsemanage/src/debug.c:103,1
    - Dst: sepol_msg_get_level
      Src: /src/selinux/libsemanage/src/debug.c:104,1
    - Dst: semanage_handle_t*::msg_callback
      Src: /src/selinux/libsemanage/src/debug.c:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - varg
    - sepolh
    - fmt
    argTypes:
    - void*
    - sepol_handle_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 106
    functionName: semanage_msg_relay_handler
    functionSourceFile: /src/selinux/libsemanage/src/debug.c
    functionUses: 0
    functionsReached:
    - va_end
    - format
    - semanage_handle_t*::msg_callback
    - sepol_msg_get_fname
    - va_start
    - vsnprintf
    - sepol_msg_get_level
    - sepol_msg_get_channel
    linkageType: ''
    returnType: void
    signature: "void semanage_msg_relay_handler(void *varg, sepol_handle_t *sepolh,\n\t\t\t\tconst
      char *fmt, ...)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/selinux/libsemanage/src/debug.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - handle
    - msg_callback_arg
    argTypes:
    - semanage_handle_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 119
    functionName: semanage_msg_set_callback
    functionSourceFile: /src/selinux/libsemanage/src/debug.c
    functionUses: 3
    functionsReached:
    - format
    linkageType: ''
    returnType: void
    signature: "void semanage_msg_set_callback(\n\tsemanage_handle_t *handle,\n#ifdef
      __GNUC__\n\t__attribute__((format(printf, 3, 4)))\n#endif\n\tvoid (*msg_callback)(void
      *varg, semanage_handle_t *handle,\n\t\t\t     const char *fmt, ...),\n\tvoid
      *msg_callback_arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_policydb_init
      Src: /src/selinux/libsemanage/src/booleans_policydb.c:55,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/booleans_policydb.c:57,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/booleans_policydb.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - handle
    - dconfig
    argTypes:
    - semanage_handle_t*
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: bool_policydb_dbase_init
    functionSourceFile: /src/selinux/libsemanage/src/booleans_policydb.c
    functionUses: 0
    functionsReached:
    - dbase_policydb_init
    - semanage_path
    linkageType: ''
    returnType: int
    signature: int bool_policydb_dbase_init(semanage_handle_t *handle, dbase_config_t
      *dconfig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbase_policydb_release
      Src: /src/selinux/libsemanage/src/booleans_policydb.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dconfig
    argTypes:
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: bool_policydb_dbase_release
    functionSourceFile: /src/selinux/libsemanage/src/booleans_policydb.c
    functionUses: 0
    functionsReached:
    - dbase_policydb_release
    linkageType: ''
    returnType: void
    signature: void bool_policydb_dbase_release(dbase_config_t *dconfig)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - dbase
    argTypes:
    - dbase_llist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: dbase_llist_cache_init
    functionSourceFile: /src/selinux/libsemanage/src/database_llist.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dbase_llist_cache_init(dbase_llist_t *dbase)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbase_llist_cache_init
      Src: /src/selinux/libsemanage/src/database_llist.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - dbase
    - rtable
    - dtable
    argTypes:
    - dbase_llist_t*
    - record_table_t*
    - dbase_table_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: dbase_llist_init
    functionSourceFile: /src/selinux/libsemanage/src/database_llist.h
    functionUses: 1
    functionsReached:
    - dbase_llist_cache_init
    linkageType: ''
    returnType: void
    signature: "void dbase_llist_init(dbase_llist_t *dbase,\n\t\t\t\t    const record_table_t
      *rtable,\n\t\t\t\t    const dbase_table_t *dtable)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dbase
    - status
    argTypes:
    - dbase_llist_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: dbase_llist_set_modified
    functionSourceFile: /src/selinux/libsemanage/src/database_llist.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dbase_llist_set_modified(dbase_llist_t *dbase, int status)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dbase
    argTypes:
    - dbase_llist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: dbase_llist_is_modified
    functionSourceFile: /src/selinux/libsemanage/src/database_llist.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dbase_llist_is_modified(const dbase_llist_t *dbase)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dbase
    argTypes:
    - dbase_llist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: dbase_llist_get_rtable
    functionSourceFile: /src/selinux/libsemanage/src/database_llist.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: record_table_t
    signature: 'record_table_t *

      dbase_llist_get_rtable(const dbase_llist_t *dbase)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: semanage_user_base_dbase_local
    functionSourceFile: /src/selinux/libsemanage/src/handle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dbase_config_t
    signature: 'dbase_config_t *

      semanage_user_base_dbase_local(semanage_handle_t *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: semanage_user_extra_dbase_local
    functionSourceFile: /src/selinux/libsemanage/src/handle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dbase_config_t
    signature: 'dbase_config_t *

      semanage_user_extra_dbase_local(semanage_handle_t *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: semanage_user_dbase_local
    functionSourceFile: /src/selinux/libsemanage/src/handle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dbase_config_t
    signature: 'dbase_config_t *

      semanage_user_dbase_local(semanage_handle_t *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: semanage_port_dbase_local
    functionSourceFile: /src/selinux/libsemanage/src/handle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dbase_config_t
    signature: 'dbase_config_t *

      semanage_port_dbase_local(semanage_handle_t *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: semanage_ibpkey_dbase_local
    functionSourceFile: /src/selinux/libsemanage/src/handle.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: dbase_config_t
    signature: 'dbase_config_t *

      semanage_ibpkey_dbase_local(semanage_handle_t *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: semanage_ibendport_dbase_local
    functionSourceFile: /src/selinux/libsemanage/src/handle.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: dbase_config_t
    signature: 'dbase_config_t *

      semanage_ibendport_dbase_local(semanage_handle_t *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: semanage_iface_dbase_local
    functionSourceFile: /src/selinux/libsemanage/src/handle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dbase_config_t
    signature: 'dbase_config_t *

      semanage_iface_dbase_local(semanage_handle_t *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: semanage_bool_dbase_local
    functionSourceFile: /src/selinux/libsemanage/src/handle.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: dbase_config_t
    signature: 'dbase_config_t *

      semanage_bool_dbase_local(semanage_handle_t *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 173
    functionName: semanage_fcontext_dbase_local
    functionSourceFile: /src/selinux/libsemanage/src/handle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dbase_config_t
    signature: 'dbase_config_t *

      semanage_fcontext_dbase_local(semanage_handle_t *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: semanage_seuser_dbase_local
    functionSourceFile: /src/selinux/libsemanage/src/handle.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: dbase_config_t
    signature: 'dbase_config_t *

      semanage_seuser_dbase_local(semanage_handle_t *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: semanage_node_dbase_local
    functionSourceFile: /src/selinux/libsemanage/src/handle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dbase_config_t
    signature: 'dbase_config_t *

      semanage_node_dbase_local(semanage_handle_t *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: semanage_user_base_dbase_policy
    functionSourceFile: /src/selinux/libsemanage/src/handle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dbase_config_t
    signature: 'dbase_config_t *

      semanage_user_base_dbase_policy(semanage_handle_t *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: semanage_user_extra_dbase_policy
    functionSourceFile: /src/selinux/libsemanage/src/handle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dbase_config_t
    signature: 'dbase_config_t *

      semanage_user_extra_dbase_policy(semanage_handle_t *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: semanage_user_dbase_policy
    functionSourceFile: /src/selinux/libsemanage/src/handle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dbase_config_t
    signature: 'dbase_config_t *

      semanage_user_dbase_policy(semanage_handle_t *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 210
    functionName: semanage_port_dbase_policy
    functionSourceFile: /src/selinux/libsemanage/src/handle.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: dbase_config_t
    signature: 'dbase_config_t *

      semanage_port_dbase_policy(semanage_handle_t *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 216
    functionName: semanage_ibpkey_dbase_policy
    functionSourceFile: /src/selinux/libsemanage/src/handle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dbase_config_t
    signature: 'dbase_config_t *

      semanage_ibpkey_dbase_policy(semanage_handle_t *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 222
    functionName: semanage_ibendport_dbase_policy
    functionSourceFile: /src/selinux/libsemanage/src/handle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dbase_config_t
    signature: 'dbase_config_t *

      semanage_ibendport_dbase_policy(semanage_handle_t *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 228
    functionName: semanage_iface_dbase_policy
    functionSourceFile: /src/selinux/libsemanage/src/handle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dbase_config_t
    signature: 'dbase_config_t *

      semanage_iface_dbase_policy(semanage_handle_t *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: semanage_bool_dbase_policy
    functionSourceFile: /src/selinux/libsemanage/src/handle.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: dbase_config_t
    signature: 'dbase_config_t *

      semanage_bool_dbase_policy(semanage_handle_t *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 240
    functionName: semanage_fcontext_dbase_policy
    functionSourceFile: /src/selinux/libsemanage/src/handle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dbase_config_t
    signature: 'dbase_config_t *

      semanage_fcontext_dbase_policy(semanage_handle_t *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: semanage_fcontext_dbase_homedirs
    functionSourceFile: /src/selinux/libsemanage/src/handle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dbase_config_t
    signature: 'dbase_config_t *

      semanage_fcontext_dbase_homedirs(semanage_handle_t *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: semanage_seuser_dbase_policy
    functionSourceFile: /src/selinux/libsemanage/src/handle.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: dbase_config_t
    signature: 'dbase_config_t *

      semanage_seuser_dbase_policy(semanage_handle_t *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 258
    functionName: semanage_node_dbase_policy
    functionSourceFile: /src/selinux/libsemanage/src/handle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dbase_config_t
    signature: 'dbase_config_t *

      semanage_node_dbase_policy(semanage_handle_t *handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: semanage_bool_dbase_active
    functionSourceFile: /src/selinux/libsemanage/src/handle.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dbase_config_t
    signature: 'dbase_config_t *

      semanage_bool_dbase_active(semanage_handle_t *handle)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_base_get_name
      Src: /src/selinux/libsemanage/src/users_base_file.c:29,1
    - Dst: semanage_user_base_get_mlslevel
      Src: /src/selinux/libsemanage/src/users_base_file.c:30,1
    - Dst: semanage_user_base_get_mlsrange
      Src: /src/selinux/libsemanage/src/users_base_file.c:31,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/users_base_file.c:33,1
    - Dst: semanage_user_base_get_roles
      Src: /src/selinux/libsemanage/src/users_base_file.c:36,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/users_base_file.c:40,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/users_base_file.c:44,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/users_base_file.c:49,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/users_base_file.c:52,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/users_base_file.c:55,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/users_base_file.c:59,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/users_base_file.c:60,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 29
    argCount: 3
    argNames:
    - handle
    - user
    - str
    argTypes:
    - semanage_handle_t*
    - semanage_user_base_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 62
    functionName: user_base_print
    functionSourceFile: /src/selinux/libsemanage/src/users_base_file.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_user_base_get_mlslevel
    - semanage_user_base_get_roles
    - free
    - semanage_user_base_get_mlsrange
    - fprintf
    - semanage_user_base_get_name
    linkageType: ''
    returnType: int
    signature: "int user_base_print(semanage_handle_t *handle,\n\t\t\t   const semanage_user_base_t
      *user, FILE *str)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: parse_skip_space
      Src: /src/selinux/libsemanage/src/users_base_file.c:72,1
    - Dst: parse_assert_str
      Src: /src/selinux/libsemanage/src/users_base_file.c:78,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/users_base_file.c:80,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/users_base_file.c:84,1
    - Dst: semanage_user_base_set_name
      Src: /src/selinux/libsemanage/src/users_base_file.c:87,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/users_base_file.c:88,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/users_base_file.c:91,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/users_base_file.c:93,1
    - Dst: parse_assert_str
      Src: /src/selinux/libsemanage/src/users_base_file.c:95,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/users_base_file.c:97,1
    - Dst: parse_optional_ch
      Src: /src/selinux/libsemanage/src/users_base_file.c:100,1
    - Dst: parse_skip_space
      Src: /src/selinux/libsemanage/src/users_base_file.c:106,1
    - Dst: parse_assert_noeof
      Src: /src/selinux/libsemanage/src/users_base_file.c:108,1
    - Dst: isspace
      Src: /src/selinux/libsemanage/src/users_base_file.c:114,1
    - Dst: semanage_user_base_add_role
      Src: /src/selinux/libsemanage/src/users_base_file.c:121,1
    - Dst: isspace
      Src: /src/selinux/libsemanage/src/users_base_file.c:124,1
    - Dst: parse_skip_space
      Src: /src/selinux/libsemanage/src/users_base_file.c:133,1
    - Dst: parse_optional_ch
      Src: /src/selinux/libsemanage/src/users_base_file.c:135,1
    - Dst: parse_optional_ch
      Src: /src/selinux/libsemanage/src/users_base_file.c:137,1
    - Dst: parse_skip_space
      Src: /src/selinux/libsemanage/src/users_base_file.c:144,1
    - Dst: parse_optional_str
      Src: /src/selinux/libsemanage/src/users_base_file.c:146,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/users_base_file.c:148,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/users_base_file.c:152,1
    - Dst: semanage_user_base_set_mlslevel
      Src: /src/selinux/libsemanage/src/users_base_file.c:154,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/users_base_file.c:156,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/users_base_file.c:160,1
    - Dst: parse_assert_str
      Src: /src/selinux/libsemanage/src/users_base_file.c:162,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/users_base_file.c:164,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/users_base_file.c:167,1
    - Dst: semanage_user_base_set_mlsrange
      Src: /src/selinux/libsemanage/src/users_base_file.c:169,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/users_base_file.c:172,1
    - Dst: parse_skip_space
      Src: /src/selinux/libsemanage/src/users_base_file.c:177,1
    - Dst: parse_assert_ch
      Src: /src/selinux/libsemanage/src/users_base_file.c:179,1
    - Dst: parse_dispose_line
      Src: /src/selinux/libsemanage/src/users_base_file.c:186,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/users_base_file.c:190,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/users_base_file.c:191,1
    - Dst: parse_dispose_line
      Src: /src/selinux/libsemanage/src/users_base_file.c:192,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 121
    argCount: 3
    argNames:
    - handle
    - info
    - user
    argTypes:
    - semanage_handle_t*
    - parse_info_t*
    - semanage_user_base_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 194
    functionName: user_base_parse
    functionSourceFile: /src/selinux/libsemanage/src/users_base_file.c
    functionUses: 0
    functionsReached:
    - parse_assert_ch
    - parse_assert_noeof
    - parse_assert_str
    - ERR
    - isspace
    - parse_assert_space
    - semanage_user_base_set_name
    - parse_skip_space
    - parse_dispose_line
    - parse_optional_str
    - semanage_user_base_set_mlslevel
    - free
    - parse_fetch_string
    - semanage_user_base_add_role
    - semanage_user_base_set_mlsrange
    - parse_optional_ch
    linkageType: ''
    returnType: int
    signature: "int user_base_parse(semanage_handle_t *handle, parse_info_t *info,\n\t\t\t
      \  semanage_user_base_t *user)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_file_init
      Src: /src/selinux/libsemanage/src/users_base_file.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - handle
    - path_ro
    - path_rw
    - dconfig
    argTypes:
    - semanage_handle_t*
    - char*
    - char*
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 212
    functionName: user_base_file_dbase_init
    functionSourceFile: /src/selinux/libsemanage/src/users_base_file.c
    functionUses: 0
    functionsReached:
    - dbase_file_init
    linkageType: ''
    returnType: int
    signature: "int user_base_file_dbase_init(semanage_handle_t *handle, const char
      *path_ro,\n\t\t\t      const char *path_rw, dbase_config_t *dconfig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbase_file_release
      Src: /src/selinux/libsemanage/src/users_base_file.c:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dconfig
    argTypes:
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: user_base_file_dbase_release
    functionSourceFile: /src/selinux/libsemanage/src/users_base_file.c
    functionUses: 0
    functionsReached:
    - dbase_file_release
    linkageType: ''
    returnType: void
    signature: void user_base_file_dbase_release(dbase_config_t *dconfig)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: dbase_llist_get_rtable
      Src: /src/selinux/libsemanage/src/database_file.c:41,1
    - Dst: dbase_llist_needs_resync
      Src: /src/selinux/libsemanage/src/database_file.c:51,1
    - Dst: dbase_llist_cache_init
      Src: /src/selinux/libsemanage/src/database_file.c:55,1
    - Dst: dbase_llist_set_serial
      Src: /src/selinux/libsemanage/src/database_file.c:56,1
    - Dst: parse_init
      Src: /src/selinux/libsemanage/src/database_file.c:61,1
    - Dst: parse_open
      Src: /src/selinux/libsemanage/src/database_file.c:64,1
    - Dst: record_table_t*::create
      Src: /src/selinux/libsemanage/src/database_file.c:70,1
    - Dst: record_file_table_t*::parse
      Src: /src/selinux/libsemanage/src/database_file.c:74,1
    - Dst: dbase_llist_cache_prepend
      Src: /src/selinux/libsemanage/src/database_file.c:85,1
    - Dst: record_table_t*::free
      Src: /src/selinux/libsemanage/src/database_file.c:89,1
    - Dst: record_table_t*::free
      Src: /src/selinux/libsemanage/src/database_file.c:94,1
    - Dst: parse_close
      Src: /src/selinux/libsemanage/src/database_file.c:95,1
    - Dst: parse_release
      Src: /src/selinux/libsemanage/src/database_file.c:96,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_file.c:100,1
    - Dst: record_table_t*::free
      Src: /src/selinux/libsemanage/src/database_file.c:101,1
    - Dst: parse_close
      Src: /src/selinux/libsemanage/src/database_file.c:103,1
    - Dst: parse_release
      Src: /src/selinux/libsemanage/src/database_file.c:104,1
    - Dst: dbase_llist_drop_cache
      Src: /src/selinux/libsemanage/src/database_file.c:106,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 2
    argNames:
    - handle
    - dbase
    argTypes:
    - semanage_handle_t*
    - dbase_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 108
    functionName: dbase_file_cache
    functionSourceFile: /src/selinux/libsemanage/src/database_file.c
    functionUses: 0
    functionsReached:
    - dbase_llist_get_rtable
    - ERR
    - dbase_llist_drop_cache
    - parse_open
    - parse_close
    - parse_init
    - record_table_t*::free
    - dbase_llist_set_serial
    - parse_release
    - record_file_table_t*::parse
    - dbase_llist_cache_prepend
    - dbase_llist_cache_init
    - record_table_t*::create
    - dbase_llist_needs_resync
    linkageType: ''
    returnType: int
    signature: int dbase_file_cache(semanage_handle_t *handle, dbase_file_t *dbase)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dbase_llist_is_modified
      Src: /src/selinux/libsemanage/src/database_file.c:120,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/database_file.c:125,1
    - Dst: fopen
      Src: /src/selinux/libsemanage/src/database_file.c:126,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/database_file.c:127,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_file.c:129,1
    - Dst: __fsetlocking
      Src: /src/selinux/libsemanage/src/database_file.c:132,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/database_file.c:134,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_file.c:136,1
    - Dst: record_file_table_t*::print
      Src: /src/selinux/libsemanage/src/database_file.c:141,1
    - Dst: dbase_llist_set_modified
      Src: /src/selinux/libsemanage/src/database_file.c:145,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/database_file.c:146,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/database_file.c:154,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_file.c:156,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - handle
    - dbase
    argTypes:
    - semanage_handle_t*
    - dbase_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 158
    functionName: dbase_file_flush
    functionSourceFile: /src/selinux/libsemanage/src/database_file.c
    functionUses: 0
    functionsReached:
    - ERR
    - fclose
    - __fsetlocking
    - dbase_llist_set_modified
    - umask
    - record_file_table_t*::print
    - dbase_llist_is_modified
    - fopen
    - fprintf
    linkageType: ''
    returnType: int
    signature: int dbase_file_flush(semanage_handle_t *handle, dbase_file_t *dbase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/database_file.c:164,1
    - Dst: dbase_llist_init
      Src: /src/selinux/libsemanage/src/database_file.c:172,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_file.c:179,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/database_file.c:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 6
    argNames:
    - handle
    - path_ro
    - path_rw
    - rtable
    - rftable
    - dbase
    argTypes:
    - semanage_handle_t*
    - char*
    - char*
    - record_table_t*
    - record_file_table_t*
    - dbase_file_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 182
    functionName: dbase_file_init
    functionSourceFile: /src/selinux/libsemanage/src/database_file.c
    functionUses: 4
    functionsReached:
    - dbase_llist_init
    - ERR
    - free
    - malloc
    linkageType: ''
    returnType: int
    signature: "int dbase_file_init(semanage_handle_t *handle, const char *path_ro,\n\t\t
      \   const char *path_rw, const record_table_t *rtable,\n\t\t    const record_file_table_t
      *rftable, dbase_file_t **dbase)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_llist_drop_cache
      Src: /src/selinux/libsemanage/src/database_file.c:190,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/database_file.c:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dbase
    argTypes:
    - dbase_file_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 192
    functionName: dbase_file_release
    functionSourceFile: /src/selinux/libsemanage/src/database_file.c
    functionUses: 4
    functionsReached:
    - dbase_llist_drop_cache
    - free
    linkageType: ''
    returnType: void
    signature: void dbase_file_release(dbase_file_t *dbase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semanage_bool_get_name
      Src: /src/selinux/libsemanage/src/booleans_file.c:26,1
    - Dst: semanage_bool_get_value
      Src: /src/selinux/libsemanage/src/booleans_file.c:27,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/booleans_file.c:29,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/booleans_file.c:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - handle
    - boolean
    - str
    argTypes:
    - semanage_handle_t*
    - semanage_bool_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 35
    functionName: bool_print
    functionSourceFile: /src/selinux/libsemanage/src/booleans_file.c
    functionUses: 0
    functionsReached:
    - ERR
    - fprintf
    - semanage_bool_get_value
    - semanage_bool_get_name
    linkageType: ''
    returnType: int
    signature: "int bool_print(semanage_handle_t *handle, const semanage_bool_t *boolean,\n\t\t
      \     FILE *str)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: parse_skip_space
      Src: /src/selinux/libsemanage/src/booleans_file.c:43,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/booleans_file.c:49,1
    - Dst: semanage_bool_set_name
      Src: /src/selinux/libsemanage/src/booleans_file.c:52,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/booleans_file.c:54,1
    - Dst: parse_skip_space
      Src: /src/selinux/libsemanage/src/booleans_file.c:58,1
    - Dst: parse_assert_ch
      Src: /src/selinux/libsemanage/src/booleans_file.c:60,1
    - Dst: parse_skip_space
      Src: /src/selinux/libsemanage/src/booleans_file.c:64,1
    - Dst: parse_optional_str
      Src: /src/selinux/libsemanage/src/booleans_file.c:66,1
    - Dst: parse_optional_str
      Src: /src/selinux/libsemanage/src/booleans_file.c:68,1
    - Dst: parse_optional_str
      Src: /src/selinux/libsemanage/src/booleans_file.c:70,1
    - Dst: parse_optional_str
      Src: /src/selinux/libsemanage/src/booleans_file.c:72,1
    - Dst: parse_fetch_int
      Src: /src/selinux/libsemanage/src/booleans_file.c:74,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/booleans_file.c:78,1
    - Dst: semanage_bool_get_name
      Src: /src/selinux/libsemanage/src/booleans_file.c:81,1
    - Dst: semanage_bool_set_value
      Src: /src/selinux/libsemanage/src/booleans_file.c:85,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/booleans_file.c:87,1
    - Dst: parse_dispose_line
      Src: /src/selinux/libsemanage/src/booleans_file.c:93,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/booleans_file.c:97,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/booleans_file.c:98,1
    - Dst: parse_dispose_line
      Src: /src/selinux/libsemanage/src/booleans_file.c:99,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 55
    argCount: 3
    argNames:
    - handle
    - info
    - boolean
    argTypes:
    - semanage_handle_t*
    - parse_info_t*
    - semanage_bool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 101
    functionName: bool_parse
    functionSourceFile: /src/selinux/libsemanage/src/booleans_file.c
    functionUses: 0
    functionsReached:
    - parse_assert_ch
    - ERR
    - semanage_bool_get_name
    - parse_assert_space
    - parse_skip_space
    - parse_dispose_line
    - semanage_bool_set_value
    - semanage_bool_set_name
    - parse_optional_str
    - free
    - parse_fetch_string
    - parse_fetch_int
    linkageType: ''
    returnType: int
    signature: "int bool_parse(semanage_handle_t *handle, parse_info_t *info,\n\t\t
      \     semanage_bool_t *boolean)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_file_init
      Src: /src/selinux/libsemanage/src/booleans_file.c:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - handle
    - path_ro
    - path_rw
    - dconfig
    argTypes:
    - semanage_handle_t*
    - char*
    - char*
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 118
    functionName: bool_file_dbase_init
    functionSourceFile: /src/selinux/libsemanage/src/booleans_file.c
    functionUses: 0
    functionsReached:
    - dbase_file_init
    linkageType: ''
    returnType: int
    signature: "int bool_file_dbase_init(semanage_handle_t *handle, const char *path_ro,\n\t\t\t
      const char *path_rw, dbase_config_t *dconfig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbase_file_release
      Src: /src/selinux/libsemanage/src/booleans_file.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dconfig
    argTypes:
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: bool_file_dbase_release
    functionSourceFile: /src/selinux/libsemanage/src/booleans_file.c
    functionUses: 0
    functionsReached:
    - dbase_file_release
    linkageType: ''
    returnType: void
    signature: void bool_file_dbase_release(dbase_config_t *dconfig)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - handle_arg
    - ','
    - level_arg
    - ','
    - channel_arg
    - ','
    - func_arg
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: msg_write
    functionSourceFile: /src/selinux/libsemanage/src/debug.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: msg_write(handle_arg, level_arg, channel_arg, func_arg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - handle
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: ERR
    functionSourceFile: /src/selinux/libsemanage/src/debug.h
    functionUses: 474
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR(handle, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - handle
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: INFO
    functionSourceFile: /src/selinux/libsemanage/src/debug.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INFO(handle, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - handle
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: WARN
    functionSourceFile: /src/selinux/libsemanage/src/debug.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WARN(handle, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asprintf
      Src: /src/selinux/libsemanage/src/semanage_store.c:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - root
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 180
    functionName: semanage_init_paths
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - asprintf
    linkageType: ''
    returnType: int
    signature: int semanage_init_paths(const char *root)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asprintf
      Src: /src/selinux/libsemanage/src/semanage_store.c:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - root
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 204
    functionName: semanage_init_store_paths
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - asprintf
    linkageType: ''
    returnType: int
    signature: int semanage_init_store_paths(const char *root)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/semanage_store.c:208,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/semanage_store.c:209,1
    - Dst: asprintf
      Src: /src/selinux/libsemanage/src/semanage_store.c:215,1
    - Dst: semanage_root
      Src: /src/selinux/libsemanage/src/semanage_store.c:216,1
    - Dst: asprintf
      Src: /src/selinux/libsemanage/src/semanage_store.c:225,1
    - Dst: semanage_root
      Src: /src/selinux/libsemanage/src/semanage_store.c:226,1
    - Dst: selinux_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:226,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:238,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - sh
    - prefix
    argTypes:
    - semanage_handle_t*
    - char*
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 207
        line_start: 207
        source_file: /src/selinux/libsemanage/src/semanage_store.c
    - condition: (prefix)
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/selinux/libsemanage/src/semanage_store.c
    constantsTouched: []
    func_position:
      end: 244
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 244
    functionName: semanage_init_final
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - asprintf
    - assert
    - free
    - semanage_root
    - selinux_path
    linkageType: ''
    returnType: int
    signature: int semanage_init_final(semanage_handle_t *sh, const char *prefix)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/semanage_store.c:251,1
    - Dst: selinux_policy_root
      Src: /src/selinux/libsemanage/src/semanage_store.c:251,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/semanage_store.c:253,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:255,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/semanage_store.c:261,1
    - Dst: selinux_file_context_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:261,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:263,1
    - Dst: asprintf
      Src: /src/selinux/libsemanage/src/semanage_store.c:268,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:270,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/semanage_store.c:276,1
    - Dst: selinux_file_context_homedir_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:276,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:278,1
    - Dst: asprintf
      Src: /src/selinux/libsemanage/src/semanage_store.c:284,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:286,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/semanage_store.c:293,1
    - Dst: selinux_file_context_local_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:293,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:295,1
    - Dst: asprintf
      Src: /src/selinux/libsemanage/src/semanage_store.c:301,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:303,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/semanage_store.c:310,1
    - Dst: selinux_netfilter_context_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:310,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:312,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/semanage_store.c:318,1
    - Dst: selinux_usersconf_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:318,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:320,1
    - Dst: snprintf
      Src: /src/selinux/libsemanage/src/semanage_store.c:325,1
    - Dst: selinux_binary_policy_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:326,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:329,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/semanage_store.c:334,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:336,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:345,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 84
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 351
    functionName: semanage_init_final_suffix
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - ERR
    - asprintf
    - snprintf
    - selinux_file_context_local_path
    - selinux_file_context_homedir_path
    - selinux_policy_root
    - selinux_binary_policy_path
    - selinux_file_context_path
    - free
    - selinux_usersconf_path
    - selinux_netfilter_context_path
    - strlen
    - strdup
    linkageType: ''
    returnType: int
    signature: int semanage_init_final_suffix(semanage_handle_t *sh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: asprintf
      Src: /src/selinux/libsemanage/src/semanage_store.c:361,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:365,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:377,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 384
    functionName: semanage_init_final_paths
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - ERR
    - asprintf
    - free
    linkageType: ''
    returnType: int
    signature: int semanage_init_final_paths(semanage_handle_t *sh)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libsemanage/src/semanage_store.c:400,1
    - Dst: semanage_root
      Src: /src/selinux/libsemanage/src/semanage_store.c:400,1
    - Dst: semanage_init_paths
      Src: /src/selinux/libsemanage/src/semanage_store.c:405,1
    - Dst: semanage_init_store_paths
      Src: /src/selinux/libsemanage/src/semanage_store.c:409,1
    - Dst: semanage_init_final
      Src: /src/selinux/libsemanage/src/semanage_store.c:413,1
    - Dst: semanage_init_final_suffix
      Src: /src/selinux/libsemanage/src/semanage_store.c:417,1
    - Dst: semanage_init_final_paths
      Src: /src/selinux/libsemanage/src/semanage_store.c:421,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - sh
    - prefix
    argTypes:
    - semanage_handle_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 428
    functionName: semanage_check_init
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 1
    functionsReached:
    - semanage_init_paths
    - semanage_init_final_suffix
    - snprintf
    - semanage_init_final_paths
    - semanage_root
    - semanage_init_store_paths
    - semanage_init_final
    linkageType: ''
    returnType: int
    signature: int semanage_check_init(semanage_handle_t *sh, const char *prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file_enum
    argTypes:
    - enum semanage_sandbox_defs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 434
    functionName: semanage_fname
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *semanage_fname(enum semanage_sandbox_defs file_enum)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/semanage_store.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - store
    - path_name
    argTypes:
    - enum semanage_store_defs
    - enum semanage_sandbox_defs
    assertStmts:
    - condition: (semanage_paths[store][path_name])
      pos:
        line_end: 446
        line_start: 446
        source_file: /src/selinux/libsemanage/src/semanage_store.c
    constantsTouched: []
    func_position:
      end: 449
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 449
    functionName: semanage_path
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 3
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: "char *semanage_path(enum semanage_store_defs store,\n\t\t\t  enum
      semanage_sandbox_defs path_name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/semanage_store.c:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - store
    - path_name
    argTypes:
    - enum semanage_final_defs
    - enum semanage_final_path_defs
    assertStmts:
    - condition: (semanage_final_paths[store][path_name])
      pos:
        line_end: 461
        line_start: 461
        source_file: /src/selinux/libsemanage/src/semanage_store.c
    constantsTouched: []
    func_position:
      end: 464
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 464
    functionName: semanage_final_path
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: char
    signature: "char *semanage_final_path(enum semanage_final_defs store,\n\t\t\t\tenum
      semanage_final_path_defs path_name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/semanage_store.c:479,1
    - Dst: semanage_root
      Src: /src/selinux/libsemanage/src/semanage_store.c:479,1
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/semanage_store.c:479,1
    - Dst: selinux_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:479,1
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/semanage_store.c:480,1
    - Dst: calloc
      Src: /src/selinux/libsemanage/src/semanage_store.c:481,1
    - Dst: snprintf
      Src: /src/selinux/libsemanage/src/semanage_store.c:484,1
    - Dst: semanage_root
      Src: /src/selinux/libsemanage/src/semanage_store.c:484,1
    - Dst: selinux_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:485,1
    - Dst: stat
      Src: /src/selinux/libsemanage/src/semanage_store.c:487,1
    - Dst: snprintf
      Src: /src/selinux/libsemanage/src/semanage_store.c:488,1
    - Dst: selinux_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:488,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 493
    functionName: semanage_conf_path
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 1
    functionsReached:
    - stat
    - snprintf
    - calloc
    - semanage_root
    - selinux_path
    - strlen
    linkageType: ''
    returnType: char
    signature: char *semanage_conf_path(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/semanage_store.c:505,1
    - Dst: memcpy
      Src: /src/selinux/libsemanage/src/semanage_store.c:512,1
    - Dst: strchr
      Src: /src/selinux/libsemanage/src/semanage_store.c:519,1
    - Dst: mkdir
      Src: /src/selinux/libsemanage/src/semanage_store.c:522,1
    - Dst: mkdir
      Src: /src/selinux/libsemanage/src/semanage_store.c:528,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 533
    functionName: mkdir_recursive
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - memcpy
    - strchr
    - strlen
    - mkdir
    linkageType: ''
    returnType: int
    signature: int mkdir_recursive(const char *path, mode_t mode)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/selinux/libsemanage/src/semanage_store.c:548,1
    - Dst: mkdir_recursive
      Src: /src/selinux/libsemanage/src/semanage_store.c:553,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:555,1
    - Dst: strerror
      Src: /src/selinux/libsemanage/src/semanage_store.c:557,1
    - Dst: chmod
      Src: /src/selinux/libsemanage/src/semanage_store.c:562,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:563,1
    - Dst: strerror
      Src: /src/selinux/libsemanage/src/semanage_store.c:565,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:570,1
    - Dst: S_ISDIR
      Src: /src/selinux/libsemanage/src/semanage_store.c:576,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:577,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:583,1
    - Dst: stat
      Src: /src/selinux/libsemanage/src/semanage_store.c:584,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:586,1
    - Dst: mkdir
      Src: /src/selinux/libsemanage/src/semanage_store.c:587,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:588,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:589,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:594,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:596,1
    - Dst: S_ISDIR
      Src: /src/selinux/libsemanage/src/semanage_store.c:602,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:603,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:609,1
    - Dst: stat
      Src: /src/selinux/libsemanage/src/semanage_store.c:610,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:612,1
    - Dst: mkdir
      Src: /src/selinux/libsemanage/src/semanage_store.c:613,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:614,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:615,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:620,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:622,1
    - Dst: S_ISDIR
      Src: /src/selinux/libsemanage/src/semanage_store.c:628,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:629,1
    - Dst: stat
      Src: /src/selinux/libsemanage/src/semanage_store.c:636,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:638,1
    - Dst: open
      Src: /src/selinux/libsemanage/src/semanage_store.c:639,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:642,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:643,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:647,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/semanage_store.c:648,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:650,1
    - Dst: S_ISREG
      Src: /src/selinux/libsemanage/src/semanage_store.c:654,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:655,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 84
    argCount: 2
    argNames:
    - sh
    - create
    argTypes:
    - semanage_handle_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 660
    functionName: semanage_create_store
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - ERR
    - stat
    - S_ISREG
    - close
    - mkdir
    - chmod
    - mkdir_recursive
    - strerror
    - semanage_path
    - umask
    - open
    - S_ISDIR
    linkageType: ''
    returnType: int
    signature: int semanage_create_store(semanage_handle_t *sh, int create)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:673,1
    - Dst: access
      Src: /src/selinux/libsemanage/src/semanage_store.c:674,1
    - Dst: access
      Src: /src/selinux/libsemanage/src/semanage_store.c:685,1
    - Dst: access
      Src: /src/selinux/libsemanage/src/semanage_store.c:686,1
    - Dst: access
      Src: /src/selinux/libsemanage/src/semanage_store.c:691,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:700,1
    - Dst: access
      Src: /src/selinux/libsemanage/src/semanage_store.c:701,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 708
    functionName: semanage_store_access_check
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 1
    functionsReached:
    - access
    - semanage_path
    linkageType: ''
    returnType: int
    signature: int semanage_store_access_check(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct dirent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 723
    functionName: semanage_filename_select
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int semanage_filename_select(const struct dirent *d)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libsemanage/src/semanage_store.c:735,1
    - Dst: open
      Src: /src/selinux/libsemanage/src/semanage_store.c:739,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:746,1
    - Dst: open
      Src: /src/selinux/libsemanage/src/semanage_store.c:747,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:749,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/semanage_store.c:751,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:755,1
    - Dst: read
      Src: /src/selinux/libsemanage/src/semanage_store.c:756,1
    - Dst: write_full
      Src: /src/selinux/libsemanage/src/semanage_store.c:757,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/semanage_store.c:770,1
    - Dst: fsync
      Src: /src/selinux/libsemanage/src/semanage_store.c:771,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/semanage_store.c:775,1
    - Dst: rename
      Src: /src/selinux/libsemanage/src/semanage_store.c:780,1
    - Dst: semanage_setfiles
      Src: /src/selinux/libsemanage/src/semanage_store.c:783,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 5
    argNames:
    - sh
    - src
    - dst
    - mode
    - syncrequired
    argTypes:
    - semanage_handle_t*
    - char*
    - char*
    - mode_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 787
    functionName: semanage_copy_file
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - semanage_setfiles
    - close
    - snprintf
    - write_full
    - umask
    - fsync
    - read
    - open
    - rename
    linkageType: ''
    returnType: int
    signature: "int semanage_copy_file(semanage_handle_t *sh, const char *src, const
      char *dst,\n\t\t       mode_t mode, bool syncrequired)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rename
      Src: /src/selinux/libsemanage/src/semanage_store.c:794,1
    - Dst: WARN
      Src: /src/selinux/libsemanage/src/semanage_store.c:799,1
    - Dst: semanage_copy_dir_flags
      Src: /src/selinux/libsemanage/src/semanage_store.c:802,1
    - Dst: semanage_remove_directory
      Src: /src/selinux/libsemanage/src/semanage_store.c:805,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - sh
    - src
    - dst
    argTypes:
    - semanage_handle_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 806
    functionName: semanage_rename
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - semanage_remove_directory
    - rename
    - semanage_copy_dir_flags
    - WARN
    linkageType: ''
    returnType: int
    signature: "int semanage_rename(semanage_handle_t *sh, const char *src,\n\t\t\t
      \  const char *dst)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_copy_dir_flags
      Src: /src/selinux/libsemanage/src/semanage_store.c:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - sh
    - src
    - dst
    argTypes:
    - semanage_handle_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 814
    functionName: semanage_copy_dir
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - semanage_copy_dir_flags
    linkageType: ''
    returnType: int
    signature: "int semanage_copy_dir(semanage_handle_t *sh, const char *src,\n\t\t\t
      \    const char *dst)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: scandir
      Src: /src/selinux/libsemanage/src/semanage_store.c:828,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:830,1
    - Dst: stat
      Src: /src/selinux/libsemanage/src/semanage_store.c:834,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:835,1
    - Dst: mkdir
      Src: /src/selinux/libsemanage/src/semanage_store.c:836,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:837,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:838,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:841,1
    - Dst: semanage_setfiles
      Src: /src/selinux/libsemanage/src/semanage_store.c:843,1
    - Dst: snprintf
      Src: /src/selinux/libsemanage/src/semanage_store.c:847,1
    - Dst: stat
      Src: /src/selinux/libsemanage/src/semanage_store.c:855,1
    - Dst: snprintf
      Src: /src/selinux/libsemanage/src/semanage_store.c:858,1
    - Dst: S_ISDIR
      Src: /src/selinux/libsemanage/src/semanage_store.c:864,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:865,1
    - Dst: mkdir
      Src: /src/selinux/libsemanage/src/semanage_store.c:866,1
    - Dst: semanage_copy_dir_flags
      Src: /src/selinux/libsemanage/src/semanage_store.c:867,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:869,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:872,1
    - Dst: semanage_setfiles
      Src: /src/selinux/libsemanage/src/semanage_store.c:873,1
    - Dst: S_ISREG
      Src: /src/selinux/libsemanage/src/semanage_store.c:874,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:875,1
    - Dst: semanage_copy_file
      Src: /src/selinux/libsemanage/src/semanage_store.c:876,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:878,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:881,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:887,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:889,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 61
    argCount: 4
    argNames:
    - sh
    - src
    - dst
    - flag
    argTypes:
    - semanage_handle_t*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 819
    functionDepth: 2
    functionLinenumber: 819
    functionLinenumberEnd: 891
    functionName: semanage_copy_dir_flags
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 3
    functionsReached:
    - ERR
    - stat
    - S_ISREG
    - semanage_setfiles
    - semanage_copy_dir_flags
    - snprintf
    - mkdir
    - umask
    - scandir
    - free
    - S_ISDIR
    - semanage_copy_file
    linkageType: ''
    returnType: int
    signature: "int semanage_copy_dir_flags(semanage_handle_t *sh, const char *src,\n\t\t\t\t
      \  const char *dst, int flag)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: scandir
      Src: /src/selinux/libsemanage/src/semanage_store.c:899,1
    - Dst: snprintf
      Src: /src/selinux/libsemanage/src/semanage_store.c:906,1
    - Dst: stat
      Src: /src/selinux/libsemanage/src/semanage_store.c:911,1
    - Dst: S_ISDIR
      Src: /src/selinux/libsemanage/src/semanage_store.c:914,1
    - Dst: semanage_remove_directory
      Src: /src/selinux/libsemanage/src/semanage_store.c:916,1
    - Dst: unlink
      Src: /src/selinux/libsemanage/src/semanage_store.c:920,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:924,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:926,1
    - Dst: rmdir
      Src: /src/selinux/libsemanage/src/semanage_store.c:927,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 895
    functionDepth: 1
    functionLinenumber: 895
    functionLinenumberEnd: 931
    functionName: semanage_remove_directory
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 2
    functionsReached:
    - stat
    - snprintf
    - unlink
    - semanage_remove_directory
    - rmdir
    - scandir
    - free
    - S_ISDIR
    linkageType: ''
    returnType: int
    signature: int semanage_remove_directory(const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/semanage_store.c:939,1
    - Dst: strcpy
      Src: /src/selinux/libsemanage/src/semanage_store.c:943,1
    - Dst: semanage_mkdir
      Src: /src/selinux/libsemanage/src/semanage_store.c:949,1
    - Dst: semanage_mkdir
      Src: /src/selinux/libsemanage/src/semanage_store.c:955,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - sh
    - path
    argTypes:
    - semanage_handle_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 959
    functionName: semanage_mkpath
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - semanage_mkdir
    - strcpy
    - strlen
    linkageType: ''
    returnType: int
    signature: int semanage_mkpath(semanage_handle_t *sh, const char *path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/selinux/libsemanage/src/semanage_store.c:968,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:970,1
    - Dst: mkdir
      Src: /src/selinux/libsemanage/src/semanage_store.c:971,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:972,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:973,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:977,1
    - Dst: semanage_setfiles
      Src: /src/selinux/libsemanage/src/semanage_store.c:978,1
    - Dst: S_ISDIR
      Src: /src/selinux/libsemanage/src/semanage_store.c:981,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:982,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - sh
    - path
    argTypes:
    - semanage_handle_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 992
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 992
    functionName: semanage_mkdir
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 1
    functionsReached:
    - ERR
    - stat
    - semanage_setfiles
    - mkdir
    - umask
    - S_ISDIR
    linkageType: ''
    returnType: int
    signature: int semanage_mkdir(semanage_handle_t *sh, const char *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1001,1
    - Dst: stat
      Src: /src/selinux/libsemanage/src/semanage_store.c:1006,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1008,1
    - Dst: semanage_remove_directory
      Src: /src/selinux/libsemanage/src/semanage_store.c:1014,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1015,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:1021,1
    - Dst: mkdir
      Src: /src/selinux/libsemanage/src/semanage_store.c:1022,1
    - Dst: semanage_copy_dir
      Src: /src/selinux/libsemanage/src/semanage_store.c:1023,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1024,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:1026,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1027,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:1030,1
    - Dst: semanage_remove_directory
      Src: /src/selinux/libsemanage/src/semanage_store.c:1035,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 999
    functionDepth: 2
    functionLinenumber: 999
    functionLinenumberEnd: 1038
    functionName: semanage_make_sandbox
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - ERR
    - stat
    - mkdir
    - semanage_copy_dir
    - semanage_remove_directory
    - semanage_path
    - umask
    linkageType: ''
    returnType: int
    signature: int semanage_make_sandbox(semanage_handle_t *sh)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libsemanage/src/semanage_store.c:1048,1
    - Dst: semanage_root
      Src: /src/selinux/libsemanage/src/semanage_store.c:1048,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1052,1
    - Dst: semanage_mkdir
      Src: /src/selinux/libsemanage/src/semanage_store.c:1057,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1059,1
    - Dst: semanage_remove_directory
      Src: /src/selinux/libsemanage/src/semanage_store.c:1067,1
    - Dst: semanage_final_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1067,1
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/semanage_store.c:1077,1
    - Dst: semanage_final_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1077,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1079,1
    - Dst: strcpy
      Src: /src/selinux/libsemanage/src/semanage_store.c:1083,1
    - Dst: semanage_final_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1083,1
    - Dst: semanage_mkpath
      Src: /src/selinux/libsemanage/src/semanage_store.c:1084,1
    - Dst: dirname
      Src: /src/selinux/libsemanage/src/semanage_store.c:1084,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1041
    functionDepth: 2
    functionLinenumber: 1041
    functionLinenumberEnd: 1093
    functionName: semanage_make_final
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - ERR
    - snprintf
    - dirname
    - semanage_remove_directory
    - strcpy
    - semanage_mkpath
    - semanage_final_path
    - semanage_root
    - semanage_mkdir
    - strlen
    linkageType: ''
    returnType: int
    signature: int semanage_make_final(semanage_handle_t *sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/semanage_store.c:1101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1102
    functionName: semanage_get_active_modules_cmp
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int semanage_get_active_modules_cmp(const void *a, const void *b)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsemanage/src/semanage_store.c:1115,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1117,1
    - Dst: semanage_module_get_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1122,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/semanage_store.c:1130,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:1141,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:1143,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - sh
    - modinfos
    - num_modinfos
    - filenames
    argTypes:
    - semanage_handle_t*
    - semanage_module_info_t*
    - int
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1104
    functionDepth: 1
    functionLinenumber: 1104
    functionLinenumberEnd: 1149
    functionName: semanage_get_cil_paths
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_module_get_path
    - free
    - calloc
    - strdup
    linkageType: ''
    returnType: int
    signature: "int semanage_get_cil_paths(semanage_handle_t *sh,\n\t\t\t   semanage_module_info_t
      *modinfos, int num_modinfos,\n\t\t\t   char ***filenames)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/semanage_store.c:1162,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/semanage_store.c:1163,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/semanage_store.c:1164,1
    - Dst: semanage_module_list_all
      Src: /src/selinux/libsemanage/src/semanage_store.c:1183,1
    - Dst: calloc
      Src: /src/selinux/libsemanage/src/semanage_store.c:1194,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1196,1
    - Dst: semanage_list_destroy
      Src: /src/selinux/libsemanage/src/semanage_store.c:1202,1
    - Dst: semanage_list_find
      Src: /src/selinux/libsemanage/src/semanage_store.c:1210,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/semanage_store.c:1212,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1214,1
    - Dst: semanage_module_info_clone
      Src: /src/selinux/libsemanage/src/semanage_store.c:1222,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:1234,1
    - Dst: realloc
      Src: /src/selinux/libsemanage/src/semanage_store.c:1240,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1242,1
    - Dst: qsort
      Src: /src/selinux/libsemanage/src/semanage_store.c:1249,1
    - Dst: semanage_list_destroy
      Src: /src/selinux/libsemanage/src/semanage_store.c:1253,1
    - Dst: semanage_module_info_destroy
      Src: /src/selinux/libsemanage/src/semanage_store.c:1256,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:1258,1
    - Dst: semanage_module_info_destroy
      Src: /src/selinux/libsemanage/src/semanage_store.c:1262,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:1264,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 76
    argCount: 3
    argNames:
    - sh
    - modinfo
    - num_modules
    argTypes:
    - semanage_handle_t*
    - semanage_module_info_t**
    - int*
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 1161
        line_start: 1161
        source_file: /src/selinux/libsemanage/src/semanage_store.c
    - condition: (num_modules)
      pos:
        line_end: 1163
        line_start: 1163
        source_file: /src/selinux/libsemanage/src/semanage_store.c
    - condition: (modinfo)
      pos:
        line_end: 1162
        line_start: 1162
        source_file: /src/selinux/libsemanage/src/semanage_store.c
    constantsTouched: []
    func_position:
      end: 1268
      start: 1158
    functionDepth: 1
    functionLinenumber: 1158
    functionLinenumberEnd: 1268
    functionName: semanage_get_active_modules
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - semanage_module_info_clone
    - ERR
    - semanage_module_info_destroy
    - assert
    - realloc
    - semanage_module_list_all
    - semanage_list_push
    - free
    - calloc
    - qsort
    - semanage_list_find
    - semanage_list_destroy
    linkageType: ''
    returnType: int
    signature: "int semanage_get_active_modules(semanage_handle_t *sh,\n\t\t\t\tsemanage_module_info_t
      **modinfo,\n\t\t\t\tint *num_modules)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/semanage_store.c:1278,1
    - Dst: realloc
      Src: /src/selinux/libsemanage/src/semanage_store.c:1279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1276
    functionDepth: 0
    functionLinenumber: 1276
    functionLinenumberEnd: 1287
    functionName: append
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 82
    functionsReached:
    - strlen
    - realloc
    linkageType: ''
    returnType: char
    signature: char *append(char *s, char c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/semanage_store.c:1296,1
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/semanage_store.c:1303,1
    - Dst: realloc
      Src: /src/selinux/libsemanage/src/semanage_store.c:1304,1
    - Dst: memcpy
      Src: /src/selinux/libsemanage/src/semanage_store.c:1309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1294
    functionDepth: 0
    functionLinenumber: 1294
    functionLinenumberEnd: 1312
    functionName: append_str
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - memcpy
    - strlen
    - realloc
    linkageType: ''
    returnType: char
    signature: char *append_str(char *s, const char *t)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/selinux/libsemanage/src/semanage_store.c:1323,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/semanage_store.c:1331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - argv
    - num_args
    - arg
    argTypes:
    - char***
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1319
    functionDepth: 0
    functionLinenumber: 1319
    functionLinenumberEnd: 1337
    functionName: append_arg
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - strdup
    - realloc
    linkageType: ''
    returnType: int
    signature: int append_arg(char ***argv, int *num_args, const char *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:1345,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:1347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1341
    functionDepth: 0
    functionLinenumber: 1341
    functionLinenumberEnd: 1348
    functionName: free_argv
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_argv(char **argv)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: append_arg
      Src: /src/selinux/libsemanage/src/semanage_store.c:1361,1
    - Dst: append
      Src: /src/selinux/libsemanage/src/semanage_store.c:1371,1
    - Dst: append
      Src: /src/selinux/libsemanage/src/semanage_store.c:1376,1
    - Dst: append
      Src: /src/selinux/libsemanage/src/semanage_store.c:1386,1
    - Dst: append
      Src: /src/selinux/libsemanage/src/semanage_store.c:1394,1
    - Dst: append
      Src: /src/selinux/libsemanage/src/semanage_store.c:1403,1
    - Dst: append
      Src: /src/selinux/libsemanage/src/semanage_store.c:1411,1
    - Dst: append_str
      Src: /src/selinux/libsemanage/src/semanage_store.c:1421,1
    - Dst: append_str
      Src: /src/selinux/libsemanage/src/semanage_store.c:1429,1
    - Dst: append
      Src: /src/selinux/libsemanage/src/semanage_store.c:1437,1
    - Dst: isspace
      Src: /src/selinux/libsemanage/src/semanage_store.c:1446,1
    - Dst: append_arg
      Src: /src/selinux/libsemanage/src/semanage_store.c:1449,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:1452,1
    - Dst: append
      Src: /src/selinux/libsemanage/src/semanage_store.c:1456,1
    - Dst: append_arg
      Src: /src/selinux/libsemanage/src/semanage_store.c:1467,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:1470,1
    - Dst: append_arg
      Src: /src/selinux/libsemanage/src/semanage_store.c:1474,1
    - Dst: free_argv
      Src: /src/selinux/libsemanage/src/semanage_store.c:1479,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:1480,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 135
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1355
    functionDepth: 1
    functionLinenumber: 1355
    functionLinenumberEnd: 1482
    functionName: split_args
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - append_str
    - isspace
    - free_argv
    - append
    - append_arg
    - free
    linkageType: ''
    returnType: char
    signature: "char **split_args(const char *arg0, char *arg_string,\n\t\t\t const
      char *new_name, const char *old_name)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: split_args
      Src: /src/selinux/libsemanage/src/semanage_store.c:1497,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1499,1
    - Dst: fork
      Src: /src/selinux/libsemanage/src/semanage_store.c:1505,1
    - Dst: execve
      Src: /src/selinux/libsemanage/src/semanage_store.c:1509,1
    - Dst: _exit
      Src: /src/selinux/libsemanage/src/semanage_store.c:1510,1
    - Dst: free_argv
      Src: /src/selinux/libsemanage/src/semanage_store.c:1513,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1516,1
    - Dst: waitpid
      Src: /src/selinux/libsemanage/src/semanage_store.c:1521,1
    - Dst: WIFEXITED
      Src: /src/selinux/libsemanage/src/semanage_store.c:1521,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1522,1
    - Dst: WEXITSTATUS
      Src: /src/selinux/libsemanage/src/semanage_store.c:1525,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - sh
    - e
    - new_name
    - old_name
    argTypes:
    - semanage_handle_t*
    - external_prog_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1490
    functionDepth: 2
    functionLinenumber: 1490
    functionLinenumberEnd: 1526
    functionName: semanage_exec_prog
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - ERR
    - split_args
    - fork
    - free_argv
    - WIFEXITED
    - execve
    - waitpid
    - WEXITSTATUS
    - _exit
    linkageType: ''
    returnType: int
    signature: "int semanage_exec_prog(semanage_handle_t *sh, external_prog_t *e,\n\t\t\t
      \     const char *new_name, const char *old_name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: semanage_exec_prog
      Src: /src/selinux/libsemanage/src/semanage_store.c:1537,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1541
      start: 1530
    functionDepth: 3
    functionLinenumber: 1530
    functionLinenumberEnd: 1541
    functionName: semanage_reload_policy
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 1
    functionsReached:
    - ERR
    - semanage_exec_prog
    linkageType: ''
    returnType: int
    signature: int semanage_reload_policy(semanage_handle_t *sh)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/libsemanage/src/semanage_store.c:1551,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1551,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1553,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1554,1
    - Dst: open
      Src: /src/selinux/libsemanage/src/semanage_store.c:1558,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1558,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1561,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1562,1
    - Dst: open
      Src: /src/selinux/libsemanage/src/semanage_store.c:1565,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1565,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1568,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1569,1
    - Dst: fgets_unlocked
      Src: /src/selinux/libsemanage/src/semanage_store.c:1573,1
    - Dst: strncmp
      Src: /src/selinux/libsemanage/src/semanage_store.c:1574,1
    - Dst: strncmp
      Src: /src/selinux/libsemanage/src/semanage_store.c:1575,1
    - Dst: strstr
      Src: /src/selinux/libsemanage/src/semanage_store.c:1575,1
    - Dst: strstr
      Src: /src/selinux/libsemanage/src/semanage_store.c:1576,1
    - Dst: write_full
      Src: /src/selinux/libsemanage/src/semanage_store.c:1578,1
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/semanage_store.c:1578,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1579,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1580,1
    - Dst: write_full
      Src: /src/selinux/libsemanage/src/semanage_store.c:1585,1
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/semanage_store.c:1585,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1586,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1587,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/semanage_store.c:1597,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/semanage_store.c:1599,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/semanage_store.c:1602,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 46
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1544
    functionDepth: 1
    functionLinenumber: 1544
    functionLinenumberEnd: 1606
    functionName: semanage_split_fc
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - strncmp
    - ERR
    - fclose
    - close
    - write_full
    - semanage_path
    - open
    - fopen
    - strstr
    - strlen
    - fgets_unlocked
    linkageType: ''
    returnType: int
    signature: int semanage_split_fc(semanage_handle_t *sh)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stat
      Src: /src/selinux/libsemanage/src/semanage_store.c:1613,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1615,1
    - Dst: semanage_exec_prog
      Src: /src/selinux/libsemanage/src/semanage_store.c:1622,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1624,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - sh
    - path
    argTypes:
    - semanage_handle_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1631
      start: 1608
    functionDepth: 3
    functionLinenumber: 1608
    functionLinenumberEnd: 1631
    functionName: sefcontext_compile
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - ERR
    - stat
    - semanage_exec_prog
    linkageType: ''
    returnType: int
    signature: int sefcontext_compile(semanage_handle_t *sh, const char *path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: semanage_exec_prog
      Src: /src/selinux/libsemanage/src/semanage_store.c:1639,1
    - Dst: semanage_final_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1640,1
    - Dst: semanage_final_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1642,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1645,1
    - Dst: sefcontext_compile
      Src: /src/selinux/libsemanage/src/semanage_store.c:1650,1
    - Dst: semanage_final_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1650,1
    - Dst: semanage_setfiles
      Src: /src/selinux/libsemanage/src/semanage_store.c:1654,1
    - Dst: semanage_final_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1654,1
    - Dst: sefcontext_compile
      Src: /src/selinux/libsemanage/src/semanage_store.c:1657,1
    - Dst: semanage_final_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1657,1
    - Dst: semanage_setfiles
      Src: /src/selinux/libsemanage/src/semanage_store.c:1662,1
    - Dst: semanage_final_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1662,1
    - Dst: sefcontext_compile
      Src: /src/selinux/libsemanage/src/semanage_store.c:1665,1
    - Dst: semanage_final_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1665,1
    - Dst: semanage_setfiles
      Src: /src/selinux/libsemanage/src/semanage_store.c:1670,1
    - Dst: semanage_final_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1670,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1633
    functionDepth: 4
    functionLinenumber: 1633
    functionLinenumberEnd: 1676
    functionName: semanage_validate_and_compile_fcontexts
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_setfiles
    - sefcontext_compile
    - semanage_final_path
    - semanage_exec_prog
    linkageType: ''
    returnType: int
    signature: int semanage_validate_and_compile_fcontexts(semanage_handle_t *sh)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: semanage_final_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1695,1
    - Dst: semanage_final_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1696,1
    - Dst: stat
      Src: /src/selinux/libsemanage/src/semanage_store.c:1699,1
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/semanage_store.c:1707,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1708,1
    - Dst: strcpy
      Src: /src/selinux/libsemanage/src/semanage_store.c:1712,1
    - Dst: semanage_mkpath
      Src: /src/selinux/libsemanage/src/semanage_store.c:1713,1
    - Dst: dirname
      Src: /src/selinux/libsemanage/src/semanage_store.c:1713,1
    - Dst: semanage_copy_file
      Src: /src/selinux/libsemanage/src/semanage_store.c:1718,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1721,1
    - Dst: selinux_policy_root
      Src: /src/selinux/libsemanage/src/semanage_store.c:1733,1
    - Dst: semanage_final_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1736,1
    - Dst: stat
      Src: /src/selinux/libsemanage/src/semanage_store.c:1739,1
    - Dst: stat
      Src: /src/selinux/libsemanage/src/semanage_store.c:1740,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1741,1
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/semanage_store.c:1751,1
    - Dst: semanage_reload_policy
      Src: /src/selinux/libsemanage/src/semanage_store.c:1756,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 56
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1681
    functionDepth: 4
    functionLinenumber: 1681
    functionLinenumberEnd: 1764
    functionName: semanage_install_final_tmp
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - ERR
    - stat
    - dirname
    - semanage_reload_policy
    - selinux_policy_root
    - strcpy
    - strcmp
    - semanage_mkpath
    - semanage_final_path
    - strlen
    - semanage_copy_file
    linkageType: ''
    returnType: int
    signature: int semanage_install_final_tmp(semanage_handle_t *sh)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1775,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1777,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1779,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:1780,1
    - Dst: semanage_direct_get_serial
      Src: /src/selinux/libsemanage/src/semanage_store.c:1785,1
    - Dst: memset
      Src: /src/selinux/libsemanage/src/semanage_store.c:1789,1
    - Dst: snprintf
      Src: /src/selinux/libsemanage/src/semanage_store.c:1790,1
    - Dst: open
      Src: /src/selinux/libsemanage/src/semanage_store.c:1791,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1794,1
    - Dst: write_full
      Src: /src/selinux/libsemanage/src/semanage_store.c:1798,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1800,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/semanage_store.c:1802,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/semanage_store.c:1805,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1806,1
    - Dst: open
      Src: /src/selinux/libsemanage/src/semanage_store.c:1812,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1814,1
    - Dst: syncfs
      Src: /src/selinux/libsemanage/src/semanage_store.c:1817,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1818,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/semanage_store.c:1819,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/semanage_store.c:1822,1
    - Dst: semanage_get_active_lock
      Src: /src/selinux/libsemanage/src/semanage_store.c:1826,1
    - Dst: stat
      Src: /src/selinux/libsemanage/src/semanage_store.c:1830,1
    - Dst: S_ISDIR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1831,1
    - Dst: semanage_remove_directory
      Src: /src/selinux/libsemanage/src/semanage_store.c:1832,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1833,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1838,1
    - Dst: semanage_rename
      Src: /src/selinux/libsemanage/src/semanage_store.c:1843,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1844,1
    - Dst: semanage_rename
      Src: /src/selinux/libsemanage/src/semanage_store.c:1852,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1853,1
    - Dst: semanage_rename
      Src: /src/selinux/libsemanage/src/semanage_store.c:1857,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1858,1
    - Dst: semanage_install_final_tmp
      Src: /src/selinux/libsemanage/src/semanage_store.c:1863,1
    - Dst: semanage_rename
      Src: /src/selinux/libsemanage/src/semanage_store.c:1868,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1869,1
    - Dst: semanage_rename
      Src: /src/selinux/libsemanage/src/semanage_store.c:1871,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1872,1
    - Dst: semanage_install_final_tmp
      Src: /src/selinux/libsemanage/src/semanage_store.c:1875,1
    - Dst: semanage_remove_directory
      Src: /src/selinux/libsemanage/src/semanage_store.c:1883,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1884,1
    - Dst: semanage_release_active_lock
      Src: /src/selinux/libsemanage/src/semanage_store.c:1893,1
    - Dst: selinux_restorecon_default_handle
      Src: /src/selinux/libsemanage/src/semanage_store.c:1896,1
    - Dst: selinux_restorecon_set_sehandle
      Src: /src/selinux/libsemanage/src/semanage_store.c:1897,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 92
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1770
    functionDepth: 5
    functionLinenumber: 1770
    functionLinenumberEnd: 1900
    functionName: semanage_commit_sandbox
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - ERR
    - stat
    - close
    - snprintf
    - semanage_get_active_lock
    - semanage_rename
    - selinux_restorecon_default_handle
    - semanage_remove_directory
    - write_full
    - semanage_path
    - selinux_restorecon_set_sehandle
    - semanage_install_final_tmp
    - open
    - memset
    - syncfs
    - S_ISDIR
    - semanage_direct_get_serial
    - semanage_release_active_lock
    linkageType: ''
    returnType: int
    signature: int semanage_commit_sandbox(semanage_handle_t *sh)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1913,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1918,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1923,1
    - Dst: semanage_validate_and_compile_fcontexts
      Src: /src/selinux/libsemanage/src/semanage_store.c:1928,1
    - Dst: semanage_commit_sandbox
      Src: /src/selinux/libsemanage/src/semanage_store.c:1931,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1940
      start: 1908
    functionDepth: 6
    functionLinenumber: 1908
    functionLinenumberEnd: 1940
    functionName: semanage_install_sandbox
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_commit_sandbox
    - semanage_validate_and_compile_fcontexts
    linkageType: ''
    returnType: int
    signature: int semanage_install_sandbox(semanage_handle_t *sh)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/selinux/libsemanage/src/semanage_store.c:1950,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1952,1
    - Dst: flock
      Src: /src/selinux/libsemanage/src/semanage_store.c:1957,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1963,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/semanage_store.c:1964,1
    - Dst: INFO
      Src: /src/selinux/libsemanage/src/semanage_store.c:1968,1
    - Dst: flock
      Src: /src/selinux/libsemanage/src/semanage_store.c:1972,1
    - Dst: nanosleep
      Src: /src/selinux/libsemanage/src/semanage_store.c:1982,1
    - Dst: flock
      Src: /src/selinux/libsemanage/src/semanage_store.c:1983,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1989,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/semanage_store.c:1991,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:1994,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/semanage_store.c:1995,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 3
    argNames:
    - sh
    - lock_name
    - lock_file
    argTypes:
    - semanage_handle_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1997
      start: 1944
    functionDepth: 0
    functionLinenumber: 1944
    functionLinenumberEnd: 1997
    functionName: semanage_get_lock
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - ERR
    - close
    - flock
    - open
    - INFO
    - nanosleep
    linkageType: ''
    returnType: int
    signature: "int semanage_get_lock(semanage_handle_t *sh, const char *lock_name,\n\t\t\t
      \    const char *lock_file)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: semanage_get_lock
      Src: /src/selinux/libsemanage/src/semanage_store.c:2013,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2019
      start: 2005
    functionDepth: 1
    functionLinenumber: 2005
    functionLinenumberEnd: 2019
    functionName: semanage_get_trans_lock
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 1
    functionsReached:
    - semanage_get_lock
    linkageType: ''
    returnType: int
    signature: int semanage_get_trans_lock(semanage_handle_t *sh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: semanage_get_lock
      Src: /src/selinux/libsemanage/src/semanage_store.c:2036,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2042
      start: 2028
    functionDepth: 1
    functionLinenumber: 2028
    functionLinenumberEnd: 2042
    functionName: semanage_get_active_lock
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 2
    functionsReached:
    - semanage_get_lock
    linkageType: ''
    returnType: int
    signature: int semanage_get_active_lock(semanage_handle_t *sh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flock
      Src: /src/selinux/libsemanage/src/semanage_store.c:2050,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/semanage_store.c:2051,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2055
      start: 2046
    functionDepth: 0
    functionLinenumber: 2046
    functionLinenumberEnd: 2055
    functionName: semanage_release_trans_lock
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 1
    functionsReached:
    - close
    - flock
    linkageType: ''
    returnType: void
    signature: void semanage_release_trans_lock(semanage_handle_t *sh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: flock
      Src: /src/selinux/libsemanage/src/semanage_store.c:2063,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/semanage_store.c:2064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 2059
    functionDepth: 0
    functionLinenumber: 2059
    functionLinenumberEnd: 2068
    functionName: semanage_release_active_lock
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 2
    functionsReached:
    - close
    - flock
    linkageType: ''
    returnType: void
    signature: void semanage_release_active_lock(semanage_handle_t *sh)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsemanage/src/semanage_store.c:2079,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:2083,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:2085,1
    - Dst: open
      Src: /src/selinux/libsemanage/src/semanage_store.c:2089,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2096,1
    - Dst: read
      Src: /src/selinux/libsemanage/src/semanage_store.c:2102,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2104,1
    - Dst: sscanf
      Src: /src/selinux/libsemanage/src/semanage_store.c:2107,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2112,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/semanage_store.c:2118,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2120
      start: 2073
    functionDepth: 1
    functionLinenumber: 2073
    functionLinenumberEnd: 2120
    functionName: semanage_direct_get_serial
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 1
    functionsReached:
    - ERR
    - close
    - semanage_path
    - sscanf
    - open
    - read
    - memset
    linkageType: ''
    returnType: int
    signature: int semanage_direct_get_serial(semanage_handle_t *sh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: map_compressed_file
      Src: /src/selinux/libsemanage/src/semanage_store.c:2134,1
    - Dst: cil_add_file
      Src: /src/selinux/libsemanage/src/semanage_store.c:2138,1
    - Dst: unmap_compressed_file
      Src: /src/selinux/libsemanage/src/semanage_store.c:2140,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - sh
    - cildb
    - filenames
    - numfiles
    argTypes:
    - semanage_handle_t*
    - cil_db_t*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2149
      start: 2124
    functionDepth: 2
    functionLinenumber: 2124
    functionLinenumberEnd: 2149
    functionName: semanage_load_files
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - map_compressed_file
    - unmap_compressed_file
    - cil_add_file
    - ERR
    linkageType: ''
    returnType: int
    signature: "int semanage_load_files(semanage_handle_t *sh, cil_db_t *cildb,\n\t\t\tchar
      **filenames, int numfiles)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:2166,1
    - Dst: fopen
      Src: /src/selinux/libsemanage/src/semanage_store.c:2169,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2170,1
    - Dst: __fsetlocking
      Src: /src/selinux/libsemanage/src/semanage_store.c:2174,1
    - Dst: sepol_policy_file_create
      Src: /src/selinux/libsemanage/src/semanage_store.c:2175,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2176,1
    - Dst: sepol_policy_file_set_fp
      Src: /src/selinux/libsemanage/src/semanage_store.c:2179,1
    - Dst: sepol_policy_file_set_handle
      Src: /src/selinux/libsemanage/src/semanage_store.c:2180,1
    - Dst: sepol_policydb_read
      Src: /src/selinux/libsemanage/src/semanage_store.c:2181,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2182,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/semanage_store.c:2190,1
    - Dst: sepol_policy_file_free
      Src: /src/selinux/libsemanage/src/semanage_store.c:2192,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - sh
    - in
    - file
    argTypes:
    - semanage_handle_t*
    - sepol_policydb_t*
    - enum semanage_sandbox_defs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2158
    functionDepth: 9
    functionLinenumber: 2158
    functionLinenumberEnd: 2194
    functionName: semanage_read_policydb
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - sepol_policy_file_create
    - ERR
    - sepol_policy_file_free
    - fclose
    - sepol_policy_file_set_fp
    - sepol_policydb_read
    - __fsetlocking
    - semanage_path
    - sepol_policy_file_set_handle
    - fopen
    linkageType: ''
    returnType: int
    signature: "int semanage_read_policydb(semanage_handle_t *sh, sepol_policydb_t
      *in,\n\t\t\t   enum semanage_sandbox_defs file)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:2205,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:2207,1
    - Dst: fopen
      Src: /src/selinux/libsemanage/src/semanage_store.c:2210,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2211,1
    - Dst: __fsetlocking
      Src: /src/selinux/libsemanage/src/semanage_store.c:2215,1
    - Dst: sepol_policy_file_create
      Src: /src/selinux/libsemanage/src/semanage_store.c:2216,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2217,1
    - Dst: sepol_policy_file_set_fp
      Src: /src/selinux/libsemanage/src/semanage_store.c:2220,1
    - Dst: sepol_policy_file_set_handle
      Src: /src/selinux/libsemanage/src/semanage_store.c:2221,1
    - Dst: sepol_policydb_write
      Src: /src/selinux/libsemanage/src/semanage_store.c:2222,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2223,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/semanage_store.c:2231,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/semanage_store.c:2235,1
    - Dst: sepol_policy_file_free
      Src: /src/selinux/libsemanage/src/semanage_store.c:2236,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - sh
    - out
    - file
    argTypes:
    - semanage_handle_t*
    - sepol_policydb_t*
    - enum semanage_sandbox_defs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2198
    functionDepth: 9
    functionLinenumber: 2198
    functionLinenumberEnd: 2238
    functionName: semanage_write_policydb
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - sepol_policy_file_create
    - ERR
    - sepol_policydb_write
    - fclose
    - sepol_policy_file_free
    - sepol_policy_file_set_fp
    - __fsetlocking
    - semanage_path
    - sepol_policy_file_set_handle
    - umask
    - fopen
    linkageType: ''
    returnType: int
    signature: "int semanage_write_policydb(semanage_handle_t *sh, sepol_policydb_t
      *out,\n\t\t\t    enum semanage_sandbox_defs file)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: semanage_exec_prog
      Src: /src/selinux/libsemanage/src/semanage_store.c:2255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - sh
    - module_filenames
    - num_modules
    argTypes:
    - semanage_handle_t*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2243
    functionDepth: 3
    functionLinenumber: 2243
    functionLinenumberEnd: 2261
    functionName: semanage_verify_modules
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - semanage_exec_prog
    linkageType: ''
    returnType: int
    signature: "int semanage_verify_modules(semanage_handle_t *sh, char **module_filenames,\n\t\t\t
      \   int num_modules)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:2272,1
    - Dst: semanage_exec_prog
      Src: /src/selinux/libsemanage/src/semanage_store.c:2278,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2285
      start: 2267
    functionDepth: 3
    functionLinenumber: 2267
    functionLinenumberEnd: 2285
    functionName: semanage_verify_linked
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - semanage_path
    - semanage_exec_prog
    linkageType: ''
    returnType: int
    signature: int semanage_verify_linked(semanage_handle_t *sh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: semanage_final_path
      Src: /src/selinux/libsemanage/src/semanage_store.c:2294,1
    - Dst: semanage_exec_prog
      Src: /src/selinux/libsemanage/src/semanage_store.c:2301,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2308
      start: 2290
    functionDepth: 3
    functionLinenumber: 2290
    functionLinenumberEnd: 2308
    functionName: semanage_verify_kernel
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - semanage_final_path
    - semanage_exec_prog
    linkageType: ''
    returnType: int
    signature: int semanage_verify_kernel(semanage_handle_t *sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:2315,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:2316,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:2317,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:2318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - x
    argTypes:
    - semanage_file_context_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2319
      start: 2313
    functionDepth: 0
    functionLinenumber: 2313
    functionLinenumberEnd: 2319
    functionName: semanage_fc_node_destroy
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void semanage_fc_node_destroy(semanage_file_context_node_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fc_node_destroy
      Src: /src/selinux/libsemanage/src/semanage_store.c:2329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - semanage_file_context_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2322
    functionDepth: 1
    functionLinenumber: 2322
    functionLinenumberEnd: 2331
    functionName: semanage_fc_node_list_destroy
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - semanage_fc_node_destroy
    linkageType: ''
    returnType: void
    signature: void semanage_fc_node_list_destroy(semanage_file_context_node_t *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fc_node_list_destroy
      Src: /src/selinux/libsemanage/src/semanage_store.c:2342,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:2343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - semanage_file_context_bucket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2345
      start: 2335
    functionDepth: 2
    functionLinenumber: 2335
    functionLinenumberEnd: 2345
    functionName: semanage_fc_bucket_list_destroy
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - semanage_fc_node_list_destroy
    - free
    linkageType: ''
    returnType: void
    signature: void semanage_fc_bucket_list_destroy(semanage_file_context_bucket_t
      *x)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 18
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - semanage_file_context_node_t*
    - semanage_file_context_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2402
      start: 2365
    functionDepth: 0
    functionLinenumber: 2365
    functionLinenumberEnd: 2402
    functionName: semanage_fc_compare
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int semanage_fc_compare(const semanage_file_context_node_t *a,\n\t\t\t
      \      const semanage_file_context_node_t *b)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fc_compare
      Src: /src/selinux/libsemanage/src/semanage_store.c:2422,1
    - Dst: semanage_fc_compare
      Src: /src/selinux/libsemanage/src/semanage_store.c:2433,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - semanage_file_context_node_t*
    - semanage_file_context_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2447
      start: 2408
    functionDepth: 1
    functionLinenumber: 2408
    functionLinenumberEnd: 2447
    functionName: semanage_fc_merge
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - semanage_fc_compare
    linkageType: ''
    returnType: semanage_file_context_node_t
    signature: "semanage_file_context_node_t *\nsemanage_fc_merge(semanage_file_context_node_t
      *left,\n\t\t  semanage_file_context_node_t *right)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fc_merge
      Src: /src/selinux/libsemanage/src/semanage_store.c:2478,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:2487,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - main
    argTypes:
    - semanage_file_context_bucket_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2492
      start: 2462
    functionDepth: 2
    functionLinenumber: 2462
    functionLinenumberEnd: 2492
    functionName: semanage_fc_merge_sort
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - free
    - semanage_fc_merge
    linkageType: ''
    returnType: void
    signature: void semanage_fc_merge_sort(semanage_file_context_bucket_t *main)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - fc_node
    argTypes:
    - semanage_file_context_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2536
      start: 2500
    functionDepth: 0
    functionLinenumber: 2500
    functionLinenumberEnd: 2536
    functionName: semanage_fc_find_meta
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void semanage_fc_find_meta(semanage_file_context_node_t *fc_node)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - buf
    - buf_len
    - c
    argTypes:
    - char*
    - size_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2555
      start: 2539
    functionDepth: 0
    functionLinenumber: 2539
    functionLinenumberEnd: 2555
    functionName: semanage_strnchr
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *semanage_strnchr(const char *buf, size_t buf_len, char c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: semanage_strnchr
      Src: /src/selinux/libsemanage/src/semanage_store.c:2570,1
    - Dst: semanage_strnchr
      Src: /src/selinux/libsemanage/src/semanage_store.c:2572,1
    - Dst: semanage_strnchr
      Src: /src/selinux/libsemanage/src/semanage_store.c:2574,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - buf_len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2577
      start: 2561
    functionDepth: 1
    functionLinenumber: 2561
    functionLinenumberEnd: 2577
    functionName: semanage_get_line_end
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - semanage_strnchr
    linkageType: ''
    returnType: char
    signature: char *semanage_get_line_end(const char *buf, size_t buf_len)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2606,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2610,1
    - Dst: calloc
      Src: /src/selinux/libsemanage/src/semanage_store.c:2616,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2619,1
    - Dst: semanage_get_line_end
      Src: /src/selinux/libsemanage/src/semanage_store.c:2626,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2632,1
    - Dst: semanage_fc_node_list_destroy
      Src: /src/selinux/libsemanage/src/semanage_store.c:2633,1
    - Dst: isspace
      Src: /src/selinux/libsemanage/src/semanage_store.c:2644,1
    - Dst: calloc
      Src: /src/selinux/libsemanage/src/semanage_store.c:2661,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2664,1
    - Dst: semanage_fc_node_list_destroy
      Src: /src/selinux/libsemanage/src/semanage_store.c:2665,1
    - Dst: isspace
      Src: /src/selinux/libsemanage/src/semanage_store.c:2674,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2693,1
    - Dst: semanage_fc_node_destroy
      Src: /src/selinux/libsemanage/src/semanage_store.c:2695,1
    - Dst: strndup
      Src: /src/selinux/libsemanage/src/semanage_store.c:2700,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2702,1
    - Dst: semanage_fc_node_destroy
      Src: /src/selinux/libsemanage/src/semanage_store.c:2703,1
    - Dst: semanage_fc_node_list_destroy
      Src: /src/selinux/libsemanage/src/semanage_store.c:2704,1
    - Dst: isspace
      Src: /src/selinux/libsemanage/src/semanage_store.c:2710,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2714,1
    - Dst: semanage_fc_node_destroy
      Src: /src/selinux/libsemanage/src/semanage_store.c:2717,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2727,1
    - Dst: semanage_fc_node_destroy
      Src: /src/selinux/libsemanage/src/semanage_store.c:2730,1
    - Dst: strndup
      Src: /src/selinux/libsemanage/src/semanage_store.c:2736,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2738,1
    - Dst: semanage_fc_node_destroy
      Src: /src/selinux/libsemanage/src/semanage_store.c:2739,1
    - Dst: semanage_fc_node_list_destroy
      Src: /src/selinux/libsemanage/src/semanage_store.c:2740,1
    - Dst: isspace
      Src: /src/selinux/libsemanage/src/semanage_store.c:2748,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2752,1
    - Dst: semanage_fc_node_destroy
      Src: /src/selinux/libsemanage/src/semanage_store.c:2755,1
    - Dst: isspace
      Src: /src/selinux/libsemanage/src/semanage_store.c:2766,1
    - Dst: strndup
      Src: /src/selinux/libsemanage/src/semanage_store.c:2771,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2773,1
    - Dst: semanage_fc_node_destroy
      Src: /src/selinux/libsemanage/src/semanage_store.c:2774,1
    - Dst: semanage_fc_node_list_destroy
      Src: /src/selinux/libsemanage/src/semanage_store.c:2775,1
    - Dst: semanage_fc_find_meta
      Src: /src/selinux/libsemanage/src/semanage_store.c:2784,1
    - Dst: calloc
      Src: /src/selinux/libsemanage/src/semanage_store.c:2795,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2798,1
    - Dst: semanage_fc_node_list_destroy
      Src: /src/selinux/libsemanage/src/semanage_store.c:2799,1
    - Dst: semanage_fc_node_destroy
      Src: /src/selinux/libsemanage/src/semanage_store.c:2804,1
    - Dst: calloc
      Src: /src/selinux/libsemanage/src/semanage_store.c:2818,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2822,1
    - Dst: semanage_fc_bucket_list_destroy
      Src: /src/selinux/libsemanage/src/semanage_store.c:2823,1
    - Dst: semanage_fc_merge_sort
      Src: /src/selinux/libsemanage/src/semanage_store.c:2832,1
    - Dst: calloc
      Src: /src/selinux/libsemanage/src/semanage_store.c:2851,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2853,1
    - Dst: semanage_fc_bucket_list_destroy
      Src: /src/selinux/libsemanage/src/semanage_store.c:2854,1
    - Dst: snprintf
      Src: /src/selinux/libsemanage/src/semanage_store.c:2865,1
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/semanage_store.c:2870,1
    - Dst: snprintf
      Src: /src/selinux/libsemanage/src/semanage_store.c:2871,1
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/semanage_store.c:2877,1
    - Dst: snprintf
      Src: /src/selinux/libsemanage/src/semanage_store.c:2878,1
    - Dst: semanage_fc_bucket_list_destroy
      Src: /src/selinux/libsemanage/src/semanage_store.c:2885,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2890,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:2891,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 209
    argCount: 5
    argNames:
    - sh
    - buf
    - buf_len
    - sorted_buf
    - sorted_buf_len
    argTypes:
    - semanage_handle_t*
    - char*
    - size_t
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2897
      start: 2586
    functionDepth: 3
    functionLinenumber: 2586
    functionLinenumberEnd: 2897
    functionName: semanage_fc_sort
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_fc_node_destroy
    - isspace
    - strndup
    - semanage_fc_bucket_list_destroy
    - semanage_get_line_end
    - snprintf
    - free
    - calloc
    - semanage_fc_merge_sort
    - semanage_fc_node_list_destroy
    - semanage_fc_find_meta
    - strlen
    linkageType: ''
    returnType: int
    signature: "int semanage_fc_sort(semanage_handle_t *sh, const char *buf, size_t
      buf_len,\n\t\t     char **sorted_buf, size_t *sorted_buf_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:2912,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:2913,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ruletab
    argTypes:
    - semanage_netfilter_context_node_t*[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2916
      start: 2903
    functionDepth: 0
    functionLinenumber: 2903
    functionLinenumberEnd: 2916
    functionName: semanage_nc_destroy_ruletab
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: "void semanage_nc_destroy_ruletab(\n\tsemanage_netfilter_context_node_t
      *ruletab[NC_SORT_NEL][2])"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libsemanage/src/semanage_store.c:2945,1
    - Dst: semanage_get_line_end
      Src: /src/selinux/libsemanage/src/semanage_store.c:2951,1
    - Dst: isspace
      Src: /src/selinux/libsemanage/src/semanage_store.c:2962,1
    - Dst: strncmp
      Src: /src/selinux/libsemanage/src/semanage_store.c:2982,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:2991,1
    - Dst: semanage_nc_destroy_ruletab
      Src: /src/selinux/libsemanage/src/semanage_store.c:2992,1
    - Dst: isspace
      Src: /src/selinux/libsemanage/src/semanage_store.c:2998,1
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/semanage_store.c:3003,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:3006,1
    - Dst: semanage_nc_destroy_ruletab
      Src: /src/selinux/libsemanage/src/semanage_store.c:3007,1
    - Dst: strndup
      Src: /src/selinux/libsemanage/src/semanage_store.c:3011,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:3016,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/semanage_store.c:3017,1
    - Dst: semanage_nc_destroy_ruletab
      Src: /src/selinux/libsemanage/src/semanage_store.c:3018,1
    - Dst: calloc
      Src: /src/selinux/libsemanage/src/semanage_store.c:3045,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:3047,1
    - Dst: semanage_nc_destroy_ruletab
      Src: /src/selinux/libsemanage/src/semanage_store.c:3048,1
    - Dst: snprintf
      Src: /src/selinux/libsemanage/src/semanage_store.c:3058,1
    - Dst: semanage_nc_destroy_ruletab
      Src: /src/selinux/libsemanage/src/semanage_store.c:3065,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 82
    argCount: 5
    argNames:
    - sh
    - buf
    - buf_len
    - sorted_buf
    - sorted_buf_len
    argTypes:
    - semanage_handle_t*
    - char*
    - size_t
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3068
      start: 2925
    functionDepth: 2
    functionLinenumber: 2925
    functionLinenumberEnd: 3068
    functionName: semanage_nc_sort
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 1
    functionsReached:
    - strncmp
    - ERR
    - isspace
    - strndup
    - snprintf
    - semanage_get_line_end
    - malloc
    - semanage_nc_destroy_ruletab
    - free
    - calloc
    - memset
    linkageType: ''
    returnType: int
    signature: "int semanage_nc_sort(semanage_handle_t *sh, const char *buf, size_t
      buf_len,\n\t\t     char **sorted_buf, size_t *sorted_buf_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/selinux/libsemanage/src/semanage_store.c:3071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3076
      start: 3071
    functionDepth: 0
    functionLinenumber: 3071
    functionLinenumberEnd: 3076
    functionName: log_callback_mute
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 0
    functionsReached:
    - format
    linkageType: ''
    returnType: int
    signature: "int log_callback_mute(__attribute__((unused)) int type,\n\t\t  __attribute__((unused))
      const char *fmt, ...)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: selinux_get_callback
      Src: /src/selinux/libsemanage/src/semanage_store.c:3085,1
    - Dst: selinux_set_callback
      Src: /src/selinux/libsemanage/src/semanage_store.c:3089,1
    - Dst: selinux_restorecon
      Src: /src/selinux/libsemanage/src/semanage_store.c:3093,1
    - Dst: selinux_set_callback
      Src: /src/selinux/libsemanage/src/semanage_store.c:3096,1
    - Dst: geteuid
      Src: /src/selinux/libsemanage/src/semanage_store.c:3098,1
    - Dst: getegid
      Src: /src/selinux/libsemanage/src/semanage_store.c:3098,1
    - Dst: open
      Src: /src/selinux/libsemanage/src/semanage_store.c:3099,1
    - Dst: fstat
      Src: /src/selinux/libsemanage/src/semanage_store.c:3101,1
    - Dst: S_ISREG
      Src: /src/selinux/libsemanage/src/semanage_store.c:3102,1
    - Dst: fchown
      Src: /src/selinux/libsemanage/src/semanage_store.c:3104,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/semanage_store.c:3105,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/semanage_store.c:3109,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - sh
    - path
    argTypes:
    - semanage_handle_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3111
      start: 3080
    functionDepth: 1
    functionLinenumber: 3080
    functionLinenumberEnd: 3111
    functionName: semanage_setfiles
    functionSourceFile: /src/selinux/libsemanage/src/semanage_store.c
    functionUses: 4
    functionsReached:
    - getegid
    - ERR
    - S_ISREG
    - close
    - geteuid
    - selinux_get_callback
    - open
    - fstat
    - fchown
    - selinux_restorecon
    - selinux_set_callback
    linkageType: ''
    returnType: void
    signature: void semanage_setfiles(semanage_handle_t *sh, const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_iface_compare
      Src: /src/selinux/libsemanage/src/iface_record.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - iface
    - key
    argTypes:
    - semanage_iface_t*
    - semanage_iface_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: semanage_iface_compare
    functionSourceFile: /src/selinux/libsemanage/src/iface_record.c
    functionUses: 1
    functionsReached:
    - sepol_iface_compare
    linkageType: ''
    returnType: int
    signature: "int semanage_iface_compare(const semanage_iface_t *iface,\n\t\t\t
      \  const semanage_iface_key_t *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_iface_compare2
      Src: /src/selinux/libsemanage/src/iface_record.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - iface
    - iface2
    argTypes:
    - semanage_iface_t*
    - semanage_iface_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: semanage_iface_compare2
    functionSourceFile: /src/selinux/libsemanage/src/iface_record.c
    functionUses: 1
    functionsReached:
    - sepol_iface_compare2
    linkageType: ''
    returnType: int
    signature: "int semanage_iface_compare2(const semanage_iface_t *iface,\n\t\t\t
      \   const semanage_iface_t *iface2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_iface_compare2
      Src: /src/selinux/libsemanage/src/iface_record.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 45
    functionName: semanage_iface_compare2_qsort
    functionSourceFile: /src/selinux/libsemanage/src/iface_record.c
    functionUses: 0
    functionsReached:
    - sepol_iface_compare2
    linkageType: ''
    returnType: int
    signature: int semanage_iface_compare2_qsort(const void *p1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_iface_key_create
      Src: /src/selinux/libsemanage/src/iface_record.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - name
    - key_ptr
    argTypes:
    - semanage_handle_t*
    - char*
    - semanage_iface_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: semanage_iface_key_create
    functionSourceFile: /src/selinux/libsemanage/src/iface_record.c
    functionUses: 3
    functionsReached:
    - sepol_iface_key_create
    linkageType: ''
    returnType: int
    signature: "int semanage_iface_key_create(semanage_handle_t *handle, const char
      *name,\n\t\t\t      semanage_iface_key_t **key_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_iface_key_extract
      Src: /src/selinux/libsemanage/src/iface_record.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - iface
    - key_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_iface_t*
    - semanage_iface_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: semanage_iface_key_extract
    functionSourceFile: /src/selinux/libsemanage/src/iface_record.c
    functionUses: 4
    functionsReached:
    - sepol_iface_key_extract
    linkageType: ''
    returnType: int
    signature: "int semanage_iface_key_extract(semanage_handle_t *handle,\n\t\t\t
      \      const semanage_iface_t *iface,\n\t\t\t       semanage_iface_key_t **key_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_iface_key_free
      Src: /src/selinux/libsemanage/src/iface_record.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - semanage_iface_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: semanage_iface_key_free
    functionSourceFile: /src/selinux/libsemanage/src/iface_record.c
    functionUses: 9
    functionsReached:
    - sepol_iface_key_free
    linkageType: ''
    returnType: void
    signature: void semanage_iface_key_free(semanage_iface_key_t *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_iface_get_name
      Src: /src/selinux/libsemanage/src/iface_record.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iface
    argTypes:
    - semanage_iface_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: semanage_iface_get_name
    functionSourceFile: /src/selinux/libsemanage/src/iface_record.c
    functionUses: 4
    functionsReached:
    - sepol_iface_get_name
    linkageType: ''
    returnType: char
    signature: char *semanage_iface_get_name(const semanage_iface_t *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_iface_set_name
      Src: /src/selinux/libsemanage/src/iface_record.c:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - iface
    - name
    argTypes:
    - semanage_handle_t*
    - semanage_iface_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: semanage_iface_set_name
    functionSourceFile: /src/selinux/libsemanage/src/iface_record.c
    functionUses: 4
    functionsReached:
    - sepol_iface_set_name
    linkageType: ''
    returnType: int
    signature: "int semanage_iface_set_name(semanage_handle_t *handle, semanage_iface_t
      *iface,\n\t\t\t    const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_iface_get_ifcon
      Src: /src/selinux/libsemanage/src/iface_record.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iface
    argTypes:
    - semanage_iface_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: semanage_iface_get_ifcon
    functionSourceFile: /src/selinux/libsemanage/src/iface_record.c
    functionUses: 4
    functionsReached:
    - sepol_iface_get_ifcon
    linkageType: ''
    returnType: semanage_context_t
    signature: semanage_context_t *semanage_iface_get_ifcon(const semanage_iface_t
      *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_iface_set_ifcon
      Src: /src/selinux/libsemanage/src/iface_record.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - iface
    - con
    argTypes:
    - semanage_handle_t*
    - semanage_iface_t*
    - semanage_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: semanage_iface_set_ifcon
    functionSourceFile: /src/selinux/libsemanage/src/iface_record.c
    functionUses: 4
    functionsReached:
    - sepol_iface_set_ifcon
    linkageType: ''
    returnType: int
    signature: "int semanage_iface_set_ifcon(semanage_handle_t *handle, semanage_iface_t
      *iface,\n\t\t\t     semanage_context_t *con)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_iface_get_msgcon
      Src: /src/selinux/libsemanage/src/iface_record.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iface
    argTypes:
    - semanage_iface_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 92
    functionName: semanage_iface_get_msgcon
    functionSourceFile: /src/selinux/libsemanage/src/iface_record.c
    functionUses: 4
    functionsReached:
    - sepol_iface_get_msgcon
    linkageType: ''
    returnType: semanage_context_t
    signature: semanage_context_t *semanage_iface_get_msgcon(const semanage_iface_t
      *iface)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_iface_set_msgcon
      Src: /src/selinux/libsemanage/src/iface_record.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - iface
    - con
    argTypes:
    - semanage_handle_t*
    - semanage_iface_t*
    - semanage_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: semanage_iface_set_msgcon
    functionSourceFile: /src/selinux/libsemanage/src/iface_record.c
    functionUses: 4
    functionsReached:
    - sepol_iface_set_msgcon
    linkageType: ''
    returnType: int
    signature: "int semanage_iface_set_msgcon(semanage_handle_t *handle,\n\t\t\t      semanage_iface_t
      *iface, semanage_context_t *con)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_iface_create
      Src: /src/selinux/libsemanage/src/iface_record.c:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - iface_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_iface_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: semanage_iface_create
    functionSourceFile: /src/selinux/libsemanage/src/iface_record.c
    functionUses: 2
    functionsReached:
    - sepol_iface_create
    linkageType: ''
    returnType: int
    signature: "int semanage_iface_create(semanage_handle_t *handle,\n\t\t\t  semanage_iface_t
      **iface_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_iface_clone
      Src: /src/selinux/libsemanage/src/iface_record.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - iface
    - iface_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_iface_t*
    - semanage_iface_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: semanage_iface_clone
    functionSourceFile: /src/selinux/libsemanage/src/iface_record.c
    functionUses: 1
    functionsReached:
    - sepol_iface_clone
    linkageType: ''
    returnType: int
    signature: "int semanage_iface_clone(semanage_handle_t *handle,\n\t\t\t const
      semanage_iface_t *iface,\n\t\t\t semanage_iface_t **iface_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_iface_free
      Src: /src/selinux/libsemanage/src/iface_record.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iface
    argTypes:
    - semanage_iface_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: semanage_iface_free
    functionSourceFile: /src/selinux/libsemanage/src/iface_record.c
    functionUses: 15
    functionsReached:
    - sepol_iface_free
    linkageType: ''
    returnType: void
    signature: void semanage_iface_free(semanage_iface_t *iface)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibendport_get_port
      Src: /src/selinux/libsemanage/src/ibendports_file.c:28,1
    - Dst: semanage_ibendport_get_ibdev_name
      Src: /src/selinux/libsemanage/src/ibendports_file.c:30,1
    - Dst: semanage_ibendport_get_con
      Src: /src/selinux/libsemanage/src/ibendports_file.c:34,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/ibendports_file.c:36,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/ibendports_file.c:39,1
    - Dst: semanage_context_to_string
      Src: /src/selinux/libsemanage/src/ibendports_file.c:42,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/ibendports_file.c:44,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ibendports_file.c:47,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ibendports_file.c:48,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/ibendports_file.c:52,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ibendports_file.c:54,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ibendports_file.c:55,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - handle
    - ibendport
    - str
    argTypes:
    - semanage_handle_t*
    - semanage_ibendport_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 22
    functionDepth: 3
    functionLinenumber: 22
    functionLinenumberEnd: 57
    functionName: ibendport_print
    functionSourceFile: /src/selinux/libsemanage/src/ibendports_file.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_ibendport_get_con
    - semanage_ibendport_get_ibdev_name
    - semanage_context_to_string
    - semanage_ibendport_get_port
    - free
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int ibendport_print(semanage_handle_t *handle,\n\t\t\t   const semanage_ibendport_t
      *ibendport, FILE *str)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: parse_skip_space
      Src: /src/selinux/libsemanage/src/ibendports_file.c:66,1
    - Dst: parse_assert_str
      Src: /src/selinux/libsemanage/src/ibendports_file.c:72,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/ibendports_file.c:74,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/ibendports_file.c:78,1
    - Dst: semanage_ibendport_set_ibdev_name
      Src: /src/selinux/libsemanage/src/ibendports_file.c:80,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ibendports_file.c:82,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/ibendports_file.c:86,1
    - Dst: parse_fetch_int
      Src: /src/selinux/libsemanage/src/ibendports_file.c:88,1
    - Dst: semanage_ibendport_set_port
      Src: /src/selinux/libsemanage/src/ibendports_file.c:90,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/ibendports_file.c:93,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/ibendports_file.c:95,1
    - Dst: semanage_context_from_string
      Src: /src/selinux/libsemanage/src/ibendports_file.c:97,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/ibendports_file.c:98,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/ibendports_file.c:103,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ibendports_file.c:108,1
    - Dst: semanage_ibendport_set_con
      Src: /src/selinux/libsemanage/src/ibendports_file.c:111,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/ibendports_file.c:114,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/src/ibendports_file.c:117,1
    - Dst: parse_dispose_line
      Src: /src/selinux/libsemanage/src/ibendports_file.c:121,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/ibendports_file.c:125,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ibendports_file.c:126,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/src/ibendports_file.c:127,1
    - Dst: parse_dispose_line
      Src: /src/selinux/libsemanage/src/ibendports_file.c:128,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 65
    argCount: 3
    argNames:
    - handle
    - info
    - ibendport
    argTypes:
    - semanage_handle_t*
    - parse_info_t*
    - semanage_ibendport_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 130
    functionName: ibendport_parse
    functionSourceFile: /src/selinux/libsemanage/src/ibendports_file.c
    functionUses: 0
    functionsReached:
    - ERR
    - parse_assert_str
    - parse_assert_space
    - semanage_ibendport_set_ibdev_name
    - parse_skip_space
    - semanage_ibendport_set_con
    - parse_dispose_line
    - semanage_context_from_string
    - free
    - parse_fetch_string
    - semanage_ibendport_set_port
    - semanage_context_free
    - parse_fetch_int
    linkageType: ''
    returnType: int
    signature: "int ibendport_parse(semanage_handle_t *handle, parse_info_t *info,\n\t\t\t
      \  semanage_ibendport_t *ibendport)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_file_init
      Src: /src/selinux/libsemanage/src/ibendports_file.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - handle
    - path_ro
    - path_rw
    - dconfig
    argTypes:
    - semanage_handle_t*
    - char*
    - char*
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 148
    functionName: ibendport_file_dbase_init
    functionSourceFile: /src/selinux/libsemanage/src/ibendports_file.c
    functionUses: 0
    functionsReached:
    - dbase_file_init
    linkageType: ''
    returnType: int
    signature: "int ibendport_file_dbase_init(semanage_handle_t *handle, const char
      *path_ro,\n\t\t\t      const char *path_rw, dbase_config_t *dconfig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbase_file_release
      Src: /src/selinux/libsemanage/src/ibendports_file.c:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dconfig
    argTypes:
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: ibendport_file_dbase_release
    functionSourceFile: /src/selinux/libsemanage/src/ibendports_file.c
    functionUses: 0
    functionsReached:
    - dbase_file_release
    linkageType: ''
    returnType: void
    signature: void ibendport_file_dbase_release(dbase_config_t *dconfig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_policydb_init
      Src: /src/selinux/libsemanage/src/nodes_policydb.c:50,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/nodes_policydb.c:52,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/nodes_policydb.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - handle
    - dconfig
    argTypes:
    - semanage_handle_t*
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 61
    functionName: node_policydb_dbase_init
    functionSourceFile: /src/selinux/libsemanage/src/nodes_policydb.c
    functionUses: 0
    functionsReached:
    - dbase_policydb_init
    - semanage_path
    linkageType: ''
    returnType: int
    signature: int node_policydb_dbase_init(semanage_handle_t *handle, dbase_config_t
      *dconfig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbase_policydb_release
      Src: /src/selinux/libsemanage/src/nodes_policydb.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dconfig
    argTypes:
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: node_policydb_dbase_release
    functionSourceFile: /src/selinux/libsemanage/src/nodes_policydb.c
    functionUses: 0
    functionsReached:
    - dbase_policydb_release
    linkageType: ''
    returnType: void
    signature: void node_policydb_dbase_release(dbase_config_t *dconfig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_policydb_init
      Src: /src/selinux/libsemanage/src/ibendports_policydb.c:46,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/ibendports_policydb.c:48,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/ibendports_policydb.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - handle
    - dconfig
    argTypes:
    - semanage_handle_t*
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 57
    functionName: ibendport_policydb_dbase_init
    functionSourceFile: /src/selinux/libsemanage/src/ibendports_policydb.c
    functionUses: 0
    functionsReached:
    - dbase_policydb_init
    - semanage_path
    linkageType: ''
    returnType: int
    signature: "int ibendport_policydb_dbase_init(semanage_handle_t *handle,\n\t\t\t\t
      \ dbase_config_t *dconfig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbase_policydb_release
      Src: /src/selinux/libsemanage/src/ibendports_policydb.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dconfig
    argTypes:
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: ibendport_policydb_dbase_release
    functionSourceFile: /src/selinux/libsemanage/src/ibendports_policydb.c
    functionUses: 0
    functionsReached:
    - dbase_policydb_release
    linkageType: ''
    returnType: void
    signature: void ibendport_policydb_dbase_release(dbase_config_t *dconfig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_iface_dbase_local
      Src: /src/selinux/libsemanage/src/interfaces_local.c:17,1
    - Dst: dbase_modify
      Src: /src/selinux/libsemanage/src/interfaces_local.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - data
    argTypes:
    - semanage_handle_t*
    - semanage_iface_key_t*
    - semanage_iface_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: semanage_iface_modify_local
    functionSourceFile: /src/selinux/libsemanage/src/interfaces_local.c
    functionUses: 2
    functionsReached:
    - semanage_iface_dbase_local
    - dbase_modify
    linkageType: ''
    returnType: int
    signature: "int semanage_iface_modify_local(semanage_handle_t *handle,\n\t\t\t\tconst
      semanage_iface_key_t *key,\n\t\t\t\tconst semanage_iface_t *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_iface_dbase_local
      Src: /src/selinux/libsemanage/src/interfaces_local.c:24,1
    - Dst: dbase_del
      Src: /src/selinux/libsemanage/src/interfaces_local.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - key
    argTypes:
    - semanage_handle_t*
    - semanage_iface_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: semanage_iface_del_local
    functionSourceFile: /src/selinux/libsemanage/src/interfaces_local.c
    functionUses: 3
    functionsReached:
    - semanage_iface_dbase_local
    - dbase_del
    linkageType: ''
    returnType: int
    signature: "int semanage_iface_del_local(semanage_handle_t *handle,\n\t\t\t     const
      semanage_iface_key_t *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_iface_dbase_local
      Src: /src/selinux/libsemanage/src/interfaces_local.c:32,1
    - Dst: dbase_query
      Src: /src/selinux/libsemanage/src/interfaces_local.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_iface_key_t*
    - semanage_iface_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: semanage_iface_query_local
    functionSourceFile: /src/selinux/libsemanage/src/interfaces_local.c
    functionUses: 1
    functionsReached:
    - semanage_iface_dbase_local
    - dbase_query
    linkageType: ''
    returnType: int
    signature: "int semanage_iface_query_local(semanage_handle_t *handle,\n\t\t\t
      \      const semanage_iface_key_t *key,\n\t\t\t       semanage_iface_t **response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_iface_dbase_local
      Src: /src/selinux/libsemanage/src/interfaces_local.c:39,1
    - Dst: dbase_exists
      Src: /src/selinux/libsemanage/src/interfaces_local.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_iface_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: semanage_iface_exists_local
    functionSourceFile: /src/selinux/libsemanage/src/interfaces_local.c
    functionUses: 1
    functionsReached:
    - dbase_exists
    - semanage_iface_dbase_local
    linkageType: ''
    returnType: int
    signature: "int semanage_iface_exists_local(semanage_handle_t *handle,\n\t\t\t\tconst
      semanage_iface_key_t *key, int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_iface_dbase_local
      Src: /src/selinux/libsemanage/src/interfaces_local.c:46,1
    - Dst: dbase_count
      Src: /src/selinux/libsemanage/src/interfaces_local.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - response
    argTypes:
    - semanage_handle_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: semanage_iface_count_local
    functionSourceFile: /src/selinux/libsemanage/src/interfaces_local.c
    functionUses: 1
    functionsReached:
    - semanage_iface_dbase_local
    - dbase_count
    linkageType: ''
    returnType: int
    signature: "int semanage_iface_count_local(semanage_handle_t *handle,\n\t\t\t
      \      unsigned int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_iface_dbase_local
      Src: /src/selinux/libsemanage/src/interfaces_local.c:55,1
    - Dst: dbase_iterate
      Src: /src/selinux/libsemanage/src/interfaces_local.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - handler_arg
    argTypes:
    - semanage_handle_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: semanage_iface_iterate_local
    functionSourceFile: /src/selinux/libsemanage/src/interfaces_local.c
    functionUses: 1
    functionsReached:
    - semanage_iface_dbase_local
    - dbase_iterate
    linkageType: ''
    returnType: int
    signature: "int semanage_iface_iterate_local(semanage_handle_t *handle,\n\t\t\t\t
      int (*handler)(const semanage_iface_t *record,\n\t\t\t\t\t\tvoid *varg),\n\t\t\t\t
      void *handler_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_iface_dbase_local
      Src: /src/selinux/libsemanage/src/interfaces_local.c:62,1
    - Dst: dbase_list
      Src: /src/selinux/libsemanage/src/interfaces_local.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - records
    - count
    argTypes:
    - semanage_handle_t*
    - semanage_iface_t***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: semanage_iface_list_local
    functionSourceFile: /src/selinux/libsemanage/src/interfaces_local.c
    functionUses: 1
    functionsReached:
    - semanage_iface_dbase_local
    - dbase_list
    linkageType: ''
    returnType: int
    signature: "int semanage_iface_list_local(semanage_handle_t *handle,\n\t\t\t      semanage_iface_t
      ***records, unsigned int *count)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: semanage_port_get_low
      Src: /src/selinux/libsemanage/src/ports_file.c:27,1
    - Dst: semanage_port_get_high
      Src: /src/selinux/libsemanage/src/ports_file.c:28,1
    - Dst: semanage_port_get_proto
      Src: /src/selinux/libsemanage/src/ports_file.c:29,1
    - Dst: semanage_port_get_proto_str
      Src: /src/selinux/libsemanage/src/ports_file.c:30,1
    - Dst: semanage_port_get_con
      Src: /src/selinux/libsemanage/src/ports_file.c:31,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/ports_file.c:33,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/ports_file.c:37,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/ports_file.c:40,1
    - Dst: semanage_context_to_string
      Src: /src/selinux/libsemanage/src/ports_file.c:44,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/ports_file.c:46,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ports_file.c:49,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/ports_file.c:53,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ports_file.c:55,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - handle
    - port
    - str
    argTypes:
    - semanage_handle_t*
    - semanage_port_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 57
    functionName: port_print
    functionSourceFile: /src/selinux/libsemanage/src/ports_file.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_port_get_proto
    - semanage_port_get_high
    - semanage_context_to_string
    - semanage_port_get_low
    - free
    - semanage_port_get_con
    - semanage_port_get_proto_str
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int port_print(semanage_handle_t *handle, const semanage_port_t *port,\n\t\t
      \     FILE *str)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: parse_skip_space
      Src: /src/selinux/libsemanage/src/ports_file.c:66,1
    - Dst: parse_assert_str
      Src: /src/selinux/libsemanage/src/ports_file.c:72,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/ports_file.c:74,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/ports_file.c:78,1
    - Dst: strcasecmp
      Src: /src/selinux/libsemanage/src/ports_file.c:80,1
    - Dst: semanage_port_set_proto
      Src: /src/selinux/libsemanage/src/ports_file.c:81,1
    - Dst: strcasecmp
      Src: /src/selinux/libsemanage/src/ports_file.c:82,1
    - Dst: semanage_port_set_proto
      Src: /src/selinux/libsemanage/src/ports_file.c:83,1
    - Dst: strcasecmp
      Src: /src/selinux/libsemanage/src/ports_file.c:84,1
    - Dst: semanage_port_set_proto
      Src: /src/selinux/libsemanage/src/ports_file.c:85,1
    - Dst: strcasecmp
      Src: /src/selinux/libsemanage/src/ports_file.c:86,1
    - Dst: semanage_port_set_proto
      Src: /src/selinux/libsemanage/src/ports_file.c:87,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/ports_file.c:89,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ports_file.c:93,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/ports_file.c:97,1
    - Dst: parse_fetch_int
      Src: /src/selinux/libsemanage/src/ports_file.c:99,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/ports_file.c:107,1
    - Dst: parse_optional_ch
      Src: /src/selinux/libsemanage/src/ports_file.c:111,1
    - Dst: parse_skip_space
      Src: /src/selinux/libsemanage/src/ports_file.c:112,1
    - Dst: parse_fetch_int
      Src: /src/selinux/libsemanage/src/ports_file.c:114,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/ports_file.c:116,1
    - Dst: semanage_port_set_range
      Src: /src/selinux/libsemanage/src/ports_file.c:118,1
    - Dst: semanage_port_set_port
      Src: /src/selinux/libsemanage/src/ports_file.c:120,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/ports_file.c:123,1
    - Dst: semanage_context_from_string
      Src: /src/selinux/libsemanage/src/ports_file.c:125,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/ports_file.c:126,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/ports_file.c:131,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ports_file.c:137,1
    - Dst: semanage_port_set_con
      Src: /src/selinux/libsemanage/src/ports_file.c:140,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/ports_file.c:143,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/src/ports_file.c:146,1
    - Dst: parse_dispose_line
      Src: /src/selinux/libsemanage/src/ports_file.c:150,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/ports_file.c:154,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ports_file.c:155,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/src/ports_file.c:156,1
    - Dst: parse_dispose_line
      Src: /src/selinux/libsemanage/src/ports_file.c:157,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 88
    argCount: 3
    argNames:
    - handle
    - info
    - port
    argTypes:
    - semanage_handle_t*
    - parse_info_t*
    - semanage_port_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 59
    functionDepth: 3
    functionLinenumber: 59
    functionLinenumberEnd: 159
    functionName: port_parse
    functionSourceFile: /src/selinux/libsemanage/src/ports_file.c
    functionUses: 0
    functionsReached:
    - ERR
    - parse_assert_str
    - semanage_port_set_port
    - semanage_port_set_con
    - parse_assert_space
    - parse_skip_space
    - parse_optional_ch
    - parse_dispose_line
    - semanage_port_set_range
    - semanage_context_from_string
    - free
    - parse_fetch_string
    - semanage_context_free
    - strcasecmp
    - semanage_port_set_proto
    - parse_fetch_int
    linkageType: ''
    returnType: int
    signature: "int port_parse(semanage_handle_t *handle, parse_info_t *info,\n\t\t
      \     semanage_port_t *port)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_file_init
      Src: /src/selinux/libsemanage/src/ports_file.c:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - handle
    - path_ro
    - path_rw
    - dconfig
    argTypes:
    - semanage_handle_t*
    - char*
    - char*
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 176
    functionName: port_file_dbase_init
    functionSourceFile: /src/selinux/libsemanage/src/ports_file.c
    functionUses: 0
    functionsReached:
    - dbase_file_init
    linkageType: ''
    returnType: int
    signature: "int port_file_dbase_init(semanage_handle_t *handle, const char *path_ro,\n\t\t\t
      const char *path_rw, dbase_config_t *dconfig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbase_file_release
      Src: /src/selinux/libsemanage/src/ports_file.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dconfig
    argTypes:
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: port_file_dbase_release
    functionSourceFile: /src/selinux/libsemanage/src/ports_file.c
    functionUses: 0
    functionsReached:
    - dbase_file_release
    linkageType: ''
    returnType: void
    signature: void port_file_dbase_release(dbase_config_t *dconfig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_iface_dbase_policy
      Src: /src/selinux/libsemanage/src/interfaces_policy.c:17,1
    - Dst: dbase_query
      Src: /src/selinux/libsemanage/src/interfaces_policy.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_iface_key_t*
    - semanage_iface_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: semanage_iface_query
    functionSourceFile: /src/selinux/libsemanage/src/interfaces_policy.c
    functionUses: 1
    functionsReached:
    - dbase_query
    - semanage_iface_dbase_policy
    linkageType: ''
    returnType: int
    signature: "int semanage_iface_query(semanage_handle_t *handle,\n\t\t\t const
      semanage_iface_key_t *key,\n\t\t\t semanage_iface_t **response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_iface_dbase_policy
      Src: /src/selinux/libsemanage/src/interfaces_policy.c:24,1
    - Dst: dbase_exists
      Src: /src/selinux/libsemanage/src/interfaces_policy.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_iface_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: semanage_iface_exists
    functionSourceFile: /src/selinux/libsemanage/src/interfaces_policy.c
    functionUses: 1
    functionsReached:
    - dbase_exists
    - semanage_iface_dbase_policy
    linkageType: ''
    returnType: int
    signature: "int semanage_iface_exists(semanage_handle_t *handle,\n\t\t\t  const
      semanage_iface_key_t *key, int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_iface_dbase_policy
      Src: /src/selinux/libsemanage/src/interfaces_policy.c:30,1
    - Dst: dbase_count
      Src: /src/selinux/libsemanage/src/interfaces_policy.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - response
    argTypes:
    - semanage_handle_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: semanage_iface_count
    functionSourceFile: /src/selinux/libsemanage/src/interfaces_policy.c
    functionUses: 1
    functionsReached:
    - dbase_count
    - semanage_iface_dbase_policy
    linkageType: ''
    returnType: int
    signature: int semanage_iface_count(semanage_handle_t *handle, unsigned int *response)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_iface_dbase_policy
      Src: /src/selinux/libsemanage/src/interfaces_policy.c:39,1
    - Dst: dbase_iterate
      Src: /src/selinux/libsemanage/src/interfaces_policy.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - handler_arg
    argTypes:
    - semanage_handle_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: semanage_iface_iterate
    functionSourceFile: /src/selinux/libsemanage/src/interfaces_policy.c
    functionUses: 1
    functionsReached:
    - dbase_iterate
    - semanage_iface_dbase_policy
    linkageType: ''
    returnType: int
    signature: "int semanage_iface_iterate(semanage_handle_t *handle,\n\t\t\t   int
      (*handler)(const semanage_iface_t *record,\n\t\t\t\t\t  void *varg),\n\t\t\t
      \  void *handler_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_iface_dbase_policy
      Src: /src/selinux/libsemanage/src/interfaces_policy.c:46,1
    - Dst: dbase_list
      Src: /src/selinux/libsemanage/src/interfaces_policy.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - records
    - count
    argTypes:
    - semanage_handle_t*
    - semanage_iface_t***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: semanage_iface_list
    functionSourceFile: /src/selinux/libsemanage/src/interfaces_policy.c
    functionUses: 2
    functionsReached:
    - dbase_list
    - semanage_iface_dbase_policy
    linkageType: ''
    returnType: int
    signature: "int semanage_iface_list(semanage_handle_t *handle, semanage_iface_t
      ***records,\n\t\t\tunsigned int *count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_node_dbase_local
      Src: /src/selinux/libsemanage/src/nodes_local.c:17,1
    - Dst: dbase_modify
      Src: /src/selinux/libsemanage/src/nodes_local.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - data
    argTypes:
    - semanage_handle_t*
    - semanage_node_key_t*
    - semanage_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: semanage_node_modify_local
    functionSourceFile: /src/selinux/libsemanage/src/nodes_local.c
    functionUses: 2
    functionsReached:
    - semanage_node_dbase_local
    - dbase_modify
    linkageType: ''
    returnType: int
    signature: "int semanage_node_modify_local(semanage_handle_t *handle,\n\t\t\t
      \      const semanage_node_key_t *key,\n\t\t\t       const semanage_node_t *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_node_dbase_local
      Src: /src/selinux/libsemanage/src/nodes_local.c:24,1
    - Dst: dbase_del
      Src: /src/selinux/libsemanage/src/nodes_local.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - key
    argTypes:
    - semanage_handle_t*
    - semanage_node_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: semanage_node_del_local
    functionSourceFile: /src/selinux/libsemanage/src/nodes_local.c
    functionUses: 3
    functionsReached:
    - semanage_node_dbase_local
    - dbase_del
    linkageType: ''
    returnType: int
    signature: "int semanage_node_del_local(semanage_handle_t *handle,\n\t\t\t    const
      semanage_node_key_t *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_node_dbase_local
      Src: /src/selinux/libsemanage/src/nodes_local.c:32,1
    - Dst: dbase_query
      Src: /src/selinux/libsemanage/src/nodes_local.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_node_key_t*
    - semanage_node_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: semanage_node_query_local
    functionSourceFile: /src/selinux/libsemanage/src/nodes_local.c
    functionUses: 1
    functionsReached:
    - semanage_node_dbase_local
    - dbase_query
    linkageType: ''
    returnType: int
    signature: "int semanage_node_query_local(semanage_handle_t *handle,\n\t\t\t      const
      semanage_node_key_t *key,\n\t\t\t      semanage_node_t **response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_node_dbase_local
      Src: /src/selinux/libsemanage/src/nodes_local.c:39,1
    - Dst: dbase_exists
      Src: /src/selinux/libsemanage/src/nodes_local.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_node_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: semanage_node_exists_local
    functionSourceFile: /src/selinux/libsemanage/src/nodes_local.c
    functionUses: 1
    functionsReached:
    - semanage_node_dbase_local
    - dbase_exists
    linkageType: ''
    returnType: int
    signature: "int semanage_node_exists_local(semanage_handle_t *handle,\n\t\t\t
      \      const semanage_node_key_t *key, int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_node_dbase_local
      Src: /src/selinux/libsemanage/src/nodes_local.c:45,1
    - Dst: dbase_count
      Src: /src/selinux/libsemanage/src/nodes_local.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - response
    argTypes:
    - semanage_handle_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: semanage_node_count_local
    functionSourceFile: /src/selinux/libsemanage/src/nodes_local.c
    functionUses: 1
    functionsReached:
    - semanage_node_dbase_local
    - dbase_count
    linkageType: ''
    returnType: int
    signature: int semanage_node_count_local(semanage_handle_t *handle, unsigned int
      *response)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_node_dbase_local
      Src: /src/selinux/libsemanage/src/nodes_local.c:54,1
    - Dst: dbase_iterate
      Src: /src/selinux/libsemanage/src/nodes_local.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - handler_arg
    argTypes:
    - semanage_handle_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: semanage_node_iterate_local
    functionSourceFile: /src/selinux/libsemanage/src/nodes_local.c
    functionUses: 1
    functionsReached:
    - semanage_node_dbase_local
    - dbase_iterate
    linkageType: ''
    returnType: int
    signature: "int semanage_node_iterate_local(semanage_handle_t *handle,\n\t\t\t\tint
      (*handler)(const semanage_node_t *record,\n\t\t\t\t\t       void *varg),\n\t\t\t\tvoid
      *handler_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_node_dbase_local
      Src: /src/selinux/libsemanage/src/nodes_local.c:61,1
    - Dst: dbase_list
      Src: /src/selinux/libsemanage/src/nodes_local.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - records
    - count
    argTypes:
    - semanage_handle_t*
    - semanage_node_t***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: semanage_node_list_local
    functionSourceFile: /src/selinux/libsemanage/src/nodes_local.c
    functionUses: 1
    functionsReached:
    - semanage_node_dbase_local
    - dbase_list
    linkageType: ''
    returnType: int
    signature: "int semanage_node_list_local(semanage_handle_t *handle,\n\t\t\t     semanage_node_t
      ***records, unsigned int *count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_key_create
      Src: /src/selinux/libsemanage/src/user_extra_record.c:39,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/user_extra_record.c:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - handle
    - user_extra
    - key_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_user_extra_t*
    - semanage_user_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 47
    functionName: semanage_user_extra_key_extract
    functionSourceFile: /src/selinux/libsemanage/src/user_extra_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_user_key_create
    linkageType: ''
    returnType: int
    signature: "int semanage_user_extra_key_extract(semanage_handle_t *handle,\n\t\t\t\tconst
      semanage_user_extra_t *user_extra,\n\t\t\t\tsemanage_user_key_t **key_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_key_unpack
      Src: /src/selinux/libsemanage/src/user_extra_record.c:53,1
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/user_extra_record.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - user_extra
    - key
    argTypes:
    - semanage_user_extra_t*
    - semanage_user_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: semanage_user_extra_compare
    functionSourceFile: /src/selinux/libsemanage/src/user_extra_record.c
    functionUses: 0
    functionsReached:
    - semanage_user_key_unpack
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int semanage_user_extra_compare(const semanage_user_extra_t *user_extra,\n\t\t\t\t
      \      const semanage_user_key_t *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/user_extra_record.c:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - user_extra
    - user_extra2
    argTypes:
    - semanage_user_extra_t*
    - semanage_user_extra_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: semanage_user_extra_compare2
    functionSourceFile: /src/selinux/libsemanage/src/user_extra_record.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int semanage_user_extra_compare2(const semanage_user_extra_t *user_extra,\n\t\t\t
      \    const semanage_user_extra_t *user_extra2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_extra_compare2
      Src: /src/selinux/libsemanage/src/user_extra_record.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: semanage_user_extra_compare2_qsort
    functionSourceFile: /src/selinux/libsemanage/src/user_extra_record.c
    functionUses: 0
    functionsReached:
    - semanage_user_extra_compare2
    linkageType: ''
    returnType: int
    signature: int semanage_user_extra_compare2_qsort(const void *p1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user_extra
    argTypes:
    - semanage_user_extra_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: semanage_user_extra_get_name
    functionSourceFile: /src/selinux/libsemanage/src/user_extra_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      semanage_user_extra_get_name(const semanage_user_extra_t *user_extra)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/user_extra_record.c:84,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/user_extra_record.c:86,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/user_extra_record.c:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - user_extra
    - name
    argTypes:
    - semanage_handle_t*
    - semanage_user_extra_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 95
    functionName: semanage_user_extra_set_name
    functionSourceFile: /src/selinux/libsemanage/src/user_extra_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int semanage_user_extra_set_name(semanage_handle_t *handle,\n\t\t\t\t
      semanage_user_extra_t *user_extra,\n\t\t\t\t const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user_extra
    argTypes:
    - semanage_user_extra_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: semanage_user_extra_get_prefix
    functionSourceFile: /src/selinux/libsemanage/src/user_extra_record.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      semanage_user_extra_get_prefix(const semanage_user_extra_t *user_extra)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/user_extra_record.c:108,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/user_extra_record.c:110,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/user_extra_record.c:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - user_extra
    - prefix
    argTypes:
    - semanage_handle_t*
    - semanage_user_extra_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 119
    functionName: semanage_user_extra_set_prefix
    functionSourceFile: /src/selinux/libsemanage/src/user_extra_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int semanage_user_extra_set_prefix(semanage_handle_t *handle,\n\t\t\t\t
      \  semanage_user_extra_t *user_extra,\n\t\t\t\t   const char *prefix)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/user_extra_record.c:126,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/user_extra_record.c:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - handle
    - user_extra_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_user_extra_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 139
    functionName: semanage_user_extra_create
    functionSourceFile: /src/selinux/libsemanage/src/user_extra_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - malloc
    linkageType: ''
    returnType: int
    signature: "int semanage_user_extra_create(semanage_handle_t *handle,\n\t\t\t
      \      semanage_user_extra_t **user_extra_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsemanage/src/user_extra_record.c:147,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/user_extra_record.c:148,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/user_extra_record.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - user_extra
    argTypes:
    - semanage_user_extra_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: semanage_user_extra_free
    functionSourceFile: /src/selinux/libsemanage/src/user_extra_record.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void semanage_user_extra_free(semanage_user_extra_t *user_extra)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_extra_create
      Src: /src/selinux/libsemanage/src/user_extra_record.c:159,1
    - Dst: semanage_user_extra_set_name
      Src: /src/selinux/libsemanage/src/user_extra_record.c:162,1
    - Dst: semanage_user_extra_set_prefix
      Src: /src/selinux/libsemanage/src/user_extra_record.c:166,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/user_extra_record.c:174,1
    - Dst: semanage_user_extra_free
      Src: /src/selinux/libsemanage/src/user_extra_record.c:175,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - handle
    - user_extra
    - user_extra_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_user_extra_t*
    - semanage_user_extra_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 177
    functionName: semanage_user_extra_clone
    functionSourceFile: /src/selinux/libsemanage/src/user_extra_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_user_extra_create
    - semanage_user_extra_set_prefix
    - semanage_user_extra_free
    - semanage_user_extra_set_name
    linkageType: ''
    returnType: int
    signature: "int semanage_user_extra_clone(semanage_handle_t *handle,\n\t\t\t      const
      semanage_user_extra_t *user_extra,\n\t\t\t      semanage_user_extra_t **user_extra_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_key_create
      Src: /src/selinux/libsemanage/src/user_record.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - name
    - key
    argTypes:
    - semanage_handle_t*
    - char*
    - semanage_user_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: semanage_user_key_create
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 7
    functionsReached:
    - sepol_user_key_create
    linkageType: ''
    returnType: int
    signature: "int semanage_user_key_create(semanage_handle_t *handle, const char
      *name,\n\t\t\t     semanage_user_key_t **key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_base_key_extract
      Src: /src/selinux/libsemanage/src/user_record.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - user
    - key
    argTypes:
    - semanage_handle_t*
    - semanage_user_t*
    - semanage_user_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 3
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: semanage_user_key_extract
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 4
    functionsReached:
    - semanage_user_base_key_extract
    linkageType: ''
    returnType: int
    signature: "int semanage_user_key_extract(semanage_handle_t *handle,\n\t\t\t      const
      semanage_user_t *user,\n\t\t\t      semanage_user_key_t **key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_key_free
      Src: /src/selinux/libsemanage/src/user_record.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - semanage_user_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: semanage_user_key_free
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 12
    functionsReached:
    - sepol_user_key_free
    linkageType: ''
    returnType: void
    signature: void semanage_user_key_free(semanage_user_key_t *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_key_unpack
      Src: /src/selinux/libsemanage/src/user_record.c:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - name
    argTypes:
    - semanage_user_key_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: semanage_user_key_unpack
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 1
    functionsReached:
    - sepol_user_key_unpack
    linkageType: ''
    returnType: void
    signature: void semanage_user_key_unpack(const semanage_user_key_t *key, const
      char **name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_user_key_unpack
      Src: /src/selinux/libsemanage/src/user_record.c:60,1
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/user_record.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - user
    - key
    argTypes:
    - semanage_user_t*
    - semanage_user_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: semanage_user_compare
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 1
    functionsReached:
    - sepol_user_key_unpack
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int semanage_user_compare(const semanage_user_t *user,\n\t\t\t  const
      semanage_user_key_t *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/user_record.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - user
    - user2
    argTypes:
    - semanage_user_t*
    - semanage_user_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: semanage_user_compare2
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int semanage_user_compare2(const semanage_user_t *user,\n\t\t\t   const
      semanage_user_t *user2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_compare2
      Src: /src/selinux/libsemanage/src/user_record.c:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: semanage_user_compare2_qsort
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 0
    functionsReached:
    - semanage_user_compare2
    linkageType: ''
    returnType: int
    signature: int semanage_user_compare2_qsort(const void *p1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user
    argTypes:
    - semanage_user_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: semanage_user_get_name
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *semanage_user_get_name(const semanage_user_t *user)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/user_record.c:87,1
    - Dst: semanage_user_base_set_name
      Src: /src/selinux/libsemanage/src/user_record.c:91,1
    - Dst: semanage_user_extra_set_name
      Src: /src/selinux/libsemanage/src/user_record.c:94,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/user_record.c:97,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/user_record.c:102,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/user_record.c:105,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/user_record.c:106,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - handle
    - user
    - name
    argTypes:
    - semanage_handle_t*
    - semanage_user_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 108
    functionName: semanage_user_set_name
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 3
    functionsReached:
    - ERR
    - strdup
    - semanage_user_base_set_name
    - free
    - semanage_user_extra_set_name
    linkageType: ''
    returnType: int
    signature: "int semanage_user_set_name(semanage_handle_t *handle, semanage_user_t
      *user,\n\t\t\t   const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_extra_get_prefix
      Src: /src/selinux/libsemanage/src/user_record.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user
    argTypes:
    - semanage_user_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: semanage_user_get_prefix
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 2
    functionsReached:
    - semanage_user_extra_get_prefix
    linkageType: ''
    returnType: char
    signature: char *semanage_user_get_prefix(const semanage_user_t *user)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_extra_set_prefix
      Src: /src/selinux/libsemanage/src/user_record.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - user
    - name
    argTypes:
    - semanage_handle_t*
    - semanage_user_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: semanage_user_set_prefix
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 3
    functionsReached:
    - semanage_user_extra_set_prefix
    linkageType: ''
    returnType: int
    signature: "int semanage_user_set_prefix(semanage_handle_t *handle, semanage_user_t
      *user,\n\t\t\t     const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_base_get_mlslevel
      Src: /src/selinux/libsemanage/src/user_record.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user
    argTypes:
    - semanage_user_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: semanage_user_get_mlslevel
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 2
    functionsReached:
    - semanage_user_base_get_mlslevel
    linkageType: ''
    returnType: char
    signature: char *semanage_user_get_mlslevel(const semanage_user_t *user)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_base_set_mlslevel
      Src: /src/selinux/libsemanage/src/user_record.c:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - user
    - mls_level
    argTypes:
    - semanage_handle_t*
    - semanage_user_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: semanage_user_set_mlslevel
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 3
    functionsReached:
    - semanage_user_base_set_mlslevel
    linkageType: ''
    returnType: int
    signature: "int semanage_user_set_mlslevel(semanage_handle_t *handle, semanage_user_t
      *user,\n\t\t\t       const char *mls_level)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_base_get_mlsrange
      Src: /src/selinux/libsemanage/src/user_record.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user
    argTypes:
    - semanage_user_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: semanage_user_get_mlsrange
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 4
    functionsReached:
    - semanage_user_base_get_mlsrange
    linkageType: ''
    returnType: char
    signature: char *semanage_user_get_mlsrange(const semanage_user_t *user)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_base_set_mlsrange
      Src: /src/selinux/libsemanage/src/user_record.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - user
    - mls_range
    argTypes:
    - semanage_handle_t*
    - semanage_user_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: semanage_user_set_mlsrange
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 3
    functionsReached:
    - semanage_user_base_set_mlsrange
    linkageType: ''
    returnType: int
    signature: "int semanage_user_set_mlsrange(semanage_handle_t *handle, semanage_user_t
      *user,\n\t\t\t       const char *mls_range)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_base_get_num_roles
      Src: /src/selinux/libsemanage/src/user_record.c:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user
    argTypes:
    - semanage_user_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: semanage_user_get_num_roles
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 1
    functionsReached:
    - semanage_user_base_get_num_roles
    linkageType: ''
    returnType: int
    signature: int semanage_user_get_num_roles(const semanage_user_t *user)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_base_add_role
      Src: /src/selinux/libsemanage/src/user_record.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - user
    - role
    argTypes:
    - semanage_handle_t*
    - semanage_user_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 155
    functionName: semanage_user_add_role
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 1
    functionsReached:
    - semanage_user_base_add_role
    linkageType: ''
    returnType: int
    signature: "int semanage_user_add_role(semanage_handle_t *handle, semanage_user_t
      *user,\n\t\t\t   const char *role)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_base_del_role
      Src: /src/selinux/libsemanage/src/user_record.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - user
    - role
    argTypes:
    - semanage_user_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: semanage_user_del_role
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 1
    functionsReached:
    - semanage_user_base_del_role
    linkageType: ''
    returnType: void
    signature: void semanage_user_del_role(semanage_user_t *user, const char *role)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_base_has_role
      Src: /src/selinux/libsemanage/src/user_record.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - user
    - role
    argTypes:
    - semanage_user_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: semanage_user_has_role
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 1
    functionsReached:
    - semanage_user_base_has_role
    linkageType: ''
    returnType: int
    signature: int semanage_user_has_role(const semanage_user_t *user, const char
      *role)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_base_get_roles
      Src: /src/selinux/libsemanage/src/user_record.c:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - user
    - roles_arr
    - num_roles
    argTypes:
    - semanage_handle_t*
    - semanage_user_t*
    - char***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: semanage_user_get_roles
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 2
    functionsReached:
    - semanage_user_base_get_roles
    linkageType: ''
    returnType: int
    signature: "int semanage_user_get_roles(semanage_handle_t *handle,\n\t\t\t    const
      semanage_user_t *user,\n\t\t\t    const char ***roles_arr, unsigned int *num_roles)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_base_set_roles
      Src: /src/selinux/libsemanage/src/user_record.c:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - user
    - roles_arr
    - num_roles
    argTypes:
    - semanage_handle_t*
    - semanage_user_t*
    - char**
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: semanage_user_set_roles
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 1
    functionsReached:
    - semanage_user_base_set_roles
    linkageType: ''
    returnType: int
    signature: "int semanage_user_set_roles(semanage_handle_t *handle, semanage_user_t
      *user,\n\t\t\t    const char **roles_arr, unsigned int num_roles)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsemanage/src/user_record.c:185,1
    - Dst: semanage_user_base_create
      Src: /src/selinux/libsemanage/src/user_record.c:189,1
    - Dst: semanage_user_extra_create
      Src: /src/selinux/libsemanage/src/user_record.c:191,1
    - Dst: semanage_user_extra_set_prefix
      Src: /src/selinux/libsemanage/src/user_record.c:195,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/user_record.c:202,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/user_record.c:205,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/src/user_record.c:206,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - handle
    - user_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_user_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 208
    functionName: semanage_user_create
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 7
    functionsReached:
    - ERR
    - semanage_user_extra_set_prefix
    - semanage_user_extra_create
    - semanage_user_base_create
    - calloc
    - semanage_user_free
    linkageType: ''
    returnType: int
    signature: int semanage_user_create(semanage_handle_t *handle, semanage_user_t
      **user_ptr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsemanage/src/user_record.c:213,1
    - Dst: semanage_user_base_clone
      Src: /src/selinux/libsemanage/src/user_record.c:218,1
    - Dst: semanage_user_extra_clone
      Src: /src/selinux/libsemanage/src/user_record.c:220,1
    - Dst: semanage_user_set_name
      Src: /src/selinux/libsemanage/src/user_record.c:225,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/user_record.c:232,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/user_record.c:235,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/src/user_record.c:236,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - handle
    - user
    - user_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_user_t*
    - semanage_user_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 210
    functionDepth: 4
    functionLinenumber: 210
    functionLinenumberEnd: 238
    functionName: semanage_user_clone
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 1
    functionsReached:
    - ERR
    - semanage_user_extra_clone
    - semanage_user_set_name
    - semanage_user_base_clone
    - calloc
    - semanage_user_free
    linkageType: ''
    returnType: int
    signature: "int semanage_user_clone(semanage_handle_t *handle, const semanage_user_t
      *user,\n\t\t\tsemanage_user_t **user_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_base_free
      Src: /src/selinux/libsemanage/src/user_record.c:245,1
    - Dst: semanage_user_extra_free
      Src: /src/selinux/libsemanage/src/user_record.c:246,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/user_record.c:247,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/user_record.c:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - user
    argTypes:
    - semanage_user_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 249
    functionName: semanage_user_free
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 23
    functionsReached:
    - semanage_user_base_free
    - free
    - semanage_user_extra_free
    linkageType: ''
    returnType: void
    signature: void semanage_user_free(semanage_user_t *user)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsemanage/src/user_record.c:258,1
    - Dst: semanage_user_extra_get_name
      Src: /src/selinux/libsemanage/src/user_record.c:265,1
    - Dst: semanage_user_base_get_name
      Src: /src/selinux/libsemanage/src/user_record.c:267,1
    - Dst: semanage_user_base_clone
      Src: /src/selinux/libsemanage/src/user_record.c:271,1
    - Dst: semanage_user_base_create
      Src: /src/selinux/libsemanage/src/user_record.c:275,1
    - Dst: semanage_user_base_set_name
      Src: /src/selinux/libsemanage/src/user_record.c:277,1
    - Dst: semanage_user_extra_clone
      Src: /src/selinux/libsemanage/src/user_record.c:284,1
    - Dst: semanage_user_extra_create
      Src: /src/selinux/libsemanage/src/user_record.c:288,1
    - Dst: semanage_user_extra_set_name
      Src: /src/selinux/libsemanage/src/user_record.c:290,1
    - Dst: semanage_user_extra_set_prefix
      Src: /src/selinux/libsemanage/src/user_record.c:293,1
    - Dst: semanage_user_set_name
      Src: /src/selinux/libsemanage/src/user_record.c:298,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/user_record.c:305,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/user_record.c:308,1
    - Dst: semanage_user_base_get_name
      Src: /src/selinux/libsemanage/src/user_record.c:309,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/src/user_record.c:310,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 47
    argCount: 4
    argNames:
    - handle
    - record1
    - record2
    - result
    argTypes:
    - semanage_handle_t*
    - semanage_user_base_t*
    - semanage_user_extra_t*
    - semanage_user_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 252
    functionDepth: 4
    functionLinenumber: 252
    functionLinenumberEnd: 312
    functionName: semanage_user_join
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_user_extra_create
    - semanage_user_extra_set_name
    - semanage_user_base_create
    - semanage_user_extra_clone
    - semanage_user_extra_set_prefix
    - semanage_user_base_set_name
    - semanage_user_base_clone
    - semanage_user_extra_get_name
    - semanage_user_set_name
    - calloc
    - semanage_user_free
    - semanage_user_base_get_name
    linkageType: ''
    returnType: int
    signature: "int semanage_user_join(semanage_handle_t *handle,\n\t\t       const
      semanage_user_base_t *record1,\n\t\t       const semanage_user_extra_t *record2,\n\t\t
      \      semanage_user_t **result)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_base_clone
      Src: /src/selinux/libsemanage/src/user_record.c:322,1
    - Dst: semanage_user_extra_clone
      Src: /src/selinux/libsemanage/src/user_record.c:325,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/user_record.c:334,1
    - Dst: semanage_user_get_name
      Src: /src/selinux/libsemanage/src/user_record.c:335,1
    - Dst: semanage_user_base_free
      Src: /src/selinux/libsemanage/src/user_record.c:336,1
    - Dst: semanage_user_extra_free
      Src: /src/selinux/libsemanage/src/user_record.c:337,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - handle
    - record
    - split1
    - split2
    argTypes:
    - semanage_handle_t*
    - semanage_user_t*
    - semanage_user_base_t**
    - semanage_user_extra_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 314
    functionDepth: 4
    functionLinenumber: 314
    functionLinenumberEnd: 339
    functionName: semanage_user_split
    functionSourceFile: /src/selinux/libsemanage/src/user_record.c
    functionUses: 0
    functionsReached:
    - semanage_user_base_free
    - ERR
    - semanage_user_extra_clone
    - semanage_user_get_name
    - semanage_user_base_clone
    - semanage_user_extra_free
    linkageType: ''
    returnType: int
    signature: "int semanage_user_split(semanage_handle_t *handle,\n\t\t\tconst semanage_user_t
      *record,\n\t\t\tsemanage_user_base_t **split1,\n\t\t\tsemanage_user_extra_t
      **split2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_dbase_local
      Src: /src/selinux/libsemanage/src/users_local.c:22,1
    - Dst: dbase_modify
      Src: /src/selinux/libsemanage/src/users_local.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - data
    argTypes:
    - semanage_handle_t*
    - semanage_user_key_t*
    - semanage_user_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: semanage_user_modify_local
    functionSourceFile: /src/selinux/libsemanage/src/users_local.c
    functionUses: 2
    functionsReached:
    - semanage_user_dbase_local
    - dbase_modify
    linkageType: ''
    returnType: int
    signature: "int semanage_user_modify_local(semanage_handle_t *handle,\n\t\t\t
      \      const semanage_user_key_t *key,\n\t\t\t       const semanage_user_t *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_query
      Src: /src/selinux/libsemanage/src/users_local.c:36,1
    - Dst: semanage_user_get_name
      Src: /src/selinux/libsemanage/src/users_local.c:38,1
    - Dst: semanage_seuser_list_local
      Src: /src/selinux/libsemanage/src/users_local.c:39,1
    - Dst: semanage_seuser_get_sename
      Src: /src/selinux/libsemanage/src/users_local.c:41,1
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/users_local.c:42,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/users_local.c:44,1
    - Dst: semanage_seuser_get_name
      Src: /src/selinux/libsemanage/src/users_local.c:45,1
    - Dst: semanage_seuser_free
      Src: /src/selinux/libsemanage/src/users_local.c:50,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/users_local.c:51,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/src/users_local.c:52,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - handle
    - k
    argTypes:
    - semanage_handle_t*
    - semanage_user_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 26
    functionDepth: 3
    functionLinenumber: 26
    functionLinenumberEnd: 56
    functionName: lookup_seuser
    functionSourceFile: /src/selinux/libsemanage/src/users_local.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_seuser_free
    - semanage_seuser_get_sename
    - semanage_user_get_name
    - strcmp
    - free
    - semanage_user_query
    - semanage_user_free
    - semanage_seuser_get_name
    - semanage_seuser_list_local
    linkageType: ''
    returnType: int
    signature: "int lookup_seuser(semanage_handle_t *handle,\n\t\t\t const semanage_user_key_t
      *k)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_seuser
      Src: /src/selinux/libsemanage/src/users_local.c:61,1
    - Dst: semanage_user_dbase_local
      Src: /src/selinux/libsemanage/src/users_local.c:64,1
    - Dst: dbase_del
      Src: /src/selinux/libsemanage/src/users_local.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - handle
    - key
    argTypes:
    - semanage_handle_t*
    - semanage_user_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 66
    functionName: semanage_user_del_local
    functionSourceFile: /src/selinux/libsemanage/src/users_local.c
    functionUses: 3
    functionsReached:
    - semanage_user_dbase_local
    - dbase_del
    - lookup_seuser
    linkageType: ''
    returnType: int
    signature: "int semanage_user_del_local(semanage_handle_t *handle,\n\t\t\t    const
      semanage_user_key_t *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_dbase_local
      Src: /src/selinux/libsemanage/src/users_local.c:72,1
    - Dst: dbase_query
      Src: /src/selinux/libsemanage/src/users_local.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_user_key_t*
    - semanage_user_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: semanage_user_query_local
    functionSourceFile: /src/selinux/libsemanage/src/users_local.c
    functionUses: 1
    functionsReached:
    - semanage_user_dbase_local
    - dbase_query
    linkageType: ''
    returnType: int
    signature: "int semanage_user_query_local(semanage_handle_t *handle,\n\t\t\t      const
      semanage_user_key_t *key,\n\t\t\t      semanage_user_t **response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_dbase_local
      Src: /src/selinux/libsemanage/src/users_local.c:79,1
    - Dst: dbase_exists
      Src: /src/selinux/libsemanage/src/users_local.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_user_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: semanage_user_exists_local
    functionSourceFile: /src/selinux/libsemanage/src/users_local.c
    functionUses: 1
    functionsReached:
    - semanage_user_dbase_local
    - dbase_exists
    linkageType: ''
    returnType: int
    signature: "int semanage_user_exists_local(semanage_handle_t *handle,\n\t\t\t
      \      const semanage_user_key_t *key, int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_dbase_local
      Src: /src/selinux/libsemanage/src/users_local.c:85,1
    - Dst: dbase_count
      Src: /src/selinux/libsemanage/src/users_local.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - response
    argTypes:
    - semanage_handle_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: semanage_user_count_local
    functionSourceFile: /src/selinux/libsemanage/src/users_local.c
    functionUses: 1
    functionsReached:
    - semanage_user_dbase_local
    - dbase_count
    linkageType: ''
    returnType: int
    signature: int semanage_user_count_local(semanage_handle_t *handle, unsigned int
      *response)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_dbase_local
      Src: /src/selinux/libsemanage/src/users_local.c:94,1
    - Dst: dbase_iterate
      Src: /src/selinux/libsemanage/src/users_local.c:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - handler_arg
    argTypes:
    - semanage_handle_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: semanage_user_iterate_local
    functionSourceFile: /src/selinux/libsemanage/src/users_local.c
    functionUses: 1
    functionsReached:
    - semanage_user_dbase_local
    - dbase_iterate
    linkageType: ''
    returnType: int
    signature: "int semanage_user_iterate_local(semanage_handle_t *handle,\n\t\t\t\tint
      (*handler)(const semanage_user_t *record,\n\t\t\t\t\t       void *varg),\n\t\t\t\tvoid
      *handler_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_dbase_local
      Src: /src/selinux/libsemanage/src/users_local.c:101,1
    - Dst: dbase_list
      Src: /src/selinux/libsemanage/src/users_local.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - records
    - count
    argTypes:
    - semanage_handle_t*
    - semanage_user_t***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: semanage_user_list_local
    functionSourceFile: /src/selinux/libsemanage/src/users_local.c
    functionUses: 1
    functionsReached:
    - semanage_user_dbase_local
    - dbase_list
    linkageType: ''
    returnType: int
    signature: "int semanage_user_list_local(semanage_handle_t *handle,\n\t\t\t     semanage_user_t
      ***records, unsigned int *count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_dbase_policy
      Src: /src/selinux/libsemanage/src/users_policy.c:17,1
    - Dst: dbase_query
      Src: /src/selinux/libsemanage/src/users_policy.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_user_key_t*
    - semanage_user_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: semanage_user_query
    functionSourceFile: /src/selinux/libsemanage/src/users_policy.c
    functionUses: 5
    functionsReached:
    - semanage_user_dbase_policy
    - dbase_query
    linkageType: ''
    returnType: int
    signature: "int semanage_user_query(semanage_handle_t *handle,\n\t\t\tconst semanage_user_key_t
      *key,\n\t\t\tsemanage_user_t **response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_dbase_policy
      Src: /src/selinux/libsemanage/src/users_policy.c:24,1
    - Dst: dbase_exists
      Src: /src/selinux/libsemanage/src/users_policy.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_user_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: semanage_user_exists
    functionSourceFile: /src/selinux/libsemanage/src/users_policy.c
    functionUses: 2
    functionsReached:
    - dbase_exists
    - semanage_user_dbase_policy
    linkageType: ''
    returnType: int
    signature: "int semanage_user_exists(semanage_handle_t *handle,\n\t\t\t const
      semanage_user_key_t *key, int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_dbase_policy
      Src: /src/selinux/libsemanage/src/users_policy.c:30,1
    - Dst: dbase_count
      Src: /src/selinux/libsemanage/src/users_policy.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - response
    argTypes:
    - semanage_handle_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: semanage_user_count
    functionSourceFile: /src/selinux/libsemanage/src/users_policy.c
    functionUses: 1
    functionsReached:
    - semanage_user_dbase_policy
    - dbase_count
    linkageType: ''
    returnType: int
    signature: int semanage_user_count(semanage_handle_t *handle, unsigned int *response)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_dbase_policy
      Src: /src/selinux/libsemanage/src/users_policy.c:39,1
    - Dst: dbase_iterate
      Src: /src/selinux/libsemanage/src/users_policy.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - handler_arg
    argTypes:
    - semanage_handle_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: semanage_user_iterate
    functionSourceFile: /src/selinux/libsemanage/src/users_policy.c
    functionUses: 1
    functionsReached:
    - semanage_user_dbase_policy
    - dbase_iterate
    linkageType: ''
    returnType: int
    signature: "int semanage_user_iterate(semanage_handle_t *handle,\n\t\t\t  int
      (*handler)(const semanage_user_t *record,\n\t\t\t\t\t void *varg),\n\t\t\t  void
      *handler_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_dbase_policy
      Src: /src/selinux/libsemanage/src/users_policy.c:46,1
    - Dst: dbase_list
      Src: /src/selinux/libsemanage/src/users_policy.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - records
    - count
    argTypes:
    - semanage_handle_t*
    - semanage_user_t***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: semanage_user_list
    functionSourceFile: /src/selinux/libsemanage/src/users_policy.c
    functionUses: 2
    functionsReached:
    - semanage_user_dbase_policy
    - dbase_list
    linkageType: ''
    returnType: int
    signature: "int semanage_user_list(semanage_handle_t *handle, semanage_user_t
      ***records,\n\t\t       unsigned int *count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_join_init
      Src: /src/selinux/libsemanage/src/users_join.c:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - handle
    - join1
    - join2
    - dconfig
    argTypes:
    - semanage_handle_t*
    - dbase_config_t*
    - dbase_config_t*
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: user_join_dbase_init
    functionSourceFile: /src/selinux/libsemanage/src/users_join.c
    functionUses: 0
    functionsReached:
    - dbase_join_init
    linkageType: ''
    returnType: int
    signature: "int user_join_dbase_init(semanage_handle_t *handle, dbase_config_t
      *join1,\n\t\t\t dbase_config_t *join2, dbase_config_t *dconfig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbase_join_release
      Src: /src/selinux/libsemanage/src/users_join.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dconfig
    argTypes:
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: user_join_dbase_release
    functionSourceFile: /src/selinux/libsemanage/src/users_join.c
    functionUses: 0
    functionsReached:
    - dbase_join_release
    linkageType: ''
    returnType: void
    signature: void user_join_dbase_release(dbase_config_t *dconfig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/utilities.c:38,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/utilities.c:39,1
    - Dst: fopen
      Src: /src/selinux/libsemanage/src/utilities.c:41,1
    - Dst: getline
      Src: /src/selinux/libsemanage/src/utilities.c:44,1
    - Dst: semanage_is_prefix
      Src: /src/selinux/libsemanage/src/utilities.c:45,1
    - Dst: semanage_split
      Src: /src/selinux/libsemanage/src/utilities.c:46,1
    - Dst: semanage_rtrim
      Src: /src/selinux/libsemanage/src/utilities.c:48,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/utilities.c:52,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/utilities.c:53,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - file
    - var
    - delim
    argTypes:
    - char*
    - char*
    - char*
    assertStmts:
    - condition: (file)
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/selinux/libsemanage/src/utilities.c
    - condition: (var)
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/selinux/libsemanage/src/utilities.c
    constantsTouched: []
    func_position:
      end: 56
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 56
    functionName: semanage_findval
    functionSourceFile: /src/selinux/libsemanage/src/utilities.c
    functionUses: 1
    functionsReached:
    - fclose
    - assert
    - semanage_rtrim
    - free
    - semanage_split
    - fopen
    - semanage_is_prefix
    - getline
    linkageType: ''
    returnType: char
    signature: char *semanage_findval(const char *file, const char *var, const char
      *delim)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/selinux/libsemanage/src/utilities.c:67,1
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/utilities.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - str
    - prefix
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: semanage_is_prefix
    functionSourceFile: /src/selinux/libsemanage/src/utilities.c
    functionUses: 3
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int semanage_is_prefix(const char *str, const char *prefix)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strspn
      Src: /src/selinux/libsemanage/src/utilities.c:80,1
    - Dst: strcspn
      Src: /src/selinux/libsemanage/src/utilities.c:81,1
    - Dst: strspn
      Src: /src/selinux/libsemanage/src/utilities.c:82,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/utilities.c:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 84
    functionName: semanage_split_on_space
    functionSourceFile: /src/selinux/libsemanage/src/utilities.c
    functionUses: 1
    functionsReached:
    - strspn
    - strcspn
    - strdup
    linkageType: ''
    returnType: char
    signature: char *semanage_split_on_space(const char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: semanage_split_on_space
      Src: /src/selinux/libsemanage/src/utilities.c:93,1
    - Dst: strstr
      Src: /src/selinux/libsemanage/src/utilities.c:95,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/utilities.c:99,1
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/utilities.c:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - str
    - delim
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 100
    functionName: semanage_split
    functionSourceFile: /src/selinux/libsemanage/src/utilities.c
    functionUses: 2
    functionsReached:
    - strstr
    - strlen
    - strdup
    - semanage_split_on_space
    linkageType: ''
    returnType: char
    signature: char *semanage_split(const char *str, const char *delim)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: semanage_list_find
      Src: /src/selinux/libsemanage/src/utilities.c:109,1
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/utilities.c:112,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/utilities.c:115,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/utilities.c:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - list
    - data
    argTypes:
    - semanage_list_t**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 123
    functionName: semanage_list_push
    functionSourceFile: /src/selinux/libsemanage/src/utilities.c
    functionUses: 2
    functionsReached:
    - free
    - semanage_list_find
    - malloc
    - strdup
    linkageType: ''
    returnType: int
    signature: int semanage_list_push(semanage_list_t **list, const char *data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsemanage/src/utilities.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - list
    argTypes:
    - semanage_list_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 140
    functionName: semanage_list_pop
    functionSourceFile: /src/selinux/libsemanage/src/utilities.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: char
    signature: char *semanage_list_pop(semanage_list_t **list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsemanage/src/utilities.c:147,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/utilities.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - list
    argTypes:
    - semanage_list_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 151
    functionName: semanage_list_destroy
    functionSourceFile: /src/selinux/libsemanage/src/utilities.c
    functionUses: 3
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void semanage_list_destroy(semanage_list_t **list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/utilities.c:157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - l
    - data
    argTypes:
    - semanage_list_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 161
    functionName: semanage_list_find
    functionSourceFile: /src/selinux/libsemanage/src/utilities.c
    functionUses: 3
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: semanage_list_t
    signature: semanage_list_t *semanage_list_find(semanage_list_t *l, const char
      *data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/utilities.c:176,1
    - Dst: qsort
      Src: /src/selinux/libsemanage/src/utilities.c:183,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/utilities.c:189,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - l
    argTypes:
    - semanage_list_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 192
    functionName: semanage_list_sort
    functionSourceFile: /src/selinux/libsemanage/src/utilities.c
    functionUses: 1
    functionsReached:
    - qsort
    - free
    - malloc
    linkageType: ''
    returnType: int
    signature: int semanage_list_sort(semanage_list_t **l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/utilities.c:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 200
    functionName: semanage_cmp_plist_t
    functionSourceFile: /src/selinux/libsemanage/src/utilities.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int semanage_cmp_plist_t(const void *x, const void *y)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - data
    - what
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 215
    functionName: semanage_str_count
    functionSourceFile: /src/selinux/libsemanage/src/utilities.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t semanage_str_count(const char *data, char what)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/utilities.c:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - str
    - trim_to
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 231
    functionName: semanage_rtrim
    functionSourceFile: /src/selinux/libsemanage/src/utilities.c
    functionUses: 2
    functionsReached:
    - strlen
    linkageType: ''
    returnType: void
    signature: void semanage_rtrim(char *str, char trim_to)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/utilities.c:240,1
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/utilities.c:241,1
    - Dst: strstr
      Src: /src/selinux/libsemanage/src/utilities.c:248,1
    - Dst: strstr
      Src: /src/selinux/libsemanage/src/utilities.c:248,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/utilities.c:254,1
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/utilities.c:257,1
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/utilities.c:258,1
    - Dst: strstr
      Src: /src/selinux/libsemanage/src/utilities.c:265,1
    - Dst: strstr
      Src: /src/selinux/libsemanage/src/utilities.c:265,1
    - Dst: memcpy
      Src: /src/selinux/libsemanage/src/utilities.c:269,1
    - Dst: memcpy
      Src: /src/selinux/libsemanage/src/utilities.c:274,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/utilities.c:283,1
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/utilities.c:283,1
    - Dst: strcpy
      Src: /src/selinux/libsemanage/src/utilities.c:284,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 4
    argNames:
    - search
    - replace
    - src
    - lim
    argTypes:
    - char*
    - char*
    - char*
    - size_t
    assertStmts:
    - condition: (pres + strlen(psrc) + 1 == result + newsize)
      pos:
        line_end: 282
        line_start: 282
        source_file: /src/selinux/libsemanage/src/utilities.c
    constantsTouched: []
    func_position:
      end: 286
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 286
    functionName: semanage_str_replace
    functionSourceFile: /src/selinux/libsemanage/src/utilities.c
    functionUses: 1
    functionsReached:
    - malloc
    - assert
    - strcpy
    - memcpy
    - strstr
    - strlen
    - strdup
    linkageType: ''
    returnType: char
    signature: "char *semanage_str_replace(const char *search, const char *replace,\n\t\t\t
      \  const char *src, size_t lim)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/utilities.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - item
    - data
    argTypes:
    - semanage_list_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 307
    functionName: list_addafter_controlmem
    functionSourceFile: /src/selinux/libsemanage/src/utilities.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: semanage_list_t
    signature: "semanage_list_t *list_addafter_controlmem(semanage_list_t *item,\n\t\t\t\t\t\t
      char *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getline
      Src: /src/selinux/libsemanage/src/utilities.c:318,1
    - Dst: pred
      Src: /src/selinux/libsemanage/src/utilities.c:319,1
    - Dst: semanage_rtrim
      Src: /src/selinux/libsemanage/src/utilities.c:320,1
    - Dst: list_addafter_controlmem
      Src: /src/selinux/libsemanage/src/utilities.c:321,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/utilities.c:328,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - file
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 331
    functionName: semanage_slurp_file_filter
    functionSourceFile: /src/selinux/libsemanage/src/utilities.c
    functionUses: 1
    functionsReached:
    - list_addafter_controlmem
    - pred
    - semanage_rtrim
    - free
    - getline
    linkageType: ''
    returnType: semanage_list_t
    signature: "semanage_list_t *semanage_slurp_file_filter(FILE *file,\n\t\t\t\t\t
      \   int (*pred)(const char *))"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/selinux/libsemanage/src/utilities.c:339,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - fd
    - buf
    - len
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 352
    functionName: write_full
    functionSourceFile: /src/selinux/libsemanage/src/utilities.c
    functionUses: 3
    functionsReached:
    - write
    linkageType: ''
    returnType: int
    signature: int write_full(int fd, const void *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/selinux/libsemanage/src/utilities.c:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 361
    functionName: semanage_basename
    functionSourceFile: /src/selinux/libsemanage/src/utilities.c
    functionUses: 1
    functionsReached:
    - strrchr
    linkageType: ''
    returnType: char
    signature: char *semanage_basename(const char *filename)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/seuser_record.c:43,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/seuser_record.c:46,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/seuser_record.c:49,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/seuser_record.c:51,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/seuser_record.c:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - handle
    - name
    - key_ptr
    argTypes:
    - semanage_handle_t*
    - char*
    - semanage_seuser_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 58
    functionName: semanage_seuser_key_create
    functionSourceFile: /src/selinux/libsemanage/src/seuser_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - free
    - malloc
    - strdup
    linkageType: ''
    returnType: int
    signature: "int semanage_seuser_key_create(semanage_handle_t *handle, const char
      *name,\n\t\t\t       semanage_seuser_key_t **key_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semanage_seuser_key_create
      Src: /src/selinux/libsemanage/src/seuser_record.c:64,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/seuser_record.c:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - handle
    - seuser
    - key_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_seuser_t*
    - semanage_seuser_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 72
    functionName: semanage_seuser_key_extract
    functionSourceFile: /src/selinux/libsemanage/src/seuser_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_seuser_key_create
    linkageType: ''
    returnType: int
    signature: "int semanage_seuser_key_extract(semanage_handle_t *handle,\n\t\t\t\tconst
      semanage_seuser_t *seuser,\n\t\t\t\tsemanage_seuser_key_t **key_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsemanage/src/seuser_record.c:76,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/seuser_record.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - semanage_seuser_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: semanage_seuser_key_free
    functionSourceFile: /src/selinux/libsemanage/src/seuser_record.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void semanage_seuser_key_free(semanage_seuser_key_t *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/seuser_record.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seuser
    - key
    argTypes:
    - semanage_seuser_t*
    - semanage_seuser_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: semanage_seuser_compare
    functionSourceFile: /src/selinux/libsemanage/src/seuser_record.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int semanage_seuser_compare(const semanage_seuser_t *seuser,\n\t\t\t
      \   const semanage_seuser_key_t *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/seuser_record.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seuser
    - seuser2
    argTypes:
    - semanage_seuser_t*
    - semanage_seuser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: semanage_seuser_compare2
    functionSourceFile: /src/selinux/libsemanage/src/seuser_record.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int semanage_seuser_compare2(const semanage_seuser_t *seuser,\n\t\t\t
      \    const semanage_seuser_t *seuser2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_seuser_compare2
      Src: /src/selinux/libsemanage/src/seuser_record.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: semanage_seuser_compare2_qsort
    functionSourceFile: /src/selinux/libsemanage/src/seuser_record.c
    functionUses: 0
    functionsReached:
    - semanage_seuser_compare2
    linkageType: ''
    returnType: int
    signature: int semanage_seuser_compare2_qsort(const void *p1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seuser
    argTypes:
    - semanage_seuser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: semanage_seuser_get_name
    functionSourceFile: /src/selinux/libsemanage/src/seuser_record.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *semanage_seuser_get_name(const semanage_seuser_t *seuser)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/seuser_record.c:109,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/seuser_record.c:111,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/seuser_record.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - seuser
    - name
    argTypes:
    - semanage_handle_t*
    - semanage_seuser_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 117
    functionName: semanage_seuser_set_name
    functionSourceFile: /src/selinux/libsemanage/src/seuser_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int semanage_seuser_set_name(semanage_handle_t *handle,\n\t\t\t     semanage_seuser_t
      *seuser, const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seuser
    argTypes:
    - semanage_seuser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: semanage_seuser_get_sename
    functionSourceFile: /src/selinux/libsemanage/src/seuser_record.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *semanage_seuser_get_sename(const semanage_seuser_t *seuser)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/seuser_record.c:128,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/seuser_record.c:130,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/seuser_record.c:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - seuser
    - sename
    argTypes:
    - semanage_handle_t*
    - semanage_seuser_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 137
    functionName: semanage_seuser_set_sename
    functionSourceFile: /src/selinux/libsemanage/src/seuser_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int semanage_seuser_set_sename(semanage_handle_t *handle,\n\t\t\t
      \      semanage_seuser_t *seuser, const char *sename)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seuser
    argTypes:
    - semanage_seuser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: semanage_seuser_get_mlsrange
    functionSourceFile: /src/selinux/libsemanage/src/seuser_record.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *semanage_seuser_get_mlsrange(const semanage_seuser_t *seuser)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/seuser_record.c:149,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/seuser_record.c:151,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/seuser_record.c:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - seuser
    - mls_range
    argTypes:
    - semanage_handle_t*
    - semanage_seuser_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 157
    functionName: semanage_seuser_set_mlsrange
    functionSourceFile: /src/selinux/libsemanage/src/seuser_record.c
    functionUses: 1
    functionsReached:
    - ERR
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int semanage_seuser_set_mlsrange(semanage_handle_t *handle,\n\t\t\t\t
      semanage_seuser_t *seuser,\n\t\t\t\t const char *mls_range)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/seuser_record.c:164,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/seuser_record.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - handle
    - seuser_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_seuser_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 177
    functionName: semanage_seuser_create
    functionSourceFile: /src/selinux/libsemanage/src/seuser_record.c
    functionUses: 0
    functionsReached:
    - ERR
    - malloc
    linkageType: ''
    returnType: int
    signature: "int semanage_seuser_create(semanage_handle_t *handle,\n\t\t\t   semanage_seuser_t
      **seuser_ptr)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: semanage_seuser_create
      Src: /src/selinux/libsemanage/src/seuser_record.c:186,1
    - Dst: semanage_seuser_set_name
      Src: /src/selinux/libsemanage/src/seuser_record.c:189,1
    - Dst: semanage_seuser_set_sename
      Src: /src/selinux/libsemanage/src/seuser_record.c:192,1
    - Dst: semanage_seuser_set_mlsrange
      Src: /src/selinux/libsemanage/src/seuser_record.c:196,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/seuser_record.c:204,1
    - Dst: semanage_seuser_free
      Src: /src/selinux/libsemanage/src/seuser_record.c:205,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - handle
    - seuser
    - seuser_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_seuser_t*
    - semanage_seuser_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 207
    functionName: semanage_seuser_clone
    functionSourceFile: /src/selinux/libsemanage/src/seuser_record.c
    functionUses: 1
    functionsReached:
    - ERR
    - semanage_seuser_free
    - semanage_seuser_set_mlsrange
    - semanage_seuser_set_name
    - semanage_seuser_set_sename
    - semanage_seuser_create
    linkageType: ''
    returnType: int
    signature: "int semanage_seuser_clone(semanage_handle_t *handle,\n\t\t\t  const
      semanage_seuser_t *seuser,\n\t\t\t  semanage_seuser_t **seuser_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsemanage/src/seuser_record.c:215,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/seuser_record.c:216,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/seuser_record.c:217,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/seuser_record.c:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - seuser
    argTypes:
    - semanage_seuser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 219
    functionName: semanage_seuser_free
    functionSourceFile: /src/selinux/libsemanage/src/seuser_record.c
    functionUses: 4
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void semanage_seuser_free(semanage_seuser_t *seuser)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_policydb_init
      Src: /src/selinux/libsemanage/src/ibpkeys_policydb.c:46,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/ibpkeys_policydb.c:48,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/ibpkeys_policydb.c:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - handle
    - dconfig
    argTypes:
    - semanage_handle_t*
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 57
    functionName: ibpkey_policydb_dbase_init
    functionSourceFile: /src/selinux/libsemanage/src/ibpkeys_policydb.c
    functionUses: 0
    functionsReached:
    - dbase_policydb_init
    - semanage_path
    linkageType: ''
    returnType: int
    signature: "int ibpkey_policydb_dbase_init(semanage_handle_t *handle,\n\t\t\t
      \      dbase_config_t *dconfig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbase_policydb_release
      Src: /src/selinux/libsemanage/src/ibpkeys_policydb.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dconfig
    argTypes:
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: ibpkey_policydb_dbase_release
    functionSourceFile: /src/selinux/libsemanage/src/ibpkeys_policydb.c
    functionUses: 0
    functionsReached:
    - dbase_policydb_release
    linkageType: ''
    returnType: void
    signature: void ibpkey_policydb_dbase_release(dbase_config_t *dconfig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:148,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 152
    functionName: ignore_free
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ignore_free(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtok_r
      Src: /src/selinux/libsemanage/src/genhomedircon.c:159,1
    - Dst: calloc
      Src: /src/selinux/libsemanage/src/genhomedircon.c:161,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/genhomedircon.c:164,1
    - Dst: strtok_r
      Src: /src/selinux/libsemanage/src/genhomedircon.c:171,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:176,1
    - Dst: ignore_free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - ignoredirs
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 179
    functionName: ignore_setup
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - strtok_r
    - ignore_free
    - free
    - calloc
    - strdup
    linkageType: ''
    returnType: int
    signature: int ignore_setup(char *ignoredirs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/genhomedircon.c:185,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - homedir
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 191
    functionName: ignore
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int ignore(const char *homedir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/genhomedircon.c:196,1
    - Dst: semanage_user_has_role
      Src: /src/selinux/libsemanage/src/genhomedircon.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - user
    - prefix
    argTypes:
    - semanage_user_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: prefix_is_homedir_role
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - semanage_user_has_role
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int prefix_is_homedir_role(const semanage_user_t *user,\n\t\t\t\t
      \ const char *prefix)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/genhomedircon.c:204,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/genhomedircon.c:205,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/genhomedircon.c:206,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/genhomedircon.c:207,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/genhomedircon.c:208,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/genhomedircon.c:209,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/genhomedircon.c:210,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/genhomedircon.c:211,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/genhomedircon.c:212,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/genhomedircon.c:213,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/genhomedircon.c:214,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/genhomedircon.c:215,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/genhomedircon.c:216,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/genhomedircon.c:217,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/genhomedircon.c:218,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/genhomedircon.c:219,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/genhomedircon.c:220,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/genhomedircon.c:221,1
    - Dst: semanage_list_destroy
      Src: /src/selinux/libsemanage/src/genhomedircon.c:227,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 229
    functionName: default_shell_list
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - semanage_list_push
    - semanage_list_destroy
    linkageType: ''
    returnType: semanage_list_t
    signature: semanage_list_t *default_shell_list(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/genhomedircon.c:233,1
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/genhomedircon.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 235
    functionName: is_nologin_shell
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool is_nologin_shell(const char *path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/libsemanage/src/genhomedircon.c:245,1
    - Dst: default_shell_list
      Src: /src/selinux/libsemanage/src/genhomedircon.c:247,1
    - Dst: getline
      Src: /src/selinux/libsemanage/src/genhomedircon.c:248,1
    - Dst: is_nologin_shell
      Src: /src/selinux/libsemanage/src/genhomedircon.c:251,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/genhomedircon.c:253,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:254,1
    - Dst: semanage_list_destroy
      Src: /src/selinux/libsemanage/src/genhomedircon.c:255,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/genhomedircon.c:256,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:260,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/genhomedircon.c:261,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 264
    functionName: get_shell_list
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - semanage_list_destroy
    - fclose
    - is_nologin_shell
    - semanage_list_push
    - free
    - fopen
    - getline
    - default_shell_list
    linkageType: ''
    returnType: semanage_list_t
    signature: semanage_list_t *get_shell_list(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fcontext_get_expr
      Src: /src/selinux/libsemanage/src/genhomedircon.c:269,1
    - Dst: semanage_fcontext_get_type
      Src: /src/selinux/libsemanage/src/genhomedircon.c:277,1
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/genhomedircon.c:281,1
    - Dst: rstrip_oexpr
      Src: /src/selinux/libsemanage/src/genhomedircon.c:291,1
    - Dst: rstrip_oexpr
      Src: /src/selinux/libsemanage/src/genhomedircon.c:292,1
    - Dst: rstrip_oexpr
      Src: /src/selinux/libsemanage/src/genhomedircon.c:293,1
    - Dst: rstrip_oexpr
      Src: /src/selinux/libsemanage/src/genhomedircon.c:294,1
    - Dst: asprintf
      Src: /src/selinux/libsemanage/src/genhomedircon.c:300,1
    - Dst: regcomp
      Src: /src/selinux/libsemanage/src/genhomedircon.c:304,1
    - Dst: regexec
      Src: /src/selinux/libsemanage/src/genhomedircon.c:306,1
    - Dst: regfree
      Src: /src/selinux/libsemanage/src/genhomedircon.c:308,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:313,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - fcontext
    - varg
    argTypes:
    - semanage_fcontext_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 316
    functionName: fcontext_matches
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - asprintf
    - rstrip_oexpr
    - regfree
    - regcomp
    - regexec
    - semanage_fcontext_get_expr
    - free
    - semanage_fcontext_get_type
    - strlen
    linkageType: ''
    returnType: int
    signature: int fcontext_matches(const semanage_fcontext_t *fcontext, void *varg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cstr
    - ','
    - cstrlen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 289
    functionName: rstrip_oexpr_len
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rstrip_oexpr_len(cstr, cstrlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cstr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 290
    functionName: rstrip_oexpr
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rstrip_oexpr(cstr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/genhomedircon.c:329,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/genhomedircon.c:330,1
    - Dst: semanage_findval
      Src: /src/selinux/libsemanage/src/genhomedircon.c:334,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:336,1
    - Dst: strtoul
      Src: /src/selinux/libsemanage/src/genhomedircon.c:344,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:348,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:352,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 6
    argNames:
    - file
    - key
    - sep
    - fallback
    - out
    - fallback_set
    argTypes:
    - char*
    - char*
    - char*
    - uid_t
    - uid_t*
    - bool*
    assertStmts:
    - condition: (out)
      pos:
        line_end: 328
        line_start: 328
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
    - condition: (fallback_set)
      pos:
        line_end: 329
        line_start: 329
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
    constantsTouched: []
    func_position:
      end: 356
      start: 326
    functionDepth: 2
    functionLinenumber: 326
    functionLinenumberEnd: 356
    functionName: parse_uid_config
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - semanage_findval
    - free
    - strtoul
    - assert
    linkageType: ''
    returnType: bool
    signature: "bool parse_uid_config(const char *file, const char *key, const char
      *sep,\n\t\t\t     uid_t fallback, uid_t *out, bool *fallback_set)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: semanage_findval
      Src: /src/selinux/libsemanage/src/genhomedircon.c:367,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/genhomedircon.c:369,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:372,1
    - Dst: semanage_findval
      Src: /src/selinux/libsemanage/src/genhomedircon.c:374,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/genhomedircon.c:376,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:379,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/genhomedircon.c:383,1
    - Dst: stat
      Src: /src/selinux/libsemanage/src/genhomedircon.c:388,1
    - Dst: S_ISDIR
      Src: /src/selinux/libsemanage/src/genhomedircon.c:389,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/genhomedircon.c:390,1
    - Dst: get_shell_list
      Src: /src/selinux/libsemanage/src/genhomedircon.c:400,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/genhomedircon.c:402,1
    - Dst: parse_uid_config
      Src: /src/selinux/libsemanage/src/genhomedircon.c:414,1
    - Dst: genhomedircon_warn_conv_fail
      Src: /src/selinux/libsemanage/src/genhomedircon.c:416,1
    - Dst: parse_uid_config
      Src: /src/selinux/libsemanage/src/genhomedircon.c:421,1
    - Dst: genhomedircon_warn_conv_fail
      Src: /src/selinux/libsemanage/src/genhomedircon.c:423,1
    - Dst: parse_uid_config
      Src: /src/selinux/libsemanage/src/genhomedircon.c:432,1
    - Dst: genhomedircon_warn_conv_fail
      Src: /src/selinux/libsemanage/src/genhomedircon.c:434,1
    - Dst: setpwent
      Src: /src/selinux/libsemanage/src/genhomedircon.c:439,1
    - Dst: getpwent
      Src: /src/selinux/libsemanage/src/genhomedircon.c:442,1
    - Dst: semanage_list_find
      Src: /src/selinux/libsemanage/src/genhomedircon.c:447,1
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/genhomedircon.c:449,1
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/genhomedircon.c:453,1
    - Dst: ignore
      Src: /src/selinux/libsemanage/src/genhomedircon.c:455,1
    - Dst: semanage_str_count
      Src: /src/selinux/libsemanage/src/genhomedircon.c:457,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/genhomedircon.c:459,1
    - Dst: semanage_rtrim
      Src: /src/selinux/libsemanage/src/genhomedircon.c:463,1
    - Dst: semanage_list_find
      Src: /src/selinux/libsemanage/src/genhomedircon.c:465,1
    - Dst: semanage_fcontext_iterate
      Src: /src/selinux/libsemanage/src/genhomedircon.c:472,1
    - Dst: WARN
      Src: /src/selinux/libsemanage/src/genhomedircon.c:479,1
    - Dst: semanage_list_push
      Src: /src/selinux/libsemanage/src/genhomedircon.c:484,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:488,1
    - Dst: WARN
      Src: /src/selinux/libsemanage/src/genhomedircon.c:493,1
    - Dst: semanage_list_sort
      Src: /src/selinux/libsemanage/src/genhomedircon.c:497,1
    - Dst: endpwent
      Src: /src/selinux/libsemanage/src/genhomedircon.c:500,1
    - Dst: semanage_list_destroy
      Src: /src/selinux/libsemanage/src/genhomedircon.c:501,1
    - Dst: endpwent
      Src: /src/selinux/libsemanage/src/genhomedircon.c:506,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:507,1
    - Dst: semanage_list_destroy
      Src: /src/selinux/libsemanage/src/genhomedircon.c:508,1
    - Dst: semanage_list_destroy
      Src: /src/selinux/libsemanage/src/genhomedircon.c:509,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 103
    argCount: 1
    argNames:
    - s
    argTypes:
    - genhomedircon_settings_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 358
    functionDepth: 4
    functionLinenumber: 358
    functionLinenumberEnd: 511
    functionName: get_home_dirs
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - stat
    - strcmp
    - WARN
    - semanage_fcontext_iterate
    - semanage_list_push
    - setpwent
    - getpwent
    - semanage_rtrim
    - semanage_findval
    - free
    - S_ISDIR
    - semanage_list_find
    - strlen
    - ERR
    - semanage_list_sort
    - get_shell_list
    - strdup
    - semanage_str_count
    - semanage_list_destroy
    - endpwent
    - genhomedircon_warn_conv_fail
    - parse_uid_config
    - ignore
    linkageType: ''
    returnType: semanage_list_t
    signature: semanage_list_t *get_home_dirs(genhomedircon_settings_t *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - key
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 411
    functionName: genhomedircon_warn_conv_fail
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: genhomedircon_warn_conv_fail(key, val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/genhomedircon.c:519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 524
    functionName: write_file_context_header
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int write_file_context_header(FILE *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_is_prefix
      Src: /src/selinux/libsemanage/src/genhomedircon.c:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 541
    functionName: HOME_ROOT_PRED
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - semanage_is_prefix
    linkageType: ''
    returnType: int
    signature: int HOME_ROOT_PRED(const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_is_prefix
      Src: /src/selinux/libsemanage/src/genhomedircon.c:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 546
    functionName: HOME_DIR_PRED
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - semanage_is_prefix
    linkageType: ''
    returnType: int
    signature: int HOME_DIR_PRED(const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/selinux/libsemanage/src/genhomedircon.c:551,1
    - Dst: strstr
      Src: /src/selinux/libsemanage/src/genhomedircon.c:552,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 553
    functionName: USERNAME_CONTEXT_PRED
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - strstr
    linkageType: ''
    returnType: int
    signature: int USERNAME_CONTEXT_PRED(const char *string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: USERNAME_CONTEXT_PRED
      Src: /src/selinux/libsemanage/src/genhomedircon.c:558,1
    - Dst: strstr
      Src: /src/selinux/libsemanage/src/genhomedircon.c:561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - string
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 562
    functionName: USER_CONTEXT_PRED
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - strstr
    - USERNAME_CONTEXT_PRED
    linkageType: ''
    returnType: int
    signature: int USER_CONTEXT_PRED(const char *string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/genhomedircon.c:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 567
    functionName: STR_COMPARATOR
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int STR_COMPARATOR(const void *a, const void *b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/libsemanage/src/genhomedircon.c:582,1
    - Dst: semanage_slurp_file_filter
      Src: /src/selinux/libsemanage/src/genhomedircon.c:585,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/genhomedircon.c:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - genhomedircon_settings_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 576
    functionDepth: 2
    functionLinenumber: 576
    functionLinenumberEnd: 589
    functionName: make_template
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - semanage_slurp_file_filter
    - fclose
    - fopen
    linkageType: ''
    returnType: semanage_list_t
    signature: "semanage_list_t *make_template(genhomedircon_settings_t *s,\n\t\t\t\t
      \     int (*pred)(const char *))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/genhomedircon.c:599,1
    - Dst: semanage_str_replace
      Src: /src/selinux/libsemanage/src/genhomedircon.c:601,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:603,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - str
    - repl
    argTypes:
    - char*
    - replacement_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 607
    functionName: replace_all
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - free
    - semanage_str_replace
    - strdup
    linkageType: ''
    returnType: char
    signature: char *replace_all(const char *str, const replacement_pair_t *repl)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/genhomedircon.c:614,1
    - Dst: isspace
      Src: /src/selinux/libsemanage/src/genhomedircon.c:620,1
    - Dst: isspace
      Src: /src/selinux/libsemanage/src/genhomedircon.c:627,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 632
    functionName: extract_context
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - isspace
    - strlen
    linkageType: ''
    returnType: char
    signature: char *extract_context(const char *line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: extract_context
      Src: /src/selinux/libsemanage/src/genhomedircon.c:640,1
    - Dst: sepol_context_from_string
      Src: /src/selinux/libsemanage/src/genhomedircon.c:644,1
    - Dst: sepol_context_check
      Src: /src/selinux/libsemanage/src/genhomedircon.c:647,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:649,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - s
    - line
    argTypes:
    - genhomedircon_settings_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 634
    functionDepth: 4
    functionLinenumber: 634
    functionLinenumberEnd: 652
    functionName: check_line
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - sepol_context_free
    - sepol_context_from_string
    - sepol_context_check
    - extract_context
    linkageType: ''
    returnType: int
    signature: int check_line(genhomedircon_settings_t *s, const char *line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: replace_all
      Src: /src/selinux/libsemanage/src/genhomedircon.c:661,1
    - Dst: check_line
      Src: /src/selinux/libsemanage/src/genhomedircon.c:664,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/genhomedircon.c:665,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:668,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:673,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - s
    - out
    - tpl
    - repl
    argTypes:
    - genhomedircon_settings_t*
    - FILE*
    - semanage_list_t*
    - replacement_pair_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 654
    functionDepth: 5
    functionLinenumber: 654
    functionLinenumberEnd: 675
    functionName: write_replacements
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - free
    - fprintf
    - check_line
    - replace_all
    linkageType: ''
    returnType: int
    signature: "int write_replacements(genhomedircon_settings_t *s, FILE *out,\n\t\t\t
      \     const semanage_list_t *tpl,\n\t\t\t      const replacement_pair_t *repl)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: replace_all
      Src: /src/selinux/libsemanage/src/genhomedircon.c:688,1
    - Dst: extract_context
      Src: /src/selinux/libsemanage/src/genhomedircon.c:693,1
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/genhomedircon.c:698,1
    - Dst: check_line
      Src: /src/selinux/libsemanage/src/genhomedircon.c:699,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/genhomedircon.c:700,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:703,1
    - Dst: sepol_context_from_string
      Src: /src/selinux/libsemanage/src/genhomedircon.c:709,1
    - Dst: sepol_context_set_user
      Src: /src/selinux/libsemanage/src/genhomedircon.c:714,1
    - Dst: sepol_policydb_mls_enabled
      Src: /src/selinux/libsemanage/src/genhomedircon.c:718,1
    - Dst: sepol_context_set_mls
      Src: /src/selinux/libsemanage/src/genhomedircon.c:719,1
    - Dst: sepol_context_set_role
      Src: /src/selinux/libsemanage/src/genhomedircon.c:724,1
    - Dst: sepol_context_to_string
      Src: /src/selinux/libsemanage/src/genhomedircon.c:729,1
    - Dst: semanage_str_replace
      Src: /src/selinux/libsemanage/src/genhomedircon.c:734,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:739,1
    - Dst: check_line
      Src: /src/selinux/libsemanage/src/genhomedircon.c:742,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/genhomedircon.c:743,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:747,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:748,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:749,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:754,1
    - Dst: sepol_context_free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:755,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:756,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 64
    argCount: 5
    argNames:
    - s
    - out
    - tpl
    - repl
    - user
    argTypes:
    - genhomedircon_settings_t*
    - FILE*
    - semanage_list_t*
    - replacement_pair_t*
    - genhomedircon_user_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 677
    functionDepth: 5
    functionLinenumber: 677
    functionLinenumberEnd: 758
    functionName: write_contexts
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - sepol_context_from_string
    - sepol_context_free
    - sepol_context_to_string
    - extract_context
    - check_line
    - strcmp
    - replace_all
    - sepol_context_set_user
    - sepol_context_set_role
    - free
    - sepol_policydb_mls_enabled
    - semanage_str_replace
    - sepol_context_set_mls
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int write_contexts(genhomedircon_settings_t *s, FILE *out,\n\t\t\t
      \ semanage_list_t *tpl, const replacement_pair_t *repl,\n\t\t\t  const genhomedircon_user_entry_t
      *user)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/genhomedircon.c:770,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/genhomedircon.c:771,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/genhomedircon.c:775,1
    - Dst: write_contexts
      Src: /src/selinux/libsemanage/src/genhomedircon.c:779,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - s
    - out
    - tpl
    - user
    argTypes:
    - genhomedircon_settings_t*
    - FILE*
    - semanage_list_t*
    - genhomedircon_user_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 760
    functionDepth: 6
    functionLinenumber: 760
    functionLinenumberEnd: 780
    functionName: write_home_dir_context
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - write_contexts
    - fprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int write_home_dir_context(genhomedircon_settings_t *s, FILE *out,\n\t\t\t\t
      \ semanage_list_t *tpl,\n\t\t\t\t  const genhomedircon_user_entry_t *user)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_replacements
      Src: /src/selinux/libsemanage/src/genhomedircon.c:789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - out
    - tpl
    - homedir
    argTypes:
    - genhomedircon_settings_t*
    - FILE*
    - semanage_list_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 782
    functionDepth: 6
    functionLinenumber: 782
    functionLinenumberEnd: 790
    functionName: write_home_root_context
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - write_replacements
    linkageType: ''
    returnType: int
    signature: "int write_home_root_context(genhomedircon_settings_t *s, FILE *out,\n\t\t\t\t
      \  semanage_list_t *tpl, const char *homedir)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_contexts
      Src: /src/selinux/libsemanage/src/genhomedircon.c:803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - out
    - tpl
    - user
    argTypes:
    - genhomedircon_settings_t*
    - FILE*
    - semanage_list_t*
    - genhomedircon_user_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 792
    functionDepth: 6
    functionLinenumber: 792
    functionLinenumberEnd: 804
    functionName: write_username_context
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - write_contexts
    linkageType: ''
    returnType: int
    signature: "int write_username_context(genhomedircon_settings_t *s, FILE *out,\n\t\t\t\t
      \ semanage_list_t *tpl,\n\t\t\t\t  const genhomedircon_user_entry_t *user)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_contexts
      Src: /src/selinux/libsemanage/src/genhomedircon.c:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - s
    - out
    - tpl
    - user
    argTypes:
    - genhomedircon_settings_t*
    - FILE*
    - semanage_list_t*
    - genhomedircon_user_entry_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 806
    functionDepth: 6
    functionLinenumber: 806
    functionLinenumberEnd: 817
    functionName: write_user_context
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - write_contexts
    linkageType: ''
    returnType: int
    signature: "int write_user_context(genhomedircon_settings_t *s, FILE *out,\n\t\t\t
      \     semanage_list_t *tpl,\n\t\t\t      const genhomedircon_user_entry_t *user)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: semanage_seuser_get_name
      Src: /src/selinux/libsemanage/src/genhomedircon.c:825,1
    - Dst: semanage_seuser_get_name
      Src: /src/selinux/libsemanage/src/genhomedircon.c:826,1
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/genhomedircon.c:836,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - arg1
    - arg2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 837
    functionName: seuser_sort_func
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - semanage_seuser_get_name
    - strcmp
    linkageType: ''
    returnType: int
    signature: int seuser_sort_func(const void *arg1, const void *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/genhomedircon.c:844,1
    - Dst: semanage_user_get_name
      Src: /src/selinux/libsemanage/src/genhomedircon.c:844,1
    - Dst: semanage_user_get_name
      Src: /src/selinux/libsemanage/src/genhomedircon.c:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arg1
    - arg2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 846
    functionName: user_sort_func
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - strcmp
    - semanage_user_get_name
    linkageType: ''
    returnType: int
    signature: int user_sort_func(const void *arg1, const void *arg2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/genhomedircon.c:853,1
    - Dst: semanage_user_get_name
      Src: /src/selinux/libsemanage/src/genhomedircon.c:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - arg1
    - arg2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 848
    functionDepth: 1
    functionLinenumber: 848
    functionLinenumberEnd: 854
    functionName: name_user_cmp
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - strcmp
    - semanage_user_get_name
    linkageType: ''
    returnType: int
    signature: int name_user_cmp(const void *arg1, const void *arg2)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/genhomedircon.c:872,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/genhomedircon.c:875,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/genhomedircon.c:878,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/genhomedircon.c:881,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/genhomedircon.c:884,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/genhomedircon.c:887,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/genhomedircon.c:890,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/genhomedircon.c:893,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/genhomedircon.c:896,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/genhomedircon.c:900,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:920,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:921,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:922,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:923,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:924,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:925,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:926,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:927,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:928,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:929,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 68
    argCount: 10
    argNames:
    - list
    - n
    - u
    - g
    - sen
    - pre
    - h
    - l
    - ln
    - hd_role
    argTypes:
    - genhomedircon_user_entry_t**
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 931
    functionName: push_user_entry
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - strdup
    linkageType: ''
    returnType: int
    signature: "int push_user_entry(genhomedircon_user_entry_t **list, const char
      *n,\n\t\t\t   const char *u, const char *g, const char *sen,\n\t\t\t   const
      char *pre, const char *h, const char *l,\n\t\t\t   const char *ln, const char
      *hd_role)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:942,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:943,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:944,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:945,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:946,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:947,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:948,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:949,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:950,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:951,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - list
    argTypes:
    - genhomedircon_user_entry_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 933
    functionDepth: 0
    functionLinenumber: 933
    functionLinenumberEnd: 952
    functionName: pop_user_entry
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void pop_user_entry(genhomedircon_user_entry_t **list)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: semanage_seuser_list
      Src: /src/selinux/libsemanage/src/genhomedircon.c:969,1
    - Dst: semanage_seuser_get_name
      Src: /src/selinux/libsemanage/src/genhomedircon.c:976,1
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/genhomedircon.c:977,1
    - Dst: semanage_seuser_get_sename
      Src: /src/selinux/libsemanage/src/genhomedircon.c:978,1
    - Dst: semanage_user_key_create
      Src: /src/selinux/libsemanage/src/genhomedircon.c:981,1
    - Dst: semanage_user_query
      Src: /src/selinux/libsemanage/src/genhomedircon.c:986,1
    - Dst: semanage_user_get_prefix
      Src: /src/selinux/libsemanage/src/genhomedircon.c:990,1
    - Dst: semanage_user_get_mlslevel
      Src: /src/selinux/libsemanage/src/genhomedircon.c:991,1
    - Dst: prefix_is_homedir_role
      Src: /src/selinux/libsemanage/src/genhomedircon.c:996,1
    - Dst: push_user_entry
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1000,1
    - Dst: semanage_user_key_free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1005,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1007,1
    - Dst: semanage_seuser_free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1013,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1014,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 1
    argNames:
    - s
    argTypes:
    - genhomedircon_settings_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 954
    functionDepth: 4
    functionLinenumber: 954
    functionLinenumberEnd: 1017
    functionName: setup_fallback_user
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - semanage_user_get_prefix
    - semanage_seuser_free
    - semanage_seuser_get_sename
    - prefix_is_homedir_role
    - strcmp
    - push_user_entry
    - semanage_user_get_mlslevel
    - semanage_seuser_list
    - semanage_user_key_create
    - semanage_user_key_free
    - free
    - semanage_user_query
    - semanage_user_free
    - semanage_seuser_get_name
    linkageType: ''
    returnType: int
    signature: int setup_fallback_user(genhomedircon_settings_t *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1023,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - head
    - name
    argTypes:
    - genhomedircon_user_entry_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1029
    functionName: find_user
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: genhomedircon_user_entry_t
    signature: "genhomedircon_user_entry_t *find_user(genhomedircon_user_entry_t *head,\n\t\t\t\t\t
      \    const char *name)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: find_user
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1036,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1038,1
    - Dst: sysconf
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1064,1
    - Dst: semanage_user_get_prefix
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1072,1
    - Dst: semanage_user_get_mlslevel
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1073,1
    - Dst: prefix_is_homedir_role
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1083,1
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1088,1
    - Dst: getpwnam_r
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1092,1
    - Dst: __builtin_smull_overflow
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1094,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1095,1
    - Dst: WARN
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1103,1
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1108,1
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1113,1
    - Dst: ignore
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1121,1
    - Dst: snprintf
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1126,1
    - Dst: snprintf
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1131,1
    - Dst: push_user_entry
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1136,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1139,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 80
    argCount: 6
    argNames:
    - s
    - head
    - user
    - name
    - sename
    - selogin
    argTypes:
    - genhomedircon_settings_t*
    - genhomedircon_user_entry_t**
    - semanage_user_t*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1031
    functionDepth: 4
    functionLinenumber: 1031
    functionLinenumberEnd: 1141
    functionName: add_user
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_user_get_prefix
    - snprintf
    - sysconf
    - prefix_is_homedir_role
    - malloc
    - semanage_user_get_mlslevel
    - getpwnam_r
    - __builtin_smull_overflow
    - WARN
    - free
    - find_user
    - strcmp
    - ignore
    - push_user_entry
    - strlen
    linkageType: ''
    returnType: int
    signature: "int add_user(genhomedircon_settings_t *s,\n\t\t    genhomedircon_user_entry_t
      **head, semanage_user_t *user,\n\t\t    const char *name, const char *sename,
      const char *selogin)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1157,1
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1163,1
    - Dst: getgrnam_r
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1170,1
    - Dst: __builtin_smull_overflow
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1174,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1175,1
    - Dst: realloc
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1178,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1187,1
    - Dst: add_user
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1202,1
    - Dst: setpwent
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1207,1
    - Dst: getpwent
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1210,1
    - Dst: lfind
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1215,1
    - Dst: add_user
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1221,1
    - Dst: endpwent
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1230,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1231,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 65
    argCount: 5
    argNames:
    - s
    - head
    - user
    - sename
    - selogin
    argTypes:
    - genhomedircon_settings_t*
    - genhomedircon_user_entry_t**
    - semanage_user_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1143
    functionDepth: 5
    functionLinenumber: 1143
    functionLinenumberEnd: 1234
    functionName: get_group_users
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - ERR
    - add_user
    - sysconf
    - malloc
    - realloc
    - getpwent
    - __builtin_smull_overflow
    - endpwent
    - free
    - getgrnam_r
    - setpwent
    - lfind
    linkageType: ''
    returnType: int
    signature: "int get_group_users(genhomedircon_settings_t *s,\n\t\t\t   genhomedircon_user_entry_t
      **head,\n\t\t\t   semanage_user_t *user, const char *sename,\n\t\t\t   const
      char *selogin)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: semanage_seuser_list
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1251,1
    - Dst: semanage_user_list
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1257,1
    - Dst: qsort
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1261,1
    - Dst: qsort
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1263,1
    - Dst: semanage_seuser_get_sename
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1266,1
    - Dst: semanage_seuser_get_name
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1267,1
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1269,1
    - Dst: bsearch
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1273,1
    - Dst: get_group_users
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1278,1
    - Dst: add_user
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1281,1
    - Dst: pop_user_entry
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1293,1
    - Dst: semanage_seuser_free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1299,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1301,1
    - Dst: semanage_user_free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1304,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1306,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 2
    argNames:
    - s
    - errors
    argTypes:
    - genhomedircon_settings_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1236
    functionDepth: 6
    functionLinenumber: 1236
    functionLinenumberEnd: 1309
    functionName: get_users
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - semanage_seuser_free
    - semanage_seuser_get_sename
    - add_user
    - semanage_user_free
    - get_group_users
    - strcmp
    - bsearch
    - semanage_seuser_list
    - semanage_user_list
    - qsort
    - free
    - pop_user_entry
    - semanage_seuser_get_name
    linkageType: ''
    returnType: genhomedircon_user_entry_t
    signature: "genhomedircon_user_entry_t *get_users(genhomedircon_settings_t *s,\n\t\t\t\t\t
      \    int *errors)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_users
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1319,1
    - Dst: pop_user_entry
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1324,1
    - Dst: write_home_dir_context
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1325,1
    - Dst: write_username_context
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1327,1
    - Dst: write_user_context
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1329,1
    - Dst: pop_user_entry
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1335,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 5
    argNames:
    - s
    - out
    - username_context_tpl
    - user_context_tpl
    - homedir_context_tpl
    argTypes:
    - genhomedircon_settings_t*
    - FILE*
    - semanage_list_t*
    - semanage_list_t*
    - semanage_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1311
    functionDepth: 7
    functionLinenumber: 1311
    functionLinenumberEnd: 1341
    functionName: write_gen_home_dir_context
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - write_user_context
    - get_users
    - pop_user_entry
    - write_home_dir_context
    - write_username_context
    linkageType: ''
    returnType: int
    signature: "int write_gen_home_dir_context(genhomedircon_settings_t *s, FILE *out,\n\t\t\t\t
      \     semanage_list_t *username_context_tpl,\n\t\t\t\t      semanage_list_t
      *user_context_tpl,\n\t\t\t\t      semanage_list_t *homedir_context_tpl)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: make_template
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1358,1
    - Dst: make_template
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1359,1
    - Dst: make_template
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1360,1
    - Dst: make_template
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1361,1
    - Dst: write_file_context_header
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1367,1
    - Dst: setup_fallback_user
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1372,1
    - Dst: get_home_dirs
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1378,1
    - Dst: WARN
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1380,1
    - Dst: asprintf
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1388,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1394,1
    - Dst: write_home_dir_context
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1397,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1400,1
    - Dst: write_home_root_context
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1405,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1408,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1414,1
    - Dst: write_username_context
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1419,1
    - Dst: write_user_context
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1425,1
    - Dst: write_gen_home_dir_context
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1431,1
    - Dst: semanage_list_destroy
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1440,1
    - Dst: semanage_list_destroy
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1441,1
    - Dst: semanage_list_destroy
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1442,1
    - Dst: semanage_list_destroy
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1443,1
    - Dst: semanage_list_destroy
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1444,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 74
    argCount: 2
    argNames:
    - s
    - out
    argTypes:
    - genhomedircon_settings_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1348
    functionDepth: 8
    functionLinenumber: 1348
    functionLinenumberEnd: 1447
    functionName: write_context_file
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - semanage_list_destroy
    - asprintf
    - get_home_dirs
    - write_home_root_context
    - WARN
    - setup_fallback_user
    - free
    - write_user_context
    - write_gen_home_dir_context
    - make_template
    - write_file_context_header
    - write_home_dir_context
    - write_username_context
    linkageType: ''
    returnType: int
    signature: int write_context_file(genhomedircon_settings_t *s, FILE *out)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1456,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1459,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1460,1
    - Dst: calloc
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1462,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1468,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1469,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1470,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1471,1
    - Dst: ignore_setup
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1479,1
    - Dst: fopen
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1485,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1487,1
    - Dst: write_context_file
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1492,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1496,1
    - Dst: pop_user_entry
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1500,1
    - Dst: ignore_free
      Src: /src/selinux/libsemanage/src/genhomedircon.c:1502,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 4
    argNames:
    - sh
    - policydb
    - usepasswd
    - ignoredirs
    argTypes:
    - semanage_handle_t*
    - sepol_policydb_t*
    - int
    - char*
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 1455
        line_start: 1455
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
    constantsTouched: []
    func_position:
      end: 1505
      start: 1449
    functionDepth: 9
    functionLinenumber: 1449
    functionLinenumberEnd: 1505
    functionName: semanage_genhomedircon
    functionSourceFile: /src/selinux/libsemanage/src/genhomedircon.c
    functionUses: 0
    functionsReached:
    - ERR
    - write_context_file
    - fclose
    - semanage_path
    - assert
    - ignore_free
    - calloc
    - fopen
    - pop_user_entry
    - ignore_setup
    - strdup
    linkageType: ''
    returnType: int
    signature: "int semanage_genhomedircon(semanage_handle_t *sh, sepol_policydb_t
      *policydb,\n\t\t\t   int usepasswd, char *ignoredirs)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/parse_utils.c:16,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/parse_utils.c:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - handle
    - filename
    - parse_arg
    - info
    argTypes:
    - semanage_handle_t*
    - char*
    - void*
    - parse_info_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 34
    functionName: parse_init
    functionSourceFile: /src/selinux/libsemanage/src/parse_utils.c
    functionUses: 1
    functionsReached:
    - ERR
    - malloc
    linkageType: ''
    returnType: int
    signature: "int parse_init(semanage_handle_t *handle, const char *filename, void
      *parse_arg,\n\t       parse_info_t **info)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse_close
      Src: /src/selinux/libsemanage/src/parse_utils.c:38,1
    - Dst: parse_dispose_line
      Src: /src/selinux/libsemanage/src/parse_utils.c:39,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/parse_utils.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - parse_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: parse_release
    functionSourceFile: /src/selinux/libsemanage/src/parse_utils.c
    functionUses: 1
    functionsReached:
    - free
    - parse_dispose_line
    - parse_close
    linkageType: ''
    returnType: void
    signature: void parse_release(parse_info_t *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/libsemanage/src/parse_utils.c:45,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/parse_utils.c:47,1
    - Dst: __fsetlocking
      Src: /src/selinux/libsemanage/src/parse_utils.c:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - handle
    - info
    argTypes:
    - semanage_handle_t*
    - parse_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 54
    functionName: parse_open
    functionSourceFile: /src/selinux/libsemanage/src/parse_utils.c
    functionUses: 1
    functionsReached:
    - ERR
    - __fsetlocking
    - fopen
    linkageType: ''
    returnType: int
    signature: int parse_open(semanage_handle_t *handle, parse_info_t *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/parse_utils.c:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - parse_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: parse_close
    functionSourceFile: /src/selinux/libsemanage/src/parse_utils.c
    functionUses: 2
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void parse_close(parse_info_t *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsemanage/src/parse_utils.c:66,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/parse_utils.c:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - info
    argTypes:
    - parse_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 76
    functionName: parse_dispose_line
    functionSourceFile: /src/selinux/libsemanage/src/parse_utils.c
    functionUses: 8
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void parse_dispose_line(parse_info_t *info)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/selinux/libsemanage/src/parse_utils.c:87,1
    - Dst: parse_dispose_line
      Src: /src/selinux/libsemanage/src/parse_utils.c:94,1
    - Dst: getline
      Src: /src/selinux/libsemanage/src/parse_utils.c:97,1
    - Dst: isspace
      Src: /src/selinux/libsemanage/src/parse_utils.c:105,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/parse_utils.c:110,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/parse_utils.c:123,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/parse_utils.c:129,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/parse_utils.c:130,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 34
    argCount: 2
    argNames:
    - handle
    - info
    argTypes:
    - semanage_handle_t*
    - parse_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 132
    functionName: parse_skip_space
    functionSourceFile: /src/selinux/libsemanage/src/parse_utils.c
    functionUses: 7
    functionsReached:
    - ERR
    - isspace
    - parse_dispose_line
    - free
    - getline
    - strdup
    linkageType: ''
    returnType: int
    signature: int parse_skip_space(semanage_handle_t *handle, parse_info_t *info)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/parse_utils.c:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - handle
    - info
    argTypes:
    - semanage_handle_t*
    - parse_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 143
    functionName: parse_assert_noeof
    functionSourceFile: /src/selinux/libsemanage/src/parse_utils.c
    functionUses: 1
    functionsReached:
    - ERR
    linkageType: ''
    returnType: int
    signature: int parse_assert_noeof(semanage_handle_t *handle, parse_info_t *info)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_assert_noeof
      Src: /src/selinux/libsemanage/src/parse_utils.c:147,1
    - Dst: isspace
      Src: /src/selinux/libsemanage/src/parse_utils.c:150,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/parse_utils.c:151,1
    - Dst: parse_skip_space
      Src: /src/selinux/libsemanage/src/parse_utils.c:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - handle
    - info
    argTypes:
    - semanage_handle_t*
    - parse_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 160
    functionName: parse_assert_space
    functionSourceFile: /src/selinux/libsemanage/src/parse_utils.c
    functionUses: 7
    functionsReached:
    - ERR
    - parse_assert_noeof
    - parse_skip_space
    - isspace
    linkageType: ''
    returnType: int
    signature: int parse_assert_space(semanage_handle_t *handle, parse_info_t *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_assert_noeof
      Src: /src/selinux/libsemanage/src/parse_utils.c:165,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/parse_utils.c:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - handle
    - info
    - ch
    argTypes:
    - semanage_handle_t*
    - parse_info_t*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 180
    functionName: parse_assert_ch
    functionSourceFile: /src/selinux/libsemanage/src/parse_utils.c
    functionUses: 2
    functionsReached:
    - ERR
    - parse_assert_noeof
    linkageType: ''
    returnType: int
    signature: "int parse_assert_ch(semanage_handle_t *handle, parse_info_t *info,\n\t\t
      \   const char ch)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/parse_utils.c:185,1
    - Dst: parse_assert_noeof
      Src: /src/selinux/libsemanage/src/parse_utils.c:187,1
    - Dst: strncmp
      Src: /src/selinux/libsemanage/src/parse_utils.c:190,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/parse_utils.c:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - handle
    - info
    - assert_str
    argTypes:
    - semanage_handle_t*
    - parse_info_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 202
    functionName: parse_assert_str
    functionSourceFile: /src/selinux/libsemanage/src/parse_utils.c
    functionUses: 6
    functionsReached:
    - strncmp
    - ERR
    - parse_assert_noeof
    - strlen
    linkageType: ''
    returnType: int
    signature: "int parse_assert_str(semanage_handle_t *handle, parse_info_t *info,\n\t\t
      \    const char *assert_str)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - info
    - ch
    argTypes:
    - parse_info_t*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 213
    functionName: parse_optional_ch
    functionSourceFile: /src/selinux/libsemanage/src/parse_utils.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int parse_optional_ch(parse_info_t *info, const char ch)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libsemanage/src/parse_utils.c:217,1
    - Dst: strncmp
      Src: /src/selinux/libsemanage/src/parse_utils.c:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - info
    - str
    argTypes:
    - parse_info_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 224
    functionName: parse_optional_str
    functionSourceFile: /src/selinux/libsemanage/src/parse_utils.c
    functionUses: 2
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int parse_optional_str(parse_info_t *info, const char *str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/parse_utils.c:233,1
    - Dst: isdigit
      Src: /src/selinux/libsemanage/src/parse_utils.c:236,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/parse_utils.c:237,1
    - Dst: strtol
      Src: /src/selinux/libsemanage/src/parse_utils.c:242,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/parse_utils.c:244,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/parse_utils.c:252,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/parse_utils.c:256,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/parse_utils.c:257,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - handle
    - info
    - num
    - delim
    argTypes:
    - semanage_handle_t*
    - parse_info_t*
    - int*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 259
    functionName: parse_fetch_int
    functionSourceFile: /src/selinux/libsemanage/src/parse_utils.c
    functionUses: 4
    functionsReached:
    - ERR
    - free
    - isdigit
    - parse_fetch_string
    - strtol
    linkageType: ''
    returnType: int
    signature: "int parse_fetch_int(semanage_handle_t *handle, parse_info_t *info,
      int *num,\n\t\t    char delim)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_assert_noeof
      Src: /src/selinux/libsemanage/src/parse_utils.c:268,1
    - Dst: isspace
      Src: /src/selinux/libsemanage/src/parse_utils.c:272,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/parse_utils.c:279,1
    - Dst: strndup
      Src: /src/selinux/libsemanage/src/parse_utils.c:286,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/parse_utils.c:288,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/parse_utils.c:296,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 5
    argNames:
    - handle
    - info
    - str
    - delim
    - allow_spaces
    argTypes:
    - semanage_handle_t*
    - parse_info_t*
    - char**
    - char
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 298
    functionName: parse_fetch_string
    functionSourceFile: /src/selinux/libsemanage/src/parse_utils.c
    functionUses: 8
    functionsReached:
    - ERR
    - parse_assert_noeof
    - isspace
    - strndup
    linkageType: ''
    returnType: int
    signature: "int parse_fetch_string(semanage_handle_t *handle, parse_info_t *info,\n\t\t
      \      char **str, char delim, int allow_spaces)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_bool_key_create
      Src: /src/selinux/libsemanage/src/boolean_record.c:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - name
    - key
    argTypes:
    - semanage_handle_t*
    - char*
    - semanage_bool_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: semanage_bool_key_create
    functionSourceFile: /src/selinux/libsemanage/src/boolean_record.c
    functionUses: 7
    functionsReached:
    - sepol_bool_key_create
    linkageType: ''
    returnType: int
    signature: "int semanage_bool_key_create(semanage_handle_t *handle, const char
      *name,\n\t\t\t     semanage_bool_key_t **key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_bool_key_extract
      Src: /src/selinux/libsemanage/src/boolean_record.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - boolean
    - key
    argTypes:
    - semanage_handle_t*
    - semanage_bool_t*
    - semanage_bool_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: semanage_bool_key_extract
    functionSourceFile: /src/selinux/libsemanage/src/boolean_record.c
    functionUses: 3
    functionsReached:
    - sepol_bool_key_extract
    linkageType: ''
    returnType: int
    signature: "int semanage_bool_key_extract(semanage_handle_t *handle,\n\t\t\t      const
      semanage_bool_t *boolean,\n\t\t\t      semanage_bool_key_t **key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_bool_key_free
      Src: /src/selinux/libsemanage/src/boolean_record.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - semanage_bool_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: semanage_bool_key_free
    functionSourceFile: /src/selinux/libsemanage/src/boolean_record.c
    functionUses: 11
    functionsReached:
    - sepol_bool_key_free
    linkageType: ''
    returnType: void
    signature: void semanage_bool_key_free(semanage_bool_key_t *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_bool_compare
      Src: /src/selinux/libsemanage/src/boolean_record.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - boolean
    - key
    argTypes:
    - semanage_bool_t*
    - semanage_bool_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: semanage_bool_compare
    functionSourceFile: /src/selinux/libsemanage/src/boolean_record.c
    functionUses: 2
    functionsReached:
    - sepol_bool_compare
    linkageType: ''
    returnType: int
    signature: "int semanage_bool_compare(const semanage_bool_t *boolean,\n\t\t\t
      \ const semanage_bool_key_t *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_bool_compare2
      Src: /src/selinux/libsemanage/src/boolean_record.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - boolean
    - boolean2
    argTypes:
    - semanage_bool_t*
    - semanage_bool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: semanage_bool_compare2
    functionSourceFile: /src/selinux/libsemanage/src/boolean_record.c
    functionUses: 2
    functionsReached:
    - sepol_bool_compare2
    linkageType: ''
    returnType: int
    signature: "int semanage_bool_compare2(const semanage_bool_t *boolean,\n\t\t\t
      \  const semanage_bool_t *boolean2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_bool_compare2
      Src: /src/selinux/libsemanage/src/boolean_record.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: semanage_bool_compare2_qsort
    functionSourceFile: /src/selinux/libsemanage/src/boolean_record.c
    functionUses: 0
    functionsReached:
    - sepol_bool_compare2
    linkageType: ''
    returnType: int
    signature: int semanage_bool_compare2_qsort(const void *p1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_bool_get_name
      Src: /src/selinux/libsemanage/src/boolean_record.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - boolean
    argTypes:
    - semanage_bool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: semanage_bool_get_name
    functionSourceFile: /src/selinux/libsemanage/src/boolean_record.c
    functionUses: 7
    functionsReached:
    - sepol_bool_get_name
    linkageType: ''
    returnType: char
    signature: char *semanage_bool_get_name(const semanage_bool_t *boolean)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: semanage_root
      Src: /src/selinux/libsemanage/src/boolean_record.c:77,1
    - Dst: selinux_policy_root
      Src: /src/selinux/libsemanage/src/boolean_record.c:79,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/boolean_record.c:89,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/boolean_record.c:92,1
    - Dst: strrchr
      Src: /src/selinux/libsemanage/src/boolean_record.c:95,1
    - Dst: asprintf
      Src: /src/selinux/libsemanage/src/boolean_record.c:100,1
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/boolean_record.c:106,1
    - Dst: selinux_set_policy_root
      Src: /src/selinux/libsemanage/src/boolean_record.c:107,1
    - Dst: selinux_boolean_sub
      Src: /src/selinux/libsemanage/src/boolean_record.c:112,1
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/boolean_record.c:118,1
    - Dst: selinux_set_policy_root
      Src: /src/selinux/libsemanage/src/boolean_record.c:119,1
    - Dst: sepol_bool_set_name
      Src: /src/selinux/libsemanage/src/boolean_record.c:124,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/boolean_record.c:126,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/boolean_record.c:127,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/boolean_record.c:128,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/boolean_record.c:129,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 3
    argNames:
    - handle
    - boolean
    - name
    argTypes:
    - semanage_handle_t*
    - semanage_bool_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 131
    functionName: semanage_bool_set_name
    functionSourceFile: /src/selinux/libsemanage/src/boolean_record.c
    functionUses: 4
    functionsReached:
    - asprintf
    - strdup
    - selinux_boolean_sub
    - sepol_bool_set_name
    - semanage_root
    - strcmp
    - selinux_set_policy_root
    - free
    - strrchr
    - selinux_policy_root
    linkageType: ''
    returnType: int
    signature: "int semanage_bool_set_name(semanage_handle_t *handle, semanage_bool_t
      *boolean,\n\t\t\t   const char *name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_bool_get_value
      Src: /src/selinux/libsemanage/src/boolean_record.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - boolean
    argTypes:
    - semanage_bool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: semanage_bool_get_value
    functionSourceFile: /src/selinux/libsemanage/src/boolean_record.c
    functionUses: 5
    functionsReached:
    - sepol_bool_get_value
    linkageType: ''
    returnType: int
    signature: int semanage_bool_get_value(const semanage_bool_t *boolean)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_bool_set_value
      Src: /src/selinux/libsemanage/src/boolean_record.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - boolean
    - value
    argTypes:
    - semanage_bool_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: semanage_bool_set_value
    functionSourceFile: /src/selinux/libsemanage/src/boolean_record.c
    functionUses: 5
    functionsReached:
    - sepol_bool_set_value
    linkageType: ''
    returnType: void
    signature: void semanage_bool_set_value(semanage_bool_t *boolean, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_bool_create
      Src: /src/selinux/libsemanage/src/boolean_record.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - bool_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_bool_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: semanage_bool_create
    functionSourceFile: /src/selinux/libsemanage/src/boolean_record.c
    functionUses: 4
    functionsReached:
    - sepol_bool_create
    linkageType: ''
    returnType: int
    signature: int semanage_bool_create(semanage_handle_t *handle, semanage_bool_t
      **bool_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_bool_clone
      Src: /src/selinux/libsemanage/src/boolean_record.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - boolean
    - bool_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_bool_t*
    - semanage_bool_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: semanage_bool_clone
    functionSourceFile: /src/selinux/libsemanage/src/boolean_record.c
    functionUses: 1
    functionsReached:
    - sepol_bool_clone
    linkageType: ''
    returnType: int
    signature: "int semanage_bool_clone(semanage_handle_t *handle,\n\t\t\tconst semanage_bool_t
      *boolean,\n\t\t\tsemanage_bool_t **bool_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_bool_free
      Src: /src/selinux/libsemanage/src/boolean_record.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - boolean
    argTypes:
    - semanage_bool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: semanage_bool_free
    functionSourceFile: /src/selinux/libsemanage/src/boolean_record.c
    functionUses: 17
    functionsReached:
    - sepol_bool_free
    linkageType: ''
    returnType: void
    signature: void semanage_bool_free(semanage_bool_t *boolean)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_compare
      Src: /src/selinux/libsemanage/src/node_record.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - key
    argTypes:
    - semanage_node_t*
    - semanage_node_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: semanage_node_compare
    functionSourceFile: /src/selinux/libsemanage/src/node_record.c
    functionUses: 1
    functionsReached:
    - sepol_node_compare
    linkageType: ''
    returnType: int
    signature: "int semanage_node_compare(const semanage_node_t *node,\n\t\t\t  const
      semanage_node_key_t *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_compare2
      Src: /src/selinux/libsemanage/src/node_record.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - node2
    argTypes:
    - semanage_node_t*
    - semanage_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: semanage_node_compare2
    functionSourceFile: /src/selinux/libsemanage/src/node_record.c
    functionUses: 1
    functionsReached:
    - sepol_node_compare2
    linkageType: ''
    returnType: int
    signature: "int semanage_node_compare2(const semanage_node_t *node,\n\t\t\t   const
      semanage_node_t *node2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_compare2
      Src: /src/selinux/libsemanage/src/node_record.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: semanage_node_compare2_qsort
    functionSourceFile: /src/selinux/libsemanage/src/node_record.c
    functionUses: 0
    functionsReached:
    - sepol_node_compare2
    linkageType: ''
    returnType: int
    signature: int semanage_node_compare2_qsort(const void *p1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_key_create
      Src: /src/selinux/libsemanage/src/node_record.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - handle
    - addr
    - mask
    - proto
    - key_ptr
    argTypes:
    - semanage_handle_t*
    - char*
    - char*
    - int
    - semanage_node_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: semanage_node_key_create
    functionSourceFile: /src/selinux/libsemanage/src/node_record.c
    functionUses: 3
    functionsReached:
    - sepol_node_key_create
    linkageType: ''
    returnType: int
    signature: "int semanage_node_key_create(semanage_handle_t *handle, const char
      *addr,\n\t\t\t     const char *mask, int proto,\n\t\t\t     semanage_node_key_t
      **key_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_key_extract
      Src: /src/selinux/libsemanage/src/node_record.c:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - node
    - key_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_node_t*
    - semanage_node_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: semanage_node_key_extract
    functionSourceFile: /src/selinux/libsemanage/src/node_record.c
    functionUses: 4
    functionsReached:
    - sepol_node_key_extract
    linkageType: ''
    returnType: int
    signature: "int semanage_node_key_extract(semanage_handle_t *handle,\n\t\t\t      const
      semanage_node_t *node,\n\t\t\t      semanage_node_key_t **key_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_key_free
      Src: /src/selinux/libsemanage/src/node_record.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - semanage_node_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: semanage_node_key_free
    functionSourceFile: /src/selinux/libsemanage/src/node_record.c
    functionUses: 9
    functionsReached:
    - sepol_node_key_free
    linkageType: ''
    returnType: void
    signature: void semanage_node_key_free(semanage_node_key_t *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_get_addr
      Src: /src/selinux/libsemanage/src/node_record.c:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - node
    - addr_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_node_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 73
    functionName: semanage_node_get_addr
    functionSourceFile: /src/selinux/libsemanage/src/node_record.c
    functionUses: 4
    functionsReached:
    - sepol_node_get_addr
    linkageType: ''
    returnType: int
    signature: "int semanage_node_get_addr(semanage_handle_t *handle,\n\t\t\t   const
      semanage_node_t *node, char **addr_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_get_addr_bytes
      Src: /src/selinux/libsemanage/src/node_record.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - node
    - addr
    - addr_sz
    argTypes:
    - semanage_handle_t*
    - semanage_node_t*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 80
    functionName: semanage_node_get_addr_bytes
    functionSourceFile: /src/selinux/libsemanage/src/node_record.c
    functionUses: 1
    functionsReached:
    - sepol_node_get_addr_bytes
    linkageType: ''
    returnType: int
    signature: "int semanage_node_get_addr_bytes(semanage_handle_t *handle,\n\t\t\t\t
      const semanage_node_t *node, char **addr,\n\t\t\t\t size_t *addr_sz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_set_addr
      Src: /src/selinux/libsemanage/src/node_record.c:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - node
    - proto
    - addr
    argTypes:
    - semanage_handle_t*
    - semanage_node_t*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: semanage_node_set_addr
    functionSourceFile: /src/selinux/libsemanage/src/node_record.c
    functionUses: 5
    functionsReached:
    - sepol_node_set_addr
    linkageType: ''
    returnType: int
    signature: "int semanage_node_set_addr(semanage_handle_t *handle, semanage_node_t
      *node,\n\t\t\t   int proto, const char *addr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_set_addr_bytes
      Src: /src/selinux/libsemanage/src/node_record.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - node
    - addr
    - addr_sz
    argTypes:
    - semanage_handle_t*
    - semanage_node_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 93
    functionName: semanage_node_set_addr_bytes
    functionSourceFile: /src/selinux/libsemanage/src/node_record.c
    functionUses: 1
    functionsReached:
    - sepol_node_set_addr_bytes
    linkageType: ''
    returnType: int
    signature: "int semanage_node_set_addr_bytes(semanage_handle_t *handle,\n\t\t\t\t
      semanage_node_t *node, const char *addr,\n\t\t\t\t size_t addr_sz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_get_mask
      Src: /src/selinux/libsemanage/src/node_record.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - node
    - mask_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_node_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: semanage_node_get_mask
    functionSourceFile: /src/selinux/libsemanage/src/node_record.c
    functionUses: 4
    functionsReached:
    - sepol_node_get_mask
    linkageType: ''
    returnType: int
    signature: "int semanage_node_get_mask(semanage_handle_t *handle,\n\t\t\t   const
      semanage_node_t *node, char **mask_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_get_mask_bytes
      Src: /src/selinux/libsemanage/src/node_record.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - node
    - mask
    - mask_sz
    argTypes:
    - semanage_handle_t*
    - semanage_node_t*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: semanage_node_get_mask_bytes
    functionSourceFile: /src/selinux/libsemanage/src/node_record.c
    functionUses: 1
    functionsReached:
    - sepol_node_get_mask_bytes
    linkageType: ''
    returnType: int
    signature: "int semanage_node_get_mask_bytes(semanage_handle_t *handle,\n\t\t\t\t
      const semanage_node_t *node, char **mask,\n\t\t\t\t size_t *mask_sz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_set_mask
      Src: /src/selinux/libsemanage/src/node_record.c:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - node
    - proto
    - mask
    argTypes:
    - semanage_handle_t*
    - semanage_node_t*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: semanage_node_set_mask
    functionSourceFile: /src/selinux/libsemanage/src/node_record.c
    functionUses: 4
    functionsReached:
    - sepol_node_set_mask
    linkageType: ''
    returnType: int
    signature: "int semanage_node_set_mask(semanage_handle_t *handle, semanage_node_t
      *node,\n\t\t\t   int proto, const char *mask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_set_mask_bytes
      Src: /src/selinux/libsemanage/src/node_record.c:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - node
    - mask
    - mask_sz
    argTypes:
    - semanage_handle_t*
    - semanage_node_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: semanage_node_set_mask_bytes
    functionSourceFile: /src/selinux/libsemanage/src/node_record.c
    functionUses: 1
    functionsReached:
    - sepol_node_set_mask_bytes
    linkageType: ''
    returnType: int
    signature: "int semanage_node_set_mask_bytes(semanage_handle_t *handle,\n\t\t\t\t
      semanage_node_t *node, const char *mask,\n\t\t\t\t size_t mask_sz)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_get_proto
      Src: /src/selinux/libsemanage/src/node_record.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - semanage_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: semanage_node_get_proto
    functionSourceFile: /src/selinux/libsemanage/src/node_record.c
    functionUses: 4
    functionsReached:
    - sepol_node_get_proto
    linkageType: ''
    returnType: int
    signature: int semanage_node_get_proto(const semanage_node_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_set_proto
      Src: /src/selinux/libsemanage/src/node_record.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - node
    - proto
    argTypes:
    - semanage_node_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: semanage_node_set_proto
    functionSourceFile: /src/selinux/libsemanage/src/node_record.c
    functionUses: 4
    functionsReached:
    - sepol_node_set_proto
    linkageType: ''
    returnType: void
    signature: void semanage_node_set_proto(semanage_node_t *node, int proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_get_proto_str
      Src: /src/selinux/libsemanage/src/node_record.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proto
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: semanage_node_get_proto_str
    functionSourceFile: /src/selinux/libsemanage/src/node_record.c
    functionUses: 2
    functionsReached:
    - sepol_node_get_proto_str
    linkageType: ''
    returnType: char
    signature: char *semanage_node_get_proto_str(int proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_get_con
      Src: /src/selinux/libsemanage/src/node_record.c:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - semanage_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: semanage_node_get_con
    functionSourceFile: /src/selinux/libsemanage/src/node_record.c
    functionUses: 4
    functionsReached:
    - sepol_node_get_con
    linkageType: ''
    returnType: semanage_context_t
    signature: semanage_context_t *semanage_node_get_con(const semanage_node_t *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_set_con
      Src: /src/selinux/libsemanage/src/node_record.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - node
    - con
    argTypes:
    - semanage_handle_t*
    - semanage_node_t*
    - semanage_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 148
    functionName: semanage_node_set_con
    functionSourceFile: /src/selinux/libsemanage/src/node_record.c
    functionUses: 4
    functionsReached:
    - sepol_node_set_con
    linkageType: ''
    returnType: int
    signature: "int semanage_node_set_con(semanage_handle_t *handle, semanage_node_t
      *node,\n\t\t\t  semanage_context_t *con)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_create
      Src: /src/selinux/libsemanage/src/node_record.c:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - node_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_node_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: semanage_node_create
    functionSourceFile: /src/selinux/libsemanage/src/node_record.c
    functionUses: 8
    functionsReached:
    - sepol_node_create
    linkageType: ''
    returnType: int
    signature: int semanage_node_create(semanage_handle_t *handle, semanage_node_t
      **node_ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_clone
      Src: /src/selinux/libsemanage/src/node_record.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - node
    - node_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_node_t*
    - semanage_node_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: semanage_node_clone
    functionSourceFile: /src/selinux/libsemanage/src/node_record.c
    functionUses: 1
    functionsReached:
    - sepol_node_clone
    linkageType: ''
    returnType: int
    signature: "int semanage_node_clone(semanage_handle_t *handle, const semanage_node_t
      *node,\n\t\t\tsemanage_node_t **node_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_node_free
      Src: /src/selinux/libsemanage/src/node_record.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - node
    argTypes:
    - semanage_node_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 165
    functionName: semanage_node_free
    functionSourceFile: /src/selinux/libsemanage/src/node_record.c
    functionUses: 18
    functionsReached:
    - sepol_node_free
    linkageType: ''
    returnType: void
    signature: void semanage_node_free(semanage_node_t *node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: semanage_handle_t*::funcs::get_serial
      Src: /src/selinux/libsemanage/src/database_llist.c:23,1
    - Dst: dbase_llist_drop_cache
      Src: /src/selinux/libsemanage/src/database_llist.c:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - handle
    - dbase
    argTypes:
    - semanage_handle_t*
    - dbase_llist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 33
    functionName: dbase_llist_needs_resync
    functionSourceFile: /src/selinux/libsemanage/src/database_llist.c
    functionUses: 2
    functionsReached:
    - semanage_handle_t*::funcs::get_serial
    - dbase_llist_drop_cache
    linkageType: ''
    returnType: int
    signature: int dbase_llist_needs_resync(semanage_handle_t *handle, dbase_llist_t
      *dbase)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/database_llist.c:40,1
    - Dst: dbase_llist_t*::rtable::clone
      Src: /src/selinux/libsemanage/src/database_llist.c:44,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_llist.c:60,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_llist.c:63,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/database_llist.c:64,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - handle
    - dbase
    - data
    argTypes:
    - semanage_handle_t*
    - dbase_llist_t*
    - record_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 66
    functionName: dbase_llist_cache_prepend
    functionSourceFile: /src/selinux/libsemanage/src/database_llist.c
    functionUses: 2
    functionsReached:
    - ERR
    - free
    - malloc
    - dbase_llist_t*::rtable::clone
    linkageType: ''
    returnType: int
    signature: "int dbase_llist_cache_prepend(semanage_handle_t *handle, dbase_llist_t
      *dbase,\n\t\t\t      const record_t *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_llist_t*::rtable::free
      Src: /src/selinux/libsemanage/src/database_llist.c:77,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/database_llist.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - dbase
    argTypes:
    - dbase_llist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 83
    functionName: dbase_llist_drop_cache
    functionSourceFile: /src/selinux/libsemanage/src/database_llist.c
    functionUses: 5
    functionsReached:
    - dbase_llist_t*::rtable::free
    - free
    linkageType: ''
    returnType: void
    signature: void dbase_llist_drop_cache(dbase_llist_t *dbase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semanage_handle_t*::funcs::get_serial
      Src: /src/selinux/libsemanage/src/database_llist.c:87,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_llist.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - handle
    - dbase
    argTypes:
    - semanage_handle_t*
    - dbase_llist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: dbase_llist_set_serial
    functionSourceFile: /src/selinux/libsemanage/src/database_llist.c
    functionUses: 2
    functionsReached:
    - semanage_handle_t*::funcs::get_serial
    - ERR
    linkageType: ''
    returnType: int
    signature: int dbase_llist_set_serial(semanage_handle_t *handle, dbase_llist_t
      *dbase)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dbase_llist_t*::dtable::cache
      Src: /src/selinux/libsemanage/src/database_llist.c:106,1
    - Dst: dbase_llist_t*::rtable::compare
      Src: /src/selinux/libsemanage/src/database_llist.c:110,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_llist.c:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - handle
    - dbase
    - key
    - entry
    argTypes:
    - semanage_handle_t*
    - dbase_llist_t*
    - record_key_t*
    - cache_entry_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 121
    functionName: dbase_llist_cache_locate
    functionSourceFile: /src/selinux/libsemanage/src/database_llist.c
    functionUses: 0
    functionsReached:
    - ERR
    - dbase_llist_t*::dtable::cache
    - dbase_llist_t*::rtable::compare
    linkageType: ''
    returnType: int
    signature: "int dbase_llist_cache_locate(semanage_handle_t *handle,\n\t\t\t\t
      \   dbase_llist_t *dbase,\n\t\t\t\t    const record_key_t *key,\n\t\t\t\t    cache_entry_t
      **entry)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_llist_cache_locate
      Src: /src/selinux/libsemanage/src/database_llist.c:129,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_llist.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - handle
    - dbase
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - dbase_llist_t*
    - record_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 139
    functionName: dbase_llist_exists
    functionSourceFile: /src/selinux/libsemanage/src/database_llist.c
    functionUses: 0
    functionsReached:
    - dbase_llist_cache_locate
    - ERR
    linkageType: ''
    returnType: int
    signature: "int dbase_llist_exists(semanage_handle_t *handle, dbase_llist_t *dbase,\n\t\t
      \      const record_key_t *key, int *response)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_llist_cache_prepend
      Src: /src/selinux/libsemanage/src/database_llist.c:145,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_llist.c:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - handle
    - dbase
    - key
    - data
    argTypes:
    - semanage_handle_t*
    - dbase_llist_t*
    - record_key_t*
    - record_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 154
    functionName: dbase_llist_add
    functionSourceFile: /src/selinux/libsemanage/src/database_llist.c
    functionUses: 0
    functionsReached:
    - dbase_llist_cache_prepend
    - ERR
    linkageType: ''
    returnType: int
    signature: "int dbase_llist_add(semanage_handle_t *handle, dbase_llist_t *dbase,\n\t\t
      \   const record_key_t *key __attribute__((unused)),\n\t\t    const record_t
      *data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dbase_llist_cache_locate
      Src: /src/selinux/libsemanage/src/database_llist.c:162,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_llist.c:166,1
    - Dst: dbase_llist_t*::rtable::free
      Src: /src/selinux/libsemanage/src/database_llist.c:169,1
    - Dst: dbase_llist_t*::rtable::clone
      Src: /src/selinux/libsemanage/src/database_llist.c:170,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_llist.c:178,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - handle
    - dbase
    - key
    - data
    argTypes:
    - semanage_handle_t*
    - dbase_llist_t*
    - record_key_t*
    - record_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 180
    functionName: dbase_llist_set
    functionSourceFile: /src/selinux/libsemanage/src/database_llist.c
    functionUses: 0
    functionsReached:
    - dbase_llist_cache_locate
    - dbase_llist_t*::rtable::free
    - ERR
    - dbase_llist_t*::rtable::clone
    linkageType: ''
    returnType: int
    signature: "int dbase_llist_set(semanage_handle_t *handle, dbase_llist_t *dbase,\n\t\t
      \   const record_key_t *key, const record_t *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dbase_llist_cache_locate
      Src: /src/selinux/libsemanage/src/database_llist.c:188,1
    - Dst: dbase_llist_cache_prepend
      Src: /src/selinux/libsemanage/src/database_llist.c:192,1
    - Dst: dbase_llist_t*::rtable::free
      Src: /src/selinux/libsemanage/src/database_llist.c:195,1
    - Dst: dbase_llist_t*::rtable::clone
      Src: /src/selinux/libsemanage/src/database_llist.c:196,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_llist.c:204,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - handle
    - dbase
    - key
    - data
    argTypes:
    - semanage_handle_t*
    - dbase_llist_t*
    - record_key_t*
    - record_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 206
    functionName: dbase_llist_modify
    functionSourceFile: /src/selinux/libsemanage/src/database_llist.c
    functionUses: 0
    functionsReached:
    - ERR
    - dbase_llist_t*::rtable::free
    - dbase_llist_cache_prepend
    - dbase_llist_t*::rtable::clone
    - dbase_llist_cache_locate
    linkageType: ''
    returnType: int
    signature: "int dbase_llist_modify(semanage_handle_t *handle, dbase_llist_t *dbase,\n\t\t
      \      const record_key_t *key, const record_t *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - handle
    - dbase
    - response
    argTypes:
    - semanage_handle_t*
    - dbase_llist_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 213
    functionName: dbase_llist_count
    functionSourceFile: /src/selinux/libsemanage/src/database_llist.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int dbase_llist_count(semanage_handle_t *handle __attribute__((unused)),\n\t\t
      \     dbase_llist_t *dbase, unsigned int *response)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dbase_llist_cache_locate
      Src: /src/selinux/libsemanage/src/database_llist.c:221,1
    - Dst: dbase_llist_t*::rtable::clone
      Src: /src/selinux/libsemanage/src/database_llist.c:225,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_llist.c:231,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - handle
    - dbase
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - dbase_llist_t*
    - record_key_t*
    - record_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 233
    functionName: dbase_llist_query
    functionSourceFile: /src/selinux/libsemanage/src/database_llist.c
    functionUses: 0
    functionsReached:
    - dbase_llist_cache_locate
    - ERR
    - dbase_llist_t*::rtable::clone
    linkageType: ''
    returnType: int
    signature: "int dbase_llist_query(semanage_handle_t *handle, dbase_llist_t *dbase,\n\t\t
      \     const record_key_t *key, record_t **response)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fn
      Src: /src/selinux/libsemanage/src/database_llist.c:243,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_llist.c:254,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - handle
    - dbase
    - arg
    argTypes:
    - semanage_handle_t*
    - dbase_llist_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 256
    functionName: dbase_llist_iterate
    functionSourceFile: /src/selinux/libsemanage/src/database_llist.c
    functionUses: 0
    functionsReached:
    - ERR
    - fn
    linkageType: ''
    returnType: int
    signature: "int dbase_llist_iterate(semanage_handle_t *handle, dbase_llist_t *dbase,\n\t\t\tint
      (*fn)(const record_t *record, void *fn_arg),\n\t\t\tvoid *arg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dbase_llist_t*::rtable::compare
      Src: /src/selinux/libsemanage/src/database_llist.c:264,1
    - Dst: dbase_llist_t*::rtable::free
      Src: /src/selinux/libsemanage/src/database_llist.c:275,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/database_llist.c:277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - handle
    - dbase
    - key
    argTypes:
    - semanage_handle_t*
    - dbase_llist_t*
    - record_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 285
    functionName: dbase_llist_del
    functionSourceFile: /src/selinux/libsemanage/src/database_llist.c
    functionUses: 0
    functionsReached:
    - dbase_llist_t*::rtable::free
    - free
    - dbase_llist_t*::rtable::compare
    linkageType: ''
    returnType: int
    signature: "int dbase_llist_del(semanage_handle_t *handle __attribute__((unused)),\n\t\t
      \   dbase_llist_t *dbase, const record_key_t *key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dbase_llist_set_serial
      Src: /src/selinux/libsemanage/src/database_llist.c:291,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_llist.c:292,1
    - Dst: dbase_llist_t*::rtable::free
      Src: /src/selinux/libsemanage/src/database_llist.c:301,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/database_llist.c:302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - handle
    - dbase
    argTypes:
    - semanage_handle_t*
    - dbase_llist_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 311
    functionName: dbase_llist_clear
    functionSourceFile: /src/selinux/libsemanage/src/database_llist.c
    functionUses: 0
    functionsReached:
    - ERR
    - dbase_llist_t*::rtable::free
    - free
    - dbase_llist_set_serial
    linkageType: ''
    returnType: int
    signature: int dbase_llist_clear(semanage_handle_t *handle, dbase_llist_t *dbase)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libsemanage/src/database_llist.c:324,1
    - Dst: dbase_llist_t*::rtable::clone
      Src: /src/selinux/libsemanage/src/database_llist.c:330,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_llist.c:342,1
    - Dst: dbase_llist_t*::rtable::free
      Src: /src/selinux/libsemanage/src/database_llist.c:347,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/database_llist.c:348,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_llist.c:350,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - handle
    - dbase
    - records
    - count
    argTypes:
    - semanage_handle_t*
    - dbase_llist_t*
    - record_t***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 352
    functionName: dbase_llist_list
    functionSourceFile: /src/selinux/libsemanage/src/database_llist.c
    functionUses: 1
    functionsReached:
    - ERR
    - dbase_llist_t*::rtable::free
    - dbase_llist_t*::rtable::clone
    - free
    - calloc
    linkageType: ''
    returnType: int
    signature: "int dbase_llist_list(semanage_handle_t *handle, dbase_llist_t *dbase,\n\t\t
      \    record_t ***records, unsigned int *count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_extra_get_name
      Src: /src/selinux/libsemanage/src/users_extra_file.c:26,1
    - Dst: semanage_user_extra_get_prefix
      Src: /src/selinux/libsemanage/src/users_extra_file.c:27,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/users_extra_file.c:29,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/users_extra_file.c:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - handle
    - user_extra
    - str
    argTypes:
    - semanage_handle_t*
    - semanage_user_extra_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 40
    functionName: user_extra_print
    functionSourceFile: /src/selinux/libsemanage/src/users_extra_file.c
    functionUses: 0
    functionsReached:
    - semanage_user_extra_get_name
    - ERR
    - fprintf
    - semanage_user_extra_get_prefix
    linkageType: ''
    returnType: int
    signature: "int user_extra_print(semanage_handle_t *handle,\n\t\t\t    const semanage_user_extra_t
      *user_extra, FILE *str)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: parse_skip_space
      Src: /src/selinux/libsemanage/src/users_extra_file.c:47,1
    - Dst: parse_assert_str
      Src: /src/selinux/libsemanage/src/users_extra_file.c:53,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/users_extra_file.c:55,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/users_extra_file.c:59,1
    - Dst: semanage_user_extra_set_name
      Src: /src/selinux/libsemanage/src/users_extra_file.c:61,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/users_extra_file.c:63,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/users_extra_file.c:67,1
    - Dst: parse_assert_str
      Src: /src/selinux/libsemanage/src/users_extra_file.c:69,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/users_extra_file.c:71,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/users_extra_file.c:75,1
    - Dst: semanage_user_extra_set_prefix
      Src: /src/selinux/libsemanage/src/users_extra_file.c:77,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/users_extra_file.c:79,1
    - Dst: parse_skip_space
      Src: /src/selinux/libsemanage/src/users_extra_file.c:83,1
    - Dst: parse_assert_ch
      Src: /src/selinux/libsemanage/src/users_extra_file.c:85,1
    - Dst: parse_dispose_line
      Src: /src/selinux/libsemanage/src/users_extra_file.c:91,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/users_extra_file.c:95,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/users_extra_file.c:96,1
    - Dst: parse_dispose_line
      Src: /src/selinux/libsemanage/src/users_extra_file.c:97,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 55
    argCount: 3
    argNames:
    - handle
    - info
    - user_extra
    argTypes:
    - semanage_handle_t*
    - parse_info_t*
    - semanage_user_extra_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 99
    functionName: user_extra_parse
    functionSourceFile: /src/selinux/libsemanage/src/users_extra_file.c
    functionUses: 0
    functionsReached:
    - parse_assert_ch
    - ERR
    - parse_assert_str
    - semanage_user_extra_set_prefix
    - parse_assert_space
    - parse_skip_space
    - parse_dispose_line
    - free
    - parse_fetch_string
    - semanage_user_extra_set_name
    linkageType: ''
    returnType: int
    signature: "int user_extra_parse(semanage_handle_t *handle, parse_info_t *info,\n\t\t\t
      \   semanage_user_extra_t *user_extra)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_file_init
      Src: /src/selinux/libsemanage/src/users_extra_file.c:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - handle
    - path_ro
    - path_rw
    - dconfig
    argTypes:
    - semanage_handle_t*
    - char*
    - char*
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 107
    functionDepth: 3
    functionLinenumber: 107
    functionLinenumberEnd: 117
    functionName: user_extra_file_dbase_init
    functionSourceFile: /src/selinux/libsemanage/src/users_extra_file.c
    functionUses: 0
    functionsReached:
    - dbase_file_init
    linkageType: ''
    returnType: int
    signature: "int user_extra_file_dbase_init(semanage_handle_t *handle, const char
      *path_ro,\n\t\t\t       const char *path_rw, dbase_config_t *dconfig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbase_file_release
      Src: /src/selinux/libsemanage/src/users_extra_file.c:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dconfig
    argTypes:
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: user_extra_file_dbase_release
    functionSourceFile: /src/selinux/libsemanage/src/users_extra_file.c
    functionUses: 0
    functionsReached:
    - dbase_file_release
    linkageType: ''
    returnType: void
    signature: void user_extra_file_dbase_release(dbase_config_t *dconfig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_policydb_init
      Src: /src/selinux/libsemanage/src/ports_policydb.c:50,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/ports_policydb.c:52,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/ports_policydb.c:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - handle
    - dconfig
    argTypes:
    - semanage_handle_t*
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 61
    functionName: port_policydb_dbase_init
    functionSourceFile: /src/selinux/libsemanage/src/ports_policydb.c
    functionUses: 0
    functionsReached:
    - dbase_policydb_init
    - semanage_path
    linkageType: ''
    returnType: int
    signature: int port_policydb_dbase_init(semanage_handle_t *handle, dbase_config_t
      *dconfig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbase_policydb_release
      Src: /src/selinux/libsemanage/src/ports_policydb.c:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dconfig
    argTypes:
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: port_policydb_dbase_release
    functionSourceFile: /src/selinux/libsemanage/src/ports_policydb.c
    functionUses: 0
    functionsReached:
    - dbase_policydb_release
    linkageType: ''
    returnType: void
    signature: void port_policydb_dbase_release(dbase_config_t *dconfig)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: ARRAY_SIZE
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: semanage_check_init
      Src: /src/selinux/libsemanage/src/direct_api.c:130,1
    - Dst: semanage_access_check
      Src: /src/selinux/libsemanage/src/direct_api.c:133,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 141
    functionName: semanage_direct_is_managed
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 1
    functionsReached:
    - semanage_access_check
    - ERR
    - semanage_check_init
    linkageType: ''
    returnType: int
    signature: int semanage_direct_is_managed(semanage_handle_t *sh)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: semanage_check_init
      Src: /src/selinux/libsemanage/src/direct_api.c:150,1
    - Dst: semanage_create_store
      Src: /src/selinux/libsemanage/src/direct_api.c:154,1
    - Dst: user_base_file_dbase_init
      Src: /src/selinux/libsemanage/src/direct_api.c:164,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:166,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:167,1
    - Dst: semanage_user_base_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:168,1
    - Dst: user_extra_file_dbase_init
      Src: /src/selinux/libsemanage/src/direct_api.c:171,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:173,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:174,1
    - Dst: semanage_user_extra_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:175,1
    - Dst: user_join_dbase_init
      Src: /src/selinux/libsemanage/src/direct_api.c:178,1
    - Dst: semanage_user_base_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:178,1
    - Dst: semanage_user_extra_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:179,1
    - Dst: semanage_user_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:180,1
    - Dst: port_file_dbase_init
      Src: /src/selinux/libsemanage/src/direct_api.c:183,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:184,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:185,1
    - Dst: semanage_port_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:186,1
    - Dst: iface_file_dbase_init
      Src: /src/selinux/libsemanage/src/direct_api.c:189,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:191,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:192,1
    - Dst: semanage_iface_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:193,1
    - Dst: bool_file_dbase_init
      Src: /src/selinux/libsemanage/src/direct_api.c:196,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:197,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:198,1
    - Dst: semanage_bool_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:199,1
    - Dst: fcontext_file_dbase_init
      Src: /src/selinux/libsemanage/src/direct_api.c:202,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:203,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:204,1
    - Dst: semanage_fcontext_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:205,1
    - Dst: fcontext_file_dbase_init
      Src: /src/selinux/libsemanage/src/direct_api.c:208,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:210,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:211,1
    - Dst: semanage_fcontext_dbase_homedirs
      Src: /src/selinux/libsemanage/src/direct_api.c:212,1
    - Dst: seuser_file_dbase_init
      Src: /src/selinux/libsemanage/src/direct_api.c:215,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:216,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:217,1
    - Dst: semanage_seuser_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:218,1
    - Dst: node_file_dbase_init
      Src: /src/selinux/libsemanage/src/direct_api.c:221,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:222,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:223,1
    - Dst: semanage_node_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:224,1
    - Dst: ibpkey_file_dbase_init
      Src: /src/selinux/libsemanage/src/direct_api.c:227,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:228,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:229,1
    - Dst: semanage_ibpkey_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:230,1
    - Dst: ibendport_file_dbase_init
      Src: /src/selinux/libsemanage/src/direct_api.c:233,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:235,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:236,1
    - Dst: semanage_ibendport_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:237,1
    - Dst: user_base_policydb_dbase_init
      Src: /src/selinux/libsemanage/src/direct_api.c:241,1
    - Dst: semanage_user_base_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:242,1
    - Dst: user_extra_file_dbase_init
      Src: /src/selinux/libsemanage/src/direct_api.c:245,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:246,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:247,1
    - Dst: semanage_user_extra_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:248,1
    - Dst: user_join_dbase_init
      Src: /src/selinux/libsemanage/src/direct_api.c:251,1
    - Dst: semanage_user_base_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:251,1
    - Dst: semanage_user_extra_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:252,1
    - Dst: semanage_user_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:253,1
    - Dst: port_policydb_dbase_init
      Src: /src/selinux/libsemanage/src/direct_api.c:256,1
    - Dst: semanage_port_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:256,1
    - Dst: ibpkey_policydb_dbase_init
      Src: /src/selinux/libsemanage/src/direct_api.c:259,1
    - Dst: semanage_ibpkey_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:259,1
    - Dst: ibendport_policydb_dbase_init
      Src: /src/selinux/libsemanage/src/direct_api.c:263,1
    - Dst: semanage_ibendport_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:264,1
    - Dst: iface_policydb_dbase_init
      Src: /src/selinux/libsemanage/src/direct_api.c:267,1
    - Dst: semanage_iface_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:267,1
    - Dst: bool_policydb_dbase_init
      Src: /src/selinux/libsemanage/src/direct_api.c:270,1
    - Dst: semanage_bool_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:270,1
    - Dst: fcontext_file_dbase_init
      Src: /src/selinux/libsemanage/src/direct_api.c:273,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:274,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:275,1
    - Dst: semanage_fcontext_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:276,1
    - Dst: seuser_file_dbase_init
      Src: /src/selinux/libsemanage/src/direct_api.c:279,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:280,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:281,1
    - Dst: semanage_seuser_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:282,1
    - Dst: node_policydb_dbase_init
      Src: /src/selinux/libsemanage/src/direct_api.c:285,1
    - Dst: semanage_node_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:285,1
    - Dst: bool_activedb_dbase_init
      Src: /src/selinux/libsemanage/src/direct_api.c:289,1
    - Dst: semanage_bool_dbase_active
      Src: /src/selinux/libsemanage/src/direct_api.c:289,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:293,1
    - Dst: stat
      Src: /src/selinux/libsemanage/src/direct_api.c:295,1
    - Dst: sepol_set_disable_dontaudit
      Src: /src/selinux/libsemanage/src/direct_api.c:296,1
    - Dst: sepol_set_disable_dontaudit
      Src: /src/selinux/libsemanage/src/direct_api.c:299,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:301,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:308,1
    - Dst: semanage_direct_disconnect
      Src: /src/selinux/libsemanage/src/direct_api.c:309,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 99
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 145
    functionDepth: 4
    functionLinenumber: 145
    functionLinenumberEnd: 311
    functionName: semanage_direct_connect
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 1
    functionsReached:
    - stat
    - semanage_bool_dbase_active
    - semanage_create_store
    - ibendport_policydb_dbase_init
    - semanage_path
    - fcontext_file_dbase_init
    - semanage_direct_disconnect
    - semanage_bool_dbase_local
    - iface_file_dbase_init
    - user_join_dbase_init
    - semanage_fcontext_dbase_homedirs
    - semanage_port_dbase_policy
    - semanage_user_base_dbase_policy
    - port_policydb_dbase_init
    - semanage_ibpkey_dbase_policy
    - ibpkey_file_dbase_init
    - semanage_iface_dbase_policy
    - port_file_dbase_init
    - bool_file_dbase_init
    - user_base_file_dbase_init
    - bool_activedb_dbase_init
    - semanage_bool_dbase_policy
    - semanage_seuser_dbase_local
    - semanage_fcontext_dbase_local
    - ERR
    - semanage_user_dbase_policy
    - semanage_node_dbase_local
    - semanage_user_base_dbase_local
    - semanage_port_dbase_local
    - semanage_user_dbase_local
    - ibendport_file_dbase_init
    - seuser_file_dbase_init
    - user_extra_file_dbase_init
    - semanage_user_extra_dbase_policy
    - semanage_ibendport_dbase_policy
    - semanage_iface_dbase_local
    - semanage_ibendport_dbase_local
    - semanage_ibpkey_dbase_local
    - ibpkey_policydb_dbase_init
    - semanage_fcontext_dbase_policy
    - sepol_set_disable_dontaudit
    - node_policydb_dbase_init
    - user_base_policydb_dbase_init
    - semanage_node_dbase_policy
    - bool_policydb_dbase_init
    - semanage_user_extra_dbase_local
    - iface_policydb_dbase_init
    - semanage_seuser_dbase_policy
    - node_file_dbase_init
    - semanage_check_init
    linkageType: ''
    returnType: int
    signature: int semanage_direct_connect(semanage_handle_t *sh)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 317
    functionName: semanage_direct_destroy
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void semanage_direct_destroy(semanage_handle_t *sh\n\t\t\t\t    __attribute__((unused)))"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: semanage_remove_directory
      Src: /src/selinux/libsemanage/src/direct_api.c:325,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:326,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:328,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:329,1
    - Dst: semanage_remove_directory
      Src: /src/selinux/libsemanage/src/direct_api.c:335,1
    - Dst: semanage_final_path
      Src: /src/selinux/libsemanage/src/direct_api.c:335,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:338,1
    - Dst: semanage_final_path
      Src: /src/selinux/libsemanage/src/direct_api.c:339,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 346
    functionName: semanage_remove_tmps
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_final_path
    - semanage_remove_directory
    - semanage_path
    linkageType: ''
    returnType: int
    signature: int semanage_remove_tmps(semanage_handle_t *sh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semanage_remove_tmps
      Src: /src/selinux/libsemanage/src/direct_api.c:354,1
    - Dst: semanage_release_trans_lock
      Src: /src/selinux/libsemanage/src/direct_api.c:355,1
    - Dst: user_base_file_dbase_release
      Src: /src/selinux/libsemanage/src/direct_api.c:359,1
    - Dst: semanage_user_base_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:359,1
    - Dst: user_extra_file_dbase_release
      Src: /src/selinux/libsemanage/src/direct_api.c:360,1
    - Dst: semanage_user_extra_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:360,1
    - Dst: user_join_dbase_release
      Src: /src/selinux/libsemanage/src/direct_api.c:361,1
    - Dst: semanage_user_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:361,1
    - Dst: port_file_dbase_release
      Src: /src/selinux/libsemanage/src/direct_api.c:362,1
    - Dst: semanage_port_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:362,1
    - Dst: ibpkey_file_dbase_release
      Src: /src/selinux/libsemanage/src/direct_api.c:363,1
    - Dst: semanage_ibpkey_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:363,1
    - Dst: ibendport_file_dbase_release
      Src: /src/selinux/libsemanage/src/direct_api.c:364,1
    - Dst: semanage_ibendport_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:364,1
    - Dst: iface_file_dbase_release
      Src: /src/selinux/libsemanage/src/direct_api.c:365,1
    - Dst: semanage_iface_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:365,1
    - Dst: bool_file_dbase_release
      Src: /src/selinux/libsemanage/src/direct_api.c:366,1
    - Dst: semanage_bool_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:366,1
    - Dst: fcontext_file_dbase_release
      Src: /src/selinux/libsemanage/src/direct_api.c:367,1
    - Dst: semanage_fcontext_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:367,1
    - Dst: fcontext_file_dbase_release
      Src: /src/selinux/libsemanage/src/direct_api.c:368,1
    - Dst: semanage_fcontext_dbase_homedirs
      Src: /src/selinux/libsemanage/src/direct_api.c:368,1
    - Dst: seuser_file_dbase_release
      Src: /src/selinux/libsemanage/src/direct_api.c:369,1
    - Dst: semanage_seuser_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:369,1
    - Dst: node_file_dbase_release
      Src: /src/selinux/libsemanage/src/direct_api.c:370,1
    - Dst: semanage_node_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:370,1
    - Dst: user_base_policydb_dbase_release
      Src: /src/selinux/libsemanage/src/direct_api.c:373,1
    - Dst: semanage_user_base_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:373,1
    - Dst: user_extra_file_dbase_release
      Src: /src/selinux/libsemanage/src/direct_api.c:374,1
    - Dst: semanage_user_extra_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:374,1
    - Dst: user_join_dbase_release
      Src: /src/selinux/libsemanage/src/direct_api.c:375,1
    - Dst: semanage_user_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:375,1
    - Dst: port_policydb_dbase_release
      Src: /src/selinux/libsemanage/src/direct_api.c:376,1
    - Dst: semanage_port_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:376,1
    - Dst: ibpkey_policydb_dbase_release
      Src: /src/selinux/libsemanage/src/direct_api.c:377,1
    - Dst: semanage_ibpkey_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:377,1
    - Dst: ibendport_policydb_dbase_release
      Src: /src/selinux/libsemanage/src/direct_api.c:378,1
    - Dst: semanage_ibendport_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:378,1
    - Dst: iface_policydb_dbase_release
      Src: /src/selinux/libsemanage/src/direct_api.c:379,1
    - Dst: semanage_iface_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:379,1
    - Dst: bool_policydb_dbase_release
      Src: /src/selinux/libsemanage/src/direct_api.c:380,1
    - Dst: semanage_bool_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:380,1
    - Dst: fcontext_file_dbase_release
      Src: /src/selinux/libsemanage/src/direct_api.c:381,1
    - Dst: semanage_fcontext_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:381,1
    - Dst: seuser_file_dbase_release
      Src: /src/selinux/libsemanage/src/direct_api.c:382,1
    - Dst: semanage_seuser_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:382,1
    - Dst: node_policydb_dbase_release
      Src: /src/selinux/libsemanage/src/direct_api.c:383,1
    - Dst: semanage_node_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:383,1
    - Dst: bool_activedb_dbase_release
      Src: /src/selinux/libsemanage/src/direct_api.c:386,1
    - Dst: semanage_bool_dbase_active
      Src: /src/selinux/libsemanage/src/direct_api.c:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 348
    functionDepth: 3
    functionLinenumber: 348
    functionLinenumberEnd: 389
    functionName: semanage_direct_disconnect
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 1
    functionsReached:
    - semanage_release_trans_lock
    - iface_policydb_dbase_release
    - bool_activedb_dbase_release
    - semanage_bool_dbase_active
    - node_policydb_dbase_release
    - semanage_bool_dbase_local
    - semanage_port_dbase_policy
    - semanage_fcontext_dbase_homedirs
    - node_file_dbase_release
    - port_file_dbase_release
    - semanage_user_base_dbase_policy
    - semanage_ibpkey_dbase_policy
    - semanage_iface_dbase_policy
    - user_base_file_dbase_release
    - port_policydb_dbase_release
    - user_extra_file_dbase_release
    - user_join_dbase_release
    - semanage_bool_dbase_policy
    - semanage_seuser_dbase_local
    - semanage_fcontext_dbase_local
    - semanage_user_dbase_policy
    - bool_policydb_dbase_release
    - user_base_policydb_dbase_release
    - semanage_node_dbase_local
    - iface_file_dbase_release
    - semanage_user_base_dbase_local
    - semanage_port_dbase_local
    - semanage_user_dbase_local
    - semanage_user_extra_dbase_policy
    - semanage_ibendport_dbase_policy
    - ibendport_policydb_dbase_release
    - semanage_iface_dbase_local
    - semanage_ibendport_dbase_local
    - semanage_ibpkey_dbase_local
    - ibpkey_policydb_dbase_release
    - semanage_fcontext_dbase_policy
    - bool_file_dbase_release
    - semanage_node_dbase_policy
    - seuser_file_dbase_release
    - semanage_user_extra_dbase_local
    - semanage_seuser_dbase_policy
    - ibpkey_file_dbase_release
    - fcontext_file_dbase_release
    - semanage_remove_tmps
    - ibendport_file_dbase_release
    linkageType: ''
    returnType: int
    signature: int semanage_direct_disconnect(semanage_handle_t *sh)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: semanage_get_trans_lock
      Src: /src/selinux/libsemanage/src/direct_api.c:393,1
    - Dst: semanage_make_sandbox
      Src: /src/selinux/libsemanage/src/direct_api.c:396,1
    - Dst: semanage_make_final
      Src: /src/selinux/libsemanage/src/direct_api.c:399,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 391
    functionDepth: 3
    functionLinenumber: 391
    functionLinenumberEnd: 403
    functionName: semanage_direct_begintrans
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - semanage_make_final
    - semanage_get_trans_lock
    - semanage_make_sandbox
    linkageType: ''
    returnType: int
    signature: int semanage_direct_begintrans(semanage_handle_t *sh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sepol_policy_file_create
      Src: /src/selinux/libsemanage/src/direct_api.c:422,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:423,1
    - Dst: sepol_policy_file_set_mem
      Src: /src/selinux/libsemanage/src/direct_api.c:426,1
    - Dst: sepol_policy_file_set_handle
      Src: /src/selinux/libsemanage/src/direct_api.c:427,1
    - Dst: sepol_module_package_info
      Src: /src/selinux/libsemanage/src/direct_api.c:429,1
    - Dst: sepol_policy_file_free
      Src: /src/selinux/libsemanage/src/direct_api.c:430,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - sh
    - module_data
    - data_len
    - module_name
    - version
    argTypes:
    - semanage_handle_t*
    - char*
    - size_t
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 414
    functionDepth: 4
    functionLinenumber: 414
    functionLinenumberEnd: 433
    functionName: parse_module_headers
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - sepol_policy_file_create
    - ERR
    - sepol_policy_file_free
    - sepol_policy_file_set_handle
    - sepol_module_package_info
    - sepol_policy_file_set_mem
    linkageType: ''
    returnType: int
    signature: "int parse_module_headers(semanage_handle_t *sh, char *module_data,\n\t\t\t\tsize_t
      data_len, char **module_name,\n\t\t\t\tchar **version)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/selinux/libsemanage/src/direct_api.c:442,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:444,1
    - Dst: write_full
      Src: /src/selinux/libsemanage/src/direct_api.c:447,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:448,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/direct_api.c:449,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/direct_api.c:452,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - sh
    - filename
    - data
    - num_bytes
    argTypes:
    - semanage_handle_t*
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 457
    functionName: write_file
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - close
    - ERR
    - write_full
    - open
    linkageType: ''
    returnType: int
    signature: "int write_file(semanage_handle_t *sh, const char *filename,\n\t\t
      \     const char *data, size_t num_bytes)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_extra_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:467,1
    - Dst: cil_userprefixes_to_string
      Src: /src/selinux/libsemanage/src/direct_api.c:469,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:480,1
    - Dst: write_file
      Src: /src/selinux/libsemanage/src/direct_api.c:486,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:494,1
    - Dst: write_file
      Src: /src/selinux/libsemanage/src/direct_api.c:499,1
    - Dst: dbase_config_t*::dtable::drop_cache
      Src: /src/selinux/libsemanage/src/direct_api.c:503,1
    - Dst: dbase_config_t*::dtable::clear
      Src: /src/selinux/libsemanage/src/direct_api.c:506,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:510,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - sh
    - cildb
    argTypes:
    - semanage_handle_t*
    - cil_db_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 513
    functionName: semanage_direct_update_user_extra
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - dbase_config_t*::dtable::drop_cache
    - cil_userprefixes_to_string
    - semanage_path
    - write_file
    - dbase_config_t*::dtable::clear
    - free
    - semanage_user_extra_dbase_policy
    linkageType: ''
    returnType: int
    signature: "int semanage_direct_update_user_extra(semanage_handle_t *sh,\n\t\t\t\t\t
      \    cil_db_t *cildb)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: semanage_seuser_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:522,1
    - Dst: cil_selinuxusers_to_string
      Src: /src/selinux/libsemanage/src/direct_api.c:524,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:536,1
    - Dst: write_file
      Src: /src/selinux/libsemanage/src/direct_api.c:541,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:549,1
    - Dst: write_file
      Src: /src/selinux/libsemanage/src/direct_api.c:554,1
    - Dst: dbase_config_t*::dtable::drop_cache
      Src: /src/selinux/libsemanage/src/direct_api.c:558,1
    - Dst: dbase_config_t*::dtable::clear
      Src: /src/selinux/libsemanage/src/direct_api.c:560,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:564,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 2
    argNames:
    - sh
    - cildb
    argTypes:
    - semanage_handle_t*
    - cil_db_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 567
    functionName: semanage_direct_update_seuser
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - dbase_config_t*::dtable::drop_cache
    - semanage_path
    - write_file
    - dbase_config_t*::dtable::clear
    - cil_selinuxusers_to_string
    - free
    - semanage_seuser_dbase_policy
    linkageType: ''
    returnType: int
    signature: int semanage_direct_update_seuser(semanage_handle_t *sh, cil_db_t *cildb)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_mul_overflow
      Src: /src/selinux/libsemanage/src/direct_api.c:578,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:579,1
    - Dst: realloc
      Src: /src/selinux/libsemanage/src/direct_api.c:582,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:584,1
    - Dst: read
      Src: /src/selinux/libsemanage/src/direct_api.c:591,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:595,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - sh
    - fd
    - buf
    - len
    - cap
    argTypes:
    - semanage_handle_t*
    - int
    - char**
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 602
    functionName: append_read
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - ERR
    - __builtin_mul_overflow
    - read
    - realloc
    linkageType: ''
    returnType: int
    signature: "int append_read(semanage_handle_t *sh, int fd, char **buf, size_t
      *len,\n\t\t       size_t *cap)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: poll
      Src: /src/selinux/libsemanage/src/direct_api.c:637,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:640,1
    - Dst: write
      Src: /src/selinux/libsemanage/src/direct_api.c:647,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:650,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/direct_api.c:653,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/direct_api.c:659,1
    - Dst: append_read
      Src: /src/selinux/libsemanage/src/direct_api.c:667,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/direct_api.c:672,1
    - Dst: append_read
      Src: /src/selinux/libsemanage/src/direct_api.c:679,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/direct_api.c:684,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/direct_api.c:691,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/direct_api.c:693,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/direct_api.c:695,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 68
    argCount: 10
    argNames:
    - sh
    - in_fd
    - out_fd
    - err_fd
    - in_data
    - in_len
    - out_data
    - out_len
    - err_data
    - err_len
    argTypes:
    - semanage_handle_t*
    - int
    - int
    - int
    - char*
    - size_t
    - char**
    - size_t*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 698
    functionName: pump_pipes
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - ERR
    - close
    - poll
    - write
    - append_read
    linkageType: ''
    returnType: int
    signature: "int pump_pipes(semanage_handle_t *sh, int in_fd, int out_fd, int err_fd,\n\t\t
      \     const char *in_data, size_t in_len, char **out_data,\n\t\t      size_t
      *out_len, char **err_data, size_t *err_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - handle
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 726
    functionName: ERR_CHILD_STDERR
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR_CHILD_STDERR(handle, ...)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/selinux/libsemanage/src/direct_api.c:745,1
    - Dst: sigaction
      Src: /src/selinux/libsemanage/src/direct_api.c:753,1
    - Dst: pipe2
      Src: /src/selinux/libsemanage/src/direct_api.c:755,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:757,1
    - Dst: pipe2
      Src: /src/selinux/libsemanage/src/direct_api.c:760,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:762,1
    - Dst: pipe2
      Src: /src/selinux/libsemanage/src/direct_api.c:765,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:767,1
    - Dst: fork
      Src: /src/selinux/libsemanage/src/direct_api.c:771,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:773,1
    - Dst: dup2
      Src: /src/selinux/libsemanage/src/direct_api.c:777,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:779,1
    - Dst: dup2
      Src: /src/selinux/libsemanage/src/direct_api.c:782,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:784,1
    - Dst: dup2
      Src: /src/selinux/libsemanage/src/direct_api.c:787,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:789,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/direct_api.c:793,1
    - Dst: ERR_CHILD_STDERR
      Src: /src/selinux/libsemanage/src/direct_api.c:795,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/direct_api.c:798,1
    - Dst: ERR_CHILD_STDERR
      Src: /src/selinux/libsemanage/src/direct_api.c:800,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/direct_api.c:803,1
    - Dst: ERR_CHILD_STDERR
      Src: /src/selinux/libsemanage/src/direct_api.c:805,1
    - Dst: execl
      Src: /src/selinux/libsemanage/src/direct_api.c:808,1
    - Dst: ERR_CHILD_STDERR
      Src: /src/selinux/libsemanage/src/direct_api.c:809,1
    - Dst: _exit
      Src: /src/selinux/libsemanage/src/direct_api.c:812,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/direct_api.c:816,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:819,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/direct_api.c:823,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:826,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/direct_api.c:830,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:833,1
    - Dst: pump_pipes
      Src: /src/selinux/libsemanage/src/direct_api.c:837,1
    - Dst: waitpid
      Src: /src/selinux/libsemanage/src/direct_api.c:849,1
    - Dst: WIFEXITED
      Src: /src/selinux/libsemanage/src/direct_api.c:849,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:850,1
    - Dst: WEXITSTATUS
      Src: /src/selinux/libsemanage/src/direct_api.c:854,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:855,1
    - Dst: WEXITSTATUS
      Src: /src/selinux/libsemanage/src/direct_api.c:856,1
    - Dst: sigaction
      Src: /src/selinux/libsemanage/src/direct_api.c:870,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/direct_api.c:883,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/direct_api.c:886,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/direct_api.c:889,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/direct_api.c:892,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/direct_api.c:895,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/direct_api.c:898,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 147
    argCount: 8
    argNames:
    - sh
    - path
    - in_data
    - in_data_len
    - out_data
    - out_data_len
    - err_data
    - err_data_len
    argTypes:
    - semanage_handle_t*
    - char*
    - char*
    - size_t
    - char**
    - size_t*
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 727
    functionDepth: 2
    functionLinenumber: 727
    functionLinenumberEnd: 902
    functionName: semanage_pipe_data
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - ERR
    - close
    - fork
    - dup2
    - sigaction
    - sigemptyset
    - WIFEXITED
    - waitpid
    - pump_pipes
    - pipe2
    - WEXITSTATUS
    - ERR_CHILD_STDERR
    - execl
    - _exit
    linkageType: ''
    returnType: int
    signature: "int semanage_pipe_data(semanage_handle_t *sh, const char *path,\n\t\t\t
      \     const char *in_data, size_t in_data_len,\n\t\t\t      char **out_data,
      size_t *out_data_len,\n\t\t\t      char **err_data, size_t *err_data_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: semanage_module_get_path
      Src: /src/selinux/libsemanage/src/direct_api.c:912,1
    - Dst: fopen
      Src: /src/selinux/libsemanage/src/direct_api.c:918,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:920,1
    - Dst: fputs
      Src: /src/selinux/libsemanage/src/direct_api.c:925,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:926,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/direct_api.c:931,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:932,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/direct_api.c:944,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - sh
    - lang_ext
    - modinfo
    argTypes:
    - semanage_handle_t*
    - char*
    - semanage_module_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 947
    functionName: semanage_direct_write_langext
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - ERR
    - fclose
    - semanage_module_get_path
    - fopen
    - fputs
    linkageType: ''
    returnType: int
    signature: "int semanage_direct_write_langext(semanage_handle_t *sh,\n\t\t\t\t\t
      const char *lang_ext,\n\t\t\t\t\t const semanage_module_info_t *modinfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sha256Update
      Src: /src/selinux/libsemanage/src/direct_api.c:958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - context
    - s
    argTypes:
    - Sha256Context*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 949
    functionDepth: 1
    functionLinenumber: 949
    functionLinenumberEnd: 959
    functionName: update_checksum_with_len
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - Sha256Update
    linkageType: ''
    returnType: void
    signature: void update_checksum_with_len(Sha256Context *context, size_t s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UINT8_C
      Src: /src/selinux/libsemanage/src/direct_api.c:965,1
    - Dst: UINT8_C
      Src: /src/selinux/libsemanage/src/direct_api.c:965,1
    - Dst: Sha256Update
      Src: /src/selinux/libsemanage/src/direct_api.c:966,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - context
    - b
    argTypes:
    - Sha256Context*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 967
    functionName: update_checksum_with_bool
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - UINT8_C
    - Sha256Update
    linkageType: ''
    returnType: void
    signature: void update_checksum_with_bool(Sha256Context *context, bool b)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/selinux/libsemanage/src/direct_api.c:985,1
    - Dst: semanage_get_hll_compiler_path
      Src: /src/selinux/libsemanage/src/direct_api.c:989,1
    - Dst: semanage_module_get_path
      Src: /src/selinux/libsemanage/src/direct_api.c:995,1
    - Dst: semanage_module_get_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1001,1
    - Dst: map_compressed_file
      Src: /src/selinux/libsemanage/src/direct_api.c:1007,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1009,1
    - Dst: semanage_pipe_data
      Src: /src/selinux/libsemanage/src/direct_api.c:1013,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1024,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1031,1
    - Dst: update_checksum_with_len
      Src: /src/selinux/libsemanage/src/direct_api.c:1042,1
    - Dst: Sha256Update
      Src: /src/selinux/libsemanage/src/direct_api.c:1043,1
    - Dst: write_compressed_file
      Src: /src/selinux/libsemanage/src/direct_api.c:1046,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1048,1
    - Dst: unlink
      Src: /src/selinux/libsemanage/src/direct_api.c:1053,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1055,1
    - Dst: semanage_direct_write_langext
      Src: /src/selinux/libsemanage/src/direct_api.c:1059,1
    - Dst: unmap_compressed_file
      Src: /src/selinux/libsemanage/src/direct_api.c:1066,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:1067,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:1068,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:1069,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 74
    argCount: 3
    argNames:
    - sh
    - modinfo
    - context
    argTypes:
    - semanage_handle_t*
    - semanage_module_info_t*
    - Sha256Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 969
    functionDepth: 3
    functionLinenumber: 969
    functionLinenumberEnd: 1072
    functionName: semanage_compile_module
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - ERR
    - write_compressed_file
    - update_checksum_with_len
    - Sha256Update
    - map_compressed_file
    - unlink
    - unmap_compressed_file
    - semanage_direct_write_langext
    - semanage_pipe_data
    - semanage_get_hll_compiler_path
    - semanage_module_get_path
    - free
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: "int semanage_compile_module(semanage_handle_t *sh,\n\t\t\t\t   semanage_module_info_t
      *modinfo,\n\t\t\t\t   Sha256Context *context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/direct_api.c:1079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1080
    functionName: modinfo_cmp
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int modinfo_cmp(const void *a, const void *b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/direct_api.c:1105,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/direct_api.c:1106,1
    - Dst: qsort
      Src: /src/selinux/libsemanage/src/direct_api.c:1109,1
    - Dst: Sha256Initialise
      Src: /src/selinux/libsemanage/src/direct_api.c:1111,1
    - Dst: update_checksum_with_len
      Src: /src/selinux/libsemanage/src/direct_api.c:1112,1
    - Dst: update_checksum_with_bool
      Src: /src/selinux/libsemanage/src/direct_api.c:1113,1
    - Dst: update_checksum_with_bool
      Src: /src/selinux/libsemanage/src/direct_api.c:1114,1
    - Dst: update_checksum_with_len
      Src: /src/selinux/libsemanage/src/direct_api.c:1115,1
    - Dst: update_checksum_with_len
      Src: /src/selinux/libsemanage/src/direct_api.c:1116,1
    - Dst: update_checksum_with_len
      Src: /src/selinux/libsemanage/src/direct_api.c:1119,1
    - Dst: semanage_module_get_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1121,1
    - Dst: semanage_get_ignore_module_cache
      Src: /src/selinux/libsemanage/src/direct_api.c:1127,1
    - Dst: stat
      Src: /src/selinux/libsemanage/src/direct_api.c:1128,1
    - Dst: map_compressed_file
      Src: /src/selinux/libsemanage/src/direct_api.c:1130,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1133,1
    - Dst: update_checksum_with_len
      Src: /src/selinux/libsemanage/src/direct_api.c:1139,1
    - Dst: Sha256Update
      Src: /src/selinux/libsemanage/src/direct_api.c:1141,1
    - Dst: unmap_compressed_file
      Src: /src/selinux/libsemanage/src/direct_api.c:1144,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1147,1
    - Dst: semanage_compile_module
      Src: /src/selinux/libsemanage/src/direct_api.c:1152,1
    - Dst: Sha256Finalise
      Src: /src/selinux/libsemanage/src/direct_api.c:1156,1
    - Dst: semanage_hash_to_checksum_string
      Src: /src/selinux/libsemanage/src/direct_api.c:1158,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 5
    argNames:
    - sh
    - modinfos
    - num_modinfos
    - extra
    - cil_checksum
    argTypes:
    - semanage_handle_t*
    - semanage_module_info_t*
    - int
    - struct extra_checksum_params*
    - char*
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 1104
        line_start: 1104
        source_file: /src/selinux/libsemanage/src/direct_api.c
    - condition: (modinfos)
      pos:
        line_end: 1105
        line_start: 1105
        source_file: /src/selinux/libsemanage/src/direct_api.c
    constantsTouched: []
    func_position:
      end: 1160
      start: 1089
    functionDepth: 4
    functionLinenumber: 1089
    functionLinenumberEnd: 1160
    functionName: semanage_compile_hll_modules
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - ERR
    - stat
    - update_checksum_with_len
    - Sha256Update
    - map_compressed_file
    - unmap_compressed_file
    - Sha256Finalise
    - semanage_get_ignore_module_cache
    - assert
    - semanage_hash_to_checksum_string
    - qsort
    - semanage_module_get_path
    - update_checksum_with_bool
    - Sha256Initialise
    - semanage_compile_module
    linkageType: ''
    returnType: int
    signature: "int semanage_compile_hll_modules(semanage_handle_t *sh,\n\t\t\t     semanage_module_info_t
      *modinfos, int num_modinfos,\n\t\t\t     const struct extra_checksum_params
      *extra,\n\t\t\t     char *cil_checksum)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1166,1
    - Dst: open
      Src: /src/selinux/libsemanage/src/direct_api.c:1171,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1174,1
    - Dst: fstat
      Src: /src/selinux/libsemanage/src/direct_api.c:1181,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1182,1
    - Dst: WARN
      Src: /src/selinux/libsemanage/src/direct_api.c:1189,1
    - Dst: mmap
      Src: /src/selinux/libsemanage/src/direct_api.c:1194,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1196,1
    - Dst: memcmp
      Src: /src/selinux/libsemanage/src/direct_api.c:1201,1
    - Dst: munmap
      Src: /src/selinux/libsemanage/src/direct_api.c:1202,1
    - Dst: close
      Src: /src/selinux/libsemanage/src/direct_api.c:1204,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - sh
    - reference
    argTypes:
    - semanage_handle_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1162
    functionDepth: 1
    functionLinenumber: 1162
    functionLinenumberEnd: 1206
    functionName: semanage_compare_checksum
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - ERR
    - munmap
    - mmap
    - close
    - semanage_path
    - WARN
    - open
    - fstat
    - memcmp
    linkageType: ''
    returnType: int
    signature: "int semanage_compare_checksum(semanage_handle_t *sh,\n\t\t\t\t     const
      char *reference)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1212,1
    - Dst: write_file
      Src: /src/selinux/libsemanage/src/direct_api.c:1214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sh
    - checksum
    argTypes:
    - semanage_handle_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1208
    functionDepth: 1
    functionLinenumber: 1208
    functionLinenumberEnd: 1215
    functionName: semanage_write_modules_checksum
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - write_file
    - semanage_path
    linkageType: ''
    returnType: int
    signature: "int semanage_write_modules_checksum(semanage_handle_t *sh,\n\t\t\t\t\t
      \  const char *checksum)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_copy_file
      Src: /src/selinux/libsemanage/src/direct_api.c:1230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 4
    argNames:
    - sh
    - src
    - dst
    - mode
    argTypes:
    - semanage_handle_t*
    - char*
    - char*
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1227
    functionDepth: 2
    functionLinenumber: 1227
    functionLinenumberEnd: 1232
    functionName: copy_file_if_exists
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - semanage_copy_file
    linkageType: ''
    returnType: int
    signature: "int copy_file_if_exists(semanage_handle_t *sh, const char *src,\n\t\t\t
      \      const char *dst, mode_t mode)"
  - BBCount: 75
    BranchProfiles: []
    Callsites:
    - Dst: umask
      Src: /src/selinux/libsemanage/src/direct_api.c:1250,1
    - Dst: semanage_user_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:1259,1
    - Dst: semanage_user_base_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:1260,1
    - Dst: semanage_user_base_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:1261,1
    - Dst: semanage_user_extra_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:1262,1
    - Dst: semanage_port_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:1263,1
    - Dst: semanage_port_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:1264,1
    - Dst: semanage_ibpkey_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:1265,1
    - Dst: semanage_ibpkey_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:1266,1
    - Dst: semanage_ibendport_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:1267,1
    - Dst: semanage_ibendport_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:1268,1
    - Dst: semanage_bool_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:1269,1
    - Dst: semanage_bool_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:1270,1
    - Dst: semanage_iface_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:1271,1
    - Dst: semanage_iface_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:1272,1
    - Dst: semanage_node_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:1273,1
    - Dst: semanage_node_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:1274,1
    - Dst: semanage_fcontext_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:1275,1
    - Dst: semanage_fcontext_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:1276,1
    - Dst: semanage_seuser_dbase_local
      Src: /src/selinux/libsemanage/src/direct_api.c:1277,1
    - Dst: semanage_seuser_dbase_policy
      Src: /src/selinux/libsemanage/src/direct_api.c:1278,1
    - Dst: dbase_config_t*::dtable::is_modified
      Src: /src/selinux/libsemanage/src/direct_api.c:1281,1
    - Dst: dbase_config_t*::dtable::is_modified
      Src: /src/selinux/libsemanage/src/direct_api.c:1282,1
    - Dst: dbase_config_t*::dtable::is_modified
      Src: /src/selinux/libsemanage/src/direct_api.c:1284,1
    - Dst: dbase_config_t*::dtable::is_modified
      Src: /src/selinux/libsemanage/src/direct_api.c:1285,1
    - Dst: dbase_config_t*::dtable::is_modified
      Src: /src/selinux/libsemanage/src/direct_api.c:1286,1
    - Dst: dbase_config_t*::dtable::is_modified
      Src: /src/selinux/libsemanage/src/direct_api.c:1290,1
    - Dst: dbase_config_t*::dtable::flush
      Src: /src/selinux/libsemanage/src/direct_api.c:1291,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1300,1
    - Dst: stat
      Src: /src/selinux/libsemanage/src/direct_api.c:1301,1
    - Dst: sepol_get_disable_dontaudit
      Src: /src/selinux/libsemanage/src/direct_api.c:1302,1
    - Dst: sepol_get_disable_dontaudit
      Src: /src/selinux/libsemanage/src/direct_api.c:1305,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1307,1
    - Dst: sepol_get_disable_dontaudit
      Src: /src/selinux/libsemanage/src/direct_api.c:1311,1
    - Dst: fopen
      Src: /src/selinux/libsemanage/src/direct_api.c:1313,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/direct_api.c:1315,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1316,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1321,1
    - Dst: remove
      Src: /src/selinux/libsemanage/src/direct_api.c:1326,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1327,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1333,1
    - Dst: stat
      Src: /src/selinux/libsemanage/src/direct_api.c:1334,1
    - Dst: sepol_get_preserve_tunables
      Src: /src/selinux/libsemanage/src/direct_api.c:1335,1
    - Dst: sepol_get_preserve_tunables
      Src: /src/selinux/libsemanage/src/direct_api.c:1338,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1340,1
    - Dst: sepol_get_preserve_tunables
      Src: /src/selinux/libsemanage/src/direct_api.c:1345,1
    - Dst: fopen
      Src: /src/selinux/libsemanage/src/direct_api.c:1347,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/direct_api.c:1349,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1350,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1355,1
    - Dst: remove
      Src: /src/selinux/libsemanage/src/direct_api.c:1360,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1361,1
    - Dst: ARRAY_SIZE
      Src: /src/selinux/libsemanage/src/direct_api.c:1374,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1376,1
    - Dst: stat
      Src: /src/selinux/libsemanage/src/direct_api.c:1377,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1379,1
    - Dst: semanage_get_active_modules
      Src: /src/selinux/libsemanage/src/direct_api.c:1390,1
    - Dst: sepol_get_disable_dontaudit
      Src: /src/selinux/libsemanage/src/direct_api.c:1403,1
    - Dst: sepol_get_preserve_tunables
      Src: /src/selinux/libsemanage/src/direct_api.c:1405,1
    - Dst: semanage_compile_hll_modules
      Src: /src/selinux/libsemanage/src/direct_api.c:1409,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1412,1
    - Dst: semanage_compare_checksum
      Src: /src/selinux/libsemanage/src/direct_api.c:1418,1
    - Dst: semanage_write_modules_checksum
      Src: /src/selinux/libsemanage/src/direct_api.c:1424,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1426,1
    - Dst: semanage_get_cil_paths
      Src: /src/selinux/libsemanage/src/direct_api.c:1438,1
    - Dst: semanage_verify_modules
      Src: /src/selinux/libsemanage/src/direct_api.c:1443,1
    - Dst: cil_db_init
      Src: /src/selinux/libsemanage/src/direct_api.c:1448,1
    - Dst: sepol_get_disable_dontaudit
      Src: /src/selinux/libsemanage/src/direct_api.c:1450,1
    - Dst: sepol_get_preserve_tunables
      Src: /src/selinux/libsemanage/src/direct_api.c:1451,1
    - Dst: cil_set_disable_dontaudit
      Src: /src/selinux/libsemanage/src/direct_api.c:1452,1
    - Dst: cil_set_disable_neverallow
      Src: /src/selinux/libsemanage/src/direct_api.c:1453,1
    - Dst: cil_set_preserve_tunables
      Src: /src/selinux/libsemanage/src/direct_api.c:1454,1
    - Dst: cil_set_target_platform
      Src: /src/selinux/libsemanage/src/direct_api.c:1455,1
    - Dst: cil_set_policy_version
      Src: /src/selinux/libsemanage/src/direct_api.c:1456,1
    - Dst: cil_set_multiple_decls
      Src: /src/selinux/libsemanage/src/direct_api.c:1457,1
    - Dst: cil_set_handle_unknown
      Src: /src/selinux/libsemanage/src/direct_api.c:1460,1
    - Dst: semanage_load_files
      Src: /src/selinux/libsemanage/src/direct_api.c:1466,1
    - Dst: cil_compile
      Src: /src/selinux/libsemanage/src/direct_api.c:1472,1
    - Dst: cil_build_policydb
      Src: /src/selinux/libsemanage/src/direct_api.c:1476,1
    - Dst: cil_filecons_to_string
      Src: /src/selinux/libsemanage/src/direct_api.c:1481,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1487,1
    - Dst: write_file
      Src: /src/selinux/libsemanage/src/direct_api.c:1492,1
    - Dst: semanage_split_fc
      Src: /src/selinux/libsemanage/src/direct_api.c:1497,1
    - Dst: unlink
      Src: /src/selinux/libsemanage/src/direct_api.c:1502,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1502,1
    - Dst: dbase_config_t*::dtable::drop_cache
      Src: /src/selinux/libsemanage/src/direct_api.c:1504,1
    - Dst: semanage_direct_update_seuser
      Src: /src/selinux/libsemanage/src/direct_api.c:1507,1
    - Dst: semanage_direct_update_user_extra
      Src: /src/selinux/libsemanage/src/direct_api.c:1512,1
    - Dst: cil_db_destroy
      Src: /src/selinux/libsemanage/src/direct_api.c:1516,1
    - Dst: sepol_policydb_optimize
      Src: /src/selinux/libsemanage/src/direct_api.c:1520,1
    - Dst: semanage_write_policydb
      Src: /src/selinux/libsemanage/src/direct_api.c:1526,1
    - Dst: sepol_policydb_create
      Src: /src/selinux/libsemanage/src/direct_api.c:1531,1
    - Dst: semanage_read_policydb
      Src: /src/selinux/libsemanage/src/direct_api.c:1535,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1539,1
    - Dst: stat
      Src: /src/selinux/libsemanage/src/direct_api.c:1540,1
    - Dst: semanage_copy_file
      Src: /src/selinux/libsemanage/src/direct_api.c:1541,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1543,1
    - Dst: dbase_config_t*::dtable::drop_cache
      Src: /src/selinux/libsemanage/src/direct_api.c:1548,1
    - Dst: dbase_config_t*::dtable::clear
      Src: /src/selinux/libsemanage/src/direct_api.c:1551,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1553,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1558,1
    - Dst: stat
      Src: /src/selinux/libsemanage/src/direct_api.c:1559,1
    - Dst: semanage_copy_file
      Src: /src/selinux/libsemanage/src/direct_api.c:1560,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1562,1
    - Dst: dbase_config_t*::dtable::drop_cache
      Src: /src/selinux/libsemanage/src/direct_api.c:1567,1
    - Dst: dbase_config_t*::dtable::clear
      Src: /src/selinux/libsemanage/src/direct_api.c:1570,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1572,1
    - Dst: dbase_config_t*::dtable::is_modified
      Src: /src/selinux/libsemanage/src/direct_api.c:1591,1
    - Dst: dbase_config_t*::dtable::is_modified
      Src: /src/selinux/libsemanage/src/direct_api.c:1592,1
    - Dst: dbase_config_t*::dtable::is_modified
      Src: /src/selinux/libsemanage/src/direct_api.c:1593,1
    - Dst: dbase_config_t*::dtable::is_modified
      Src: /src/selinux/libsemanage/src/direct_api.c:1594,1
    - Dst: dbase_policydb_attach
      Src: /src/selinux/libsemanage/src/direct_api.c:1598,1
    - Dst: dbase_policydb_attach
      Src: /src/selinux/libsemanage/src/direct_api.c:1599,1
    - Dst: dbase_policydb_attach
      Src: /src/selinux/libsemanage/src/direct_api.c:1600,1
    - Dst: dbase_policydb_attach
      Src: /src/selinux/libsemanage/src/direct_api.c:1601,1
    - Dst: dbase_policydb_attach
      Src: /src/selinux/libsemanage/src/direct_api.c:1602,1
    - Dst: dbase_policydb_attach
      Src: /src/selinux/libsemanage/src/direct_api.c:1603,1
    - Dst: dbase_policydb_attach
      Src: /src/selinux/libsemanage/src/direct_api.c:1604,1
    - Dst: semanage_base_merge_components
      Src: /src/selinux/libsemanage/src/direct_api.c:1607,1
    - Dst: semanage_write_policydb
      Src: /src/selinux/libsemanage/src/direct_api.c:1614,1
    - Dst: semanage_verify_kernel
      Src: /src/selinux/libsemanage/src/direct_api.c:1619,1
    - Dst: semanage_fcontext_validate_local
      Src: /src/selinux/libsemanage/src/direct_api.c:1631,1
    - Dst: semanage_seuser_validate_local
      Src: /src/selinux/libsemanage/src/direct_api.c:1638,1
    - Dst: semanage_port_validate_local
      Src: /src/selinux/libsemanage/src/direct_api.c:1645,1
    - Dst: semanage_ibpkey_validate_local
      Src: /src/selinux/libsemanage/src/direct_api.c:1652,1
    - Dst: semanage_ibendport_validate_local
      Src: /src/selinux/libsemanage/src/direct_api.c:1659,1
    - Dst: semanage_commit_components
      Src: /src/selinux/libsemanage/src/direct_api.c:1666,1
    - Dst: semanage_copy_file
      Src: /src/selinux/libsemanage/src/direct_api.c:1670,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1671,1
    - Dst: semanage_final_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1672,1
    - Dst: copy_file_if_exists
      Src: /src/selinux/libsemanage/src/direct_api.c:1678,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1679,1
    - Dst: semanage_final_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1680,1
    - Dst: copy_file_if_exists
      Src: /src/selinux/libsemanage/src/direct_api.c:1686,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1687,1
    - Dst: semanage_final_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1688,1
    - Dst: copy_file_if_exists
      Src: /src/selinux/libsemanage/src/direct_api.c:1694,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1695,1
    - Dst: semanage_final_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1696,1
    - Dst: semanage_genhomedircon
      Src: /src/selinux/libsemanage/src/direct_api.c:1706,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1709,1
    - Dst: semanage_copy_file
      Src: /src/selinux/libsemanage/src/direct_api.c:1715,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1717,1
    - Dst: semanage_final_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1719,1
    - Dst: WARN
      Src: /src/selinux/libsemanage/src/direct_api.c:1727,1
    - Dst: sepol_policydb_free
      Src: /src/selinux/libsemanage/src/direct_api.c:1733,1
    - Dst: semanage_install_sandbox
      Src: /src/selinux/libsemanage/src/direct_api.c:1737,1
    - Dst: semanage_module_info_destroy
      Src: /src/selinux/libsemanage/src/direct_api.c:1741,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:1743,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:1746,1
    - Dst: dbase_policydb_detach
      Src: /src/selinux/libsemanage/src/direct_api.c:1750,1
    - Dst: dbase_policydb_detach
      Src: /src/selinux/libsemanage/src/direct_api.c:1751,1
    - Dst: dbase_policydb_detach
      Src: /src/selinux/libsemanage/src/direct_api.c:1752,1
    - Dst: dbase_policydb_detach
      Src: /src/selinux/libsemanage/src/direct_api.c:1753,1
    - Dst: dbase_policydb_detach
      Src: /src/selinux/libsemanage/src/direct_api.c:1754,1
    - Dst: dbase_policydb_detach
      Src: /src/selinux/libsemanage/src/direct_api.c:1755,1
    - Dst: dbase_policydb_detach
      Src: /src/selinux/libsemanage/src/direct_api.c:1756,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:1758,1
    - Dst: sepol_policydb_free
      Src: /src/selinux/libsemanage/src/direct_api.c:1759,1
    - Dst: cil_db_destroy
      Src: /src/selinux/libsemanage/src/direct_api.c:1760,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:1762,1
    - Dst: semanage_remove_tmps
      Src: /src/selinux/libsemanage/src/direct_api.c:1770,1
    - Dst: semanage_release_trans_lock
      Src: /src/selinux/libsemanage/src/direct_api.c:1773,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/direct_api.c:1774,1
    CyclomaticComplexity: 141
    EdgeCount: 141
    ICount: 361
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1239
    functionDepth: 10
    functionLinenumber: 1239
    functionLinenumberEnd: 1777
    functionName: semanage_direct_commit
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - semanage_release_trans_lock
    - cil_filecons_to_string
    - semanage_path
    - semanage_port_dbase_policy
    - semanage_ibpkey_dbase_policy
    - dbase_config_t*::dtable::is_modified
    - semanage_write_policydb
    - semanage_copy_file
    - semanage_node_dbase_local
    - semanage_port_dbase_local
    - semanage_ibendport_validate_local
    - semanage_user_dbase_local
    - cil_set_target_platform
    - cil_set_policy_version
    - semanage_get_active_modules
    - remove
    - dbase_policydb_attach
    - cil_set_multiple_decls
    - semanage_split_fc
    - sepol_policydb_optimize
    - WARN
    - sepol_get_disable_dontaudit
    - semanage_bool_dbase_local
    - fopen
    - semanage_iface_dbase_policy
    - cil_db_init
    - semanage_seuser_dbase_local
    - write_file
    - semanage_ibendport_dbase_policy
    - semanage_user_extra_dbase_policy
    - semanage_fcontext_validate_local
    - semanage_ibendport_dbase_local
    - unlink
    - cil_set_disable_dontaudit
    - stat
    - dbase_config_t*::dtable::flush
    - dbase_config_t*::dtable::clear
    - semanage_compare_checksum
    - semanage_direct_update_seuser
    - semanage_user_base_dbase_policy
    - semanage_genhomedircon
    - semanage_bool_dbase_policy
    - semanage_final_path
    - semanage_verify_kernel
    - semanage_fcontext_dbase_local
    - copy_file_if_exists
    - semanage_ibpkey_validate_local
    - dbase_policydb_detach
    - semanage_base_merge_components
    - cil_build_policydb
    - cil_compile
    - semanage_ibpkey_dbase_local
    - semanage_compile_hll_modules
    - cil_set_handle_unknown
    - semanage_seuser_dbase_policy
    - semanage_remove_tmps
    - semanage_write_modules_checksum
    - semanage_port_validate_local
    - semanage_read_policydb
    - sepol_policydb_free
    - semanage_load_files
    - semanage_verify_modules
    - cil_set_disable_neverallow
    - semanage_install_sandbox
    - cil_db_destroy
    - semanage_get_cil_paths
    - cil_set_preserve_tunables
    - sepol_get_preserve_tunables
    - umask
    - free
    - dbase_config_t*::dtable::drop_cache
    - ERR
    - semanage_user_base_dbase_local
    - semanage_seuser_validate_local
    - semanage_commit_components
    - sepol_policydb_create
    - semanage_iface_dbase_local
    - fclose
    - semanage_fcontext_dbase_policy
    - ARRAY_SIZE
    - semanage_module_info_destroy
    - semanage_node_dbase_policy
    - semanage_direct_update_user_extra
    linkageType: ''
    returnType: int
    signature: int semanage_direct_commit(semanage_handle_t *sh)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: semanage_module_info_init
      Src: /src/selinux/libsemanage/src/direct_api.c:1793,1
    - Dst: semanage_module_info_set_priority
      Src: /src/selinux/libsemanage/src/direct_api.c:1799,1
    - Dst: semanage_module_info_set_name
      Src: /src/selinux/libsemanage/src/direct_api.c:1805,1
    - Dst: semanage_module_info_set_lang_ext
      Src: /src/selinux/libsemanage/src/direct_api.c:1811,1
    - Dst: semanage_module_info_set_enabled
      Src: /src/selinux/libsemanage/src/direct_api.c:1817,1
    - Dst: semanage_direct_install_info
      Src: /src/selinux/libsemanage/src/direct_api.c:1823,1
    - Dst: semanage_module_info_destroy
      Src: /src/selinux/libsemanage/src/direct_api.c:1827,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 5
    argNames:
    - sh
    - data
    - data_len
    - module_name
    - lang_ext
    argTypes:
    - semanage_handle_t*
    - char*
    - size_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1830
      start: 1785
    functionDepth: 1
    functionLinenumber: 1785
    functionLinenumberEnd: 1830
    functionName: semanage_direct_install
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - semanage_direct_install_info
    - semanage_module_info_set_enabled
    - semanage_module_info_destroy
    - semanage_module_info_set_priority
    - semanage_module_info_set_name
    - semanage_module_info_set_lang_ext
    - semanage_module_info_init
    linkageType: ''
    returnType: int
    signature: "int semanage_direct_install(semanage_handle_t *sh, char *data,\n\t\t\t\t
      \  size_t data_len, const char *module_name,\n\t\t\t\t   const char *lang_ext)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: map_compressed_file
      Src: /src/selinux/libsemanage/src/direct_api.c:1849,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1851,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/direct_api.c:1855,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1857,1
    - Dst: basename
      Src: /src/selinux/libsemanage/src/direct_api.c:1862,1
    - Dst: strrchr
      Src: /src/selinux/libsemanage/src/direct_api.c:1865,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1867,1
    - Dst: strrchr
      Src: /src/selinux/libsemanage/src/direct_api.c:1876,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1879,1
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/direct_api.c:1888,1
    - Dst: parse_module_headers
      Src: /src/selinux/libsemanage/src/direct_api.c:1889,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:1891,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/direct_api.c:1897,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1899,1
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/direct_api.c:1903,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1904,1
    - Dst: semanage_direct_install
      Src: /src/selinux/libsemanage/src/direct_api.c:1909,1
    - Dst: unmap_compressed_file
      Src: /src/selinux/libsemanage/src/direct_api.c:1913,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:1914,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:1915,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 2
    argNames:
    - sh
    - install_filename
    argTypes:
    - semanage_handle_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1918
      start: 1837
    functionDepth: 5
    functionLinenumber: 1837
    functionLinenumberEnd: 1918
    functionName: semanage_direct_install_file
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_direct_install
    - map_compressed_file
    - unmap_compressed_file
    - strcmp
    - free
    - strrchr
    - basename
    - parse_module_headers
    - strdup
    linkageType: ''
    returnType: int
    signature: "int semanage_direct_install_file(semanage_handle_t *sh,\n\t\t\t\t\tconst
      char *install_filename)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: semanage_module_get_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1935,1
    - Dst: stat
      Src: /src/selinux/libsemanage/src/direct_api.c:1943,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1944,1
    - Dst: semanage_module_get_module_info
      Src: /src/selinux/libsemanage/src/direct_api.c:1949,1
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/direct_api.c:1954,1
    - Dst: semanage_module_get_path
      Src: /src/selinux/libsemanage/src/direct_api.c:1961,1
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/direct_api.c:1967,1
    - Dst: stat
      Src: /src/selinux/libsemanage/src/direct_api.c:1968,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1970,1
    - Dst: semanage_compile_module
      Src: /src/selinux/libsemanage/src/direct_api.c:1975,1
    - Dst: map_compressed_file
      Src: /src/selinux/libsemanage/src/direct_api.c:1981,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1983,1
    - Dst: mmap
      Src: /src/selinux/libsemanage/src/direct_api.c:1989,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:1992,1
    - Dst: memcpy
      Src: /src/selinux/libsemanage/src/direct_api.c:1996,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:1997,1
    - Dst: unmap_compressed_file
      Src: /src/selinux/libsemanage/src/direct_api.c:2007,1
    - Dst: semanage_module_info_destroy
      Src: /src/selinux/libsemanage/src/direct_api.c:2008,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:2009,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 69
    argCount: 6
    argNames:
    - sh
    - modkey
    - extract_cil
    - mapped_data
    - data_len
    - modinfo
    argTypes:
    - semanage_handle_t*
    - semanage_module_key_t*
    - int
    - void**
    - size_t*
    - semanage_module_info_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2013
      start: 1920
    functionDepth: 4
    functionLinenumber: 1920
    functionLinenumberEnd: 2013
    functionName: semanage_direct_extract
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - ERR
    - stat
    - mmap
    - map_compressed_file
    - unmap_compressed_file
    - semanage_module_info_destroy
    - strcmp
    - semanage_module_get_path
    - semanage_module_get_module_info
    - free
    - memcpy
    - semanage_compile_module
    linkageType: ''
    returnType: int
    signature: "int semanage_direct_extract(semanage_handle_t *sh,\n\t\t\t\t   semanage_module_key_t
      *modkey,\n\t\t\t\t   int extract_cil, void **mapped_data,\n\t\t\t\t   size_t
      *data_len,\n\t\t\t\t   semanage_module_info_t **modinfo)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: semanage_module_key_init
      Src: /src/selinux/libsemanage/src/direct_api.c:2023,1
    - Dst: semanage_module_key_set_priority
      Src: /src/selinux/libsemanage/src/direct_api.c:2029,1
    - Dst: semanage_module_key_set_name
      Src: /src/selinux/libsemanage/src/direct_api.c:2035,1
    - Dst: semanage_direct_remove_key
      Src: /src/selinux/libsemanage/src/direct_api.c:2041,1
    - Dst: semanage_module_key_destroy
      Src: /src/selinux/libsemanage/src/direct_api.c:2044,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - sh
    - module_name
    argTypes:
    - semanage_handle_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2017
    functionDepth: 1
    functionLinenumber: 2017
    functionLinenumberEnd: 2046
    functionName: semanage_direct_remove
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - semanage_module_key_set_priority
    - semanage_direct_remove_key
    - semanage_module_key_destroy
    - semanage_module_key_init
    - semanage_module_key_set_name
    linkageType: ''
    returnType: int
    signature: int semanage_direct_remove(semanage_handle_t *sh, char *module_name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: semanage_get_active_lock
      Src: /src/selinux/libsemanage/src/direct_api.c:2066,1
    - Dst: semanage_get_active_modules
      Src: /src/selinux/libsemanage/src/direct_api.c:2069,1
    - Dst: semanage_direct_get_serial
      Src: /src/selinux/libsemanage/src/direct_api.c:2073,1
    - Dst: semanage_module_info_destroy
      Src: /src/selinux/libsemanage/src/direct_api.c:2078,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:2079,1
    - Dst: semanage_release_active_lock
      Src: /src/selinux/libsemanage/src/direct_api.c:2085,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - sh
    - modinfo
    - num_modules
    argTypes:
    - semanage_handle_t*
    - semanage_module_info_t**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2088
      start: 2055
    functionDepth: 2
    functionLinenumber: 2055
    functionLinenumberEnd: 2088
    functionName: semanage_direct_list
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - semanage_get_active_lock
    - semanage_module_info_destroy
    - semanage_get_active_modules
    - free
    - semanage_direct_get_serial
    - semanage_release_active_lock
    linkageType: ''
    returnType: int
    signature: "int semanage_direct_list(semanage_handle_t *sh,\n\t\t\t\tsemanage_module_info_t
      **modinfo,\n\t\t\t\tint *num_modules)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/direct_api.c:2094,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/direct_api.c:2095,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/direct_api.c:2096,1
    - Dst: semanage_module_get_module_info
      Src: /src/selinux/libsemanage/src/direct_api.c:2106,1
    - Dst: semanage_module_get_path
      Src: /src/selinux/libsemanage/src/direct_api.c:2113,1
    - Dst: stat
      Src: /src/selinux/libsemanage/src/direct_api.c:2120,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:2122,1
    - Dst: semanage_module_info_destroy
      Src: /src/selinux/libsemanage/src/direct_api.c:2133,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:2134,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - sh
    - modkey
    - enabled
    argTypes:
    - semanage_handle_t*
    - semanage_module_key_t*
    - int*
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 2093
        line_start: 2093
        source_file: /src/selinux/libsemanage/src/direct_api.c
    - condition: (modkey)
      pos:
        line_end: 2094
        line_start: 2094
        source_file: /src/selinux/libsemanage/src/direct_api.c
    - condition: (enabled)
      pos:
        line_end: 2095
        line_start: 2095
        source_file: /src/selinux/libsemanage/src/direct_api.c
    constantsTouched: []
    func_position:
      end: 2137
      start: 2090
    functionDepth: 1
    functionLinenumber: 2090
    functionLinenumberEnd: 2137
    functionName: semanage_direct_get_enabled
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - ERR
    - stat
    - semanage_module_info_destroy
    - assert
    - semanage_module_get_path
    - semanage_module_get_module_info
    - free
    linkageType: ''
    returnType: int
    signature: "int semanage_direct_get_enabled(semanage_handle_t *sh,\n\t\t\t\t       const
      semanage_module_key_t *modkey,\n\t\t\t\t       int *enabled)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/direct_api.c:2143,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/direct_api.c:2144,1
    - Dst: semanage_begin_transaction
      Src: /src/selinux/libsemanage/src/direct_api.c:2157,1
    - Dst: semanage_module_validate_name
      Src: /src/selinux/libsemanage/src/direct_api.c:2164,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:2167,1
    - Dst: semanage_module_validate_enabled
      Src: /src/selinux/libsemanage/src/direct_api.c:2173,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:2176,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:2182,1
    - Dst: semanage_mkdir
      Src: /src/selinux/libsemanage/src/direct_api.c:2184,1
    - Dst: semanage_module_get_module_info
      Src: /src/selinux/libsemanage/src/direct_api.c:2191,1
    - Dst: semanage_module_get_path
      Src: /src/selinux/libsemanage/src/direct_api.c:2198,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/direct_api.c:2207,1
    - Dst: fopen
      Src: /src/selinux/libsemanage/src/direct_api.c:2208,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/direct_api.c:2209,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:2212,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/direct_api.c:2217,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:2220,1
    - Dst: unlink
      Src: /src/selinux/libsemanage/src/direct_api.c:2228,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:2230,1
    - Dst: WARN
      Src: /src/selinux/libsemanage/src/direct_api.c:2242,1
    - Dst: semanage_module_info_destroy
      Src: /src/selinux/libsemanage/src/direct_api.c:2248,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:2249,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/direct_api.c:2252,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 88
    argCount: 3
    argNames:
    - sh
    - modkey
    - enabled
    argTypes:
    - semanage_handle_t*
    - semanage_module_key_t*
    - int
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 2142
        line_start: 2142
        source_file: /src/selinux/libsemanage/src/direct_api.c
    - condition: (modkey)
      pos:
        line_end: 2143
        line_start: 2143
        source_file: /src/selinux/libsemanage/src/direct_api.c
    constantsTouched: []
    func_position:
      end: 2254
      start: 2139
    functionDepth: 2
    functionLinenumber: 2139
    functionLinenumberEnd: 2254
    functionName: semanage_direct_set_enabled
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_module_validate_enabled
    - fclose
    - unlink
    - semanage_module_info_destroy
    - semanage_path
    - assert
    - umask
    - WARN
    - semanage_module_get_module_info
    - semanage_module_get_path
    - free
    - fopen
    - semanage_mkdir
    - semanage_module_validate_name
    - semanage_begin_transaction
    linkageType: ''
    returnType: int
    signature: "int semanage_direct_set_enabled(semanage_handle_t *sh,\n\t\t\t\t       const
      semanage_module_key_t *modkey,\n\t\t\t\t       int enabled)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semanage_check_init
      Src: /src/selinux/libsemanage/src/direct_api.c:2258,1
    - Dst: semanage_store_access_check
      Src: /src/selinux/libsemanage/src/direct_api.c:2261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2262
      start: 2256
    functionDepth: 3
    functionLinenumber: 2256
    functionLinenumberEnd: 2262
    functionName: semanage_direct_access_check
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 1
    functionsReached:
    - semanage_store_access_check
    - semanage_check_init
    linkageType: ''
    returnType: int
    signature: int semanage_direct_access_check(semanage_handle_t *sh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sepol_policydb_create
      Src: /src/selinux/libsemanage/src/direct_api.c:2269,1
    - Dst: semanage_read_policydb
      Src: /src/selinux/libsemanage/src/direct_api.c:2273,1
    - Dst: sepol_policydb_mls_enabled
      Src: /src/selinux/libsemanage/src/direct_api.c:2277,1
    - Dst: sepol_policydb_free
      Src: /src/selinux/libsemanage/src/direct_api.c:2279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - sh
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2281
      start: 2264
    functionDepth: 10
    functionLinenumber: 2264
    functionLinenumberEnd: 2281
    functionName: semanage_direct_mls_enabled
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 1
    functionsReached:
    - sepol_policydb_mls_enabled
    - sepol_policydb_create
    - semanage_read_policydb
    - sepol_policydb_free
    linkageType: ''
    returnType: int
    signature: int semanage_direct_mls_enabled(semanage_handle_t *sh)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/direct_api.c:2287,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/direct_api.c:2288,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/direct_api.c:2289,1
    - Dst: semanage_module_validate_name
      Src: /src/selinux/libsemanage/src/direct_api.c:2307,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:2310,1
    - Dst: semanage_direct_list_all
      Src: /src/selinux/libsemanage/src/direct_api.c:2317,1
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/direct_api.c:2324,1
    - Dst: semanage_module_info_create
      Src: /src/selinux/libsemanage/src/direct_api.c:2336,1
    - Dst: semanage_module_info_clone
      Src: /src/selinux/libsemanage/src/direct_api.c:2342,1
    - Dst: semanage_module_validate_priority
      Src: /src/selinux/libsemanage/src/direct_api.c:2352,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:2355,1
    - Dst: semanage_module_info_create
      Src: /src/selinux/libsemanage/src/direct_api.c:2361,1
    - Dst: semanage_module_info_set_priority
      Src: /src/selinux/libsemanage/src/direct_api.c:2367,1
    - Dst: semanage_module_info_set_name
      Src: /src/selinux/libsemanage/src/direct_api.c:2373,1
    - Dst: semanage_module_get_path
      Src: /src/selinux/libsemanage/src/direct_api.c:2380,1
    - Dst: fopen
      Src: /src/selinux/libsemanage/src/direct_api.c:2387,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:2390,1
    - Dst: getline
      Src: /src/selinux/libsemanage/src/direct_api.c:2397,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:2398,1
    - Dst: semanage_module_info_set_lang_ext
      Src: /src/selinux/libsemanage/src/direct_api.c:2404,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:2409,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/direct_api.c:2412,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:2414,1
    - Dst: semanage_module_get_path
      Src: /src/selinux/libsemanage/src/direct_api.c:2423,1
    - Dst: stat
      Src: /src/selinux/libsemanage/src/direct_api.c:2431,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:2433,1
    - Dst: semanage_module_info_set_enabled
      Src: /src/selinux/libsemanage/src/direct_api.c:2438,1
    - Dst: semanage_module_info_set_enabled
      Src: /src/selinux/libsemanage/src/direct_api.c:2444,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:2452,1
    - Dst: semanage_module_info_destroy
      Src: /src/selinux/libsemanage/src/direct_api.c:2456,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:2458,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/direct_api.c:2462,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 144
    argCount: 3
    argNames:
    - sh
    - modkey
    - modinfo
    argTypes:
    - semanage_handle_t*
    - semanage_module_key_t*
    - semanage_module_info_t**
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 2286
        line_start: 2286
        source_file: /src/selinux/libsemanage/src/direct_api.c
    - condition: (modkey)
      pos:
        line_end: 2287
        line_start: 2287
        source_file: /src/selinux/libsemanage/src/direct_api.c
    - condition: (modinfo)
      pos:
        line_end: 2288
        line_start: 2288
        source_file: /src/selinux/libsemanage/src/direct_api.c
    constantsTouched: []
    func_position:
      end: 2464
      start: 2283
    functionDepth: 1
    functionLinenumber: 2283
    functionLinenumberEnd: 2464
    functionName: semanage_direct_get_module_info
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - stat
    - semanage_module_info_set_enabled
    - strcmp
    - assert
    - semanage_module_get_path
    - fopen
    - semanage_module_info_set_name
    - semanage_module_validate_name
    - semanage_module_info_set_lang_ext
    - semanage_module_info_clone
    - free
    - semanage_direct_list_all
    - semanage_module_info_create
    - ERR
    - fclose
    - semanage_module_info_destroy
    - semanage_module_validate_priority
    - semanage_module_info_set_priority
    - getline
    linkageType: ''
    returnType: int
    signature: "int semanage_direct_get_module_info(semanage_handle_t *sh,\n\t\t\t\t\t
      \  const semanage_module_key_t *modkey,\n\t\t\t\t\t   semanage_module_info_t
      **modinfo)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: semanage_module_key_init
      Src: /src/selinux/libsemanage/src/direct_api.c:2479,1
    - Dst: semanage_begin_transaction
      Src: /src/selinux/libsemanage/src/direct_api.c:2487,1
    - Dst: semanage_module_info_validate
      Src: /src/selinux/libsemanage/src/direct_api.c:2494,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:2503,1
    - Dst: semanage_mkdir
      Src: /src/selinux/libsemanage/src/direct_api.c:2505,1
    - Dst: semanage_module_get_path
      Src: /src/selinux/libsemanage/src/direct_api.c:2512,1
    - Dst: semanage_mkdir
      Src: /src/selinux/libsemanage/src/direct_api.c:2519,1
    - Dst: semanage_module_get_path
      Src: /src/selinux/libsemanage/src/direct_api.c:2526,1
    - Dst: semanage_mkdir
      Src: /src/selinux/libsemanage/src/direct_api.c:2533,1
    - Dst: semanage_direct_write_langext
      Src: /src/selinux/libsemanage/src/direct_api.c:2540,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:2549,1
    - Dst: semanage_mkdir
      Src: /src/selinux/libsemanage/src/direct_api.c:2551,1
    - Dst: semanage_module_get_path
      Src: /src/selinux/libsemanage/src/direct_api.c:2557,1
    - Dst: semanage_module_key_set_name
      Src: /src/selinux/libsemanage/src/direct_api.c:2564,1
    - Dst: semanage_module_get_module_info
      Src: /src/selinux/libsemanage/src/direct_api.c:2575,1
    - Dst: semanage_module_set_enabled
      Src: /src/selinux/libsemanage/src/direct_api.c:2585,1
    - Dst: semanage_module_key_destroy
      Src: /src/selinux/libsemanage/src/direct_api.c:2592,1
    - Dst: semanage_module_info_destroy
      Src: /src/selinux/libsemanage/src/direct_api.c:2594,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:2595,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 98
    argCount: 2
    argNames:
    - sh
    - modinfo
    argTypes:
    - semanage_handle_t*
    - semanage_module_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2598
      start: 2466
    functionDepth: 2
    functionLinenumber: 2466
    functionLinenumberEnd: 2598
    functionName: semanage_direct_set_module_info
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - semanage_module_key_destroy
    - semanage_module_info_validate
    - semanage_module_key_set_name
    - semanage_module_info_destroy
    - semanage_path
    - semanage_module_get_path
    - semanage_module_get_module_info
    - free
    - semanage_module_set_enabled
    - semanage_module_key_init
    - semanage_mkdir
    - semanage_direct_write_langext
    - semanage_begin_transaction
    linkageType: ''
    returnType: int
    signature: "int semanage_direct_set_module_info(semanage_handle_t *sh,\n\t\t\t\tconst
      semanage_module_info_t *modinfo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/direct_api.c:2602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct dirent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2605
      start: 2600
    functionDepth: 0
    functionLinenumber: 2600
    functionLinenumberEnd: 2605
    functionName: semanage_priorities_filename_select
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int semanage_priorities_filename_select(const struct dirent *d)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct dirent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2612
      start: 2607
    functionDepth: 0
    functionLinenumber: 2607
    functionLinenumberEnd: 2612
    functionName: semanage_modules_filename_select
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int semanage_modules_filename_select(const struct dirent *d)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/direct_api.c:2618,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/direct_api.c:2619,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/direct_api.c:2620,1
    - Dst: semanage_module_info_init
      Src: /src/selinux/libsemanage/src/direct_api.c:2646,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:2653,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/direct_api.c:2655,1
    - Dst: scandir
      Src: /src/selinux/libsemanage/src/direct_api.c:2659,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:2663,1
    - Dst: semanage_string_to_priority
      Src: /src/selinux/libsemanage/src/direct_api.c:2672,1
    - Dst: semanage_module_info_set_priority
      Src: /src/selinux/libsemanage/src/direct_api.c:2680,1
    - Dst: semanage_module_get_path
      Src: /src/selinux/libsemanage/src/direct_api.c:2687,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:2699,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:2702,1
    - Dst: scandir
      Src: /src/selinux/libsemanage/src/direct_api.c:2708,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:2712,1
    - Dst: realloc
      Src: /src/selinux/libsemanage/src/direct_api.c:2722,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:2725,1
    - Dst: semanage_module_info_set_name
      Src: /src/selinux/libsemanage/src/direct_api.c:2734,1
    - Dst: semanage_direct_get_module_info
      Src: /src/selinux/libsemanage/src/direct_api.c:2742,1
    - Dst: semanage_module_info_init
      Src: /src/selinux/libsemanage/src/direct_api.c:2751,1
    - Dst: semanage_module_info_clone
      Src: /src/selinux/libsemanage/src/direct_api.c:2758,1
    - Dst: semanage_module_info_destroy
      Src: /src/selinux/libsemanage/src/direct_api.c:2765,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:2766,1
    - Dst: semanage_module_info_destroy
      Src: /src/selinux/libsemanage/src/direct_api.c:2774,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:2778,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:2780,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:2785,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:2787,1
    - Dst: semanage_module_info_destroy
      Src: /src/selinux/libsemanage/src/direct_api.c:2790,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:2791,1
    - Dst: semanage_module_info_destroy
      Src: /src/selinux/libsemanage/src/direct_api.c:2797,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:2800,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 129
    argCount: 3
    argNames:
    - sh
    - modinfos
    - modinfos_len
    argTypes:
    - semanage_handle_t*
    - semanage_module_info_t**
    - int*
    assertStmts:
    - condition: (modinfos)
      pos:
        line_end: 2618
        line_start: 2618
        source_file: /src/selinux/libsemanage/src/direct_api.c
    - condition: (sh)
      pos:
        line_end: 2617
        line_start: 2617
        source_file: /src/selinux/libsemanage/src/direct_api.c
    - condition: (modinfos_len)
      pos:
        line_end: 2619
        line_start: 2619
        source_file: /src/selinux/libsemanage/src/direct_api.c
    constantsTouched: []
    func_position:
      end: 2807
      start: 2614
    functionDepth: 2
    functionLinenumber: 2614
    functionLinenumberEnd: 2807
    functionName: semanage_direct_list_all
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 1
    functionsReached:
    - semanage_module_info_clone
    - ERR
    - semanage_string_to_priority
    - semanage_module_info_destroy
    - semanage_path
    - assert
    - realloc
    - scandir
    - semanage_module_info_set_priority
    - semanage_module_get_path
    - free
    - semanage_module_info_set_name
    - semanage_direct_get_module_info
    - semanage_module_info_init
    linkageType: ''
    returnType: int
    signature: "int semanage_direct_list_all(semanage_handle_t *sh,\n\t\t\t\t    semanage_module_info_t
      **modinfos,\n\t\t\t\t    int *modinfos_len)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/direct_api.c:2813,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/direct_api.c:2814,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/direct_api.c:2815,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/direct_api.c:2822,1
    - Dst: semanage_module_key_init
      Src: /src/selinux/libsemanage/src/direct_api.c:2826,1
    - Dst: semanage_module_info_validate
      Src: /src/selinux/libsemanage/src/direct_api.c:2833,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:2835,1
    - Dst: semanage_module_key_set_name
      Src: /src/selinux/libsemanage/src/direct_api.c:2843,1
    - Dst: semanage_direct_get_module_info
      Src: /src/selinux/libsemanage/src/direct_api.c:2849,1
    - Dst: WARN
      Src: /src/selinux/libsemanage/src/direct_api.c:2853,1
    - Dst: INFO
      Src: /src/selinux/libsemanage/src/direct_api.c:2859,1
    - Dst: WARN
      Src: /src/selinux/libsemanage/src/direct_api.c:2867,1
    - Dst: semanage_direct_set_module_info
      Src: /src/selinux/libsemanage/src/direct_api.c:2874,1
    - Dst: strcasecmp
      Src: /src/selinux/libsemanage/src/direct_api.c:2881,1
    - Dst: semanage_module_get_path
      Src: /src/selinux/libsemanage/src/direct_api.c:2886,1
    - Dst: write_compressed_file
      Src: /src/selinux/libsemanage/src/direct_api.c:2892,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:2894,1
    - Dst: semanage_module_get_path
      Src: /src/selinux/libsemanage/src/direct_api.c:2901,1
    - Dst: unlink
      Src: /src/selinux/libsemanage/src/direct_api.c:2909,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:2911,1
    - Dst: semanage_module_key_destroy
      Src: /src/selinux/libsemanage/src/direct_api.c:2919,1
    - Dst: semanage_module_info_destroy
      Src: /src/selinux/libsemanage/src/direct_api.c:2920,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:2921,1
    - Dst: umask
      Src: /src/selinux/libsemanage/src/direct_api.c:2922,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 84
    argCount: 4
    argNames:
    - sh
    - modinfo
    - data
    - data_len
    argTypes:
    - semanage_handle_t*
    - semanage_module_info_t*
    - char*
    - size_t
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 2812
        line_start: 2812
        source_file: /src/selinux/libsemanage/src/direct_api.c
    - condition: (data)
      pos:
        line_end: 2814
        line_start: 2814
        source_file: /src/selinux/libsemanage/src/direct_api.c
    - condition: (modinfo)
      pos:
        line_end: 2813
        line_start: 2813
        source_file: /src/selinux/libsemanage/src/direct_api.c
    constantsTouched: []
    func_position:
      end: 2925
      start: 2809
    functionDepth: 3
    functionLinenumber: 2809
    functionLinenumberEnd: 2925
    functionName: semanage_direct_install_info
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 1
    functionsReached:
    - semanage_direct_set_module_info
    - ERR
    - write_compressed_file
    - semanage_module_key_destroy
    - semanage_module_info_validate
    - unlink
    - semanage_module_info_destroy
    - assert
    - umask
    - WARN
    - semanage_module_get_path
    - free
    - semanage_module_key_init
    - semanage_direct_get_module_info
    - strcasecmp
    - semanage_module_key_set_name
    - INFO
    linkageType: ''
    returnType: int
    signature: "int semanage_direct_install_info(semanage_handle_t *sh,\n\t\t\t\t\tconst
      semanage_module_info_t *modinfo,\n\t\t\t\t\tchar *data, size_t data_len)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/direct_api.c:2930,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/direct_api.c:2931,1
    - Dst: semanage_module_key_init
      Src: /src/selinux/libsemanage/src/direct_api.c:2940,1
    - Dst: semanage_module_validate_priority
      Src: /src/selinux/libsemanage/src/direct_api.c:2947,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:2950,1
    - Dst: semanage_module_validate_name
      Src: /src/selinux/libsemanage/src/direct_api.c:2955,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:2958,1
    - Dst: semanage_module_key_set_name
      Src: /src/selinux/libsemanage/src/direct_api.c:2963,1
    - Dst: semanage_module_get_path
      Src: /src/selinux/libsemanage/src/direct_api.c:2970,1
    - Dst: semanage_remove_directory
      Src: /src/selinux/libsemanage/src/direct_api.c:2980,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/direct_api.c:2982,1
    - Dst: semanage_module_get_module_info
      Src: /src/selinux/libsemanage/src/direct_api.c:2989,1
    - Dst: INFO
      Src: /src/selinux/libsemanage/src/direct_api.c:2993,1
    - Dst: semanage_module_get_path
      Src: /src/selinux/libsemanage/src/direct_api.c:2998,1
    - Dst: unlink
      Src: /src/selinux/libsemanage/src/direct_api.c:3006,1
    - Dst: INFO
      Src: /src/selinux/libsemanage/src/direct_api.c:3016,1
    - Dst: semanage_module_key_destroy
      Src: /src/selinux/libsemanage/src/direct_api.c:3022,1
    - Dst: semanage_module_info_destroy
      Src: /src/selinux/libsemanage/src/direct_api.c:3024,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/direct_api.c:3025,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 72
    argCount: 2
    argNames:
    - sh
    - modkey
    argTypes:
    - semanage_handle_t*
    - semanage_module_key_t*
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 2929
        line_start: 2929
        source_file: /src/selinux/libsemanage/src/direct_api.c
    - condition: (modkey)
      pos:
        line_end: 2930
        line_start: 2930
        source_file: /src/selinux/libsemanage/src/direct_api.c
    constantsTouched: []
    func_position:
      end: 3028
      start: 2927
    functionDepth: 2
    functionLinenumber: 2927
    functionLinenumberEnd: 3028
    functionName: semanage_direct_remove_key
    functionSourceFile: /src/selinux/libsemanage/src/direct_api.c
    functionUses: 1
    functionsReached:
    - ERR
    - semanage_module_key_destroy
    - unlink
    - semanage_module_info_destroy
    - semanage_remove_directory
    - assert
    - semanage_module_validate_priority
    - semanage_module_get_path
    - semanage_module_get_module_info
    - free
    - semanage_module_key_init
    - INFO
    - semanage_module_validate_name
    - semanage_module_key_set_name
    linkageType: ''
    returnType: int
    signature: "int semanage_direct_remove_key(semanage_handle_t *sh,\n\t\t\t\t      const
      semanage_module_key_t *modkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fcontext_dbase_policy
      Src: /src/selinux/libsemanage/src/fcontexts_policy.c:17,1
    - Dst: dbase_query
      Src: /src/selinux/libsemanage/src/fcontexts_policy.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_fcontext_key_t*
    - semanage_fcontext_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: semanage_fcontext_query
    functionSourceFile: /src/selinux/libsemanage/src/fcontexts_policy.c
    functionUses: 1
    functionsReached:
    - semanage_fcontext_dbase_policy
    - dbase_query
    linkageType: ''
    returnType: int
    signature: "int semanage_fcontext_query(semanage_handle_t *handle,\n\t\t\t    const
      semanage_fcontext_key_t *key,\n\t\t\t    semanage_fcontext_t **response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fcontext_dbase_policy
      Src: /src/selinux/libsemanage/src/fcontexts_policy.c:24,1
    - Dst: dbase_exists
      Src: /src/selinux/libsemanage/src/fcontexts_policy.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_fcontext_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: semanage_fcontext_exists
    functionSourceFile: /src/selinux/libsemanage/src/fcontexts_policy.c
    functionUses: 1
    functionsReached:
    - dbase_exists
    - semanage_fcontext_dbase_policy
    linkageType: ''
    returnType: int
    signature: "int semanage_fcontext_exists(semanage_handle_t *handle,\n\t\t\t     const
      semanage_fcontext_key_t *key, int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fcontext_dbase_policy
      Src: /src/selinux/libsemanage/src/fcontexts_policy.c:30,1
    - Dst: dbase_count
      Src: /src/selinux/libsemanage/src/fcontexts_policy.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - response
    argTypes:
    - semanage_handle_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: semanage_fcontext_count
    functionSourceFile: /src/selinux/libsemanage/src/fcontexts_policy.c
    functionUses: 1
    functionsReached:
    - semanage_fcontext_dbase_policy
    - dbase_count
    linkageType: ''
    returnType: int
    signature: int semanage_fcontext_count(semanage_handle_t *handle, unsigned int
      *response)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fcontext_dbase_policy
      Src: /src/selinux/libsemanage/src/fcontexts_policy.c:39,1
    - Dst: dbase_iterate
      Src: /src/selinux/libsemanage/src/fcontexts_policy.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - handler_arg
    argTypes:
    - semanage_handle_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: semanage_fcontext_iterate
    functionSourceFile: /src/selinux/libsemanage/src/fcontexts_policy.c
    functionUses: 3
    functionsReached:
    - semanage_fcontext_dbase_policy
    - dbase_iterate
    linkageType: ''
    returnType: int
    signature: "int semanage_fcontext_iterate(semanage_handle_t *handle,\n\t\t\t      int
      (*handler)(const semanage_fcontext_t *record,\n\t\t\t\t\t     void *varg),\n\t\t\t
      \     void *handler_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fcontext_dbase_policy
      Src: /src/selinux/libsemanage/src/fcontexts_policy.c:46,1
    - Dst: dbase_list
      Src: /src/selinux/libsemanage/src/fcontexts_policy.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - records
    - count
    argTypes:
    - semanage_handle_t*
    - semanage_fcontext_t***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: semanage_fcontext_list
    functionSourceFile: /src/selinux/libsemanage/src/fcontexts_policy.c
    functionUses: 3
    functionsReached:
    - semanage_fcontext_dbase_policy
    - dbase_list
    linkageType: ''
    returnType: int
    signature: "int semanage_fcontext_list(semanage_handle_t *handle,\n\t\t\t   semanage_fcontext_t
      ***records, unsigned int *count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fcontext_dbase_homedirs
      Src: /src/selinux/libsemanage/src/fcontexts_policy.c:54,1
    - Dst: dbase_list
      Src: /src/selinux/libsemanage/src/fcontexts_policy.c:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - records
    - count
    argTypes:
    - semanage_handle_t*
    - semanage_fcontext_t***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: semanage_fcontext_list_homedirs
    functionSourceFile: /src/selinux/libsemanage/src/fcontexts_policy.c
    functionUses: 0
    functionsReached:
    - semanage_fcontext_dbase_homedirs
    - dbase_list
    linkageType: ''
    returnType: int
    signature: "int semanage_fcontext_list_homedirs(semanage_handle_t *handle,\n\t\t\t\t
      \   semanage_fcontext_t ***records,\n\t\t\t\t    unsigned int *count)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:51,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:55,1
    - Dst: semanage_begin_transaction
      Src: /src/selinux/libsemanage/src/modules.c:58,1
    - Dst: semanage_handle_t*::funcs::install
      Src: /src/selinux/libsemanage/src/modules.c:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - sh
    - module_data
    - data_len
    - name
    - ext_lang
    argTypes:
    - semanage_handle_t*
    - char*
    - size_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 64
    functionName: semanage_module_install
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_begin_transaction
    - semanage_handle_t*::funcs::install
    linkageType: ''
    returnType: int
    signature: "int semanage_module_install(semanage_handle_t *sh, char *module_data,\n\t\t\t
      \   size_t data_len, const char *name,\n\t\t\t    const char *ext_lang)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:69,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:73,1
    - Dst: semanage_begin_transaction
      Src: /src/selinux/libsemanage/src/modules.c:76,1
    - Dst: semanage_handle_t*::funcs::install_file
      Src: /src/selinux/libsemanage/src/modules.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - sh
    - module_name
    argTypes:
    - semanage_handle_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 82
    functionName: semanage_module_install_file
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 1
    functionsReached:
    - semanage_handle_t*::funcs::install_file
    - ERR
    - semanage_begin_transaction
    linkageType: ''
    returnType: int
    signature: int semanage_module_install_file(semanage_handle_t *sh, const char
      *module_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:90,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:93,1
    - Dst: semanage_handle_t*::funcs::extract
      Src: /src/selinux/libsemanage/src/modules.c:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - sh
    - modkey
    - extract_cil
    - mapped_data
    - data_len
    - modinfo
    argTypes:
    - semanage_handle_t*
    - semanage_module_key_t*
    - int
    - void**
    - size_t*
    - semanage_module_info_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 98
    functionName: semanage_module_extract
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 1
    functionsReached:
    - ERR
    - semanage_handle_t*::funcs::extract
    linkageType: ''
    returnType: int
    signature: "int semanage_module_extract(semanage_handle_t *sh,\n\t\t\t    semanage_module_key_t
      *modkey, int extract_cil,\n\t\t\t    void **mapped_data, size_t *data_len,\n\t\t\t
      \   semanage_module_info_t **modinfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_module_install_file
      Src: /src/selinux/libsemanage/src/modules.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sh
    - module_name
    argTypes:
    - semanage_handle_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: semanage_module_upgrade_file
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 0
    functionsReached:
    - semanage_module_install_file
    linkageType: ''
    returnType: int
    signature: int semanage_module_upgrade_file(semanage_handle_t *sh, const char
      *module_name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:111,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:114,1
    - Dst: semanage_begin_transaction
      Src: /src/selinux/libsemanage/src/modules.c:117,1
    - Dst: semanage_handle_t*::funcs::remove
      Src: /src/selinux/libsemanage/src/modules.c:122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - sh
    - module_name
    argTypes:
    - semanage_handle_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 123
    functionName: semanage_module_remove
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 1
    functionsReached:
    - semanage_handle_t*::funcs::remove
    - ERR
    - semanage_begin_transaction
    linkageType: ''
    returnType: int
    signature: int semanage_module_remove(semanage_handle_t *sh, char *module_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:129,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:132,1
    - Dst: semanage_handle_t*::funcs::list
      Src: /src/selinux/libsemanage/src/modules.c:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - sh
    - modinfo
    - num_modules
    argTypes:
    - semanage_handle_t*
    - semanage_module_info_t**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 136
    functionName: semanage_module_list
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 1
    functionsReached:
    - ERR
    - semanage_handle_t*::funcs::list
    linkageType: ''
    returnType: int
    signature: "int semanage_module_list(semanage_handle_t *sh,\n\t\t\t semanage_module_info_t
      **modinfo, int *num_modules)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsemanage/src/modules.c:143,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/modules.c:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - modinfo
    argTypes:
    - semanage_module_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 151
    functionName: semanage_module_info_datum_destroy
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void semanage_module_info_datum_destroy(semanage_module_info_t *modinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - list
    - n
    argTypes:
    - semanage_module_info_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: semanage_module_list_nth
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: semanage_module_info_t
    signature: "semanage_module_info_t *semanage_module_list_nth(semanage_module_info_t
      *list,\n\t\t\t\t\t\t int n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - modinfo
    argTypes:
    - semanage_module_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: semanage_module_get_name
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *semanage_module_get_name(semanage_module_info_t *modinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - modinfo
    argTypes:
    - semanage_module_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: semanage_module_get_version
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *semanage_module_get_version(semanage_module_info_t *modinfo\n\t\t\t\t\t__attribute__((unused)))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:177,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:178,1
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/modules.c:180,1
    - Dst: semanage_module_info_init
      Src: /src/selinux/libsemanage/src/modules.c:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sh
    - modinfo
    argTypes:
    - semanage_handle_t*
    - semanage_module_info_t**
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (modinfo)
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/selinux/libsemanage/src/modules.c
    constantsTouched: []
    func_position:
      end: 185
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 185
    functionName: semanage_module_info_create
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 2
    functionsReached:
    - malloc
    - assert
    - semanage_module_info_init
    linkageType: ''
    returnType: int
    signature: "int semanage_module_info_create(semanage_handle_t *sh,\n\t\t\t\tsemanage_module_info_t
      **modinfo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:190,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/modules.c:196,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/modules.c:197,1
    - Dst: semanage_module_info_init
      Src: /src/selinux/libsemanage/src/modules.c:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sh
    - modinfo
    argTypes:
    - semanage_handle_t*
    - semanage_module_info_t*
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/selinux/libsemanage/src/modules.c
    constantsTouched: []
    func_position:
      end: 200
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 200
    functionName: semanage_module_info_destroy
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 14
    functionsReached:
    - free
    - assert
    - semanage_module_info_init
    linkageType: ''
    returnType: int
    signature: "int semanage_module_info_destroy(semanage_handle_t *sh,\n\t\t\t\t
      semanage_module_info_t *modinfo)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:205,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - sh
    - modinfo
    argTypes:
    - semanage_handle_t*
    - semanage_module_info_t*
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (modinfo)
      pos:
        line_end: 205
        line_start: 205
        source_file: /src/selinux/libsemanage/src/modules.c
    constantsTouched: []
    func_position:
      end: 214
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 214
    functionName: semanage_module_info_init
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 4
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int semanage_module_info_init(semanage_handle_t *sh,\n\t\t\t      semanage_module_info_t
      *modinfo)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:220,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:221,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:222,1
    - Dst: semanage_module_info_destroy
      Src: /src/selinux/libsemanage/src/modules.c:227,1
    - Dst: semanage_module_info_set_priority
      Src: /src/selinux/libsemanage/src/modules.c:233,1
    - Dst: semanage_module_info_set_name
      Src: /src/selinux/libsemanage/src/modules.c:239,1
    - Dst: semanage_module_info_set_lang_ext
      Src: /src/selinux/libsemanage/src/modules.c:245,1
    - Dst: semanage_module_info_set_enabled
      Src: /src/selinux/libsemanage/src/modules.c:251,1
    - Dst: semanage_module_info_destroy
      Src: /src/selinux/libsemanage/src/modules.c:259,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 3
    argNames:
    - sh
    - source
    - target
    argTypes:
    - semanage_handle_t*
    - semanage_module_info_t*
    - semanage_module_info_t*
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 219
        line_start: 219
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (source)
      pos:
        line_end: 220
        line_start: 220
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (target)
      pos:
        line_end: 221
        line_start: 221
        source_file: /src/selinux/libsemanage/src/modules.c
    constantsTouched: []
    func_position:
      end: 261
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 261
    functionName: semanage_module_info_clone
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 3
    functionsReached:
    - semanage_module_info_destroy
    - semanage_module_info_set_enabled
    - assert
    - semanage_module_info_set_priority
    - semanage_module_info_set_name
    - semanage_module_info_set_lang_ext
    linkageType: ''
    returnType: int
    signature: "int semanage_module_info_clone(semanage_handle_t *sh,\n\t\t\t       const
      semanage_module_info_t *source,\n\t\t\t       semanage_module_info_t *target)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:267,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:268,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - sh
    - modinfo
    - priority
    argTypes:
    - semanage_handle_t*
    - semanage_module_info_t*
    - uint16_t*
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (priority)
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (modinfo)
      pos:
        line_end: 267
        line_start: 267
        source_file: /src/selinux/libsemanage/src/modules.c
    constantsTouched: []
    func_position:
      end: 274
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 274
    functionName: semanage_module_info_get_priority
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int semanage_module_info_get_priority(semanage_handle_t *sh,\n\t\t\t\t
      \     semanage_module_info_t *modinfo,\n\t\t\t\t      uint16_t *priority)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:280,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:281,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - sh
    - modinfo
    - name
    argTypes:
    - semanage_handle_t*
    - semanage_module_info_t*
    - char**
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (name)
      pos:
        line_end: 281
        line_start: 281
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (modinfo)
      pos:
        line_end: 280
        line_start: 280
        source_file: /src/selinux/libsemanage/src/modules.c
    constantsTouched: []
    func_position:
      end: 287
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 287
    functionName: semanage_module_info_get_name
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int semanage_module_info_get_name(semanage_handle_t *sh,\n\t\t\t\t
      \ semanage_module_info_t *modinfo,\n\t\t\t\t  const char **name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:293,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:294,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - sh
    - modinfo
    - lang_ext
    argTypes:
    - semanage_handle_t*
    - semanage_module_info_t*
    - char**
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 292
        line_start: 292
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (modinfo)
      pos:
        line_end: 293
        line_start: 293
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (lang_ext)
      pos:
        line_end: 294
        line_start: 294
        source_file: /src/selinux/libsemanage/src/modules.c
    constantsTouched: []
    func_position:
      end: 300
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 300
    functionName: semanage_module_info_get_lang_ext
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int semanage_module_info_get_lang_ext(semanage_handle_t *sh,\n\t\t\t\t
      \     semanage_module_info_t *modinfo,\n\t\t\t\t      const char **lang_ext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:306,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:307,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - sh
    - modinfo
    - enabled
    argTypes:
    - semanage_handle_t*
    - semanage_module_info_t*
    - int*
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 305
        line_start: 305
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (enabled)
      pos:
        line_end: 307
        line_start: 307
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (modinfo)
      pos:
        line_end: 306
        line_start: 306
        source_file: /src/selinux/libsemanage/src/modules.c
    constantsTouched: []
    func_position:
      end: 313
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 313
    functionName: semanage_module_info_get_enabled
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int semanage_module_info_get_enabled(semanage_handle_t *sh,\n\t\t\t\t
      \    semanage_module_info_t *modinfo,\n\t\t\t\t     int *enabled)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:319,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:320,1
    - Dst: semanage_module_validate_priority
      Src: /src/selinux/libsemanage/src/modules.c:323,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - sh
    - modinfo
    - priority
    argTypes:
    - semanage_handle_t*
    - semanage_module_info_t*
    - uint16_t
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 318
        line_start: 318
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (modinfo)
      pos:
        line_end: 319
        line_start: 319
        source_file: /src/selinux/libsemanage/src/modules.c
    constantsTouched: []
    func_position:
      end: 332
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 332
    functionName: semanage_module_info_set_priority
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 5
    functionsReached:
    - semanage_module_validate_priority
    - ERR
    - assert
    linkageType: ''
    returnType: int
    signature: "int semanage_module_info_set_priority(semanage_handle_t *sh,\n\t\t\t\t
      \     semanage_module_info_t *modinfo,\n\t\t\t\t      uint16_t priority)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:338,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:339,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:340,1
    - Dst: semanage_module_validate_name
      Src: /src/selinux/libsemanage/src/modules.c:345,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:347,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/modules.c:351,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:353,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/modules.c:357,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - sh
    - modinfo
    - name
    argTypes:
    - semanage_handle_t*
    - semanage_module_info_t*
    - char*
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 337
        line_start: 337
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (name)
      pos:
        line_end: 339
        line_start: 339
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (modinfo)
      pos:
        line_end: 338
        line_start: 338
        source_file: /src/selinux/libsemanage/src/modules.c
    constantsTouched: []
    func_position:
      end: 361
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 361
    functionName: semanage_module_info_set_name
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 4
    functionsReached:
    - ERR
    - assert
    - free
    - semanage_module_validate_name
    - strdup
    linkageType: ''
    returnType: int
    signature: "int semanage_module_info_set_name(semanage_handle_t *sh,\n\t\t\t\t
      \ semanage_module_info_t *modinfo,\n\t\t\t\t  const char *name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:367,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:368,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:369,1
    - Dst: semanage_module_validate_lang_ext
      Src: /src/selinux/libsemanage/src/modules.c:374,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:376,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/modules.c:380,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:382,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/modules.c:386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - sh
    - modinfo
    - lang_ext
    argTypes:
    - semanage_handle_t*
    - semanage_module_info_t*
    - char*
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 366
        line_start: 366
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (modinfo)
      pos:
        line_end: 367
        line_start: 367
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (lang_ext)
      pos:
        line_end: 368
        line_start: 368
        source_file: /src/selinux/libsemanage/src/modules.c
    constantsTouched: []
    func_position:
      end: 390
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 390
    functionName: semanage_module_info_set_lang_ext
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 3
    functionsReached:
    - ERR
    - semanage_module_validate_lang_ext
    - assert
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int semanage_module_info_set_lang_ext(semanage_handle_t *sh,\n\t\t\t\t
      \     semanage_module_info_t *modinfo,\n\t\t\t\t      const char *lang_ext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:396,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:397,1
    - Dst: semanage_module_validate_enabled
      Src: /src/selinux/libsemanage/src/modules.c:400,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - sh
    - modinfo
    - enabled
    argTypes:
    - semanage_handle_t*
    - semanage_module_info_t*
    - int
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 395
        line_start: 395
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (modinfo)
      pos:
        line_end: 396
        line_start: 396
        source_file: /src/selinux/libsemanage/src/modules.c
    constantsTouched: []
    func_position:
      end: 409
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 409
    functionName: semanage_module_info_set_enabled
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 3
    functionsReached:
    - semanage_module_validate_enabled
    - ERR
    - assert
    linkageType: ''
    returnType: int
    signature: "int semanage_module_info_set_enabled(semanage_handle_t *sh,\n\t\t\t\t
      \    semanage_module_info_t *modinfo,\n\t\t\t\t     int enabled)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:416,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:417,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:418,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/modules.c:427,1
    - Dst: semanage_path
      Src: /src/selinux/libsemanage/src/modules.c:428,1
    - Dst: semanage_module_validate_priority
      Src: /src/selinux/libsemanage/src/modules.c:433,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:436,1
    - Dst: snprintf
      Src: /src/selinux/libsemanage/src/modules.c:441,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:444,1
    - Dst: semanage_module_validate_priority
      Src: /src/selinux/libsemanage/src/modules.c:451,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:454,1
    - Dst: semanage_module_validate_name
      Src: /src/selinux/libsemanage/src/modules.c:459,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:462,1
    - Dst: snprintf
      Src: /src/selinux/libsemanage/src/modules.c:467,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:470,1
    - Dst: semanage_module_validate_priority
      Src: /src/selinux/libsemanage/src/modules.c:488,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:491,1
    - Dst: semanage_module_validate_name
      Src: /src/selinux/libsemanage/src/modules.c:496,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:499,1
    - Dst: snprintf
      Src: /src/selinux/libsemanage/src/modules.c:504,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:507,1
    - Dst: semanage_module_validate_name
      Src: /src/selinux/libsemanage/src/modules.c:514,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:517,1
    - Dst: snprintf
      Src: /src/selinux/libsemanage/src/modules.c:522,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:525,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:531,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 107
    argCount: 5
    argNames:
    - sh
    - modinfo
    - type
    - path
    - len
    argTypes:
    - semanage_handle_t*
    - semanage_module_info_t*
    - enum semanage_module_path_type
    - char*
    - size_t
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 415
        line_start: 415
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (path)
      pos:
        line_end: 417
        line_start: 417
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (modinfo)
      pos:
        line_end: 416
        line_start: 416
        source_file: /src/selinux/libsemanage/src/modules.c
    constantsTouched: []
    func_position:
      end: 538
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 538
    functionName: semanage_module_get_path
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 12
    functionsReached:
    - ERR
    - snprintf
    - semanage_path
    - assert
    - semanage_module_validate_priority
    - semanage_module_validate_name
    linkageType: ''
    returnType: int
    signature: "int semanage_module_get_path(semanage_handle_t *sh,\n\t\t\t     const
      semanage_module_info_t *modinfo,\n\t\t\t     enum semanage_module_path_type
      type, char *path,\n\t\t\t     size_t len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:543,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:544,1
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/modules.c:546,1
    - Dst: semanage_module_key_init
      Src: /src/selinux/libsemanage/src/modules.c:550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sh
    - modkey
    argTypes:
    - semanage_handle_t*
    - semanage_module_key_t**
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 542
        line_start: 542
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (modkey)
      pos:
        line_end: 543
        line_start: 543
        source_file: /src/selinux/libsemanage/src/modules.c
    constantsTouched: []
    func_position:
      end: 551
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 551
    functionName: semanage_module_key_create
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 2
    functionsReached:
    - malloc
    - assert
    - semanage_module_key_init
    linkageType: ''
    returnType: int
    signature: "int semanage_module_key_create(semanage_handle_t *sh,\n\t\t\t       semanage_module_key_t
      **modkey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:556,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/modules.c:562,1
    - Dst: semanage_module_key_init
      Src: /src/selinux/libsemanage/src/modules.c:564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sh
    - modkey
    argTypes:
    - semanage_handle_t*
    - semanage_module_key_t*
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 555
        line_start: 555
        source_file: /src/selinux/libsemanage/src/modules.c
    constantsTouched: []
    func_position:
      end: 565
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 565
    functionName: semanage_module_key_destroy
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 6
    functionsReached:
    - free
    - assert
    - semanage_module_key_init
    linkageType: ''
    returnType: int
    signature: "int semanage_module_key_destroy(semanage_handle_t *sh,\n\t\t\t\tsemanage_module_key_t
      *modkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:570,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - sh
    - modkey
    argTypes:
    - semanage_handle_t*
    - semanage_module_key_t*
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 569
        line_start: 569
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (modkey)
      pos:
        line_end: 570
        line_start: 570
        source_file: /src/selinux/libsemanage/src/modules.c
    constantsTouched: []
    func_position:
      end: 577
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 577
    functionName: semanage_module_key_init
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 6
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int semanage_module_key_init(semanage_handle_t *sh,\n\t\t\t     semanage_module_key_t
      *modkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:583,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:584,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - sh
    - modkey
    - name
    argTypes:
    - semanage_handle_t*
    - semanage_module_key_t*
    - char**
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 582
        line_start: 582
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (name)
      pos:
        line_end: 584
        line_start: 584
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (modkey)
      pos:
        line_end: 583
        line_start: 583
        source_file: /src/selinux/libsemanage/src/modules.c
    constantsTouched: []
    func_position:
      end: 590
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 590
    functionName: semanage_module_key_get_name
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int semanage_module_key_get_name(semanage_handle_t *sh,\n\t\t\t\t
      semanage_module_key_t *modkey,\n\t\t\t\t const char **name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:596,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:597,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - sh
    - modkey
    - priority
    argTypes:
    - semanage_handle_t*
    - semanage_module_key_t*
    - uint16_t*
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 595
        line_start: 595
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (modkey)
      pos:
        line_end: 596
        line_start: 596
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (priority)
      pos:
        line_end: 597
        line_start: 597
        source_file: /src/selinux/libsemanage/src/modules.c
    constantsTouched: []
    func_position:
      end: 603
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 603
    functionName: semanage_module_key_get_priority
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: int
    signature: "int semanage_module_key_get_priority(semanage_handle_t *sh,\n\t\t\t\t
      \    semanage_module_key_t *modkey,\n\t\t\t\t     uint16_t *priority)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:609,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:610,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:611,1
    - Dst: semanage_module_validate_name
      Src: /src/selinux/libsemanage/src/modules.c:616,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:618,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/modules.c:622,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:624,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/modules.c:629,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - sh
    - modkey
    - name
    argTypes:
    - semanage_handle_t*
    - semanage_module_key_t*
    - char*
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 608
        line_start: 608
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (name)
      pos:
        line_end: 610
        line_start: 610
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (modkey)
      pos:
        line_end: 609
        line_start: 609
        source_file: /src/selinux/libsemanage/src/modules.c
    constantsTouched: []
    func_position:
      end: 634
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 634
    functionName: semanage_module_key_set_name
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 6
    functionsReached:
    - ERR
    - assert
    - free
    - semanage_module_validate_name
    - strdup
    linkageType: ''
    returnType: int
    signature: "int semanage_module_key_set_name(semanage_handle_t *sh,\n\t\t\t\t
      semanage_module_key_t *modkey,\n\t\t\t\t const char *name)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:640,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:641,1
    - Dst: semanage_module_validate_priority
      Src: /src/selinux/libsemanage/src/modules.c:643,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - sh
    - modkey
    - priority
    argTypes:
    - semanage_handle_t*
    - semanage_module_key_t*
    - uint16_t
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 639
        line_start: 639
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (modkey)
      pos:
        line_end: 640
        line_start: 640
        source_file: /src/selinux/libsemanage/src/modules.c
    constantsTouched: []
    func_position:
      end: 652
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 652
    functionName: semanage_module_key_set_priority
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 3
    functionsReached:
    - semanage_module_validate_priority
    - ERR
    - assert
    linkageType: ''
    returnType: int
    signature: "int semanage_module_key_set_priority(semanage_handle_t *sh,\n\t\t\t\t
      \    semanage_module_key_t *modkey,\n\t\t\t\t     uint16_t priority)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:658,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:659,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:660,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:663,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:667,1
    - Dst: semanage_handle_t*::funcs::get_enabled
      Src: /src/selinux/libsemanage/src/modules.c:671,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - sh
    - modkey
    - enabled
    argTypes:
    - semanage_handle_t*
    - semanage_module_key_t*
    - int*
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 657
        line_start: 657
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (enabled)
      pos:
        line_end: 659
        line_start: 659
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (modkey)
      pos:
        line_end: 658
        line_start: 658
        source_file: /src/selinux/libsemanage/src/modules.c
    constantsTouched: []
    func_position:
      end: 672
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 672
    functionName: semanage_module_get_enabled
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 0
    functionsReached:
    - semanage_handle_t*::funcs::get_enabled
    - ERR
    - assert
    linkageType: ''
    returnType: int
    signature: "int semanage_module_get_enabled(semanage_handle_t *sh,\n\t\t\t\tconst
      semanage_module_key_t *modkey,\n\t\t\t\tint *enabled)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:678,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:679,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:682,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:686,1
    - Dst: semanage_begin_transaction
      Src: /src/selinux/libsemanage/src/modules.c:689,1
    - Dst: semanage_handle_t*::funcs::set_enabled
      Src: /src/selinux/libsemanage/src/modules.c:695,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - sh
    - modkey
    - enabled
    argTypes:
    - semanage_handle_t*
    - semanage_module_key_t*
    - int
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 677
        line_start: 677
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (modkey)
      pos:
        line_end: 678
        line_start: 678
        source_file: /src/selinux/libsemanage/src/modules.c
    constantsTouched: []
    func_position:
      end: 696
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 696
    functionName: semanage_module_set_enabled
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 2
    functionsReached:
    - ERR
    - semanage_begin_transaction
    - semanage_handle_t*::funcs::set_enabled
    - assert
    linkageType: ''
    returnType: int
    signature: "int semanage_module_set_enabled(semanage_handle_t *sh,\n\t\t\t\tconst
      semanage_module_key_t *modkey,\n\t\t\t\tint enabled)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/selinux/libsemanage/src/modules.c:715,1
    - Dst: semanage_module_validate_priority
      Src: /src/selinux/libsemanage/src/modules.c:722,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - str
    - priority
    argTypes:
    - char*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 731
    functionName: semanage_string_to_priority
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 1
    functionsReached:
    - semanage_module_validate_priority
    - strtoul
    linkageType: ''
    returnType: int
    signature: int semanage_string_to_priority(const char *str, uint16_t *priority)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semanage_module_validate_priority
      Src: /src/selinux/libsemanage/src/modules.c:739,1
    - Dst: semanage_module_validate_name
      Src: /src/selinux/libsemanage/src/modules.c:740,1
    - Dst: semanage_module_validate_lang_ext
      Src: /src/selinux/libsemanage/src/modules.c:741,1
    - Dst: semanage_module_validate_enabled
      Src: /src/selinux/libsemanage/src/modules.c:742,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - modinfo
    argTypes:
    - semanage_module_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 746
    functionName: semanage_module_info_validate
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 2
    functionsReached:
    - semanage_module_validate_priority
    - semanage_module_validate_enabled
    - semanage_module_validate_name
    - semanage_module_validate_lang_ext
    linkageType: ''
    returnType: int
    signature: int semanage_module_info_validate(const semanage_module_info_t *modinfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - priority
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 762
    functionName: semanage_module_validate_priority
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int semanage_module_validate_priority(uint16_t priority)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isalpha
      Src: /src/selinux/libsemanage/src/modules.c:782,1
    - Dst: ISVALIDCHAR
      Src: /src/selinux/libsemanage/src/modules.c:790,1
    - Dst: ISVALIDCHAR
      Src: /src/selinux/libsemanage/src/modules.c:793,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 773
    functionDepth: 1
    functionLinenumber: 773
    functionLinenumberEnd: 804
    functionName: semanage_module_validate_name
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 7
    functionsReached:
    - ISVALIDCHAR
    - isalpha
    linkageType: ''
    returnType: int
    signature: int semanage_module_validate_name(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 788
    functionName: ISVALIDCHAR
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISVALIDCHAR(c)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - enabled
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 819
    functionName: semanage_module_validate_enabled
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int semanage_module_validate_enabled(int enabled)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/selinux/libsemanage/src/modules.c:839,1
    - Dst: ISVALIDCHAR
      Src: /src/selinux/libsemanage/src/modules.c:847,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - ext
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 858
    functionName: semanage_module_validate_lang_ext
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 2
    functionsReached:
    - ISVALIDCHAR
    - isalnum
    linkageType: ''
    returnType: int
    signature: int semanage_module_validate_lang_ext(const char *ext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 845
    functionName: ISVALIDCHAR
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ISVALIDCHAR(c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:864,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:865,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:866,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:869,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:873,1
    - Dst: semanage_handle_t*::funcs::get_module_info
      Src: /src/selinux/libsemanage/src/modules.c:877,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - sh
    - modkey
    - modinfo
    argTypes:
    - semanage_handle_t*
    - semanage_module_key_t*
    - semanage_module_info_t**
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 863
        line_start: 863
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (modinfo)
      pos:
        line_end: 865
        line_start: 865
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (modkey)
      pos:
        line_end: 864
        line_start: 864
        source_file: /src/selinux/libsemanage/src/modules.c
    constantsTouched: []
    func_position:
      end: 878
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 878
    functionName: semanage_module_get_module_info
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 6
    functionsReached:
    - ERR
    - semanage_handle_t*::funcs::get_module_info
    - assert
    linkageType: ''
    returnType: int
    signature: "int semanage_module_get_module_info(semanage_handle_t *sh,\n\t\t\t\t
      \   const semanage_module_key_t *modkey,\n\t\t\t\t    semanage_module_info_t
      **modinfo)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:884,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:885,1
    - Dst: assert
      Src: /src/selinux/libsemanage/src/modules.c:886,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:889,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:893,1
    - Dst: semanage_handle_t*::funcs::list_all
      Src: /src/selinux/libsemanage/src/modules.c:897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - sh
    - modinfos
    - modinfos_len
    argTypes:
    - semanage_handle_t*
    - semanage_module_info_t**
    - int*
    assertStmts:
    - condition: (sh)
      pos:
        line_end: 883
        line_start: 883
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (modinfos_len)
      pos:
        line_end: 885
        line_start: 885
        source_file: /src/selinux/libsemanage/src/modules.c
    - condition: (modinfos)
      pos:
        line_end: 884
        line_start: 884
        source_file: /src/selinux/libsemanage/src/modules.c
    constantsTouched: []
    func_position:
      end: 898
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 898
    functionName: semanage_module_list_all
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 2
    functionsReached:
    - semanage_handle_t*::funcs::list_all
    - ERR
    - assert
    linkageType: ''
    returnType: int
    signature: "int semanage_module_list_all(semanage_handle_t *sh,\n\t\t\t     semanage_module_info_t
      **modinfos,\n\t\t\t     int *modinfos_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:905,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:909,1
    - Dst: semanage_begin_transaction
      Src: /src/selinux/libsemanage/src/modules.c:912,1
    - Dst: semanage_handle_t*::funcs::install_info
      Src: /src/selinux/libsemanage/src/modules.c:917,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - sh
    - modinfo
    - data
    - data_len
    argTypes:
    - semanage_handle_t*
    - semanage_module_info_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 918
    functionName: semanage_module_install_info
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_handle_t*::funcs::install_info
    - semanage_begin_transaction
    linkageType: ''
    returnType: int
    signature: "int semanage_module_install_info(semanage_handle_t *sh,\n\t\t\t\t
      const semanage_module_info_t *modinfo,\n\t\t\t\t char *data, size_t data_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:924,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/modules.c:928,1
    - Dst: semanage_begin_transaction
      Src: /src/selinux/libsemanage/src/modules.c:931,1
    - Dst: semanage_handle_t*::funcs::remove_key
      Src: /src/selinux/libsemanage/src/modules.c:936,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - sh
    - modkey
    argTypes:
    - semanage_handle_t*
    - semanage_module_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 920
    functionDepth: 1
    functionLinenumber: 920
    functionLinenumberEnd: 937
    functionName: semanage_module_remove_key
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_handle_t*::funcs::remove_key
    - semanage_begin_transaction
    linkageType: ''
    returnType: int
    signature: "int semanage_module_remove_key(semanage_handle_t *sh,\n\t\t\t       const
      semanage_module_key_t *modkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/selinux/libsemanage/src/modules.c:947,1
    - Dst: sprintf
      Src: /src/selinux/libsemanage/src/modules.c:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - hash
    - checksum
    argTypes:
    - uint8_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 951
    functionName: semanage_hash_to_checksum_string
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 1
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: void
    signature: void semanage_hash_to_checksum_string(const uint8_t *hash, char *checksum)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: semanage_module_extract
      Src: /src/selinux/libsemanage/src/modules.c:972,1
    - Dst: semanage_module_info_destroy
      Src: /src/selinux/libsemanage/src/modules.c:977,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/modules.c:978,1
    - Dst: Sha256Calculate
      Src: /src/selinux/libsemanage/src/modules.c:980,1
    - Dst: munmap
      Src: /src/selinux/libsemanage/src/modules.c:982,1
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/modules.c:984,1
    - Dst: semanage_hash_to_checksum_string
      Src: /src/selinux/libsemanage/src/modules.c:988,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 5
    argNames:
    - sh
    - modkey
    - cil
    - checksum
    - checksum_len
    argTypes:
    - semanage_handle_t*
    - semanage_module_key_t*
    - int
    - char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 953
    functionDepth: 2
    functionLinenumber: 953
    functionLinenumberEnd: 993
    functionName: semanage_module_compute_checksum
    functionSourceFile: /src/selinux/libsemanage/src/modules.c
    functionUses: 2
    functionsReached:
    - munmap
    - semanage_module_extract
    - semanage_module_info_destroy
    - malloc
    - Sha256Calculate
    - semanage_hash_to_checksum_string
    - free
    linkageType: ''
    returnType: int
    signature: "int semanage_module_compute_checksum(semanage_handle_t *sh,\n\t\t\t\t
      \    semanage_module_key_t *modkey, int cil,\n\t\t\t\t     char **checksum,
      size_t *checksum_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database.c:12,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - handle
    - dconfig
    argTypes:
    - semanage_handle_t*
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 19
    functionName: assert_init
    functionSourceFile: /src/selinux/libsemanage/src/database.c
    functionUses: 0
    functionsReached:
    - ERR
    linkageType: ''
    returnType: int
    signature: int assert_init(semanage_handle_t *handle, const dbase_config_t *dconfig)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert_init
      Src: /src/selinux/libsemanage/src/database.c:23,1
    - Dst: semanage_get_active_lock
      Src: /src/selinux/libsemanage/src/database.c:28,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database.c:29,1
    - Dst: dbase_config_t*::dtable::cache
      Src: /src/selinux/libsemanage/src/database.c:34,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database.c:40,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - handle
    - dconfig
    argTypes:
    - semanage_handle_t*
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 42
    functionName: enter_ro
    functionSourceFile: /src/selinux/libsemanage/src/database.c
    functionUses: 0
    functionsReached:
    - semanage_get_active_lock
    - ERR
    - dbase_config_t*::dtable::cache
    - assert_init
    linkageType: ''
    returnType: int
    signature: int enter_ro(semanage_handle_t *handle, dbase_config_t *dconfig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semanage_handle_t*::funcs::get_serial
      Src: /src/selinux/libsemanage/src/database.c:46,1
    - Dst: semanage_release_active_lock
      Src: /src/selinux/libsemanage/src/database.c:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 53
    functionName: exit_ro
    functionSourceFile: /src/selinux/libsemanage/src/database.c
    functionUses: 0
    functionsReached:
    - semanage_handle_t*::funcs::get_serial
    - semanage_release_active_lock
    linkageType: ''
    returnType: int
    signature: int exit_ro(semanage_handle_t *handle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert_init
      Src: /src/selinux/libsemanage/src/database.c:57,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database.c:61,1
    - Dst: dbase_config_t*::dtable::cache
      Src: /src/selinux/libsemanage/src/database.c:65,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database.c:71,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - handle
    - dconfig
    argTypes:
    - semanage_handle_t*
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 73
    functionName: enter_rw
    functionSourceFile: /src/selinux/libsemanage/src/database.c
    functionUses: 0
    functionsReached:
    - ERR
    - dbase_config_t*::dtable::cache
    - assert_init
    linkageType: ''
    returnType: int
    signature: int enter_rw(semanage_handle_t *handle, dbase_config_t *dconfig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: enter_rw
      Src: /src/selinux/libsemanage/src/database.c:78,1
    - Dst: dbase_config_t*::dtable::modify
      Src: /src/selinux/libsemanage/src/database.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - handle
    - dconfig
    - key
    - data
    argTypes:
    - semanage_handle_t*
    - dbase_config_t*
    - record_key_t*
    - record_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 85
    functionName: dbase_modify
    functionSourceFile: /src/selinux/libsemanage/src/database.c
    functionUses: 7
    functionsReached:
    - dbase_config_t*::dtable::modify
    - enter_rw
    linkageType: ''
    returnType: int
    signature: "int dbase_modify(semanage_handle_t *handle, dbase_config_t *dconfig,\n\t\t
      const record_key_t *key, const record_t *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: enter_rw
      Src: /src/selinux/libsemanage/src/database.c:90,1
    - Dst: dbase_config_t*::dtable::set
      Src: /src/selinux/libsemanage/src/database.c:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - handle
    - dconfig
    - key
    - data
    argTypes:
    - semanage_handle_t*
    - dbase_config_t*
    - record_key_t*
    - record_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: dbase_set
    functionSourceFile: /src/selinux/libsemanage/src/database.c
    functionUses: 0
    functionsReached:
    - dbase_config_t*::dtable::set
    - enter_rw
    linkageType: ''
    returnType: int
    signature: "int dbase_set(semanage_handle_t *handle, dbase_config_t *dconfig,\n\t
      \     const record_key_t *key, const record_t *data)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: enter_rw
      Src: /src/selinux/libsemanage/src/database.c:102,1
    - Dst: dbase_config_t*::dtable::del
      Src: /src/selinux/libsemanage/src/database.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - handle
    - dconfig
    - key
    argTypes:
    - semanage_handle_t*
    - dbase_config_t*
    - record_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 109
    functionName: dbase_del
    functionSourceFile: /src/selinux/libsemanage/src/database.c
    functionUses: 7
    functionsReached:
    - dbase_config_t*::dtable::del
    - enter_rw
    linkageType: ''
    returnType: int
    signature: "int dbase_del(semanage_handle_t *handle, dbase_config_t *dconfig,\n\t
      \     const record_key_t *key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: enter_ro
      Src: /src/selinux/libsemanage/src/database.c:114,1
    - Dst: dbase_config_t*::dtable::query
      Src: /src/selinux/libsemanage/src/database.c:117,1
    - Dst: exit_ro
      Src: /src/selinux/libsemanage/src/database.c:118,1
    - Dst: exit_ro
      Src: /src/selinux/libsemanage/src/database.c:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - handle
    - dconfig
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - dbase_config_t*
    - record_key_t*
    - record_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 123
    functionName: dbase_query
    functionSourceFile: /src/selinux/libsemanage/src/database.c
    functionUses: 13
    functionsReached:
    - exit_ro
    - dbase_config_t*::dtable::query
    - enter_ro
    linkageType: ''
    returnType: int
    signature: "int dbase_query(semanage_handle_t *handle, dbase_config_t *dconfig,\n\t\tconst
      record_key_t *key, record_t **response)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: enter_ro
      Src: /src/selinux/libsemanage/src/database.c:128,1
    - Dst: dbase_config_t*::dtable::exists
      Src: /src/selinux/libsemanage/src/database.c:131,1
    - Dst: exit_ro
      Src: /src/selinux/libsemanage/src/database.c:133,1
    - Dst: exit_ro
      Src: /src/selinux/libsemanage/src/database.c:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - handle
    - dconfig
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - dbase_config_t*
    - record_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 138
    functionName: dbase_exists
    functionSourceFile: /src/selinux/libsemanage/src/database.c
    functionUses: 13
    functionsReached:
    - exit_ro
    - dbase_config_t*::dtable::exists
    - enter_ro
    linkageType: ''
    returnType: int
    signature: "int dbase_exists(semanage_handle_t *handle, dbase_config_t *dconfig,\n\t\t
      const record_key_t *key, int *response)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: enter_ro
      Src: /src/selinux/libsemanage/src/database.c:143,1
    - Dst: dbase_config_t*::dtable::count
      Src: /src/selinux/libsemanage/src/database.c:146,1
    - Dst: exit_ro
      Src: /src/selinux/libsemanage/src/database.c:147,1
    - Dst: exit_ro
      Src: /src/selinux/libsemanage/src/database.c:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - dconfig
    - response
    argTypes:
    - semanage_handle_t*
    - dbase_config_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 152
    functionName: dbase_count
    functionSourceFile: /src/selinux/libsemanage/src/database.c
    functionUses: 13
    functionsReached:
    - dbase_config_t*::dtable::count
    - exit_ro
    - enter_ro
    linkageType: ''
    returnType: int
    signature: "int dbase_count(semanage_handle_t *handle, dbase_config_t *dconfig,\n\t\tunsigned
      int *response)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: enter_ro
      Src: /src/selinux/libsemanage/src/database.c:157,1
    - Dst: dbase_config_t*::dtable::iterate
      Src: /src/selinux/libsemanage/src/database.c:160,1
    - Dst: exit_ro
      Src: /src/selinux/libsemanage/src/database.c:161,1
    - Dst: exit_ro
      Src: /src/selinux/libsemanage/src/database.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - dconfig
    - fn_arg
    argTypes:
    - semanage_handle_t*
    - dbase_config_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 166
    functionName: dbase_iterate
    functionSourceFile: /src/selinux/libsemanage/src/database.c
    functionUses: 13
    functionsReached:
    - exit_ro
    - enter_ro
    - dbase_config_t*::dtable::iterate
    linkageType: ''
    returnType: int
    signature: "int dbase_iterate(semanage_handle_t *handle, dbase_config_t *dconfig,\n\t\t
      \ int (*fn)(const record_t *record, void *fn_arg), void *fn_arg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: enter_ro
      Src: /src/selinux/libsemanage/src/database.c:171,1
    - Dst: dbase_config_t*::dtable::list
      Src: /src/selinux/libsemanage/src/database.c:174,1
    - Dst: exit_ro
      Src: /src/selinux/libsemanage/src/database.c:175,1
    - Dst: exit_ro
      Src: /src/selinux/libsemanage/src/database.c:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - handle
    - dconfig
    - records
    - count
    argTypes:
    - semanage_handle_t*
    - dbase_config_t*
    - record_t***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 180
    functionName: dbase_list
    functionSourceFile: /src/selinux/libsemanage/src/database.c
    functionUses: 14
    functionsReached:
    - exit_ro
    - enter_ro
    - dbase_config_t*::dtable::list
    linkageType: ''
    returnType: int
    signature: "int dbase_list(semanage_handle_t *handle, dbase_config_t *dconfig,\n\t
      \      record_t ***records, unsigned int *count)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: dbase_llist_get_rtable
      Src: /src/selinux/libsemanage/src/database_join.c:43,1
    - Dst: dbase_table_t*::get_rtable
      Src: /src/selinux/libsemanage/src/database_join.c:45,1
    - Dst: dbase_table_t*::get_rtable
      Src: /src/selinux/libsemanage/src/database_join.c:46,1
    - Dst: dbase_llist_needs_resync
      Src: /src/selinux/libsemanage/src/database_join.c:55,1
    - Dst: dbase_llist_cache_init
      Src: /src/selinux/libsemanage/src/database_join.c:59,1
    - Dst: dbase_llist_set_serial
      Src: /src/selinux/libsemanage/src/database_join.c:60,1
    - Dst: dbase_table_t*::cache
      Src: /src/selinux/libsemanage/src/database_join.c:66,1
    - Dst: dbase_table_t*::cache
      Src: /src/selinux/libsemanage/src/database_join.c:68,1
    - Dst: dbase_table_t*::list
      Src: /src/selinux/libsemanage/src/database_join.c:72,1
    - Dst: dbase_table_t*::list
      Src: /src/selinux/libsemanage/src/database_join.c:74,1
    - Dst: qsort
      Src: /src/selinux/libsemanage/src/database_join.c:79,1
    - Dst: qsort
      Src: /src/selinux/libsemanage/src/database_join.c:83,1
    - Dst: record_table_t*::key_extract
      Src: /src/selinux/libsemanage/src/database_join.c:99,1
    - Dst: record_table_t*::compare
      Src: /src/selinux/libsemanage/src/database_join.c:103,1
    - Dst: record_table_t*::key_free
      Src: /src/selinux/libsemanage/src/database_join.c:105,1
    - Dst: record_join_table_t*::join
      Src: /src/selinux/libsemanage/src/database_join.c:111,1
    - Dst: record_join_table_t*::join
      Src: /src/selinux/libsemanage/src/database_join.c:119,1
    - Dst: record_join_table_t*::join
      Src: /src/selinux/libsemanage/src/database_join.c:127,1
    - Dst: dbase_llist_cache_prepend
      Src: /src/selinux/libsemanage/src/database_join.c:136,1
    - Dst: record_table_t*::free
      Src: /src/selinux/libsemanage/src/database_join.c:140,1
    - Dst: dbase_llist_set_serial
      Src: /src/selinux/libsemanage/src/database_join.c:145,1
    - Dst: record_table_t*::free
      Src: /src/selinux/libsemanage/src/database_join.c:149,1
    - Dst: record_table_t*::free
      Src: /src/selinux/libsemanage/src/database_join.c:151,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/database_join.c:152,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/database_join.c:153,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_join.c:157,1
    - Dst: record_table_t*::free
      Src: /src/selinux/libsemanage/src/database_join.c:159,1
    - Dst: record_table_t*::free
      Src: /src/selinux/libsemanage/src/database_join.c:161,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/database_join.c:162,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/database_join.c:163,1
    - Dst: record_table_t*::key_free
      Src: /src/selinux/libsemanage/src/database_join.c:164,1
    - Dst: record_table_t*::free
      Src: /src/selinux/libsemanage/src/database_join.c:165,1
    - Dst: dbase_llist_drop_cache
      Src: /src/selinux/libsemanage/src/database_join.c:166,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 84
    argCount: 2
    argNames:
    - handle
    - dbase
    argTypes:
    - semanage_handle_t*
    - dbase_join_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 168
    functionName: dbase_join_cache
    functionSourceFile: /src/selinux/libsemanage/src/database_join.c
    functionUses: 0
    functionsReached:
    - dbase_llist_get_rtable
    - dbase_table_t*::list
    - record_table_t*::key_free
    - record_table_t*::key_extract
    - dbase_llist_cache_prepend
    - dbase_table_t*::cache
    - ERR
    - dbase_llist_drop_cache
    - record_join_table_t*::join
    - record_table_t*::free
    - dbase_llist_set_serial
    - qsort
    - free
    - record_table_t*::compare
    - dbase_llist_cache_init
    - dbase_table_t*::get_rtable
    - dbase_llist_needs_resync
    linkageType: ''
    returnType: int
    signature: int dbase_join_cache(semanage_handle_t *handle, dbase_join_t *dbase)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: dbase_llist_get_rtable
      Src: /src/selinux/libsemanage/src/database_join.c:178,1
    - Dst: dbase_table_t*::get_rtable
      Src: /src/selinux/libsemanage/src/database_join.c:180,1
    - Dst: dbase_table_t*::get_rtable
      Src: /src/selinux/libsemanage/src/database_join.c:181,1
    - Dst: dbase_llist_is_modified
      Src: /src/selinux/libsemanage/src/database_join.c:189,1
    - Dst: dbase_table_t*::clear
      Src: /src/selinux/libsemanage/src/database_join.c:197,1
    - Dst: dbase_table_t*::clear
      Src: /src/selinux/libsemanage/src/database_join.c:199,1
    - Dst: record_table_t*::key_extract
      Src: /src/selinux/libsemanage/src/database_join.c:204,1
    - Dst: record_join_table_t*::split
      Src: /src/selinux/libsemanage/src/database_join.c:207,1
    - Dst: dbase_table_t*::add
      Src: /src/selinux/libsemanage/src/database_join.c:210,1
    - Dst: dbase_table_t*::add
      Src: /src/selinux/libsemanage/src/database_join.c:213,1
    - Dst: record_table_t*::key_free
      Src: /src/selinux/libsemanage/src/database_join.c:216,1
    - Dst: record_table_t*::free
      Src: /src/selinux/libsemanage/src/database_join.c:217,1
    - Dst: record_table_t*::free
      Src: /src/selinux/libsemanage/src/database_join.c:218,1
    - Dst: dbase_llist_set_modified
      Src: /src/selinux/libsemanage/src/database_join.c:227,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_join.c:231,1
    - Dst: record_table_t*::key_free
      Src: /src/selinux/libsemanage/src/database_join.c:232,1
    - Dst: record_table_t*::free
      Src: /src/selinux/libsemanage/src/database_join.c:233,1
    - Dst: record_table_t*::free
      Src: /src/selinux/libsemanage/src/database_join.c:234,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 2
    argNames:
    - handle
    - dbase
    argTypes:
    - semanage_handle_t*
    - dbase_join_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 236
    functionName: dbase_join_flush
    functionSourceFile: /src/selinux/libsemanage/src/database_join.c
    functionUses: 0
    functionsReached:
    - dbase_llist_get_rtable
    - record_join_table_t*::split
    - record_table_t*::key_free
    - record_table_t*::key_extract
    - ERR
    - record_table_t*::free
    - dbase_llist_set_modified
    - dbase_llist_is_modified
    - dbase_table_t*::clear
    - dbase_table_t*::add
    - dbase_table_t*::get_rtable
    linkageType: ''
    returnType: int
    signature: int dbase_join_flush(semanage_handle_t *handle, dbase_join_t *dbase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/database_join.c:242,1
    - Dst: dbase_llist_init
      Src: /src/selinux/libsemanage/src/database_join.c:247,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_join.c:258,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/database_join.c:259,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 6
    argNames:
    - handle
    - rtable
    - rjtable
    - join1
    - join2
    - dbase
    argTypes:
    - semanage_handle_t*
    - record_table_t*
    - record_join_table_t*
    - dbase_config_t*
    - dbase_config_t*
    - dbase_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 261
    functionName: dbase_join_init
    functionSourceFile: /src/selinux/libsemanage/src/database_join.c
    functionUses: 1
    functionsReached:
    - dbase_llist_init
    - ERR
    - free
    - malloc
    linkageType: ''
    returnType: int
    signature: "int dbase_join_init(semanage_handle_t *handle, const record_table_t
      *rtable,\n\t\t    const record_join_table_t *rjtable, dbase_config_t *join1,\n\t\t
      \   dbase_config_t *join2, dbase_t **dbase)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_llist_drop_cache
      Src: /src/selinux/libsemanage/src/database_join.c:269,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/database_join.c:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - dbase
    argTypes:
    - dbase_join_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 271
    functionName: dbase_join_release
    functionSourceFile: /src/selinux/libsemanage/src/database_join.c
    functionUses: 1
    functionsReached:
    - dbase_llist_drop_cache
    - free
    linkageType: ''
    returnType: void
    signature: void dbase_join_release(dbase_join_t *dbase)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dbase_table_t*::get_rtable
      Src: /src/selinux/libsemanage/src/policy_components.c:24,1
    - Dst: record_table_t*::key_extract
      Src: /src/selinux/libsemanage/src/policy_components.c:29,1
    - Dst: dbase_table_t*::exists
      Src: /src/selinux/libsemanage/src/policy_components.c:32,1
    - Dst: dbase_table_t*::del
      Src: /src/selinux/libsemanage/src/policy_components.c:36,1
    - Dst: record_table_t*::free
      Src: /src/selinux/libsemanage/src/policy_components.c:39,1
    - Dst: record_table_t*::key_free
      Src: /src/selinux/libsemanage/src/policy_components.c:46,1
    - Dst: record_table_t*::key_free
      Src: /src/selinux/libsemanage/src/policy_components.c:53,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 5
    argNames:
    - handle
    - records
    - nrecords
    - src
    - dst
    argTypes:
    - semanage_handle_t*
    - record_t**
    - unsigned int
    - dbase_config_t*
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 55
    functionName: clear_obsolete
    functionSourceFile: /src/selinux/libsemanage/src/policy_components.c
    functionUses: 0
    functionsReached:
    - record_table_t*::key_free
    - record_table_t*::key_extract
    - dbase_table_t*::exists
    - record_table_t*::free
    - dbase_table_t*::del
    - dbase_table_t*::get_rtable
    linkageType: ''
    returnType: int
    signature: "int clear_obsolete(semanage_handle_t *handle, record_t **records,\n\t\t\t
      \ unsigned int nrecords, dbase_config_t *src,\n\t\t\t  dbase_config_t *dst)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dbase_table_t*::get_rtable
      Src: /src/selinux/libsemanage/src/policy_components.c:65,1
    - Dst: record_table_t*::key_extract
      Src: /src/selinux/libsemanage/src/policy_components.c:72,1
    - Dst: dbase_table_t*::set
      Src: /src/selinux/libsemanage/src/policy_components.c:76,1
    - Dst: dbase_table_t*::modify
      Src: /src/selinux/libsemanage/src/policy_components.c:80,1
    - Dst: record_table_t*::key_free
      Src: /src/selinux/libsemanage/src/policy_components.c:83,1
    - Dst: record_table_t*::key_free
      Src: /src/selinux/libsemanage/src/policy_components.c:90,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 5
    argNames:
    - handle
    - dst
    - records
    - nrecords
    - mode
    argTypes:
    - semanage_handle_t*
    - dbase_config_t*
    - record_t**
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 92
    functionName: load_records
    functionSourceFile: /src/selinux/libsemanage/src/policy_components.c
    functionUses: 0
    functionsReached:
    - record_table_t*::key_free
    - dbase_table_t*::set
    - record_table_t*::key_extract
    - dbase_table_t*::modify
    - dbase_table_t*::get_rtable
    linkageType: ''
    returnType: int
    signature: "int load_records(semanage_handle_t *handle, dbase_config_t *dst,\n\t\t\trecord_t
      **records, unsigned int nrecords, int mode)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: semanage_user_base_dbase_local
      Src: /src/selinux/libsemanage/src/policy_components.c:114,1
    - Dst: semanage_user_base_dbase_policy
      Src: /src/selinux/libsemanage/src/policy_components.c:115,1
    - Dst: semanage_user_extra_dbase_local
      Src: /src/selinux/libsemanage/src/policy_components.c:117,1
    - Dst: semanage_user_extra_dbase_policy
      Src: /src/selinux/libsemanage/src/policy_components.c:118,1
    - Dst: semanage_port_dbase_local
      Src: /src/selinux/libsemanage/src/policy_components.c:120,1
    - Dst: semanage_port_dbase_policy
      Src: /src/selinux/libsemanage/src/policy_components.c:121,1
    - Dst: semanage_iface_dbase_local
      Src: /src/selinux/libsemanage/src/policy_components.c:123,1
    - Dst: semanage_iface_dbase_policy
      Src: /src/selinux/libsemanage/src/policy_components.c:124,1
    - Dst: semanage_bool_dbase_local
      Src: /src/selinux/libsemanage/src/policy_components.c:126,1
    - Dst: semanage_bool_dbase_policy
      Src: /src/selinux/libsemanage/src/policy_components.c:127,1
    - Dst: semanage_seuser_dbase_local
      Src: /src/selinux/libsemanage/src/policy_components.c:129,1
    - Dst: semanage_seuser_dbase_policy
      Src: /src/selinux/libsemanage/src/policy_components.c:130,1
    - Dst: semanage_node_dbase_local
      Src: /src/selinux/libsemanage/src/policy_components.c:132,1
    - Dst: semanage_node_dbase_policy
      Src: /src/selinux/libsemanage/src/policy_components.c:133,1
    - Dst: semanage_ibpkey_dbase_local
      Src: /src/selinux/libsemanage/src/policy_components.c:135,1
    - Dst: semanage_ibpkey_dbase_policy
      Src: /src/selinux/libsemanage/src/policy_components.c:136,1
    - Dst: semanage_ibendport_dbase_local
      Src: /src/selinux/libsemanage/src/policy_components.c:138,1
    - Dst: semanage_ibendport_dbase_policy
      Src: /src/selinux/libsemanage/src/policy_components.c:139,1
    - Dst: dbase_config_t*::dtable::get_rtable
      Src: /src/selinux/libsemanage/src/policy_components.c:152,1
    - Dst: dbase_config_t*::dtable::cache
      Src: /src/selinux/libsemanage/src/policy_components.c:155,1
    - Dst: dbase_config_t*::dtable::cache
      Src: /src/selinux/libsemanage/src/policy_components.c:157,1
    - Dst: dbase_config_t*::dtable::list
      Src: /src/selinux/libsemanage/src/policy_components.c:161,1
    - Dst: qsort
      Src: /src/selinux/libsemanage/src/policy_components.c:167,1
    - Dst: clear_obsolete
      Src: /src/selinux/libsemanage/src/policy_components.c:173,1
    - Dst: load_records
      Src: /src/selinux/libsemanage/src/policy_components.c:179,1
    - Dst: record_table_t*::free
      Src: /src/selinux/libsemanage/src/policy_components.c:187,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/policy_components.c:188,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/policy_components.c:198,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 200
    functionName: semanage_base_merge_components
    functionSourceFile: /src/selinux/libsemanage/src/policy_components.c
    functionUses: 1
    functionsReached:
    - semanage_bool_dbase_local
    - semanage_port_dbase_policy
    - semanage_user_base_dbase_policy
    - semanage_ibpkey_dbase_policy
    - semanage_iface_dbase_policy
    - record_table_t*::free
    - semanage_bool_dbase_policy
    - clear_obsolete
    - dbase_config_t*::dtable::cache
    - free
    - semanage_seuser_dbase_local
    - dbase_config_t*::dtable::list
    - ERR
    - semanage_node_dbase_local
    - semanage_port_dbase_local
    - semanage_user_base_dbase_local
    - dbase_config_t*::dtable::get_rtable
    - semanage_ibendport_dbase_policy
    - semanage_user_extra_dbase_policy
    - semanage_iface_dbase_local
    - semanage_ibendport_dbase_local
    - semanage_ibpkey_dbase_local
    - load_records
    - semanage_node_dbase_policy
    - qsort
    - semanage_user_extra_dbase_local
    - semanage_seuser_dbase_policy
    linkageType: ''
    returnType: int
    signature: int semanage_base_merge_components(semanage_handle_t *handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semanage_iface_dbase_local
      Src: /src/selinux/libsemanage/src/policy_components.c:206,1
    - Dst: semanage_bool_dbase_local
      Src: /src/selinux/libsemanage/src/policy_components.c:207,1
    - Dst: semanage_user_base_dbase_local
      Src: /src/selinux/libsemanage/src/policy_components.c:208,1
    - Dst: semanage_user_extra_dbase_local
      Src: /src/selinux/libsemanage/src/policy_components.c:209,1
    - Dst: semanage_user_extra_dbase_policy
      Src: /src/selinux/libsemanage/src/policy_components.c:210,1
    - Dst: semanage_port_dbase_local
      Src: /src/selinux/libsemanage/src/policy_components.c:211,1
    - Dst: semanage_fcontext_dbase_local
      Src: /src/selinux/libsemanage/src/policy_components.c:212,1
    - Dst: semanage_fcontext_dbase_policy
      Src: /src/selinux/libsemanage/src/policy_components.c:213,1
    - Dst: semanage_seuser_dbase_local
      Src: /src/selinux/libsemanage/src/policy_components.c:214,1
    - Dst: semanage_seuser_dbase_policy
      Src: /src/selinux/libsemanage/src/policy_components.c:215,1
    - Dst: semanage_bool_dbase_active
      Src: /src/selinux/libsemanage/src/policy_components.c:216,1
    - Dst: semanage_node_dbase_local
      Src: /src/selinux/libsemanage/src/policy_components.c:217,1
    - Dst: semanage_ibpkey_dbase_local
      Src: /src/selinux/libsemanage/src/policy_components.c:218,1
    - Dst: semanage_ibendport_dbase_local
      Src: /src/selinux/libsemanage/src/policy_components.c:219,1
    - Dst: dtable::flush
      Src: /src/selinux/libsemanage/src/policy_components.c:225,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/policy_components.c:233,1
    - Dst: dtable::drop_cache
      Src: /src/selinux/libsemanage/src/policy_components.c:236,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 238
    functionName: semanage_commit_components
    functionSourceFile: /src/selinux/libsemanage/src/policy_components.c
    functionUses: 1
    functionsReached:
    - semanage_fcontext_dbase_local
    - semanage_iface_dbase_local
    - semanage_bool_dbase_active
    - semanage_ibpkey_dbase_local
    - semanage_ibendport_dbase_local
    - ERR
    - semanage_seuser_dbase_local
    - semanage_fcontext_dbase_policy
    - semanage_node_dbase_local
    - dtable::drop_cache
    - semanage_user_base_dbase_local
    - semanage_port_dbase_local
    - dtable::flush
    - semanage_user_extra_dbase_local
    - semanage_bool_dbase_local
    - semanage_seuser_dbase_policy
    - semanage_user_extra_dbase_policy
    linkageType: ''
    returnType: int
    signature: int semanage_commit_components(semanage_handle_t *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_port_dbase_local
      Src: /src/selinux/libsemanage/src/ports_local.c:19,1
    - Dst: dbase_modify
      Src: /src/selinux/libsemanage/src/ports_local.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - data
    argTypes:
    - semanage_handle_t*
    - semanage_port_key_t*
    - semanage_port_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 21
    functionName: semanage_port_modify_local
    functionSourceFile: /src/selinux/libsemanage/src/ports_local.c
    functionUses: 3
    functionsReached:
    - dbase_modify
    - semanage_port_dbase_local
    linkageType: ''
    returnType: int
    signature: "int semanage_port_modify_local(semanage_handle_t *handle,\n\t\t\t
      \      const semanage_port_key_t *key,\n\t\t\t       const semanage_port_t *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_port_dbase_local
      Src: /src/selinux/libsemanage/src/ports_local.c:26,1
    - Dst: dbase_del
      Src: /src/selinux/libsemanage/src/ports_local.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - key
    argTypes:
    - semanage_handle_t*
    - semanage_port_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: semanage_port_del_local
    functionSourceFile: /src/selinux/libsemanage/src/ports_local.c
    functionUses: 3
    functionsReached:
    - dbase_del
    - semanage_port_dbase_local
    linkageType: ''
    returnType: int
    signature: "int semanage_port_del_local(semanage_handle_t *handle,\n\t\t\t    const
      semanage_port_key_t *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_port_dbase_local
      Src: /src/selinux/libsemanage/src/ports_local.c:34,1
    - Dst: dbase_query
      Src: /src/selinux/libsemanage/src/ports_local.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_port_key_t*
    - semanage_port_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: semanage_port_query_local
    functionSourceFile: /src/selinux/libsemanage/src/ports_local.c
    functionUses: 2
    functionsReached:
    - semanage_port_dbase_local
    - dbase_query
    linkageType: ''
    returnType: int
    signature: "int semanage_port_query_local(semanage_handle_t *handle,\n\t\t\t      const
      semanage_port_key_t *key,\n\t\t\t      semanage_port_t **response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_port_dbase_local
      Src: /src/selinux/libsemanage/src/ports_local.c:41,1
    - Dst: dbase_exists
      Src: /src/selinux/libsemanage/src/ports_local.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_port_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 4
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: semanage_port_exists_local
    functionSourceFile: /src/selinux/libsemanage/src/ports_local.c
    functionUses: 2
    functionsReached:
    - dbase_exists
    - semanage_port_dbase_local
    linkageType: ''
    returnType: int
    signature: "int semanage_port_exists_local(semanage_handle_t *handle,\n\t\t\t
      \      const semanage_port_key_t *key, int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_port_dbase_local
      Src: /src/selinux/libsemanage/src/ports_local.c:47,1
    - Dst: dbase_count
      Src: /src/selinux/libsemanage/src/ports_local.c:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - response
    argTypes:
    - semanage_handle_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 4
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: semanage_port_count_local
    functionSourceFile: /src/selinux/libsemanage/src/ports_local.c
    functionUses: 1
    functionsReached:
    - dbase_count
    - semanage_port_dbase_local
    linkageType: ''
    returnType: int
    signature: int semanage_port_count_local(semanage_handle_t *handle, unsigned int
      *response)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_port_dbase_local
      Src: /src/selinux/libsemanage/src/ports_local.c:56,1
    - Dst: dbase_iterate
      Src: /src/selinux/libsemanage/src/ports_local.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - handler_arg
    argTypes:
    - semanage_handle_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 4
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: semanage_port_iterate_local
    functionSourceFile: /src/selinux/libsemanage/src/ports_local.c
    functionUses: 1
    functionsReached:
    - semanage_port_dbase_local
    - dbase_iterate
    linkageType: ''
    returnType: int
    signature: "int semanage_port_iterate_local(semanage_handle_t *handle,\n\t\t\t\tint
      (*handler)(const semanage_port_t *record,\n\t\t\t\t\t       void *varg),\n\t\t\t\tvoid
      *handler_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_port_dbase_local
      Src: /src/selinux/libsemanage/src/ports_local.c:63,1
    - Dst: dbase_list
      Src: /src/selinux/libsemanage/src/ports_local.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - records
    - count
    argTypes:
    - semanage_handle_t*
    - semanage_port_t***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: semanage_port_list_local
    functionSourceFile: /src/selinux/libsemanage/src/ports_local.c
    functionUses: 1
    functionsReached:
    - semanage_port_dbase_local
    - dbase_list
    linkageType: ''
    returnType: int
    signature: "int semanage_port_list_local(semanage_handle_t *handle,\n\t\t\t     semanage_port_t
      ***records, unsigned int *count)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: semanage_port_list_local
      Src: /src/selinux/libsemanage/src/ports_local.c:74,1
    - Dst: qsort
      Src: /src/selinux/libsemanage/src/ports_local.c:78,1
    - Dst: semanage_port_get_proto
      Src: /src/selinux/libsemanage/src/ports_local.c:83,1
    - Dst: semanage_port_get_low
      Src: /src/selinux/libsemanage/src/ports_local.c:84,1
    - Dst: semanage_port_get_high
      Src: /src/selinux/libsemanage/src/ports_local.c:85,1
    - Dst: semanage_port_get_proto_str
      Src: /src/selinux/libsemanage/src/ports_local.c:86,1
    - Dst: semanage_port_get_proto
      Src: /src/selinux/libsemanage/src/ports_local.c:97,1
    - Dst: semanage_port_get_low
      Src: /src/selinux/libsemanage/src/ports_local.c:98,1
    - Dst: semanage_port_get_high
      Src: /src/selinux/libsemanage/src/ports_local.c:99,1
    - Dst: semanage_port_get_proto_str
      Src: /src/selinux/libsemanage/src/ports_local.c:100,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/ports_local.c:106,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/src/ports_local.c:123,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ports_local.c:124,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/ports_local.c:128,1
    - Dst: semanage_port_free
      Src: /src/selinux/libsemanage/src/ports_local.c:132,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/ports_local.c:133,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 1
    argNames:
    - handle
    argTypes:
    - semanage_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 67
    functionDepth: 5
    functionLinenumber: 67
    functionLinenumberEnd: 135
    functionName: semanage_port_validate_local
    functionSourceFile: /src/selinux/libsemanage/src/ports_local.c
    functionUses: 1
    functionsReached:
    - ERR
    - semanage_port_get_proto
    - semanage_port_get_high
    - semanage_port_free
    - qsort
    - semanage_port_get_low
    - semanage_port_list_local
    - free
    - semanage_port_get_proto_str
    linkageType: ''
    returnType: int
    signature: int semanage_port_validate_local(semanage_handle_t *handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/fcontext_record.c:35,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/fcontext_record.c:39,1
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/fcontext_record.c:43,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/fcontext_record.c:45,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/fcontext_record.c:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - handle
    - expr
    - type
    - key_ptr
    argTypes:
    - semanage_handle_t*
    - char*
    - int
    - semanage_fcontext_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 54
    functionName: semanage_fcontext_key_create
    functionSourceFile: /src/selinux/libsemanage/src/fcontext_record.c
    functionUses: 2
    functionsReached:
    - ERR
    - free
    - malloc
    - strdup
    linkageType: ''
    returnType: int
    signature: "int semanage_fcontext_key_create(semanage_handle_t *handle, const
      char *expr,\n\t\t\t\t int type, semanage_fcontext_key_t **key_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fcontext_key_create
      Src: /src/selinux/libsemanage/src/fcontext_record.c:60,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/fcontext_record.c:62,1
    - Dst: semanage_fcontext_get_type_str
      Src: /src/selinux/libsemanage/src/fcontext_record.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - handle
    - fcontext
    - key_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_fcontext_t*
    - semanage_fcontext_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 71
    functionName: semanage_fcontext_key_extract
    functionSourceFile: /src/selinux/libsemanage/src/fcontext_record.c
    functionUses: 4
    functionsReached:
    - ERR
    - semanage_fcontext_key_create
    - semanage_fcontext_get_type_str
    linkageType: ''
    returnType: int
    signature: "int semanage_fcontext_key_extract(semanage_handle_t *handle,\n\t\t\t\t
      \ const semanage_fcontext_t *fcontext,\n\t\t\t\t  semanage_fcontext_key_t **key_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsemanage/src/fcontext_record.c:75,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/fcontext_record.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - semanage_fcontext_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: semanage_fcontext_key_free
    functionSourceFile: /src/selinux/libsemanage/src/fcontext_record.c
    functionUses: 10
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void semanage_fcontext_key_free(semanage_fcontext_key_t *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/fcontext_record.c:82,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - fcontext
    - key
    argTypes:
    - semanage_fcontext_t*
    - semanage_fcontext_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 95
    functionName: semanage_fcontext_compare
    functionSourceFile: /src/selinux/libsemanage/src/fcontext_record.c
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int semanage_fcontext_compare(const semanage_fcontext_t *fcontext,\n\t\t\t
      \     const semanage_fcontext_key_t *key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libsemanage/src/fcontext_record.c:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - fcontext
    - fcontext2
    argTypes:
    - semanage_fcontext_t*
    - semanage_fcontext_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 113
    functionName: semanage_fcontext_compare2
    functionSourceFile: /src/selinux/libsemanage/src/fcontext_record.c
    functionUses: 2
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int semanage_fcontext_compare2(const semanage_fcontext_t *fcontext,\n\t\t\t
      \      const semanage_fcontext_t *fcontext2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fcontext_compare2
      Src: /src/selinux/libsemanage/src/fcontext_record.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: semanage_fcontext_compare2_qsort
    functionSourceFile: /src/selinux/libsemanage/src/fcontext_record.c
    functionUses: 0
    functionsReached:
    - semanage_fcontext_compare2
    linkageType: ''
    returnType: int
    signature: int semanage_fcontext_compare2_qsort(const void *p1, const void *p2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/fcontext_record.c:128,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/fcontext_record.c:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - handle
    - fcontext
    argTypes:
    - semanage_handle_t*
    - semanage_fcontext_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 142
    functionName: semanage_fcontext_create
    functionSourceFile: /src/selinux/libsemanage/src/fcontext_record.c
    functionUses: 1
    functionsReached:
    - ERR
    - malloc
    linkageType: ''
    returnType: int
    signature: "int semanage_fcontext_create(semanage_handle_t *handle,\n\t\t\t     semanage_fcontext_t
      **fcontext)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fcontext
    argTypes:
    - semanage_fcontext_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 148
    functionName: semanage_fcontext_get_expr
    functionSourceFile: /src/selinux/libsemanage/src/fcontext_record.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *semanage_fcontext_get_expr(const semanage_fcontext_t *fcontext)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libsemanage/src/fcontext_record.c:153,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/fcontext_record.c:155,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/fcontext_record.c:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - fcontext
    - expr
    argTypes:
    - semanage_handle_t*
    - semanage_fcontext_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 162
    functionName: semanage_fcontext_set_expr
    functionSourceFile: /src/selinux/libsemanage/src/fcontext_record.c
    functionUses: 1
    functionsReached:
    - ERR
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int semanage_fcontext_set_expr(semanage_handle_t *handle,\n\t\t\t
      \      semanage_fcontext_t *fcontext, const char *expr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fcontext
    argTypes:
    - semanage_fcontext_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: semanage_fcontext_get_type
    functionSourceFile: /src/selinux/libsemanage/src/fcontext_record.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int semanage_fcontext_get_type(const semanage_fcontext_t *fcontext)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 192
    functionName: semanage_fcontext_get_type_str
    functionSourceFile: /src/selinux/libsemanage/src/fcontext_record.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *semanage_fcontext_get_type_str(int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fcontext
    - type
    argTypes:
    - semanage_fcontext_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: semanage_fcontext_set_type
    functionSourceFile: /src/selinux/libsemanage/src/fcontext_record.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void semanage_fcontext_set_type(semanage_fcontext_t *fcontext, int
      type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fcontext
    argTypes:
    - semanage_fcontext_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: semanage_fcontext_get_con
    functionSourceFile: /src/selinux/libsemanage/src/fcontext_record.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: semanage_context_t
    signature: 'semanage_context_t *

      semanage_fcontext_get_con(const semanage_fcontext_t *fcontext)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semanage_context_clone
      Src: /src/selinux/libsemanage/src/fcontext_record.c:212,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/fcontext_record.c:213,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/src/fcontext_record.c:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - handle
    - fcontext
    - con
    argTypes:
    - semanage_handle_t*
    - semanage_fcontext_t*
    - semanage_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 220
    functionName: semanage_fcontext_set_con
    functionSourceFile: /src/selinux/libsemanage/src/fcontext_record.c
    functionUses: 2
    functionsReached:
    - ERR
    - semanage_context_clone
    - semanage_context_free
    linkageType: ''
    returnType: int
    signature: "int semanage_fcontext_set_con(semanage_handle_t *handle,\n\t\t\t      semanage_fcontext_t
      *fcontext,\n\t\t\t      semanage_context_t *con)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fcontext_create
      Src: /src/selinux/libsemanage/src/fcontext_record.c:228,1
    - Dst: semanage_fcontext_set_expr
      Src: /src/selinux/libsemanage/src/fcontext_record.c:231,1
    - Dst: semanage_context_clone
      Src: /src/selinux/libsemanage/src/fcontext_record.c:237,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/fcontext_record.c:245,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/src/fcontext_record.c:246,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - handle
    - fcontext
    - fcontext_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_fcontext_t*
    - semanage_fcontext_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 248
    functionName: semanage_fcontext_clone
    functionSourceFile: /src/selinux/libsemanage/src/fcontext_record.c
    functionUses: 1
    functionsReached:
    - ERR
    - semanage_context_clone
    - semanage_fcontext_free
    - semanage_fcontext_create
    - semanage_fcontext_set_expr
    linkageType: ''
    returnType: int
    signature: "int semanage_fcontext_clone(semanage_handle_t *handle,\n\t\t\t    const
      semanage_fcontext_t *fcontext,\n\t\t\t    semanage_fcontext_t **fcontext_ptr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libsemanage/src/fcontext_record.c:256,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/src/fcontext_record.c:257,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/fcontext_record.c:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - fcontext
    argTypes:
    - semanage_fcontext_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 259
    functionName: semanage_fcontext_free
    functionSourceFile: /src/selinux/libsemanage/src/fcontext_record.c
    functionUses: 17
    functionsReached:
    - semanage_context_free
    - free
    linkageType: ''
    returnType: void
    signature: void semanage_fcontext_free(semanage_fcontext_t *fcontext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_bool_dbase_active
      Src: /src/selinux/libsemanage/src/booleans_active.c:17,1
    - Dst: dbase_set
      Src: /src/selinux/libsemanage/src/booleans_active.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - data
    argTypes:
    - semanage_handle_t*
    - semanage_bool_key_t*
    - semanage_bool_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 3
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: semanage_bool_set_active
    functionSourceFile: /src/selinux/libsemanage/src/booleans_active.c
    functionUses: 1
    functionsReached:
    - semanage_bool_dbase_active
    - dbase_set
    linkageType: ''
    returnType: int
    signature: "int semanage_bool_set_active(semanage_handle_t *handle,\n\t\t\t     const
      semanage_bool_key_t *key,\n\t\t\t     const semanage_bool_t *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_bool_dbase_active
      Src: /src/selinux/libsemanage/src/booleans_active.c:25,1
    - Dst: dbase_query
      Src: /src/selinux/libsemanage/src/booleans_active.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_bool_key_t*
    - semanage_bool_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 27
    functionName: semanage_bool_query_active
    functionSourceFile: /src/selinux/libsemanage/src/booleans_active.c
    functionUses: 0
    functionsReached:
    - semanage_bool_dbase_active
    - dbase_query
    linkageType: ''
    returnType: int
    signature: "int semanage_bool_query_active(semanage_handle_t *handle,\n\t\t\t
      \      const semanage_bool_key_t *key,\n\t\t\t       semanage_bool_t **response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_bool_dbase_active
      Src: /src/selinux/libsemanage/src/booleans_active.c:32,1
    - Dst: dbase_exists
      Src: /src/selinux/libsemanage/src/booleans_active.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_bool_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: semanage_bool_exists_active
    functionSourceFile: /src/selinux/libsemanage/src/booleans_active.c
    functionUses: 0
    functionsReached:
    - dbase_exists
    - semanage_bool_dbase_active
    linkageType: ''
    returnType: int
    signature: "int semanage_bool_exists_active(semanage_handle_t *handle,\n\t\t\t\tconst
      semanage_bool_key_t *key, int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_bool_dbase_active
      Src: /src/selinux/libsemanage/src/booleans_active.c:39,1
    - Dst: dbase_count
      Src: /src/selinux/libsemanage/src/booleans_active.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - response
    argTypes:
    - semanage_handle_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: semanage_bool_count_active
    functionSourceFile: /src/selinux/libsemanage/src/booleans_active.c
    functionUses: 0
    functionsReached:
    - semanage_bool_dbase_active
    - dbase_count
    linkageType: ''
    returnType: int
    signature: "int semanage_bool_count_active(semanage_handle_t *handle,\n\t\t\t
      \      unsigned int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_bool_dbase_active
      Src: /src/selinux/libsemanage/src/booleans_active.c:48,1
    - Dst: dbase_iterate
      Src: /src/selinux/libsemanage/src/booleans_active.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - handler_arg
    argTypes:
    - semanage_handle_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: semanage_bool_iterate_active
    functionSourceFile: /src/selinux/libsemanage/src/booleans_active.c
    functionUses: 0
    functionsReached:
    - semanage_bool_dbase_active
    - dbase_iterate
    linkageType: ''
    returnType: int
    signature: "int semanage_bool_iterate_active(semanage_handle_t *handle,\n\t\t\t\t
      int (*handler)(const semanage_bool_t *record,\n\t\t\t\t\t\tvoid *varg),\n\t\t\t\t
      void *handler_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_bool_dbase_active
      Src: /src/selinux/libsemanage/src/booleans_active.c:55,1
    - Dst: dbase_list
      Src: /src/selinux/libsemanage/src/booleans_active.c:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - records
    - count
    argTypes:
    - semanage_handle_t*
    - semanage_bool_t***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 4
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: semanage_bool_list_active
    functionSourceFile: /src/selinux/libsemanage/src/booleans_active.c
    functionUses: 0
    functionsReached:
    - semanage_bool_dbase_active
    - dbase_list
    linkageType: ''
    returnType: int
    signature: "int semanage_bool_list_active(semanage_handle_t *handle,\n\t\t\t      semanage_bool_t
      ***records, unsigned int *count)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_policydb_free
      Src: /src/selinux/libsemanage/src/database_policydb.c:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - dbase
    argTypes:
    - dbase_policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 50
    functionName: dbase_policydb_drop_cache
    functionSourceFile: /src/selinux/libsemanage/src/database_policydb.c
    functionUses: 0
    functionsReached:
    - sepol_policydb_free
    linkageType: ''
    returnType: void
    signature: void dbase_policydb_drop_cache(dbase_policydb_t *dbase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: semanage_handle_t*::funcs::get_serial
      Src: /src/selinux/libsemanage/src/database_policydb.c:55,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_policydb.c:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - handle
    - dbase
    argTypes:
    - semanage_handle_t*
    - dbase_policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: dbase_policydb_set_serial
    functionSourceFile: /src/selinux/libsemanage/src/database_policydb.c
    functionUses: 0
    functionsReached:
    - semanage_handle_t*::funcs::get_serial
    - ERR
    linkageType: ''
    returnType: int
    signature: "int dbase_policydb_set_serial(semanage_handle_t *handle,\n\t\t\t\t
      \    dbase_policydb_t *dbase)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: semanage_handle_t*::funcs::get_serial
      Src: /src/selinux/libsemanage/src/database_policydb.c:73,1
    - Dst: dbase_policydb_drop_cache
      Src: /src/selinux/libsemanage/src/database_policydb.c:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - handle
    - dbase
    argTypes:
    - semanage_handle_t*
    - dbase_policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 65
    functionDepth: 5
    functionLinenumber: 65
    functionLinenumberEnd: 83
    functionName: dbase_policydb_needs_resync
    functionSourceFile: /src/selinux/libsemanage/src/database_policydb.c
    functionUses: 0
    functionsReached:
    - semanage_handle_t*::funcs::get_serial
    - dbase_policydb_drop_cache
    linkageType: ''
    returnType: int
    signature: "int dbase_policydb_needs_resync(semanage_handle_t *handle,\n\t\t\t\t
      \      dbase_policydb_t *dbase)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: dbase_policydb_needs_resync
      Src: /src/selinux/libsemanage/src/database_policydb.c:97,1
    - Dst: sepol_policydb_create
      Src: /src/selinux/libsemanage/src/database_policydb.c:102,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_policydb.c:103,1
    - Dst: fopen
      Src: /src/selinux/libsemanage/src/database_policydb.c:109,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_policydb.c:111,1
    - Dst: __fsetlocking
      Src: /src/selinux/libsemanage/src/database_policydb.c:117,1
    - Dst: sepol_policy_file_create
      Src: /src/selinux/libsemanage/src/database_policydb.c:118,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_policydb.c:119,1
    - Dst: sepol_policy_file_set_fp
      Src: /src/selinux/libsemanage/src/database_policydb.c:123,1
    - Dst: sepol_policy_file_set_handle
      Src: /src/selinux/libsemanage/src/database_policydb.c:124,1
    - Dst: sepol_policydb_read
      Src: /src/selinux/libsemanage/src/database_policydb.c:126,1
    - Dst: sepol_policy_file_free
      Src: /src/selinux/libsemanage/src/database_policydb.c:129,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/database_policydb.c:130,1
    - Dst: dbase_policydb_set_serial
      Src: /src/selinux/libsemanage/src/database_policydb.c:135,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_policydb.c:143,1
    - Dst: fclose
      Src: /src/selinux/libsemanage/src/database_policydb.c:145,1
    - Dst: sepol_policydb_free
      Src: /src/selinux/libsemanage/src/database_policydb.c:146,1
    - Dst: sepol_policy_file_free
      Src: /src/selinux/libsemanage/src/database_policydb.c:147,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 2
    argNames:
    - handle
    - dbase
    argTypes:
    - semanage_handle_t*
    - dbase_policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 85
    functionDepth: 9
    functionLinenumber: 85
    functionLinenumberEnd: 149
    functionName: dbase_policydb_cache
    functionSourceFile: /src/selinux/libsemanage/src/database_policydb.c
    functionUses: 0
    functionsReached:
    - sepol_policy_file_create
    - ERR
    - sepol_policy_file_free
    - fclose
    - sepol_policydb_free
    - sepol_policy_file_set_fp
    - sepol_policydb_read
    - __fsetlocking
    - sepol_policy_file_set_handle
    - dbase_policydb_needs_resync
    - fopen
    - sepol_policydb_create
    - dbase_policydb_set_serial
    linkageType: ''
    returnType: int
    signature: "int dbase_policydb_cache(semanage_handle_t *handle,\n\t\t\t\tdbase_policydb_t
      *dbase)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - handle
    - dbase
    argTypes:
    - semanage_handle_t*
    - dbase_policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 162
    functionName: dbase_policydb_flush
    functionSourceFile: /src/selinux/libsemanage/src/database_policydb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int dbase_policydb_flush(semanage_handle_t *handle\n\t\t\t\t__attribute__((unused)),\n\t\t\t\tdbase_policydb_t
      *dbase)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dbase
    argTypes:
    - dbase_policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: dbase_policydb_is_modified
    functionSourceFile: /src/selinux/libsemanage/src/database_policydb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int dbase_policydb_is_modified(dbase_policydb_t *dbase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libsemanage/src/database_policydb.c:176,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_policydb.c:194,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/database_policydb.c:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 6
    argNames:
    - handle
    - path_ro
    - path_rw
    - rtable
    - rptable
    - dbase
    argTypes:
    - semanage_handle_t*
    - char*
    - char*
    - record_table_t*
    - record_policydb_table_t*
    - dbase_policydb_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 198
    functionName: dbase_policydb_init
    functionSourceFile: /src/selinux/libsemanage/src/database_policydb.c
    functionUses: 7
    functionsReached:
    - ERR
    - free
    - malloc
    linkageType: ''
    returnType: int
    signature: "int dbase_policydb_init(semanage_handle_t *handle, const char *path_ro,\n\t\t\tconst
      char *path_rw, const record_table_t *rtable,\n\t\t\tconst record_policydb_table_t
      *rptable,\n\t\t\tdbase_policydb_t **dbase)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbase_policydb_drop_cache
      Src: /src/selinux/libsemanage/src/database_policydb.c:203,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/database_policydb.c:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dbase
    argTypes:
    - dbase_policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 5
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: dbase_policydb_release
    functionSourceFile: /src/selinux/libsemanage/src/database_policydb.c
    functionUses: 7
    functionsReached:
    - free
    - dbase_policydb_drop_cache
    linkageType: ''
    returnType: void
    signature: void dbase_policydb_release(dbase_policydb_t *dbase)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbase_policydb_drop_cache
      Src: /src/selinux/libsemanage/src/database_policydb.c:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dbase
    - policydb
    argTypes:
    - dbase_policydb_t*
    - sepol_policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 211
    functionDepth: 5
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: dbase_policydb_attach
    functionSourceFile: /src/selinux/libsemanage/src/database_policydb.c
    functionUses: 1
    functionsReached:
    - dbase_policydb_drop_cache
    linkageType: ''
    returnType: void
    signature: void dbase_policydb_attach(dbase_policydb_t *dbase, sepol_policydb_t
      *policydb)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dbase
    argTypes:
    - dbase_policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 224
    functionName: dbase_policydb_detach
    functionSourceFile: /src/selinux/libsemanage/src/database_policydb.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void dbase_policydb_detach(dbase_policydb_t *dbase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_policydb_t*::rptable::add
      Src: /src/selinux/libsemanage/src/database_policydb.c:230,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_policydb.c:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - handle
    - dbase
    - key
    - data
    argTypes:
    - semanage_handle_t*
    - dbase_policydb_t*
    - record_key_t*
    - record_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 239
    functionName: dbase_policydb_add
    functionSourceFile: /src/selinux/libsemanage/src/database_policydb.c
    functionUses: 0
    functionsReached:
    - ERR
    - dbase_policydb_t*::rptable::add
    linkageType: ''
    returnType: int
    signature: "int dbase_policydb_add(semanage_handle_t *handle,\n\t\t\t      dbase_policydb_t
      *dbase, const record_key_t *key,\n\t\t\t      const record_t *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_policydb_t*::rptable::set
      Src: /src/selinux/libsemanage/src/database_policydb.c:245,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_policydb.c:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - handle
    - dbase
    - key
    - data
    argTypes:
    - semanage_handle_t*
    - dbase_policydb_t*
    - record_key_t*
    - record_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 254
    functionName: dbase_policydb_set
    functionSourceFile: /src/selinux/libsemanage/src/database_policydb.c
    functionUses: 0
    functionsReached:
    - ERR
    - dbase_policydb_t*::rptable::set
    linkageType: ''
    returnType: int
    signature: "int dbase_policydb_set(semanage_handle_t *handle,\n\t\t\t      dbase_policydb_t
      *dbase, const record_key_t *key,\n\t\t\t      const record_t *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_policydb_t*::rptable::modify
      Src: /src/selinux/libsemanage/src/database_policydb.c:260,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_policydb.c:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - handle
    - dbase
    - key
    - data
    argTypes:
    - semanage_handle_t*
    - dbase_policydb_t*
    - record_key_t*
    - record_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 270
    functionName: dbase_policydb_modify
    functionSourceFile: /src/selinux/libsemanage/src/database_policydb.c
    functionUses: 0
    functionsReached:
    - ERR
    - dbase_policydb_t*::rptable::modify
    linkageType: ''
    returnType: int
    signature: "int dbase_policydb_modify(semanage_handle_t *handle,\n\t\t\t\t dbase_policydb_t
      *dbase,\n\t\t\t\t const record_key_t *key, const record_t *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - dbase
    - key
    argTypes:
    - semanage_handle_t*
    - dbase_policydb_t*
    - record_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 278
    functionName: dbase_policydb_del
    functionSourceFile: /src/selinux/libsemanage/src/database_policydb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int dbase_policydb_del(semanage_handle_t *handle __attribute__((unused)),\n\t\t\t
      \     dbase_policydb_t *dbase __attribute__((unused)),\n\t\t\t      const record_key_t
      *key __attribute__((unused)))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - dbase
    argTypes:
    - semanage_handle_t*
    - dbase_policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 286
    functionName: dbase_policydb_clear
    functionSourceFile: /src/selinux/libsemanage/src/database_policydb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int dbase_policydb_clear(semanage_handle_t *handle\n\t\t\t\t__attribute__((unused)),\n\t\t\t\tdbase_policydb_t
      *dbase __attribute__((unused)))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_policydb_t*::rptable::query
      Src: /src/selinux/libsemanage/src/database_policydb.c:292,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_policydb.c:299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - handle
    - dbase
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - dbase_policydb_t*
    - record_key_t*
    - record_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 301
    functionName: dbase_policydb_query
    functionSourceFile: /src/selinux/libsemanage/src/database_policydb.c
    functionUses: 0
    functionsReached:
    - ERR
    - dbase_policydb_t*::rptable::query
    linkageType: ''
    returnType: int
    signature: "int dbase_policydb_query(semanage_handle_t *handle,\n\t\t\t\tdbase_policydb_t
      *dbase,\n\t\t\t\tconst record_key_t *key, record_t **response)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_policydb_t*::rptable::exists
      Src: /src/selinux/libsemanage/src/database_policydb.c:307,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_policydb.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - handle
    - dbase
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - dbase_policydb_t*
    - record_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 316
    functionName: dbase_policydb_exists
    functionSourceFile: /src/selinux/libsemanage/src/database_policydb.c
    functionUses: 0
    functionsReached:
    - ERR
    - dbase_policydb_t*::rptable::exists
    linkageType: ''
    returnType: int
    signature: "int dbase_policydb_exists(semanage_handle_t *handle,\n\t\t\t\t dbase_policydb_t
      *dbase,\n\t\t\t\t const record_key_t *key, int *response)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_policydb_t*::rptable::count
      Src: /src/selinux/libsemanage/src/database_policydb.c:321,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_policydb.c:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - handle
    - dbase
    - response
    argTypes:
    - semanage_handle_t*
    - dbase_policydb_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 330
    functionName: dbase_policydb_count
    functionSourceFile: /src/selinux/libsemanage/src/database_policydb.c
    functionUses: 0
    functionsReached:
    - ERR
    - dbase_policydb_t*::rptable::count
    linkageType: ''
    returnType: int
    signature: "int dbase_policydb_count(semanage_handle_t *handle,\n\t\t\t\tdbase_policydb_t
      *dbase, unsigned int *response)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_policydb_t*::rptable::iterate
      Src: /src/selinux/libsemanage/src/database_policydb.c:337,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_policydb.c:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - handle
    - dbase
    - arg
    argTypes:
    - semanage_handle_t*
    - dbase_policydb_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 346
    functionName: dbase_policydb_iterate
    functionSourceFile: /src/selinux/libsemanage/src/database_policydb.c
    functionUses: 0
    functionsReached:
    - ERR
    - dbase_policydb_t*::rptable::iterate
    linkageType: ''
    returnType: int
    signature: "int dbase_policydb_iterate(semanage_handle_t *handle, dbase_policydb_t
      *dbase,\n\t\t       int (*fn)(const record_t *record, void *fn_arg),\n\t\t       void
      *arg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct list_handler_arg*::rtable::clone
      Src: /src/selinux/libsemanage/src/database_policydb.c:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - record
    - varg
    argTypes:
    - record_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 364
    functionName: list_handler
    functionSourceFile: /src/selinux/libsemanage/src/database_policydb.c
    functionUses: 0
    functionsReached:
    - struct list_handler_arg*::rtable::clone
    linkageType: ''
    returnType: int
    signature: int list_handler(const record_t *record, void *varg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dbase_t*::rptable::count
      Src: /src/selinux/libsemanage/src/database_policydb.c:376,1
    - Dst: calloc
      Src: /src/selinux/libsemanage/src/database_policydb.c:382,1
    - Dst: dbase_t*::rptable::iterate
      Src: /src/selinux/libsemanage/src/database_policydb.c:389,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_policydb.c:391,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_policydb.c:401,1
    - Dst: dbase_t*::rtable::free
      Src: /src/selinux/libsemanage/src/database_policydb.c:406,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/database_policydb.c:407,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/database_policydb.c:409,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 4
    argNames:
    - handle
    - dbase
    - records
    - count
    argTypes:
    - semanage_handle_t*
    - dbase_t*
    - record_t***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 411
    functionName: dbase_policydb_list
    functionSourceFile: /src/selinux/libsemanage/src/database_policydb.c
    functionUses: 0
    functionsReached:
    - ERR
    - dbase_t*::rtable::free
    - dbase_t*::rptable::count
    - free
    - dbase_t*::rptable::iterate
    - calloc
    linkageType: ''
    returnType: int
    signature: "int dbase_policydb_list(semanage_handle_t *handle, dbase_t *dbase,\n\t\t\t
      \      record_t ***records, unsigned int *count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dbase
    argTypes:
    - dbase_policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: dbase_policydb_get_rtable
    functionSourceFile: /src/selinux/libsemanage/src/database_policydb.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: record_table_t
    signature: record_table_t *dbase_policydb_get_rtable(dbase_policydb_t *dbase)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_get_user
      Src: /src/selinux/libsemanage/src/context_record.c:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - con
    argTypes:
    - semanage_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: semanage_context_get_user
    functionSourceFile: /src/selinux/libsemanage/src/context_record.c
    functionUses: 1
    functionsReached:
    - sepol_context_get_user
    linkageType: ''
    returnType: char
    signature: char *semanage_context_get_user(const semanage_context_t *con)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_set_user
      Src: /src/selinux/libsemanage/src/context_record.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - con
    - user
    argTypes:
    - semanage_handle_t*
    - semanage_context_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: semanage_context_set_user
    functionSourceFile: /src/selinux/libsemanage/src/context_record.c
    functionUses: 1
    functionsReached:
    - sepol_context_set_user
    linkageType: ''
    returnType: int
    signature: "int semanage_context_set_user(semanage_handle_t *handle,\n\t\t\t      semanage_context_t
      *con, const char *user)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_get_role
      Src: /src/selinux/libsemanage/src/context_record.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - con
    argTypes:
    - semanage_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: semanage_context_get_role
    functionSourceFile: /src/selinux/libsemanage/src/context_record.c
    functionUses: 1
    functionsReached:
    - sepol_context_get_role
    linkageType: ''
    returnType: char
    signature: char *semanage_context_get_role(const semanage_context_t *con)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_set_role
      Src: /src/selinux/libsemanage/src/context_record.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - con
    - role
    argTypes:
    - semanage_handle_t*
    - semanage_context_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: semanage_context_set_role
    functionSourceFile: /src/selinux/libsemanage/src/context_record.c
    functionUses: 1
    functionsReached:
    - sepol_context_set_role
    linkageType: ''
    returnType: int
    signature: "int semanage_context_set_role(semanage_handle_t *handle,\n\t\t\t      semanage_context_t
      *con, const char *role)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_get_type
      Src: /src/selinux/libsemanage/src/context_record.c:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - con
    argTypes:
    - semanage_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: semanage_context_get_type
    functionSourceFile: /src/selinux/libsemanage/src/context_record.c
    functionUses: 1
    functionsReached:
    - sepol_context_get_type
    linkageType: ''
    returnType: char
    signature: char *semanage_context_get_type(const semanage_context_t *con)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_set_type
      Src: /src/selinux/libsemanage/src/context_record.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - con
    - type
    argTypes:
    - semanage_handle_t*
    - semanage_context_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: semanage_context_set_type
    functionSourceFile: /src/selinux/libsemanage/src/context_record.c
    functionUses: 1
    functionsReached:
    - sepol_context_set_type
    linkageType: ''
    returnType: int
    signature: "int semanage_context_set_type(semanage_handle_t *handle,\n\t\t\t      semanage_context_t
      *con, const char *type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_get_mls
      Src: /src/selinux/libsemanage/src/context_record.c:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - con
    argTypes:
    - semanage_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 52
    functionName: semanage_context_get_mls
    functionSourceFile: /src/selinux/libsemanage/src/context_record.c
    functionUses: 1
    functionsReached:
    - sepol_context_get_mls
    linkageType: ''
    returnType: char
    signature: char *semanage_context_get_mls(const semanage_context_t *con)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_set_mls
      Src: /src/selinux/libsemanage/src/context_record.c:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - con
    - mls_range
    argTypes:
    - semanage_handle_t*
    - semanage_context_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: semanage_context_set_mls
    functionSourceFile: /src/selinux/libsemanage/src/context_record.c
    functionUses: 1
    functionsReached:
    - sepol_context_set_mls
    linkageType: ''
    returnType: int
    signature: "int semanage_context_set_mls(semanage_handle_t *handle, semanage_context_t
      *con,\n\t\t\t     const char *mls_range)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_create
      Src: /src/selinux/libsemanage/src/context_record.c:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - con_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_context_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: semanage_context_create
    functionSourceFile: /src/selinux/libsemanage/src/context_record.c
    functionUses: 1
    functionsReached:
    - sepol_context_create
    linkageType: ''
    returnType: int
    signature: "int semanage_context_create(semanage_handle_t *handle,\n\t\t\t    semanage_context_t
      **con_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_clone
      Src: /src/selinux/libsemanage/src/context_record.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - con
    - con_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_context_t*
    - semanage_context_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 72
    functionName: semanage_context_clone
    functionSourceFile: /src/selinux/libsemanage/src/context_record.c
    functionUses: 3
    functionsReached:
    - sepol_context_clone
    linkageType: ''
    returnType: int
    signature: "int semanage_context_clone(semanage_handle_t *handle,\n\t\t\t   const
      semanage_context_t *con,\n\t\t\t   semanage_context_t **con_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_free
      Src: /src/selinux/libsemanage/src/context_record.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - con
    argTypes:
    - semanage_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: semanage_context_free
    functionSourceFile: /src/selinux/libsemanage/src/context_record.c
    functionUses: 20
    functionsReached:
    - sepol_context_free
    linkageType: ''
    returnType: void
    signature: void semanage_context_free(semanage_context_t *con)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_from_string
      Src: /src/selinux/libsemanage/src/context_record.c:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - str
    - con
    argTypes:
    - semanage_handle_t*
    - char*
    - semanage_context_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: semanage_context_from_string
    functionSourceFile: /src/selinux/libsemanage/src/context_record.c
    functionUses: 18
    functionsReached:
    - sepol_context_from_string
    linkageType: ''
    returnType: int
    signature: "int semanage_context_from_string(semanage_handle_t *handle, const
      char *str,\n\t\t\t\t semanage_context_t **con)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_context_to_string
      Src: /src/selinux/libsemanage/src/context_record.c:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - con
    - str_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_context_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: semanage_context_to_string
    functionSourceFile: /src/selinux/libsemanage/src/context_record.c
    functionUses: 6
    functionsReached:
    - sepol_context_to_string
    linkageType: ''
    returnType: int
    signature: "int semanage_context_to_string(semanage_handle_t *handle,\n\t\t\t
      \      const semanage_context_t *con, char **str_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibendport_dbase_policy
      Src: /src/selinux/libsemanage/src/ibendports_policy.c:17,1
    - Dst: dbase_query
      Src: /src/selinux/libsemanage/src/ibendports_policy.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_ibendport_key_t*
    - semanage_ibendport_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 4
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: semanage_ibendport_query
    functionSourceFile: /src/selinux/libsemanage/src/ibendports_policy.c
    functionUses: 1
    functionsReached:
    - semanage_ibendport_dbase_policy
    - dbase_query
    linkageType: ''
    returnType: int
    signature: "int semanage_ibendport_query(semanage_handle_t *handle,\n\t\t\t     const
      semanage_ibendport_key_t *key,\n\t\t\t     semanage_ibendport_t **response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibendport_dbase_policy
      Src: /src/selinux/libsemanage/src/ibendports_policy.c:26,1
    - Dst: dbase_exists
      Src: /src/selinux/libsemanage/src/ibendports_policy.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_ibendport_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: semanage_ibendport_exists
    functionSourceFile: /src/selinux/libsemanage/src/ibendports_policy.c
    functionUses: 1
    functionsReached:
    - semanage_ibendport_dbase_policy
    - dbase_exists
    linkageType: ''
    returnType: int
    signature: "int semanage_ibendport_exists(semanage_handle_t *handle,\n\t\t\t      const
      semanage_ibendport_key_t *key,\n\t\t\t      int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibendport_dbase_policy
      Src: /src/selinux/libsemanage/src/ibendports_policy.c:33,1
    - Dst: dbase_count
      Src: /src/selinux/libsemanage/src/ibendports_policy.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - response
    argTypes:
    - semanage_handle_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 4
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: semanage_ibendport_count
    functionSourceFile: /src/selinux/libsemanage/src/ibendports_policy.c
    functionUses: 1
    functionsReached:
    - semanage_ibendport_dbase_policy
    - dbase_count
    linkageType: ''
    returnType: int
    signature: int semanage_ibendport_count(semanage_handle_t *handle, unsigned int
      *response)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibendport_dbase_policy
      Src: /src/selinux/libsemanage/src/ibendports_policy.c:43,1
    - Dst: dbase_iterate
      Src: /src/selinux/libsemanage/src/ibendports_policy.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - handler_arg
    argTypes:
    - semanage_handle_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 4
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: semanage_ibendport_iterate
    functionSourceFile: /src/selinux/libsemanage/src/ibendports_policy.c
    functionUses: 1
    functionsReached:
    - semanage_ibendport_dbase_policy
    - dbase_iterate
    linkageType: ''
    returnType: int
    signature: "int semanage_ibendport_iterate(\n\tsemanage_handle_t *handle,\n\tint
      (*handler)(const semanage_ibendport_t *record, void *varg),\n\tvoid *handler_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibendport_dbase_policy
      Src: /src/selinux/libsemanage/src/ibendports_policy.c:52,1
    - Dst: dbase_list
      Src: /src/selinux/libsemanage/src/ibendports_policy.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - records
    - count
    argTypes:
    - semanage_handle_t*
    - semanage_ibendport_t***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: semanage_ibendport_list
    functionSourceFile: /src/selinux/libsemanage/src/ibendports_policy.c
    functionUses: 2
    functionsReached:
    - semanage_ibendport_dbase_policy
    - dbase_list
    linkageType: ''
    returnType: int
    signature: "int semanage_ibendport_list(semanage_handle_t *handle,\n\t\t\t    semanage_ibendport_t
      ***records,\n\t\t\t    unsigned int *count)"
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 43
    functionName: type_str
    functionSourceFile: /src/selinux/libsemanage/src/fcontexts_file.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *type_str(int type)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fcontext_get_expr
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:50,1
    - Dst: semanage_fcontext_get_type
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:51,1
    - Dst: type_str
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:52,1
    - Dst: semanage_fcontext_get_type_str
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:53,1
    - Dst: semanage_fcontext_get_con
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:54,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:56,1
    - Dst: semanage_context_to_string
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:60,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:62,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:64,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:67,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:73,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:77,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - handle
    - fcontext
    - str
    argTypes:
    - semanage_handle_t*
    - semanage_fcontext_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 79
    functionName: fcontext_print
    functionSourceFile: /src/selinux/libsemanage/src/fcontexts_file.c
    functionUses: 0
    functionsReached:
    - ERR
    - type_str
    - semanage_context_to_string
    - semanage_fcontext_get_expr
    - free
    - fprintf
    - semanage_fcontext_get_con
    - semanage_fcontext_get_type_str
    - semanage_fcontext_get_type
    linkageType: ''
    returnType: int
    signature: "int fcontext_print(semanage_handle_t *handle,\n\t\t\t  const semanage_fcontext_t
      *fcontext, FILE *str)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: parse_skip_space
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:87,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:93,1
    - Dst: semanage_fcontext_set_expr
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:95,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:97,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:101,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:103,1
    - Dst: strcasecmp
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:105,1
    - Dst: semanage_fcontext_set_type
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:106,1
    - Dst: strcasecmp
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:107,1
    - Dst: semanage_fcontext_set_type
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:108,1
    - Dst: strcasecmp
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:109,1
    - Dst: semanage_fcontext_set_type
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:110,1
    - Dst: strcasecmp
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:111,1
    - Dst: semanage_fcontext_set_type
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:112,1
    - Dst: strcasecmp
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:113,1
    - Dst: semanage_fcontext_set_type
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:114,1
    - Dst: strcasecmp
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:115,1
    - Dst: semanage_fcontext_set_type
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:116,1
    - Dst: strcasecmp
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:117,1
    - Dst: semanage_fcontext_set_type
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:118,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:121,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:125,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:127,1
    - Dst: semanage_context_from_string
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:131,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:132,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:136,1
    - Dst: semanage_fcontext_set_con
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:139,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:142,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:145,1
    - Dst: parse_dispose_line
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:149,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:153,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:154,1
    - Dst: semanage_context_free
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:155,1
    - Dst: parse_dispose_line
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:156,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 73
    argCount: 3
    argNames:
    - handle
    - info
    - fcontext
    argTypes:
    - semanage_handle_t*
    - parse_info_t*
    - semanage_fcontext_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 158
    functionName: fcontext_parse
    functionSourceFile: /src/selinux/libsemanage/src/fcontexts_file.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_fcontext_set_con
    - parse_assert_space
    - parse_skip_space
    - parse_dispose_line
    - semanage_context_from_string
    - free
    - parse_fetch_string
    - semanage_fcontext_set_expr
    - semanage_fcontext_set_type
    - semanage_context_free
    - strcasecmp
    linkageType: ''
    returnType: int
    signature: "int fcontext_parse(semanage_handle_t *handle, parse_info_t *info,\n\t\t\t
      \ semanage_fcontext_t *fcontext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_file_init
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - handle
    - path_ro
    - path_rw
    - dconfig
    argTypes:
    - semanage_handle_t*
    - char*
    - char*
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 166
    functionDepth: 3
    functionLinenumber: 166
    functionLinenumberEnd: 176
    functionName: fcontext_file_dbase_init
    functionSourceFile: /src/selinux/libsemanage/src/fcontexts_file.c
    functionUses: 1
    functionsReached:
    - dbase_file_init
    linkageType: ''
    returnType: int
    signature: "int fcontext_file_dbase_init(semanage_handle_t *handle, const char
      *path_ro,\n\t\t\t     const char *path_rw, dbase_config_t *dconfig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbase_file_release
      Src: /src/selinux/libsemanage/src/fcontexts_file.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dconfig
    argTypes:
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: fcontext_file_dbase_release
    functionSourceFile: /src/selinux/libsemanage/src/fcontexts_file.c
    functionUses: 1
    functionsReached:
    - dbase_file_release
    linkageType: ''
    returnType: void
    signature: void fcontext_file_dbase_release(dbase_config_t *dconfig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: semanage_seuser_get_name
      Src: /src/selinux/libsemanage/src/seusers_file.c:25,1
    - Dst: semanage_seuser_get_sename
      Src: /src/selinux/libsemanage/src/seusers_file.c:26,1
    - Dst: semanage_seuser_get_mlsrange
      Src: /src/selinux/libsemanage/src/seusers_file.c:27,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/seusers_file.c:29,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/seusers_file.c:32,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/src/seusers_file.c:35,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/seusers_file.c:39,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - handle
    - seuser
    - str
    argTypes:
    - semanage_handle_t*
    - semanage_seuser_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 41
    functionName: seuser_print
    functionSourceFile: /src/selinux/libsemanage/src/seusers_file.c
    functionUses: 0
    functionsReached:
    - ERR
    - semanage_seuser_get_sename
    - semanage_seuser_get_name
    - fprintf
    - semanage_seuser_get_mlsrange
    linkageType: ''
    returnType: int
    signature: "int seuser_print(semanage_handle_t *handle,\n\t\t\tconst semanage_seuser_t
      *seuser, FILE *str)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: parse_skip_space
      Src: /src/selinux/libsemanage/src/seusers_file.c:48,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/seusers_file.c:54,1
    - Dst: semanage_seuser_set_name
      Src: /src/selinux/libsemanage/src/seusers_file.c:56,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/seusers_file.c:58,1
    - Dst: parse_skip_space
      Src: /src/selinux/libsemanage/src/seusers_file.c:61,1
    - Dst: parse_assert_ch
      Src: /src/selinux/libsemanage/src/seusers_file.c:63,1
    - Dst: parse_skip_space
      Src: /src/selinux/libsemanage/src/seusers_file.c:65,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/seusers_file.c:69,1
    - Dst: semanage_seuser_set_sename
      Src: /src/selinux/libsemanage/src/seusers_file.c:71,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/seusers_file.c:73,1
    - Dst: parse_skip_space
      Src: /src/selinux/libsemanage/src/seusers_file.c:76,1
    - Dst: parse_optional_ch
      Src: /src/selinux/libsemanage/src/seusers_file.c:78,1
    - Dst: parse_skip_space
      Src: /src/selinux/libsemanage/src/seusers_file.c:80,1
    - Dst: parse_fetch_string
      Src: /src/selinux/libsemanage/src/seusers_file.c:84,1
    - Dst: semanage_seuser_set_mlsrange
      Src: /src/selinux/libsemanage/src/seusers_file.c:87,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/seusers_file.c:89,1
    - Dst: parse_assert_space
      Src: /src/selinux/libsemanage/src/seusers_file.c:92,1
    - Dst: parse_dispose_line
      Src: /src/selinux/libsemanage/src/seusers_file.c:99,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/seusers_file.c:103,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/seusers_file.c:104,1
    - Dst: parse_dispose_line
      Src: /src/selinux/libsemanage/src/seusers_file.c:105,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 65
    argCount: 3
    argNames:
    - handle
    - info
    - seuser
    argTypes:
    - semanage_handle_t*
    - parse_info_t*
    - semanage_seuser_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 107
    functionName: seuser_parse
    functionSourceFile: /src/selinux/libsemanage/src/seusers_file.c
    functionUses: 0
    functionsReached:
    - parse_assert_ch
    - ERR
    - parse_assert_space
    - parse_skip_space
    - semanage_seuser_set_mlsrange
    - parse_dispose_line
    - semanage_seuser_set_name
    - semanage_seuser_set_sename
    - free
    - parse_fetch_string
    - parse_optional_ch
    linkageType: ''
    returnType: int
    signature: "int seuser_parse(semanage_handle_t *handle, parse_info_t *info,\n\t\t\tsemanage_seuser_t
      *seuser)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dbase_file_init
      Src: /src/selinux/libsemanage/src/seusers_file.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - handle
    - path_ro
    - path_rw
    - dconfig
    argTypes:
    - semanage_handle_t*
    - char*
    - char*
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 115
    functionDepth: 3
    functionLinenumber: 115
    functionLinenumberEnd: 124
    functionName: seuser_file_dbase_init
    functionSourceFile: /src/selinux/libsemanage/src/seusers_file.c
    functionUses: 1
    functionsReached:
    - dbase_file_init
    linkageType: ''
    returnType: int
    signature: "int seuser_file_dbase_init(semanage_handle_t *handle, const char *path_ro,\n\t\t\t
      \  const char *path_rw, dbase_config_t *dconfig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dbase_file_release
      Src: /src/selinux/libsemanage/src/seusers_file.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dconfig
    argTypes:
    - dbase_config_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 2
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: seuser_file_dbase_release
    functionSourceFile: /src/selinux/libsemanage/src/seusers_file.c
    functionUses: 1
    functionsReached:
    - dbase_file_release
    linkageType: ''
    returnType: void
    signature: void seuser_file_dbase_release(dbase_config_t *dconfig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibpkey_dbase_policy
      Src: /src/selinux/libsemanage/src/ibpkeys_policy.c:17,1
    - Dst: dbase_query
      Src: /src/selinux/libsemanage/src/ibpkeys_policy.c:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_ibpkey_key_t*
    - semanage_ibpkey_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 4
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: semanage_ibpkey_query
    functionSourceFile: /src/selinux/libsemanage/src/ibpkeys_policy.c
    functionUses: 0
    functionsReached:
    - semanage_ibpkey_dbase_policy
    - dbase_query
    linkageType: ''
    returnType: int
    signature: "int semanage_ibpkey_query(semanage_handle_t *handle,\n\t\t\t  const
      semanage_ibpkey_key_t *key,\n\t\t\t  semanage_ibpkey_t **response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibpkey_dbase_policy
      Src: /src/selinux/libsemanage/src/ibpkeys_policy.c:25,1
    - Dst: dbase_exists
      Src: /src/selinux/libsemanage/src/ibpkeys_policy.c:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_ibpkey_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: semanage_ibpkey_exists
    functionSourceFile: /src/selinux/libsemanage/src/ibpkeys_policy.c
    functionUses: 0
    functionsReached:
    - dbase_exists
    - semanage_ibpkey_dbase_policy
    linkageType: ''
    returnType: int
    signature: "int semanage_ibpkey_exists(semanage_handle_t *handle,\n\t\t\t   const
      semanage_ibpkey_key_t *key, int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibpkey_dbase_policy
      Src: /src/selinux/libsemanage/src/ibpkeys_policy.c:32,1
    - Dst: dbase_count
      Src: /src/selinux/libsemanage/src/ibpkeys_policy.c:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - response
    argTypes:
    - semanage_handle_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: semanage_ibpkey_count
    functionSourceFile: /src/selinux/libsemanage/src/ibpkeys_policy.c
    functionUses: 0
    functionsReached:
    - dbase_count
    - semanage_ibpkey_dbase_policy
    linkageType: ''
    returnType: int
    signature: int semanage_ibpkey_count(semanage_handle_t *handle, unsigned int *response)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibpkey_dbase_policy
      Src: /src/selinux/libsemanage/src/ibpkeys_policy.c:42,1
    - Dst: dbase_iterate
      Src: /src/selinux/libsemanage/src/ibpkeys_policy.c:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - handler_arg
    argTypes:
    - semanage_handle_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 4
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: semanage_ibpkey_iterate
    functionSourceFile: /src/selinux/libsemanage/src/ibpkeys_policy.c
    functionUses: 0
    functionsReached:
    - semanage_ibpkey_dbase_policy
    - dbase_iterate
    linkageType: ''
    returnType: int
    signature: "int semanage_ibpkey_iterate(semanage_handle_t *handle,\n\t\t\t    int
      (*handler)(const semanage_ibpkey_t *record,\n\t\t\t\t\t   void *varg),\n\t\t\t
      \   void *handler_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_ibpkey_dbase_policy
      Src: /src/selinux/libsemanage/src/ibpkeys_policy.c:50,1
    - Dst: dbase_list
      Src: /src/selinux/libsemanage/src/ibpkeys_policy.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - records
    - count
    argTypes:
    - semanage_handle_t*
    - semanage_ibpkey_t***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 4
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: semanage_ibpkey_list
    functionSourceFile: /src/selinux/libsemanage/src/ibpkeys_policy.c
    functionUses: 0
    functionsReached:
    - semanage_ibpkey_dbase_policy
    - dbase_list
    linkageType: ''
    returnType: int
    signature: "int semanage_ibpkey_list(semanage_handle_t *handle,\n\t\t\t semanage_ibpkey_t
      ***records, unsigned int *count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - value
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: ror
    functionSourceFile: /src/selinux/libsemanage/src/sha256.c
    functionUses: 50
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ror(value, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: MIN
    functionSourceFile: /src/selinux/libsemanage/src/sha256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MIN(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: STORE32H
    functionSourceFile: /src/selinux/libsemanage/src/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE32H(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: LOAD32H
    functionSourceFile: /src/selinux/libsemanage/src/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD32H(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 53
    functionName: STORE64H
    functionSourceFile: /src/selinux/libsemanage/src/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STORE64H(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: Ch
    functionSourceFile: /src/selinux/libsemanage/src/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Ch(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - z
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: Maj
    functionSourceFile: /src/selinux/libsemanage/src/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Maj(x, y, z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: S
    functionSourceFile: /src/selinux/libsemanage/src/sha256.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: R
    functionSourceFile: /src/selinux/libsemanage/src/sha256.c
    functionUses: 678
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: Sigma0
    functionSourceFile: /src/selinux/libsemanage/src/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sigma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: Sigma1
    functionSourceFile: /src/selinux/libsemanage/src/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sigma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: Gamma0
    functionSourceFile: /src/selinux/libsemanage/src/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Gamma0(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: Gamma1
    functionSourceFile: /src/selinux/libsemanage/src/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Gamma1(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - f
    - ','
    - g
    - ','
    - h
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: Sha256Round
    functionSourceFile: /src/selinux/libsemanage/src/sha256.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Sha256Round(a, b, c, d, e, f, g, h, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOAD32H
      Src: /src/selinux/libsemanage/src/sha256.c:118,1
    - Dst: Gamma1
      Src: /src/selinux/libsemanage/src/sha256.c:123,1
    - Dst: Gamma0
      Src: /src/selinux/libsemanage/src/sha256.c:123,1
    - Dst: Sha256Round
      Src: /src/selinux/libsemanage/src/sha256.c:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - Context
    - Buffer
    argTypes:
    - Sha256Context*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 145
    functionName: TransformFunction
    functionSourceFile: /src/selinux/libsemanage/src/sha256.c
    functionUses: 0
    functionsReached:
    - Sha256Round
    - LOAD32H
    - Gamma1
    - Gamma0
    linkageType: ''
    returnType: void
    signature: void TransformFunction(Sha256Context *Context, uint8_t const *Buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - Context
    argTypes:
    - Sha256Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 169
    functionName: Sha256Initialise
    functionSourceFile: /src/selinux/libsemanage/src/sha256.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'void Sha256Initialise(Sha256Context *Context // [out]

      )'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TransformFunction
      Src: /src/selinux/libsemanage/src/sha256.c:190,1
    - Dst: MIN
      Src: /src/selinux/libsemanage/src/sha256.c:195,1
    - Dst: memcpy
      Src: /src/selinux/libsemanage/src/sha256.c:196,1
    - Dst: TransformFunction
      Src: /src/selinux/libsemanage/src/sha256.c:202,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - Context
    - Buffer
    - BufferSize
    argTypes:
    - Sha256Context*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 208
    functionName: Sha256Update
    functionSourceFile: /src/selinux/libsemanage/src/sha256.c
    functionUses: 4
    functionsReached:
    - MIN
    - memcpy
    - TransformFunction
    linkageType: ''
    returnType: void
    signature: "void Sha256Update(Sha256Context *Context, // [in out]\n\t\t  void
      const *Buffer, // [in]\n\t\t  size_t BufferSize // [in]\n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TransformFunction
      Src: /src/selinux/libsemanage/src/sha256.c:239,1
    - Dst: STORE64H
      Src: /src/selinux/libsemanage/src/sha256.c:249,1
    - Dst: TransformFunction
      Src: /src/selinux/libsemanage/src/sha256.c:250,1
    - Dst: STORE32H
      Src: /src/selinux/libsemanage/src/sha256.c:254,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - Context
    - Digest
    argTypes:
    - Sha256Context*
    - SHA256_HASH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 256
    functionName: Sha256Finalise
    functionSourceFile: /src/selinux/libsemanage/src/sha256.c
    functionUses: 1
    functionsReached:
    - STORE32H
    - STORE64H
    - TransformFunction
    linkageType: ''
    returnType: void
    signature: "void Sha256Finalise(Sha256Context *Context, // [in out]\n\t\t    SHA256_HASH
      *Digest // [out]\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sha256Initialise
      Src: /src/selinux/libsemanage/src/sha256.c:271,1
    - Dst: Sha256Update
      Src: /src/selinux/libsemanage/src/sha256.c:272,1
    - Dst: Sha256Finalise
      Src: /src/selinux/libsemanage/src/sha256.c:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - Buffer
    - BufferSize
    - Digest
    argTypes:
    - void*
    - size_t
    - SHA256_HASH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 274
    functionName: Sha256Calculate
    functionSourceFile: /src/selinux/libsemanage/src/sha256.c
    functionUses: 1
    functionsReached:
    - Sha256Initialise
    - Sha256Update
    - Sha256Finalise
    linkageType: ''
    returnType: void
    signature: "void Sha256Calculate(void const *Buffer, // [in]\n\t\t     size_t
      BufferSize, // [in]\n\t\t     SHA256_HASH *Digest // [in]\n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_node_dbase_policy
      Src: /src/selinux/libsemanage/src/nodes_policy.c:17,1
    - Dst: dbase_query
      Src: /src/selinux/libsemanage/src/nodes_policy.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_node_key_t*
    - semanage_node_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 4
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: semanage_node_query
    functionSourceFile: /src/selinux/libsemanage/src/nodes_policy.c
    functionUses: 1
    functionsReached:
    - semanage_node_dbase_policy
    - dbase_query
    linkageType: ''
    returnType: int
    signature: "int semanage_node_query(semanage_handle_t *handle,\n\t\t\tconst semanage_node_key_t
      *key,\n\t\t\tsemanage_node_t **response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_node_dbase_policy
      Src: /src/selinux/libsemanage/src/nodes_policy.c:24,1
    - Dst: dbase_exists
      Src: /src/selinux/libsemanage/src/nodes_policy.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_node_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: semanage_node_exists
    functionSourceFile: /src/selinux/libsemanage/src/nodes_policy.c
    functionUses: 1
    functionsReached:
    - semanage_node_dbase_policy
    - dbase_exists
    linkageType: ''
    returnType: int
    signature: "int semanage_node_exists(semanage_handle_t *handle,\n\t\t\t const
      semanage_node_key_t *key, int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_node_dbase_policy
      Src: /src/selinux/libsemanage/src/nodes_policy.c:30,1
    - Dst: dbase_count
      Src: /src/selinux/libsemanage/src/nodes_policy.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - response
    argTypes:
    - semanage_handle_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: semanage_node_count
    functionSourceFile: /src/selinux/libsemanage/src/nodes_policy.c
    functionUses: 1
    functionsReached:
    - semanage_node_dbase_policy
    - dbase_count
    linkageType: ''
    returnType: int
    signature: int semanage_node_count(semanage_handle_t *handle, unsigned int *response)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_node_dbase_policy
      Src: /src/selinux/libsemanage/src/nodes_policy.c:39,1
    - Dst: dbase_iterate
      Src: /src/selinux/libsemanage/src/nodes_policy.c:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - handler_arg
    argTypes:
    - semanage_handle_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 4
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: semanage_node_iterate
    functionSourceFile: /src/selinux/libsemanage/src/nodes_policy.c
    functionUses: 1
    functionsReached:
    - semanage_node_dbase_policy
    - dbase_iterate
    linkageType: ''
    returnType: int
    signature: "int semanage_node_iterate(semanage_handle_t *handle,\n\t\t\t  int
      (*handler)(const semanage_node_t *record,\n\t\t\t\t\t void *varg),\n\t\t\t  void
      *handler_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_node_dbase_policy
      Src: /src/selinux/libsemanage/src/nodes_policy.c:46,1
    - Dst: dbase_list
      Src: /src/selinux/libsemanage/src/nodes_policy.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - records
    - count
    argTypes:
    - semanage_handle_t*
    - semanage_node_t***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: semanage_node_list
    functionSourceFile: /src/selinux/libsemanage/src/nodes_policy.c
    functionUses: 2
    functionsReached:
    - semanage_node_dbase_policy
    - dbase_list
    linkageType: ''
    returnType: int
    signature: "int semanage_node_list(semanage_handle_t *handle, semanage_node_t
      ***records,\n\t\t       unsigned int *count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_compare
      Src: /src/selinux/libsemanage/src/ibpkey_record.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ibpkey
    - key
    argTypes:
    - semanage_ibpkey_t*
    - semanage_ibpkey_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: semanage_ibpkey_compare
    functionSourceFile: /src/selinux/libsemanage/src/ibpkey_record.c
    functionUses: 0
    functionsReached:
    - sepol_ibpkey_compare
    linkageType: ''
    returnType: int
    signature: "int semanage_ibpkey_compare(const semanage_ibpkey_t *ibpkey,\n\t\t\t
      \   const semanage_ibpkey_key_t *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_compare2
      Src: /src/selinux/libsemanage/src/ibpkey_record.c:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ibpkey
    - ibpkey2
    argTypes:
    - semanage_ibpkey_t*
    - semanage_ibpkey_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: semanage_ibpkey_compare2
    functionSourceFile: /src/selinux/libsemanage/src/ibpkey_record.c
    functionUses: 0
    functionsReached:
    - sepol_ibpkey_compare2
    linkageType: ''
    returnType: int
    signature: "int semanage_ibpkey_compare2(const semanage_ibpkey_t *ibpkey,\n\t\t\t
      \    const semanage_ibpkey_t *ibpkey2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_compare2
      Src: /src/selinux/libsemanage/src/ibpkey_record.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: semanage_ibpkey_compare2_qsort
    functionSourceFile: /src/selinux/libsemanage/src/ibpkey_record.c
    functionUses: 0
    functionsReached:
    - sepol_ibpkey_compare2
    linkageType: ''
    returnType: int
    signature: int semanage_ibpkey_compare2_qsort(const void *p1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_key_create
      Src: /src/selinux/libsemanage/src/ibpkey_record.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - handle
    - subnet_prefix
    - low
    - high
    - key_ptr
    argTypes:
    - semanage_handle_t*
    - char*
    - int
    - int
    - semanage_ibpkey_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: semanage_ibpkey_key_create
    functionSourceFile: /src/selinux/libsemanage/src/ibpkey_record.c
    functionUses: 0
    functionsReached:
    - sepol_ibpkey_key_create
    linkageType: ''
    returnType: int
    signature: "int semanage_ibpkey_key_create(semanage_handle_t *handle,\n\t\t\t
      \      const char *subnet_prefix, int low, int high,\n\t\t\t       semanage_ibpkey_key_t
      **key_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_key_extract
      Src: /src/selinux/libsemanage/src/ibpkey_record.c:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - ibpkey
    - key_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_ibpkey_t*
    - semanage_ibpkey_key_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 3
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: semanage_ibpkey_key_extract
    functionSourceFile: /src/selinux/libsemanage/src/ibpkey_record.c
    functionUses: 0
    functionsReached:
    - sepol_ibpkey_key_extract
    linkageType: ''
    returnType: int
    signature: "int semanage_ibpkey_key_extract(semanage_handle_t *handle,\n\t\t\t\tconst
      semanage_ibpkey_t *ibpkey,\n\t\t\t\tsemanage_ibpkey_key_t **key_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_key_free
      Src: /src/selinux/libsemanage/src/ibpkey_record.c:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - semanage_ibpkey_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: semanage_ibpkey_key_free
    functionSourceFile: /src/selinux/libsemanage/src/ibpkey_record.c
    functionUses: 0
    functionsReached:
    - sepol_ibpkey_key_free
    linkageType: ''
    returnType: void
    signature: void semanage_ibpkey_key_free(semanage_ibpkey_key_t *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_get_subnet_prefix
      Src: /src/selinux/libsemanage/src/ibpkey_record.c:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - ibpkey
    - subnet_prefix_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_ibpkey_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: semanage_ibpkey_get_subnet_prefix
    functionSourceFile: /src/selinux/libsemanage/src/ibpkey_record.c
    functionUses: 2
    functionsReached:
    - sepol_ibpkey_get_subnet_prefix
    linkageType: ''
    returnType: int
    signature: "int semanage_ibpkey_get_subnet_prefix(semanage_handle_t *handle,\n\t\t\t\t
      \     const semanage_ibpkey_t *ibpkey,\n\t\t\t\t      char **subnet_prefix_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_get_subnet_prefix_bytes
      Src: /src/selinux/libsemanage/src/ibpkey_record.c:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ibpkey
    argTypes:
    - semanage_ibpkey_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: semanage_ibpkey_get_subnet_prefix_bytes
    functionSourceFile: /src/selinux/libsemanage/src/ibpkey_record.c
    functionUses: 1
    functionsReached:
    - sepol_ibpkey_get_subnet_prefix_bytes
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t semanage_ibpkey_get_subnet_prefix_bytes(const semanage_ibpkey_t
      *ibpkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_set_subnet_prefix
      Src: /src/selinux/libsemanage/src/ibpkey_record.c:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - ibpkey
    - subnet_prefix
    argTypes:
    - semanage_handle_t*
    - semanage_ibpkey_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: semanage_ibpkey_set_subnet_prefix
    functionSourceFile: /src/selinux/libsemanage/src/ibpkey_record.c
    functionUses: 1
    functionsReached:
    - sepol_ibpkey_set_subnet_prefix
    linkageType: ''
    returnType: int
    signature: "int semanage_ibpkey_set_subnet_prefix(semanage_handle_t *handle,\n\t\t\t\t
      \     semanage_ibpkey_t *ibpkey,\n\t\t\t\t      const char *subnet_prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_set_subnet_prefix_bytes
      Src: /src/selinux/libsemanage/src/ibpkey_record.c:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ibpkey
    - subnet_prefix
    argTypes:
    - semanage_ibpkey_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: semanage_ibpkey_set_subnet_prefix_bytes
    functionSourceFile: /src/selinux/libsemanage/src/ibpkey_record.c
    functionUses: 0
    functionsReached:
    - sepol_ibpkey_set_subnet_prefix_bytes
    linkageType: ''
    returnType: void
    signature: "void semanage_ibpkey_set_subnet_prefix_bytes(semanage_ibpkey_t *ibpkey,\n\t\t\t\t\t
      \    uint64_t subnet_prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_get_low
      Src: /src/selinux/libsemanage/src/ibpkey_record.c:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ibpkey
    argTypes:
    - semanage_ibpkey_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: semanage_ibpkey_get_low
    functionSourceFile: /src/selinux/libsemanage/src/ibpkey_record.c
    functionUses: 2
    functionsReached:
    - sepol_ibpkey_get_low
    linkageType: ''
    returnType: int
    signature: int semanage_ibpkey_get_low(const semanage_ibpkey_t *ibpkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_get_high
      Src: /src/selinux/libsemanage/src/ibpkey_record.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ibpkey
    argTypes:
    - semanage_ibpkey_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: semanage_ibpkey_get_high
    functionSourceFile: /src/selinux/libsemanage/src/ibpkey_record.c
    functionUses: 2
    functionsReached:
    - sepol_ibpkey_get_high
    linkageType: ''
    returnType: int
    signature: int semanage_ibpkey_get_high(const semanage_ibpkey_t *ibpkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_set_pkey
      Src: /src/selinux/libsemanage/src/ibpkey_record.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ibpkey
    - ibpkey_num
    argTypes:
    - semanage_ibpkey_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: semanage_ibpkey_set_pkey
    functionSourceFile: /src/selinux/libsemanage/src/ibpkey_record.c
    functionUses: 1
    functionsReached:
    - sepol_ibpkey_set_pkey
    linkageType: ''
    returnType: void
    signature: void semanage_ibpkey_set_pkey(semanage_ibpkey_t *ibpkey, int ibpkey_num)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_set_range
      Src: /src/selinux/libsemanage/src/ibpkey_record.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ibpkey
    - low
    - high
    argTypes:
    - semanage_ibpkey_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: semanage_ibpkey_set_range
    functionSourceFile: /src/selinux/libsemanage/src/ibpkey_record.c
    functionUses: 1
    functionsReached:
    - sepol_ibpkey_set_range
    linkageType: ''
    returnType: void
    signature: void semanage_ibpkey_set_range(semanage_ibpkey_t *ibpkey, int low,
      int high)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_get_con
      Src: /src/selinux/libsemanage/src/ibpkey_record.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ibpkey
    argTypes:
    - semanage_ibpkey_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: semanage_ibpkey_get_con
    functionSourceFile: /src/selinux/libsemanage/src/ibpkey_record.c
    functionUses: 1
    functionsReached:
    - sepol_ibpkey_get_con
    linkageType: ''
    returnType: semanage_context_t
    signature: semanage_context_t *semanage_ibpkey_get_con(const semanage_ibpkey_t
      *ibpkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_set_con
      Src: /src/selinux/libsemanage/src/ibpkey_record.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - ibpkey
    - con
    argTypes:
    - semanage_handle_t*
    - semanage_ibpkey_t*
    - semanage_context_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: semanage_ibpkey_set_con
    functionSourceFile: /src/selinux/libsemanage/src/ibpkey_record.c
    functionUses: 1
    functionsReached:
    - sepol_ibpkey_set_con
    linkageType: ''
    returnType: int
    signature: "int semanage_ibpkey_set_con(semanage_handle_t *handle,\n\t\t\t    semanage_ibpkey_t
      *ibpkey, semanage_context_t *con)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_create
      Src: /src/selinux/libsemanage/src/ibpkey_record.c:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - ibpkey_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_ibpkey_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: semanage_ibpkey_create
    functionSourceFile: /src/selinux/libsemanage/src/ibpkey_record.c
    functionUses: 0
    functionsReached:
    - sepol_ibpkey_create
    linkageType: ''
    returnType: int
    signature: "int semanage_ibpkey_create(semanage_handle_t *handle,\n\t\t\t   semanage_ibpkey_t
      **ibpkey_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_clone
      Src: /src/selinux/libsemanage/src/ibpkey_record.c:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - ibpkey
    - ibpkey_ptr
    argTypes:
    - semanage_handle_t*
    - semanage_ibpkey_t*
    - semanage_ibpkey_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 136
    functionName: semanage_ibpkey_clone
    functionSourceFile: /src/selinux/libsemanage/src/ibpkey_record.c
    functionUses: 0
    functionsReached:
    - sepol_ibpkey_clone
    linkageType: ''
    returnType: int
    signature: "int semanage_ibpkey_clone(semanage_handle_t *handle,\n\t\t\t  const
      semanage_ibpkey_t *ibpkey,\n\t\t\t  semanage_ibpkey_t **ibpkey_ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_ibpkey_free
      Src: /src/selinux/libsemanage/src/ibpkey_record.c:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ibpkey
    argTypes:
    - semanage_ibpkey_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: semanage_ibpkey_free
    functionSourceFile: /src/selinux/libsemanage/src/ibpkey_record.c
    functionUses: 1
    functionsReached:
    - sepol_ibpkey_free
    linkageType: ''
    returnType: void
    signature: void semanage_ibpkey_free(semanage_ibpkey_t *ibpkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fcontext_dbase_local
      Src: /src/selinux/libsemanage/src/fcontexts_local.c:21,1
    - Dst: dbase_modify
      Src: /src/selinux/libsemanage/src/fcontexts_local.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - data
    argTypes:
    - semanage_handle_t*
    - semanage_fcontext_key_t*
    - semanage_fcontext_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 17
    functionDepth: 3
    functionLinenumber: 17
    functionLinenumberEnd: 23
    functionName: semanage_fcontext_modify_local
    functionSourceFile: /src/selinux/libsemanage/src/fcontexts_local.c
    functionUses: 2
    functionsReached:
    - semanage_fcontext_dbase_local
    - dbase_modify
    linkageType: ''
    returnType: int
    signature: "int semanage_fcontext_modify_local(semanage_handle_t *handle,\n\t\t\t\t
      \  const semanage_fcontext_key_t *key,\n\t\t\t\t   const semanage_fcontext_t
      *data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fcontext_dbase_local
      Src: /src/selinux/libsemanage/src/fcontexts_local.c:28,1
    - Dst: dbase_del
      Src: /src/selinux/libsemanage/src/fcontexts_local.c:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - key
    argTypes:
    - semanage_handle_t*
    - semanage_fcontext_key_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: semanage_fcontext_del_local
    functionSourceFile: /src/selinux/libsemanage/src/fcontexts_local.c
    functionUses: 2
    functionsReached:
    - semanage_fcontext_dbase_local
    - dbase_del
    linkageType: ''
    returnType: int
    signature: "int semanage_fcontext_del_local(semanage_handle_t *handle,\n\t\t\t\tconst
      semanage_fcontext_key_t *key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fcontext_dbase_local
      Src: /src/selinux/libsemanage/src/fcontexts_local.c:36,1
    - Dst: dbase_query
      Src: /src/selinux/libsemanage/src/fcontexts_local.c:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_fcontext_key_t*
    - semanage_fcontext_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 4
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: semanage_fcontext_query_local
    functionSourceFile: /src/selinux/libsemanage/src/fcontexts_local.c
    functionUses: 2
    functionsReached:
    - semanage_fcontext_dbase_local
    - dbase_query
    linkageType: ''
    returnType: int
    signature: "int semanage_fcontext_query_local(semanage_handle_t *handle,\n\t\t\t\t
      \ const semanage_fcontext_key_t *key,\n\t\t\t\t  semanage_fcontext_t **response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fcontext_dbase_local
      Src: /src/selinux/libsemanage/src/fcontexts_local.c:44,1
    - Dst: dbase_exists
      Src: /src/selinux/libsemanage/src/fcontexts_local.c:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - key
    - response
    argTypes:
    - semanage_handle_t*
    - semanage_fcontext_key_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 4
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: semanage_fcontext_exists_local
    functionSourceFile: /src/selinux/libsemanage/src/fcontexts_local.c
    functionUses: 1
    functionsReached:
    - semanage_fcontext_dbase_local
    - dbase_exists
    linkageType: ''
    returnType: int
    signature: "int semanage_fcontext_exists_local(semanage_handle_t *handle,\n\t\t\t\t
      \  const semanage_fcontext_key_t *key,\n\t\t\t\t   int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fcontext_dbase_local
      Src: /src/selinux/libsemanage/src/fcontexts_local.c:51,1
    - Dst: dbase_count
      Src: /src/selinux/libsemanage/src/fcontexts_local.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - response
    argTypes:
    - semanage_handle_t*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 4
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: semanage_fcontext_count_local
    functionSourceFile: /src/selinux/libsemanage/src/fcontexts_local.c
    functionUses: 1
    functionsReached:
    - semanage_fcontext_dbase_local
    - dbase_count
    linkageType: ''
    returnType: int
    signature: "int semanage_fcontext_count_local(semanage_handle_t *handle,\n\t\t\t\t
      \ unsigned int *response)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fcontext_dbase_local
      Src: /src/selinux/libsemanage/src/fcontexts_local.c:60,1
    - Dst: dbase_iterate
      Src: /src/selinux/libsemanage/src/fcontexts_local.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - handler_arg
    argTypes:
    - semanage_handle_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 4
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: semanage_fcontext_iterate_local
    functionSourceFile: /src/selinux/libsemanage/src/fcontexts_local.c
    functionUses: 1
    functionsReached:
    - semanage_fcontext_dbase_local
    - dbase_iterate
    linkageType: ''
    returnType: int
    signature: "int semanage_fcontext_iterate_local(\n\tsemanage_handle_t *handle,\n\tint
      (*handler)(const semanage_fcontext_t *record, void *varg),\n\tvoid *handler_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fcontext_dbase_local
      Src: /src/selinux/libsemanage/src/fcontexts_local.c:68,1
    - Dst: dbase_list
      Src: /src/selinux/libsemanage/src/fcontexts_local.c:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - handle
    - records
    - count
    argTypes:
    - semanage_handle_t*
    - semanage_fcontext_t***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 4
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: semanage_fcontext_list_local
    functionSourceFile: /src/selinux/libsemanage/src/fcontexts_local.c
    functionUses: 1
    functionsReached:
    - semanage_fcontext_dbase_local
    - dbase_list
    linkageType: ''
    returnType: int
    signature: "int semanage_fcontext_list_local(semanage_handle_t *handle,\n\t\t\t\t
      semanage_fcontext_t ***records,\n\t\t\t\t unsigned int *count)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fcontext_get_expr
      Src: /src/selinux/libsemanage/src/fcontexts_local.c:87,1
    - Dst: semanage_fcontext_get_type
      Src: /src/selinux/libsemanage/src/fcontexts_local.c:88,1
    - Dst: semanage_fcontext_get_type_str
      Src: /src/selinux/libsemanage/src/fcontexts_local.c:89,1
    - Dst: semanage_fcontext_get_con
      Src: /src/selinux/libsemanage/src/fcontexts_local.c:90,1
    - Dst: sepol_context_check
      Src: /src/selinux/libsemanage/src/fcontexts_local.c:92,1
    - Dst: semanage_context_to_string
      Src: /src/selinux/libsemanage/src/fcontexts_local.c:99,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/fcontexts_local.c:100,1
    - Dst: free
      Src: /src/selinux/libsemanage/src/fcontexts_local.c:102,1
    - Dst: ERR
      Src: /src/selinux/libsemanage/src/fcontexts_local.c:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - fcon
    - varg
    argTypes:
    - semanage_fcontext_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 77
    functionDepth: 4
    functionLinenumber: 77
    functionLinenumberEnd: 107
    functionName: validate_handler
    functionSourceFile: /src/selinux/libsemanage/src/fcontexts_local.c
    functionUses: 0
    functionsReached:
    - ERR
    - sepol_context_check
    - semanage_context_to_string
    - semanage_fcontext_get_expr
    - free
    - semanage_fcontext_get_con
    - semanage_fcontext_get_type_str
    - semanage_fcontext_get_type
    linkageType: ''
    returnType: int
    signature: int validate_handler(const semanage_fcontext_t *fcon, void *varg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: semanage_fcontext_iterate_local
      Src: /src/selinux/libsemanage/src/fcontexts_local.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - handle
    - policydb
    argTypes:
    - semanage_handle_t*
    - sepol_policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 5
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: semanage_fcontext_validate_local
    functionSourceFile: /src/selinux/libsemanage/src/fcontexts_local.c
    functionUses: 1
    functionsReached:
    - semanage_fcontext_iterate_local
    linkageType: ''
    returnType: int
    signature: "int semanage_fcontext_validate_local(semanage_handle_t *handle,\n\t\t\t\t
      \    const sepol_policydb_t *policydb)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: semanage_handle_create
      Src: /src/selinux/libsemanage/example/test_fcontext.c:18,1
    - Dst: perror
      Src: /src/selinux/libsemanage/example/test_fcontext.c:20,1
    - Dst: semanage_access_check
      Src: /src/selinux/libsemanage/example/test_fcontext.c:23,1
    - Dst: perror
      Src: /src/selinux/libsemanage/example/test_fcontext.c:24,1
    - Dst: semanage_connect
      Src: /src/selinux/libsemanage/example/test_fcontext.c:27,1
    - Dst: perror
      Src: /src/selinux/libsemanage/example/test_fcontext.c:28,1
    - Dst: semanage_fcontext_key_create
      Src: /src/selinux/libsemanage/example/test_fcontext.c:32,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/example/test_fcontext.c:34,1
    - Dst: semanage_fcontext_exists
      Src: /src/selinux/libsemanage/example/test_fcontext.c:38,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/example/test_fcontext.c:39,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/example/test_fcontext.c:44,1
    - Dst: semanage_fcontext_create
      Src: /src/selinux/libsemanage/example/test_fcontext.c:49,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/example/test_fcontext.c:50,1
    - Dst: semanage_fcontext_set_expr
      Src: /src/selinux/libsemanage/example/test_fcontext.c:54,1
    - Dst: semanage_context_from_string
      Src: /src/selinux/libsemanage/example/test_fcontext.c:56,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/example/test_fcontext.c:57,1
    - Dst: semanage_fcontext_set_con
      Src: /src/selinux/libsemanage/example/test_fcontext.c:63,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/example/test_fcontext.c:64,1
    - Dst: semanage_fcontext_set_type
      Src: /src/selinux/libsemanage/example/test_fcontext.c:68,1
    - Dst: semanage_fcontext_modify_local
      Src: /src/selinux/libsemanage/example/test_fcontext.c:70,1
    - Dst: fprintf
      Src: /src/selinux/libsemanage/example/test_fcontext.c:71,1
    - Dst: semanage_fcontext_key_free
      Src: /src/selinux/libsemanage/example/test_fcontext.c:74,1
    - Dst: semanage_fcontext_free
      Src: /src/selinux/libsemanage/example/test_fcontext.c:75,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 10
    functionDepth: 4
    functionLinenumber: 10
    functionLinenumberEnd: 78
    functionName: main
    functionSourceFile: /src/selinux/libsemanage/example/test_fcontext.c
    functionUses: 3
    functionsReached:
    - semanage_fcontext_set_con
    - semanage_access_check
    - semanage_handle_create
    - semanage_connect
    - semanage_fcontext_key_free
    - semanage_fcontext_modify_local
    - semanage_fcontext_free
    - semanage_fcontext_create
    - perror
    - semanage_fcontext_key_create
    - semanage_context_from_string
    - semanage_fcontext_set_expr
    - semanage_fcontext_set_type
    - semanage_fcontext_exists
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(const int argc, const char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 57
    functionName: perm_name
    functionSourceFile: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int perm_name(hashtab_key_t key, hashtab_datum_t datum, void *data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_map
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:73,1
    - Dst: hashtab_map
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:76,1
    - Dst: fprintf
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:83,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 4
    argNames:
    - av
    - key
    - policydbp
    - fp
    argTypes:
    - uint32_t
    - avtab_key_t*
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 89
    functionName: render_access_mask
    functionSourceFile: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c
    functionUses: 0
    functionsReached:
    - fprintf
    - hashtab_map
    linkageType: ''
    returnType: int
    signature: "int render_access_mask(uint32_t av, avtab_key_t *key,\n\t\t\t      policydb_t
      *policydbp, FILE *fp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:98,1
    - Dst: fprintf
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:100,1
    - Dst: exit
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - key
    - p
    - fp
    argTypes:
    - avtab_key_t*
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 105
    functionName: render_key
    functionSourceFile: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: int
    signature: int render_key(avtab_key_t *key, policydb_t *p, FILE *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: render_key
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:123,1
    - Dst: render_access_mask
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:124,1
    - Dst: fprintf
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - key
    - datum
    - args
    argTypes:
    - avtab_key_t*
    - avtab_datum_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 128
    functionName: output_avrule
    functionSourceFile: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c
    functionUses: 0
    functionsReached:
    - render_access_mask
    - fprintf
    - render_key
    linkageType: ''
    returnType: int
    signature: int output_avrule(avtab_key_t *key, avtab_datum_t *datum, void *args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:137,1
    - Dst: avtab_map
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:139,1
    - Dst: avtab_map
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - key
    - datum
    - datap
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 148
    functionName: attribute_callback
    functionSourceFile: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c
    functionUses: 0
    functionsReached:
    - avtab_map
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int attribute_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \     void *datap)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: selinux_current_policy_path
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:161,1
    - Dst: sepol_policy_kern_vers_max
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:169,1
    - Dst: snprintf
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:171,1
    - Dst: selinux_binary_policy_path
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:172,1
    - Dst: access
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:174,1
    - Dst: fprintf
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:181,1
    - Dst: selinux_binary_policy_path
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:182,1
    - Dst: fopen
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:187,1
    - Dst: fprintf
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:189,1
    - Dst: strerror
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:190,1
    - Dst: policy_file_init
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:194,1
    - Dst: malloc
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:198,1
    - Dst: fprintf
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:200,1
    - Dst: fclose
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:201,1
    - Dst: policydb_init
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:205,1
    - Dst: fprintf
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:206,1
    - Dst: free
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:207,1
    - Dst: fclose
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:208,1
    - Dst: policydb_read
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:212,1
    - Dst: fprintf
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:214,1
    - Dst: free
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:217,1
    - Dst: fclose
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:218,1
    - Dst: fclose
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:222,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 150
    functionDepth: 8
    functionLinenumber: 150
    functionLinenumberEnd: 225
    functionName: load_policy
    functionSourceFile: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c
    functionUses: 12
    functionsReached:
    - policydb_read
    - sepol_policy_kern_vers_max
    - policy_file_init
    - fclose
    - snprintf
    - selinux_current_policy_path
    - malloc
    - strerror
    - policydb_init
    - free
    - fopen
    - access
    - fprintf
    - selinux_binary_policy_path
    linkageType: ''
    returnType: policydb_t
    signature: policydb_t *load_policy(const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: usage
    functionSourceFile: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c
    functionUses: 16
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(char *progname)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:239,1
    - Dst: load_policy
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:244,1
    - Dst: fopen
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:249,1
    - Dst: fprintf
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:251,1
    - Dst: policydb_destroy
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:252,1
    - Dst: free
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:253,1
    - Dst: hashtab_map
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:261,1
    - Dst: printf
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:262,1
    - Dst: policydb_destroy
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:265,1
    - Dst: free
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:266,1
    - Dst: fclose
      Src: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c:267,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 232
    functionDepth: 9
    functionLinenumber: 232
    functionLinenumberEnd: 270
    functionName: main
    functionSourceFile: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c
    functionUses: 3
    functionsReached:
    - fclose
    - hashtab_map
    - load_policy
    - usage
    - policydb_destroy
    - free
    - fopen
    - printf
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/mcstrans/src/mls_level.c:15,1
    - Dst: atoi
      Src: /src/selinux/mcstrans/src/mls_level.c:30,1
    - Dst: strchr
      Src: /src/selinux/mcstrans/src/mls_level.c:43,1
    - Dst: atoi
      Src: /src/selinux/mcstrans/src/mls_level.c:50,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/mcstrans/src/mls_level.c:51,1
    - Dst: atoi
      Src: /src/selinux/mcstrans/src/mls_level.c:58,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/mcstrans/src/mls_level.c:61,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mls_level.c:74,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 53
    argCount: 1
    argNames:
    - mls_context
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 5
    functionDepth: 1
    functionLinenumber: 5
    functionLinenumberEnd: 76
    functionName: mls_level_from_string
    functionSourceFile: /src/selinux/mcstrans/src/mls_level.c
    functionUses: 0
    functionsReached:
    - strchr
    - atoi
    - ebitmap_set_bit
    - free
    - calloc
    linkageType: ''
    returnType: mls_level_t
    signature: mls_level_t *mls_level_from_string(char *mls_context)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/mcstrans/src/mls_level.c:92,1
    - Dst: ebitmap_for_each_bit
      Src: /src/selinux/mcstrans/src/mls_level.c:94,1
    - Dst: ebitmap_node_get_bit
      Src: /src/selinux/mcstrans/src/mls_level.c:95,1
    - Dst: snprintf
      Src: /src/selinux/mcstrans/src/mls_level.c:103,1
    - Dst: snprintf
      Src: /src/selinux/mcstrans/src/mls_level.c:107,1
    - Dst: snprintf
      Src: /src/selinux/mcstrans/src/mls_level.c:115,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - l
    argTypes:
    - mls_level_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 117
    functionName: mls_compute_string_len
    functionSourceFile: /src/selinux/mcstrans/src/mls_level.c
    functionUses: 0
    functionsReached:
    - ebitmap_for_each_bit
    - snprintf
    - ebitmap_node_get_bit
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int mls_compute_string_len(mls_level_t *l)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: mls_compute_string_len
      Src: /src/selinux/mcstrans/src/mls_level.c:121,1
    - Dst: malloc
      Src: /src/selinux/mcstrans/src/mls_level.c:128,1
    - Dst: sprintf
      Src: /src/selinux/mcstrans/src/mls_level.c:134,1
    - Dst: ebitmap_for_each_bit
      Src: /src/selinux/mcstrans/src/mls_level.c:137,1
    - Dst: ebitmap_node_get_bit
      Src: /src/selinux/mcstrans/src/mls_level.c:138,1
    - Dst: sprintf
      Src: /src/selinux/mcstrans/src/mls_level.c:149,1
    - Dst: sprintf
      Src: /src/selinux/mcstrans/src/mls_level.c:158,1
    - Dst: sprintf
      Src: /src/selinux/mcstrans/src/mls_level.c:170,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 1
    argNames:
    - l
    argTypes:
    - mls_level_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 175
    functionName: mls_level_to_string
    functionSourceFile: /src/selinux/mcstrans/src/mls_level.c
    functionUses: 0
    functionsReached:
    - ebitmap_for_each_bit
    - malloc
    - sprintf
    - mls_compute_string_len
    - ebitmap_node_get_bit
    linkageType: ''
    returnType: char
    signature: char *mls_level_to_string(mls_level_t *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: log_error
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: log_error(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: log_debug
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: log_debug(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: log_debug
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: log_debug(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 155
    functionName: hash
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int hash(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash
      Src: /src/selinux/mcstrans/src/mcstrans.c:160,1
    - Dst: malloc
      Src: /src/selinux/mcstrans/src/mcstrans.c:164,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstrans.c:172,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - table
    - key
    - map
    argTypes:
    - context_map_node_t**
    - char*
    - context_map_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 174
    functionName: add_to_hashtable
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - syslog
    - malloc
    - hash
    linkageType: ''
    returnType: int
    signature: "int add_to_hashtable(context_map_node_t **table, char *key,\n\t\t\t
      \   context_map_t *map)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/selinux/mcstrans/src/mcstrans.c:188,1
    - Dst: sscanf
      Src: /src/selinux/mcstrans/src/mcstrans.c:198,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/mcstrans/src/mcstrans.c:209,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 43
    argCount: 4
    argNames:
    - e
    - raw
    - allowinverse
    - fromconfig
    argTypes:
    - ebitmap_t*
    - char*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 223
    functionName: parse_category
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - ebitmap_set_bit
    - sscanf
    linkageType: ''
    returnType: int
    signature: "int parse_category(ebitmap_t *e, const char *raw, bool allowinverse,\n\t\t\t
      \ bool fromconfig)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_cpy
      Src: /src/selinux/mcstrans/src/mcstrans.c:227,1
    - Dst: parse_category
      Src: /src/selinux/mcstrans/src/mcstrans.c:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - e
    - def
    - raw
    argTypes:
    - ebitmap_t*
    - ebitmap_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 234
    functionName: parse_ebitmap
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - ebitmap_cpy
    - parse_category
    linkageType: ''
    returnType: int
    signature: int parse_ebitmap(ebitmap_t *e, ebitmap_t *def, const char *raw)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/mcstrans/src/mcstrans.c:238,1
    - Dst: sscanf
      Src: /src/selinux/mcstrans/src/mcstrans.c:242,1
    - Dst: parse_category
      Src: /src/selinux/mcstrans/src/mcstrans.c:247,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:256,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:257,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - raw
    - fromconfig
    argTypes:
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 259
    functionName: parse_raw
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - ebitmap_destroy
    - sscanf
    - free
    - calloc
    - parse_category
    linkageType: ''
    returnType: mls_level_t
    signature: mls_level_t *parse_raw(const char *raw, bool fromconfig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:272,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:273,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:274,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:275,1
    - Dst: memset
      Src: /src/selinux/mcstrans/src/mcstrans.c:276,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:277,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - list
    - word
    argTypes:
    - word_t**
    - word_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 278
    functionName: destroy_word
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - ebitmap_destroy
    - free
    - memset
    linkageType: ''
    returnType: void
    signature: void destroy_word(word_t **list, word_t *word)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/mcstrans/src/mcstrans.c:282,1
    - Dst: strdup
      Src: /src/selinux/mcstrans/src/mcstrans.c:286,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:299,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:299,1
    - Dst: destroy_word
      Src: /src/selinux/mcstrans/src/mcstrans.c:300,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - list
    - text
    argTypes:
    - word_t**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 302
    functionName: create_word
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - destroy_word
    - strerror
    - calloc
    - log_error
    - strdup
    linkageType: ''
    returnType: word_t
    signature: word_t *create_word(word_t **list, const char *text)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:314,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:315,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:320,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:321,1
    - Dst: destroy_word
      Src: /src/selinux/mcstrans/src/mcstrans.c:325,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:326,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:327,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:328,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:329,1
    - Dst: pcre2_code_free
      Src: /src/selinux/mcstrans/src/mcstrans.c:330,1
    - Dst: pcre2_code_free
      Src: /src/selinux/mcstrans/src/mcstrans.c:331,1
    - Dst: pcre2_code_free
      Src: /src/selinux/mcstrans/src/mcstrans.c:332,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:333,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:334,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 2
    argNames:
    - list
    - group
    argTypes:
    - word_group_t**
    - word_group_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 335
    functionName: destroy_group
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - destroy_word
    - ebitmap_destroy
    - pcre2_code_free
    - free
    linkageType: ''
    returnType: void
    signature: void destroy_group(word_group_t **list, word_group_t *group)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/mcstrans/src/mcstrans.c:339,1
    - Dst: strdup
      Src: /src/selinux/mcstrans/src/mcstrans.c:342,1
    - Dst: strdup
      Src: /src/selinux/mcstrans/src/mcstrans.c:346,1
    - Dst: strdup
      Src: /src/selinux/mcstrans/src/mcstrans.c:350,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:365,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:365,1
    - Dst: destroy_group
      Src: /src/selinux/mcstrans/src/mcstrans.c:366,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - list
    - name
    argTypes:
    - word_group_t**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 368
    functionName: create_group
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - destroy_group
    - strerror
    - calloc
    - log_error
    - strdup
    linkageType: ''
    returnType: word_group_t
    signature: word_group_t *create_group(word_group_t **list, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:382,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:392,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:393,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:394,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:395,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:404,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:405,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:406,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:407,1
    - Dst: pcre2_code_free
      Src: /src/selinux/mcstrans/src/mcstrans.c:410,1
    - Dst: destroy_group
      Src: /src/selinux/mcstrans/src/mcstrans.c:412,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:413,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:414,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstrans.c:416,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 1
    argNames:
    - domain
    argTypes:
    - domain_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 417
    functionName: destroy_domain
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - pcre2_code_free
    - ebitmap_destroy
    - destroy_group
    - free
    - syslog
    linkageType: ''
    returnType: void
    signature: void destroy_domain(domain_t *domain)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/mcstrans/src/mcstrans.c:421,1
    - Dst: strdup
      Src: /src/selinux/mcstrans/src/mcstrans.c:425,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:438,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:438,1
    - Dst: destroy_domain
      Src: /src/selinux/mcstrans/src/mcstrans.c:439,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 419
    functionDepth: 4
    functionLinenumber: 419
    functionLinenumberEnd: 441
    functionName: create_domain
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - destroy_domain
    - strerror
    - calloc
    - log_error
    - strdup
    linkageType: ''
    returnType: domain_t
    signature: domain_t *create_domain(const char *name)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/selinux/mcstrans/src/mcstrans.c:445,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:446,1
    - Dst: create_word
      Src: /src/selinux/mcstrans/src/mcstrans.c:451,1
    - Dst: parse_ebitmap
      Src: /src/selinux/mcstrans/src/mcstrans.c:454,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:456,1
    - Dst: destroy_word
      Src: /src/selinux/mcstrans/src/mcstrans.c:457,1
    - Dst: ebitmap_andnot
      Src: /src/selinux/mcstrans/src/mcstrans.c:460,1
    - Dst: ebitmap_xor
      Src: /src/selinux/mcstrans/src/mcstrans.c:464,1
    - Dst: ebitmap_and
      Src: /src/selinux/mcstrans/src/mcstrans.c:466,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:468,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - group
    - raw
    - trans
    argTypes:
    - word_group_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 443
    functionDepth: 3
    functionLinenumber: 443
    functionLinenumberEnd: 471
    functionName: add_word
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - ebitmap_andnot
    - ebitmap_destroy
    - strchr
    - parse_ebitmap
    - destroy_word
    - create_word
    - ebitmap_and
    - ebitmap_xor
    - log_error
    linkageType: ''
    returnType: int
    signature: int add_word(word_group_t *group, char *raw, char *trans)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstrans.c:475,1
    - Dst: ebitmap_init
      Src: /src/selinux/mcstrans/src/mcstrans.c:477,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstrans.c:479,1
    - Dst: calloc
      Src: /src/selinux/mcstrans/src/mcstrans.c:484,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:486,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:486,1
    - Dst: sscanf
      Src: /src/selinux/mcstrans/src/mcstrans.c:489,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstrans.c:490,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:491,1
    - Dst: parse_ebitmap
      Src: /src/selinux/mcstrans/src/mcstrans.c:494,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstrans.c:495,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:496,1
    - Dst: asprintf
      Src: /src/selinux/mcstrans/src/mcstrans.c:499,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:500,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:500,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:501,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:502,1
    - Dst: calloc
      Src: /src/selinux/mcstrans/src/mcstrans.c:513,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:515,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:515,1
    - Dst: parse_ebitmap
      Src: /src/selinux/mcstrans/src/mcstrans.c:518,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstrans.c:519,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:520,1
    - Dst: parse_ebitmap
      Src: /src/selinux/mcstrans/src/mcstrans.c:523,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstrans.c:524,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:525,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:526,1
    - Dst: asprintf
      Src: /src/selinux/mcstrans/src/mcstrans.c:529,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:530,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:530,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:531,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:532,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:533,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/mcstrans/src/mcstrans.c:536,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 67
    argCount: 3
    argNames:
    - op
    - raw
    - tok
    argTypes:
    - char
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 473
    functionDepth: 3
    functionLinenumber: 473
    functionLinenumberEnd: 548
    functionName: add_constraint
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - ebitmap_cardinality
    - ebitmap_init
    - asprintf
    - ebitmap_destroy
    - parse_ebitmap
    - strerror
    - sscanf
    - free
    - calloc
    - log_debug
    - syslog
    - log_error
    linkageType: ''
    returnType: int
    signature: int add_constraint(char op, char *raw, char *tok)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_and
      Src: /src/selinux/mcstrans/src/mcstrans.c:557,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/mcstrans/src/mcstrans.c:559,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:560,1
    - Dst: mls_level_to_string
      Src: /src/selinux/mcstrans/src/mcstrans.c:562,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstrans.c:563,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:565,1
    - Dst: ebitmap_and
      Src: /src/selinux/mcstrans/src/mcstrans.c:572,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/mcstrans/src/mcstrans.c:574,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:575,1
    - Dst: ebitmap_and
      Src: /src/selinux/mcstrans/src/mcstrans.c:577,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/mcstrans/src/mcstrans.c:579,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:580,1
    - Dst: mls_level_to_string
      Src: /src/selinux/mcstrans/src/mcstrans.c:583,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstrans.c:584,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:586,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - l
    argTypes:
    - mls_level_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 550
    functionDepth: 3
    functionLinenumber: 550
    functionLinenumberEnd: 592
    functionName: violates_constraints
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - ebitmap_cardinality
    - ebitmap_destroy
    - mls_level_to_string
    - ebitmap_and
    - free
    - syslog
    linkageType: ''
    returnType: int
    signature: int violates_constraints(mls_level_t *l)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:606,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:607,1
    - Dst: memset
      Src: /src/selinux/mcstrans/src/mcstrans.c:608,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:609,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - list
    - constraint
    argTypes:
    - sens_constraint_t**
    - sens_constraint_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 610
    functionName: destroy_sens_constraint
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - free
    - ebitmap_destroy
    - memset
    linkageType: ''
    returnType: void
    signature: "void destroy_sens_constraint(sens_constraint_t **list,\n\t\t\t\t    sens_constraint_t
      *constraint)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:624,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:625,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:626,1
    - Dst: memset
      Src: /src/selinux/mcstrans/src/mcstrans.c:627,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:628,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - list
    - constraint
    argTypes:
    - cat_constraint_t**
    - cat_constraint_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 629
    functionName: destroy_cat_constraint
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - free
    - ebitmap_destroy
    - memset
    linkageType: ''
    returnType: void
    signature: "void destroy_cat_constraint(cat_constraint_t **list,\n\t\t\t\t   cat_constraint_t
      *constraint)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parse_raw
      Src: /src/selinux/mcstrans/src/mcstrans.c:633,1
    - Dst: calloc
      Src: /src/selinux/mcstrans/src/mcstrans.c:637,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:639,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:639,1
    - Dst: strdup
      Src: /src/selinux/mcstrans/src/mcstrans.c:642,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:644,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:644,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:645,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:655,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - domain
    - raw
    - trans
    argTypes:
    - domain_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 631
    functionDepth: 3
    functionLinenumber: 631
    functionLinenumberEnd: 657
    functionName: add_base_classification
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - parse_raw
    - strerror
    - free
    - calloc
    - log_error
    - strdup
    linkageType: ''
    returnType: int
    signature: int add_base_classification(domain_t *domain, char *raw, char *trans)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/mcstrans/src/mcstrans.c:666,1
    - Dst: strdup
      Src: /src/selinux/mcstrans/src/mcstrans.c:670,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:672,1
    - Dst: strdup
      Src: /src/selinux/mcstrans/src/mcstrans.c:675,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:677,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:678,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstrans.c:682,1
    - Dst: add_to_hashtable
      Src: /src/selinux/mcstrans/src/mcstrans.c:683,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:684,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:685,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:686,1
    - Dst: add_to_hashtable
      Src: /src/selinux/mcstrans/src/mcstrans.c:690,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:696,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 3
    argNames:
    - domain
    - raw
    - trans
    argTypes:
    - domain_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 698
    functionName: add_cache
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - add_to_hashtable
    - free
    - calloc
    - log_debug
    - log_error
    - strdup
    linkageType: ''
    returnType: int
    signature: int add_cache(domain_t *domain, char *raw, char *trans)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hash
      Src: /src/selinux/mcstrans/src/mcstrans.c:702,1
    - Dst: strcmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:705,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - table
    - key
    argTypes:
    - context_map_node_t**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 708
    functionName: find_in_table
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - strcmp
    - hash
    linkageType: ''
    returnType: context_map_t
    signature: context_map_t *find_in_table(context_map_node_t **table, const char
      *key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/mcstrans/src/mcstrans.c:712,1
    - Dst: strchr
      Src: /src/selinux/mcstrans/src/mcstrans.c:714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - str
    - whitespace
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 717
    functionName: trim
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 4
    functionsReached:
    - strchr
    - strlen
    linkageType: ''
    returnType: char
    signature: char *trim(char *str, const char *whitespace)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/selinux/mcstrans/src/mcstrans.c:723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - str
    - whitespace
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 726
    functionName: triml
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: char
    signature: char *triml(char *str, const char *whitespace)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:730,1
    - Dst: strdup
      Src: /src/selinux/mcstrans/src/mcstrans.c:731,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:733,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - p
    - val
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 737
    functionName: update
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 2
    functionsReached:
    - strerror
    - free
    - log_error
    - strdup
    linkageType: ''
    returnType: int
    signature: int update(char **p, char *const val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/mcstrans/src/mcstrans.c:741,1
    - Dst: strdup
      Src: /src/selinux/mcstrans/src/mcstrans.c:745,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:754,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:754,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:755,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - affixes
    - val
    argTypes:
    - affix_t**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 757
    functionName: append
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 83
    functionsReached:
    - strerror
    - free
    - calloc
    - log_error
    - strdup
    linkageType: ''
    returnType: int
    signature: int append(affix_t **affixes, const char *val)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstrans.c:775,1
    - Dst: triml
      Src: /src/selinux/mcstrans/src/mcstrans.c:778,1
    - Dst: strpbrk
      Src: /src/selinux/mcstrans/src/mcstrans.c:783,1
    - Dst: trim
      Src: /src/selinux/mcstrans/src/mcstrans.c:789,1
    - Dst: strpbrk
      Src: /src/selinux/mcstrans/src/mcstrans.c:794,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstrans.c:796,1
    - Dst: trim
      Src: /src/selinux/mcstrans/src/mcstrans.c:806,1
    - Dst: triml
      Src: /src/selinux/mcstrans/src/mcstrans.c:807,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstrans.c:810,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstrans.c:815,1
    - Dst: add_constraint
      Src: /src/selinux/mcstrans/src/mcstrans.c:821,1
    - Dst: strcmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:824,1
    - Dst: create_domain
      Src: /src/selinux/mcstrans/src/mcstrans.c:825,1
    - Dst: create_domain
      Src: /src/selinux/mcstrans/src/mcstrans.c:833,1
    - Dst: strcmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:839,1
    - Dst: strcmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:839,1
    - Dst: strcmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:840,1
    - Dst: strcmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:840,1
    - Dst: strcmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:841,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstrans.c:842,1
    - Dst: strcmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:848,1
    - Dst: glob
      Src: /src/selinux/mcstrans/src/mcstrans.c:852,1
    - Dst: globfree
      Src: /src/selinux/mcstrans/src/mcstrans.c:853,1
    - Dst: read_translations
      Src: /src/selinux/mcstrans/src/mcstrans.c:857,1
    - Dst: globfree
      Src: /src/selinux/mcstrans/src/mcstrans.c:858,1
    - Dst: globfree
      Src: /src/selinux/mcstrans/src/mcstrans.c:862,1
    - Dst: strcmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:863,1
    - Dst: strcmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:865,1
    - Dst: create_group
      Src: /src/selinux/mcstrans/src/mcstrans.c:866,1
    - Dst: strcmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:870,1
    - Dst: update
      Src: /src/selinux/mcstrans/src/mcstrans.c:871,1
    - Dst: strcmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:873,1
    - Dst: update
      Src: /src/selinux/mcstrans/src/mcstrans.c:874,1
    - Dst: strcmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:876,1
    - Dst: append
      Src: /src/selinux/mcstrans/src/mcstrans.c:877,1
    - Dst: strcmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:879,1
    - Dst: append
      Src: /src/selinux/mcstrans/src/mcstrans.c:880,1
    - Dst: strcmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:882,1
    - Dst: ebitmap_init
      Src: /src/selinux/mcstrans/src/mcstrans.c:884,1
    - Dst: parse_ebitmap
      Src: /src/selinux/mcstrans/src/mcstrans.c:885,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstrans.c:886,1
    - Dst: add_word
      Src: /src/selinux/mcstrans/src/mcstrans.c:890,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstrans.c:891,1
    - Dst: add_base_classification
      Src: /src/selinux/mcstrans/src/mcstrans.c:898,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstrans.c:900,1
    - Dst: add_cache
      Src: /src/selinux/mcstrans/src/mcstrans.c:906,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 110
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 770
    functionDepth: 5
    functionLinenumber: 770
    functionLinenumberEnd: 910
    functionName: process_trans
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - add_constraint
    - strcmp
    - create_group
    - add_cache
    - add_base_classification
    - parse_ebitmap
    - globfree
    - read_translations
    - log_debug
    - ebitmap_init
    - strpbrk
    - trim
    - append
    - glob
    - add_word
    - triml
    - create_domain
    - update
    - syslog
    linkageType: ''
    returnType: int
    signature: int process_trans(char *buffer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstrans.c:920,1
    - Dst: fopen
      Src: /src/selinux/mcstrans/src/mcstrans.c:924,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstrans.c:926,1
    - Dst: __fsetlocking
      Src: /src/selinux/mcstrans/src/mcstrans.c:931,1
    - Dst: getline
      Src: /src/selinux/mcstrans/src/mcstrans.c:932,1
    - Dst: process_trans
      Src: /src/selinux/mcstrans/src/mcstrans.c:933,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstrans.c:934,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:939,1
    - Dst: fclose
      Src: /src/selinux/mcstrans/src/mcstrans.c:940,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 912
    functionDepth: 6
    functionLinenumber: 912
    functionLinenumberEnd: 943
    functionName: read_translations
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 1
    functionsReached:
    - fclose
    - getline
    - __fsetlocking
    - free
    - fopen
    - syslog
    - process_trans
    linkageType: ''
    returnType: int
    signature: int read_translations(const char *filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_selinux_mls_enabled
      Src: /src/selinux/mcstrans/src/mcstrans.c:947,1
    - Dst: read_translations
      Src: /src/selinux/mcstrans/src/mcstrans.c:950,1
    - Dst: selinux_translations_path
      Src: /src/selinux/mcstrans/src/mcstrans.c:950,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 945
    functionDepth: 7
    functionLinenumber: 945
    functionLinenumberEnd: 951
    functionName: init_translations
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - is_selinux_mls_enabled
    - selinux_translations_path
    - read_translations
    linkageType: ''
    returnType: int
    signature: int init_translations(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: context_new
      Src: /src/selinux/mcstrans/src/mcstrans.c:955,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstrans.c:957,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:958,1
    - Dst: context_range_get
      Src: /src/selinux/mcstrans/src/mcstrans.c:962,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstrans.c:964,1
    - Dst: context_free
      Src: /src/selinux/mcstrans/src/mcstrans.c:967,1
    - Dst: strdup
      Src: /src/selinux/mcstrans/src/mcstrans.c:970,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:972,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:973,1
    - Dst: context_free
      Src: /src/selinux/mcstrans/src/mcstrans.c:976,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - incon
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 953
    functionDepth: 1
    functionLinenumber: 953
    functionLinenumberEnd: 978
    functionName: extract_range
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - context_new
    - strdup
    - context_range_get
    - strerror
    - syslog
    - log_error
    - context_free
    linkageType: ''
    returnType: char
    signature: char *extract_range(const char *incon)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: context_new
      Src: /src/selinux/mcstrans/src/mcstrans.c:983,1
    - Dst: context_range_set
      Src: /src/selinux/mcstrans/src/mcstrans.c:987,1
    - Dst: context_free
      Src: /src/selinux/mcstrans/src/mcstrans.c:988,1
    - Dst: context_to_str
      Src: /src/selinux/mcstrans/src/mcstrans.c:991,1
    - Dst: context_free
      Src: /src/selinux/mcstrans/src/mcstrans.c:992,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:1000,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:1000,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - incon
    - range
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 980
    functionDepth: 1
    functionLinenumber: 980
    functionLinenumberEnd: 1002
    functionName: new_context_str
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - context_to_str
    - context_new
    - strerror
    - context_range_set
    - log_error
    - context_free
    linkageType: ''
    returnType: char
    signature: char *new_context_str(const char *incon, const char *range)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_in_table
      Src: /src/selinux/mcstrans/src/mcstrans.c:1008,1
    - Dst: strdup
      Src: /src/selinux/mcstrans/src/mcstrans.c:1010,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:1013,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:1014,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstrans.c:1017,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - range
    - domain
    - table
    argTypes:
    - char*
    - domain_t*
    - context_map_node_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1004
    functionDepth: 2
    functionLinenumber: 1004
    functionLinenumberEnd: 1021
    functionName: find_in_hashtable
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - find_in_table
    - strerror
    - log_debug
    - log_error
    - strdup
    linkageType: ''
    returnType: char
    signature: "char *find_in_hashtable(const char *range, domain_t *domain,\n\t\t\t
      \      context_map_node_t **table)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1024
    functionName: spaceship_cmp
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spaceship_cmp(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/mcstrans/src/mcstrans.c:1027,1
    - Dst: strlen
      Src: /src/selinux/mcstrans/src/mcstrans.c:1028,1
    - Dst: spaceship_cmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:1029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1025
    functionDepth: 0
    functionLinenumber: 1025
    functionLinenumberEnd: 1030
    functionName: string_size
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - strlen
    - spaceship_cmp
    linkageType: ''
    returnType: int
    signature: int string_size(const void *p1, const void *p2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/mcstrans/src/mcstrans.c:1036,1
    - Dst: strlen
      Src: /src/selinux/mcstrans/src/mcstrans.c:1037,1
    - Dst: strcmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:1039,1
    - Dst: spaceship_cmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:1040,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1041
    functionName: word_size
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strlen
    - spaceship_cmp
    linkageType: ''
    returnType: int
    signature: int word_size(const void *p1, const void *p2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/mcstrans/src/mcstrans.c:1045,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:1048,1
    - Dst: realloc
      Src: /src/selinux/mcstrans/src/mcstrans.c:1063,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:1065,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:1066,1
    - Dst: memcpy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1072,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - buf
    - cap
    - len
    - s
    argTypes:
    - char**
    - size_t*
    - size_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1043
    functionDepth: 1
    functionLinenumber: 1043
    functionLinenumberEnd: 1075
    functionName: buf_append
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - strlen
    - strerror
    - realloc
    - memcpy
    - log_error
    linkageType: ''
    returnType: int
    signature: int buf_append(char **buf, size_t *cap, size_t *len, const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_code_free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1082,1
    - Dst: pcre2_compile
      Src: /src/selinux/mcstrans/src/mcstrans.c:1083,1
    - Dst: pcre2_get_error_message
      Src: /src/selinux/mcstrans/src/mcstrans.c:1087,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:1088,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - r
    - buffer
    argTypes:
    - pcre2_code**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1077
    functionDepth: 1
    functionLinenumber: 1077
    functionLinenumberEnd: 1091
    functionName: build_regexp
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - pcre2_code_free
    - pcre2_get_error_message
    - pcre2_compile
    - log_error
    linkageType: ''
    returnType: void
    signature: void build_regexp(pcre2_code **r, char *buffer)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: APPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1117,1
    - Dst: calloc
      Src: /src/selinux/mcstrans/src/mcstrans.c:1123,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:1125,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:1125,1
    - Dst: qsort
      Src: /src/selinux/mcstrans/src/mcstrans.c:1133,1
    - Dst: APPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1136,1
    - Dst: APPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1138,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1141,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstrans.c:1144,1
    - Dst: build_regexp
      Src: /src/selinux/mcstrans/src/mcstrans.c:1145,1
    - Dst: RESET
      Src: /src/selinux/mcstrans/src/mcstrans.c:1146,1
    - Dst: APPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1150,1
    - Dst: APPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1152,1
    - Dst: APPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1154,1
    - Dst: APPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1156,1
    - Dst: APPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1157,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstrans.c:1158,1
    - Dst: build_regexp
      Src: /src/selinux/mcstrans/src/mcstrans.c:1160,1
    - Dst: RESET
      Src: /src/selinux/mcstrans/src/mcstrans.c:1161,1
    - Dst: APPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1165,1
    - Dst: APPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1166,1
    - Dst: calloc
      Src: /src/selinux/mcstrans/src/mcstrans.c:1172,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:1174,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:1174,1
    - Dst: qsort
      Src: /src/selinux/mcstrans/src/mcstrans.c:1182,1
    - Dst: APPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1186,1
    - Dst: APPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1187,1
    - Dst: APPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1188,1
    - Dst: APPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1189,1
    - Dst: APPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1193,1
    - Dst: APPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1194,1
    - Dst: APPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1195,1
    - Dst: APPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1198,1
    - Dst: APPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1200,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstrans.c:1202,1
    - Dst: build_regexp
      Src: /src/selinux/mcstrans/src/mcstrans.c:1204,1
    - Dst: RESET
      Src: /src/selinux/mcstrans/src/mcstrans.c:1205,1
    - Dst: APPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1208,1
    - Dst: APPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1209,1
    - Dst: APPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1211,1
    - Dst: APPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1213,1
    - Dst: APPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1215,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstrans.c:1216,1
    - Dst: build_regexp
      Src: /src/selinux/mcstrans/src/mcstrans.c:1218,1
    - Dst: RESET
      Src: /src/selinux/mcstrans/src/mcstrans.c:1219,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1223,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1226,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1227,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 94
    argCount: 1
    argNames:
    - domain
    argTypes:
    - domain_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1093
    functionDepth: 2
    functionLinenumber: 1093
    functionLinenumberEnd: 1231
    functionName: build_regexps
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - APPEND
    - build_regexp
    - RESET
    - strerror
    - qsort
    - free
    - calloc
    - log_debug
    - log_error
    linkageType: ''
    returnType: int
    signature: int build_regexps(domain_t *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1109
    functionName: APPEND
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: APPEND(s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1109
    functionDepth: 0
    functionLinenumber: 1109
    functionLinenumberEnd: 1115
    functionName: RESET
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESET()
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/selinux/mcstrans/src/mcstrans.c:1237,1
    - Dst: ebitmap_init
      Src: /src/selinux/mcstrans/src/mcstrans.c:1250,1
    - Dst: ebitmap_init
      Src: /src/selinux/mcstrans/src/mcstrans.c:1251,1
    - Dst: ebitmap_init
      Src: /src/selinux/mcstrans/src/mcstrans.c:1252,1
    - Dst: strdup
      Src: /src/selinux/mcstrans/src/mcstrans.c:1254,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:1256,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:1257,1
    - Dst: strlen
      Src: /src/selinux/mcstrans/src/mcstrans.c:1260,1
    - Dst: build_regexps
      Src: /src/selinux/mcstrans/src/mcstrans.c:1263,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstrans.c:1267,1
    - Dst: pcre2_match_data_create_from_pattern
      Src: /src/selinux/mcstrans/src/mcstrans.c:1268,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:1271,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:1271,1
    - Dst: pcre2_match
      Src: /src/selinux/mcstrans/src/mcstrans.c:1274,1
    - Dst: pcre2_get_ovector_pointer
      Src: /src/selinux/mcstrans/src/mcstrans.c:1278,1
    - Dst: strndup
      Src: /src/selinux/mcstrans/src/mcstrans.c:1279,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:1281,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:1281,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstrans.c:1284,1
    - Dst: strlen
      Src: /src/selinux/mcstrans/src/mcstrans.c:1285,1
    - Dst: strcasecmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:1288,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstrans.c:1289,1
    - Dst: malloc
      Src: /src/selinux/mcstrans/src/mcstrans.c:1292,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:1294,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:1295,1
    - Dst: mls_level_cpy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1298,1
    - Dst: memset
      Src: /src/selinux/mcstrans/src/mcstrans.c:1304,1
    - Dst: strchr
      Src: /src/selinux/mcstrans/src/mcstrans.c:1306,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1309,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstrans.c:1314,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:1319,1
    - Dst: pcre2_match_data_free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1326,1
    - Dst: pcre2_match_data_create_from_pattern
      Src: /src/selinux/mcstrans/src/mcstrans.c:1344,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:1347,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:1348,1
    - Dst: pcre2_match
      Src: /src/selinux/mcstrans/src/mcstrans.c:1351,1
    - Dst: pcre2_get_ovector_pointer
      Src: /src/selinux/mcstrans/src/mcstrans.c:1356,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:1362,1
    - Dst: pcre2_match_data_free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1366,1
    - Dst: pcre2_match_data_create_from_pattern
      Src: /src/selinux/mcstrans/src/mcstrans.c:1371,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:1374,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:1375,1
    - Dst: pcre2_match
      Src: /src/selinux/mcstrans/src/mcstrans.c:1378,1
    - Dst: pcre2_get_ovector_pointer
      Src: /src/selinux/mcstrans/src/mcstrans.c:1383,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:1389,1
    - Dst: pcre2_match_data_free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1393,1
    - Dst: pcre2_match_data_create_from_pattern
      Src: /src/selinux/mcstrans/src/mcstrans.c:1410,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:1413,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:1414,1
    - Dst: pcre2_match
      Src: /src/selinux/mcstrans/src/mcstrans.c:1417,1
    - Dst: pcre2_get_ovector_pointer
      Src: /src/selinux/mcstrans/src/mcstrans.c:1421,1
    - Dst: strndup
      Src: /src/selinux/mcstrans/src/mcstrans.c:1423,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:1427,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:1428,1
    - Dst: trim
      Src: /src/selinux/mcstrans/src/mcstrans.c:1431,1
    - Dst: triml
      Src: /src/selinux/mcstrans/src/mcstrans.c:1433,1
    - Dst: strlen
      Src: /src/selinux/mcstrans/src/mcstrans.c:1436,1
    - Dst: strlen
      Src: /src/selinux/mcstrans/src/mcstrans.c:1443,1
    - Dst: strncasecmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:1446,1
    - Dst: strlen
      Src: /src/selinux/mcstrans/src/mcstrans.c:1449,1
    - Dst: ebitmap_andnot
      Src: /src/selinux/mcstrans/src/mcstrans.c:1450,1
    - Dst: ebitmap_xor
      Src: /src/selinux/mcstrans/src/mcstrans.c:1458,1
    - Dst: ebitmap_and
      Src: /src/selinux/mcstrans/src/mcstrans.c:1464,1
    - Dst: ebitmap_union
      Src: /src/selinux/mcstrans/src/mcstrans.c:1470,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1476,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1478,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1483,1
    - Dst: ebitmap_andnot
      Src: /src/selinux/mcstrans/src/mcstrans.c:1485,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1493,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1495,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1497,1
    - Dst: strlen
      Src: /src/selinux/mcstrans/src/mcstrans.c:1499,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstrans.c:1506,1
    - Dst: triml
      Src: /src/selinux/mcstrans/src/mcstrans.c:1510,1
    - Dst: memset
      Src: /src/selinux/mcstrans/src/mcstrans.c:1514,1
    - Dst: memset
      Src: /src/selinux/mcstrans/src/mcstrans.c:1516,1
    - Dst: memset
      Src: /src/selinux/mcstrans/src/mcstrans.c:1518,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1521,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:1524,1
    - Dst: pcre2_match_data_free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1528,1
    - Dst: isalnum
      Src: /src/selinux/mcstrans/src/mcstrans.c:1536,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1543,1
    - Dst: violates_constraints
      Src: /src/selinux/mcstrans/src/mcstrans.c:1544,1
    - Dst: mls_level_to_string
      Src: /src/selinux/mcstrans/src/mcstrans.c:1548,1
    - Dst: mls_level_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1549,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1550,1
    - Dst: gettimeofday
      Src: /src/selinux/mcstrans/src/mcstrans.c:1554,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstrans.c:1563,1
    - Dst: mls_level_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1569,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1570,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1571,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1572,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1573,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1574,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1575,1
    - Dst: pcre2_match_data_free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1576,1
    CyclomaticComplexity: 83
    EdgeCount: 83
    ICount: 218
    argCount: 2
    argNames:
    - level
    - domain
    argTypes:
    - char*
    - domain_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1233
    functionDepth: 4
    functionLinenumber: 1233
    functionLinenumberEnd: 1578
    functionName: compute_raw_from_trans
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - pcre2_match
    - ebitmap_destroy
    - strchr
    - strerror
    - pcre2_get_ovector_pointer
    - ebitmap_xor
    - ebitmap_cpy
    - malloc
    - free
    - violates_constraints
    - gettimeofday
    - log_debug
    - strcasecmp
    - strlen
    - pcre2_match_data_free
    - ebitmap_init
    - ebitmap_andnot
    - strncasecmp
    - trim
    - build_regexps
    - mls_level_destroy
    - ebitmap_and
    - pcre2_match_data_create_from_pattern
    - memset
    - log_error
    - strdup
    - strndup
    - mls_level_to_string
    - triml
    - mls_level_cpy
    - syslog
    - ebitmap_union
    - isalnum
    linkageType: ''
    returnType: char
    signature: char *compute_raw_from_trans(const char *level, domain_t *domain)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/selinux/mcstrans/src/mcstrans.c:1584,1
    - Dst: ebitmap_init
      Src: /src/selinux/mcstrans/src/mcstrans.c:1596,1
    - Dst: ebitmap_init
      Src: /src/selinux/mcstrans/src/mcstrans.c:1597,1
    - Dst: ebitmap_init
      Src: /src/selinux/mcstrans/src/mcstrans.c:1598,1
    - Dst: ebitmap_init
      Src: /src/selinux/mcstrans/src/mcstrans.c:1599,1
    - Dst: ebitmap_init
      Src: /src/selinux/mcstrans/src/mcstrans.c:1600,1
    - Dst: ebitmap_init
      Src: /src/selinux/mcstrans/src/mcstrans.c:1601,1
    - Dst: parse_raw
      Src: /src/selinux/mcstrans/src/mcstrans.c:1606,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstrans.c:1609,1
    - Dst: violates_constraints
      Src: /src/selinux/mcstrans/src/mcstrans.c:1613,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstrans.c:1614,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:1626,1
    - Dst: ebitmap_xor
      Src: /src/selinux/mcstrans/src/mcstrans.c:1630,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1633,1
    - Dst: strcmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:1640,1
    - Dst: create_group
      Src: /src/selinux/mcstrans/src/mcstrans.c:1645,1
    - Dst: append
      Src: /src/selinux/mcstrans/src/mcstrans.c:1649,1
    - Dst: append
      Src: /src/selinux/mcstrans/src/mcstrans.c:1654,1
    - Dst: update
      Src: /src/selinux/mcstrans/src/mcstrans.c:1659,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/mcstrans/src/mcstrans.c:1666,1
    - Dst: ebitmap_xor
      Src: /src/selinux/mcstrans/src/mcstrans.c:1671,1
    - Dst: ebitmap_not
      Src: /src/selinux/mcstrans/src/mcstrans.c:1674,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/mcstrans/src/mcstrans.c:1685,1
    - Dst: ebitmap_or
      Src: /src/selinux/mcstrans/src/mcstrans.c:1693,1
    - Dst: ebitmap_and
      Src: /src/selinux/mcstrans/src/mcstrans.c:1697,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1701,1
    - Dst: ebitmap_and
      Src: /src/selinux/mcstrans/src/mcstrans.c:1703,1
    - Dst: ebitmap_cmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:1707,1
    - Dst: ebitmap_hamming_distance
      Src: /src/selinux/mcstrans/src/mcstrans.c:1709,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1719,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1720,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1723,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1724,1
    - Dst: ebitmap_xor
      Src: /src/selinux/mcstrans/src/mcstrans.c:1727,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1732,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1734,1
    - Dst: ebitmap_andnot
      Src: /src/selinux/mcstrans/src/mcstrans.c:1735,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1740,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1741,1
    - Dst: strcmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:1745,1
    - Dst: create_word
      Src: /src/selinux/mcstrans/src/mcstrans.c:1748,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/mcstrans/src/mcstrans.c:1755,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1756,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1757,1
    - Dst: OAPPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1764,1
    - Dst: OAPPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1765,1
    - Dst: OAPPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1768,1
    - Dst: OAPPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1769,1
    - Dst: OAPPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1773,1
    - Dst: OAPPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1775,1
    - Dst: OAPPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1778,1
    - Dst: OAPPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1779,1
    - Dst: OAPPEND
      Src: /src/selinux/mcstrans/src/mcstrans.c:1784,1
    - Dst: destroy_group
      Src: /src/selinux/mcstrans/src/mcstrans.c:1796,1
    - Dst: mls_level_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1801,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1802,1
    - Dst: gettimeofday
      Src: /src/selinux/mcstrans/src/mcstrans.c:1807,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstrans.c:1817,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1823,1
    - Dst: destroy_group
      Src: /src/selinux/mcstrans/src/mcstrans.c:1825,1
    - Dst: mls_level_destroy
      Src: /src/selinux/mcstrans/src/mcstrans.c:1826,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1827,1
    CyclomaticComplexity: 83
    EdgeCount: 83
    ICount: 166
    argCount: 2
    argNames:
    - level
    - domain
    argTypes:
    - char*
    - domain_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1580
    functionDepth: 4
    functionLinenumber: 1580
    functionLinenumberEnd: 1829
    functionName: compute_trans_from_raw
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - ebitmap_cardinality
    - parse_raw
    - ebitmap_destroy
    - ebitmap_or
    - strcmp
    - ebitmap_not
    - create_group
    - ebitmap_cpy
    - ebitmap_xor
    - create_word
    - ebitmap_cmp
    - free
    - violates_constraints
    - gettimeofday
    - log_debug
    - ebitmap_init
    - ebitmap_andnot
    - mls_level_destroy
    - ebitmap_and
    - append
    - OAPPEND
    - destroy_group
    - ebitmap_hamming_distance
    - update
    - syslog
    linkageType: ''
    returnType: char
    signature: char *compute_trans_from_raw(const char *level, domain_t *domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1759
    functionDepth: 0
    functionLinenumber: 1759
    functionLinenumberEnd: 1764
    functionName: OAPPEND
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OAPPEND(s)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/selinux/mcstrans/src/mcstrans.c:1838,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstrans.c:1841,1
    - Dst: extract_range
      Src: /src/selinux/mcstrans/src/mcstrans.c:1842,1
    - Dst: find_in_hashtable
      Src: /src/selinux/mcstrans/src/mcstrans.c:1848,1
    - Dst: strchr
      Src: /src/selinux/mcstrans/src/mcstrans.c:1855,1
    - Dst: compute_trans_from_raw
      Src: /src/selinux/mcstrans/src/mcstrans.c:1861,1
    - Dst: add_cache
      Src: /src/selinux/mcstrans/src/mcstrans.c:1863,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1864,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1865,1
    - Dst: find_in_hashtable
      Src: /src/selinux/mcstrans/src/mcstrans.c:1873,1
    - Dst: compute_trans_from_raw
      Src: /src/selinux/mcstrans/src/mcstrans.c:1876,1
    - Dst: add_cache
      Src: /src/selinux/mcstrans/src/mcstrans.c:1878,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1880,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1881,1
    - Dst: strdup
      Src: /src/selinux/mcstrans/src/mcstrans.c:1885,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:1887,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:1888,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1889,1
    - Dst: find_in_hashtable
      Src: /src/selinux/mcstrans/src/mcstrans.c:1895,1
    - Dst: compute_trans_from_raw
      Src: /src/selinux/mcstrans/src/mcstrans.c:1898,1
    - Dst: add_cache
      Src: /src/selinux/mcstrans/src/mcstrans.c:1900,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1902,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1903,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1904,1
    - Dst: strdup
      Src: /src/selinux/mcstrans/src/mcstrans.c:1908,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:1910,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:1911,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1912,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1913,1
    - Dst: strcmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:1919,1
    - Dst: asprintf
      Src: /src/selinux/mcstrans/src/mcstrans.c:1920,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:1921,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:1922,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1923,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1924,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1925,1
    - Dst: asprintf
      Src: /src/selinux/mcstrans/src/mcstrans.c:1929,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:1931,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:1932,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1933,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1934,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1935,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1939,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1940,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1947,1
    - Dst: new_context_str
      Src: /src/selinux/mcstrans/src/mcstrans.c:1953,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1954,1
    - Dst: new_context_str
      Src: /src/selinux/mcstrans/src/mcstrans.c:1956,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:1958,1
    - Dst: gettimeofday
      Src: /src/selinux/mcstrans/src/mcstrans.c:1962,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstrans.c:1972,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 106
    argCount: 2
    argNames:
    - incon
    - rcon
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1831
    functionDepth: 5
    functionLinenumber: 1831
    functionLinenumberEnd: 1976
    functionName: trans_context
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 1
    functionsReached:
    - new_context_str
    - asprintf
    - strchr
    - compute_trans_from_raw
    - add_cache
    - strerror
    - strcmp
    - gettimeofday
    - free
    - log_debug
    - find_in_hashtable
    - extract_range
    - log_error
    - strdup
    linkageType: ''
    returnType: int
    signature: int trans_context(const char *incon, char **rcon)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/selinux/mcstrans/src/mcstrans.c:1985,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstrans.c:1988,1
    - Dst: extract_range
      Src: /src/selinux/mcstrans/src/mcstrans.c:1989,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstrans.c:1992,1
    - Dst: find_in_hashtable
      Src: /src/selinux/mcstrans/src/mcstrans.c:1996,1
    - Dst: strchr
      Src: /src/selinux/mcstrans/src/mcstrans.c:2003,1
    - Dst: compute_raw_from_trans
      Src: /src/selinux/mcstrans/src/mcstrans.c:2009,1
    - Dst: find_in_hashtable
      Src: /src/selinux/mcstrans/src/mcstrans.c:2011,1
    - Dst: compute_trans_from_raw
      Src: /src/selinux/mcstrans/src/mcstrans.c:2014,1
    - Dst: strcmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:2017,1
    - Dst: add_cache
      Src: /src/selinux/mcstrans/src/mcstrans.c:2018,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2020,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2021,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2022,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2027,1
    - Dst: add_cache
      Src: /src/selinux/mcstrans/src/mcstrans.c:2028,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2029,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2030,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstrans.c:2035,1
    - Dst: find_in_hashtable
      Src: /src/selinux/mcstrans/src/mcstrans.c:2042,1
    - Dst: compute_raw_from_trans
      Src: /src/selinux/mcstrans/src/mcstrans.c:2045,1
    - Dst: find_in_hashtable
      Src: /src/selinux/mcstrans/src/mcstrans.c:2047,1
    - Dst: compute_trans_from_raw
      Src: /src/selinux/mcstrans/src/mcstrans.c:2052,1
    - Dst: add_cache
      Src: /src/selinux/mcstrans/src/mcstrans.c:2055,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2060,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2061,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2062,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2067,1
    - Dst: add_cache
      Src: /src/selinux/mcstrans/src/mcstrans.c:2068,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2070,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2071,1
    - Dst: strdup
      Src: /src/selinux/mcstrans/src/mcstrans.c:2075,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:2077,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:2078,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2079,1
    - Dst: find_in_hashtable
      Src: /src/selinux/mcstrans/src/mcstrans.c:2085,1
    - Dst: compute_raw_from_trans
      Src: /src/selinux/mcstrans/src/mcstrans.c:2088,1
    - Dst: find_in_hashtable
      Src: /src/selinux/mcstrans/src/mcstrans.c:2090,1
    - Dst: compute_trans_from_raw
      Src: /src/selinux/mcstrans/src/mcstrans.c:2095,1
    - Dst: add_cache
      Src: /src/selinux/mcstrans/src/mcstrans.c:2098,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2103,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2104,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2105,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2106,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2111,1
    - Dst: add_cache
      Src: /src/selinux/mcstrans/src/mcstrans.c:2112,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2114,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2115,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2116,1
    - Dst: strdup
      Src: /src/selinux/mcstrans/src/mcstrans.c:2120,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:2122,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:2123,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2124,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2125,1
    - Dst: strcmp
      Src: /src/selinux/mcstrans/src/mcstrans.c:2131,1
    - Dst: asprintf
      Src: /src/selinux/mcstrans/src/mcstrans.c:2132,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:2133,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:2134,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2135,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2136,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2137,1
    - Dst: asprintf
      Src: /src/selinux/mcstrans/src/mcstrans.c:2141,1
    - Dst: log_error
      Src: /src/selinux/mcstrans/src/mcstrans.c:2142,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstrans.c:2143,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2144,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2145,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2146,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2150,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2151,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2158,1
    - Dst: new_context_str
      Src: /src/selinux/mcstrans/src/mcstrans.c:2164,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2165,1
    - Dst: new_context_str
      Src: /src/selinux/mcstrans/src/mcstrans.c:2167,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstrans.c:2169,1
    - Dst: gettimeofday
      Src: /src/selinux/mcstrans/src/mcstrans.c:2173,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstrans.c:2183,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 146
    argCount: 2
    argNames:
    - incon
    - rcon
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2187
      start: 1978
    functionDepth: 5
    functionLinenumber: 1978
    functionLinenumberEnd: 2187
    functionName: untrans_context
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - new_context_str
    - asprintf
    - strchr
    - compute_trans_from_raw
    - compute_raw_from_trans
    - strcmp
    - add_cache
    - strerror
    - gettimeofday
    - free
    - log_debug
    - find_in_hashtable
    - extract_range
    - log_error
    - strdup
    linkageType: ''
    returnType: int
    signature: int untrans_context(const char *incon, char **rcon)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destroy_domain
      Src: /src/selinux/mcstrans/src/mcstrans.c:2198,1
    - Dst: destroy_sens_constraint
      Src: /src/selinux/mcstrans/src/mcstrans.c:2203,1
    - Dst: destroy_cat_constraint
      Src: /src/selinux/mcstrans/src/mcstrans.c:2208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2211
      start: 2189
    functionDepth: 4
    functionLinenumber: 2189
    functionLinenumberEnd: 2211
    functionName: finish_context_translations
    functionSourceFile: /src/selinux/mcstrans/src/mcstrans.c
    functionUses: 0
    functionsReached:
    - destroy_cat_constraint
    - destroy_sens_constraint
    - destroy_domain
    linkageType: ''
    returnType: void
    signature: void finish_context_translations(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: UNUSED
    functionSourceFile: /src/selinux/mcstrans/src/mcstransd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: UNUSED
    functionSourceFile: /src/selinux/mcstrans/src/mcstransd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: UNUSED
    functionSourceFile: /src/selinux/mcstrans/src/mcstransd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: log_debug
    functionSourceFile: /src/selinux/mcstrans/src/mcstransd.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: log_debug(fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fmt
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: log_debug
    functionSourceFile: /src/selinux/mcstrans/src/mcstransd.c
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: log_debug(fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: finish_context_colors
      Src: /src/selinux/mcstrans/src/mcstransd.c:65,1
    - Dst: finish_context_translations
      Src: /src/selinux/mcstrans/src/mcstransd.c:66,1
    - Dst: unlink
      Src: /src/selinux/mcstrans/src/mcstransd.c:68,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstransd.c:70,1
    - Dst: exit
      Src: /src/selinux/mcstrans/src/mcstransd.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ret
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 63
    functionDepth: 5
    functionLinenumber: 63
    functionLinenumberEnd: 73
    functionName: cleanup_exit
    functionSourceFile: /src/selinux/mcstrans/src/mcstransd.c
    functionUses: 0
    functionsReached:
    - unlink
    - log_debug
    - finish_context_colors
    - exit
    - finish_context_translations
    linkageType: ''
    returnType: void
    signature: void cleanup_exit(int ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstransd.c:78,1
    - Dst: cleanup_exit
      Src: /src/selinux/mcstrans/src/mcstransd.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 6
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: clean_exit
    functionSourceFile: /src/selinux/mcstrans/src/mcstransd.c
    functionUses: 0
    functionsReached:
    - cleanup_exit
    - log_debug
    linkageType: ''
    returnType: void
    signature: void clean_exit(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/mcstrans/src/mcstransd.c:92,1
    - Dst: writev
      Src: /src/selinux/mcstrans/src/mcstransd.c:101,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:104,1
    - Dst: writev
      Src: /src/selinux/mcstrans/src/mcstransd.c:111,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:114,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - fd
    - function
    - data
    - ret_val
    argTypes:
    - int
    - uint32_t
    - char*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 119
    functionName: send_response
    functionSourceFile: /src/selinux/mcstrans/src/mcstransd.c
    functionUses: 0
    functionsReached:
    - syslog
    - strlen
    - writev
    linkageType: ''
    returnType: int
    signature: int send_response(int fd, uint32_t function, char *data, int32_t ret_val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/selinux/mcstrans/src/mcstransd.c:128,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - fd
    - pid
    argTypes:
    - int
    - pid_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 135
    functionName: get_peer_pid
    functionSourceFile: /src/selinux/mcstrans/src/mcstransd.c
    functionUses: 0
    functionsReached:
    - syslog
    - getsockopt
    linkageType: ''
    returnType: int
    signature: int get_peer_pid(int fd, pid_t *pid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: send_response
      Src: /src/selinux/mcstrans/src/mcstransd.c:147,1
    - Dst: trans_context
      Src: /src/selinux/mcstrans/src/mcstransd.c:150,1
    - Dst: send_response
      Src: /src/selinux/mcstrans/src/mcstransd.c:151,1
    - Dst: untrans_context
      Src: /src/selinux/mcstrans/src/mcstransd.c:154,1
    - Dst: send_response
      Src: /src/selinux/mcstrans/src/mcstransd.c:155,1
    - Dst: raw_color
      Src: /src/selinux/mcstrans/src/mcstransd.c:158,1
    - Dst: send_response
      Src: /src/selinux/mcstrans/src/mcstransd.c:159,1
    - Dst: get_peer_pid
      Src: /src/selinux/mcstrans/src/mcstransd.c:169,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:170,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstransd.c:174,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 4
    argNames:
    - fd
    - function
    - data1
    - UNUSED(data2)
    argTypes:
    - int
    - uint32_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 137
    functionDepth: 6
    functionLinenumber: 137
    functionLinenumberEnd: 177
    functionName: process_request
    functionSourceFile: /src/selinux/mcstrans/src/mcstransd.c
    functionUses: 0
    functionsReached:
    - trans_context
    - send_response
    - raw_color
    - get_peer_pid
    - free
    - untrans_context
    - syslog
    linkageType: ''
    returnType: int
    signature: "int process_request(int fd, uint32_t function, char *data1,\n\t\t\t
      \  char *UNUSED(data2))"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: readv
      Src: /src/selinux/mcstrans/src/mcstransd.c:198,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstransd.c:205,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstransd.c:214,1
    - Dst: malloc
      Src: /src/selinux/mcstrans/src/mcstransd.c:219,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstransd.c:221,1
    - Dst: malloc
      Src: /src/selinux/mcstrans/src/mcstransd.c:224,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstransd.c:226,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstransd.c:227,1
    - Dst: readv
      Src: /src/selinux/mcstrans/src/mcstransd.c:236,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstransd.c:240,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstransd.c:241,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstransd.c:242,1
    - Dst: process_request
      Src: /src/selinux/mcstrans/src/mcstransd.c:246,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstransd.c:248,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstransd.c:249,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 179
    functionDepth: 7
    functionLinenumber: 179
    functionLinenumberEnd: 252
    functionName: service_request
    functionSourceFile: /src/selinux/mcstrans/src/mcstransd.c
    functionUses: 0
    functionsReached:
    - readv
    - malloc
    - process_request
    - free
    - log_debug
    linkageType: ''
    returnType: int
    signature: int service_request(int fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/selinux/mcstrans/src/mcstransd.c:265,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - ufds
    - nfds
    - connfd
    argTypes:
    - struct pollfd**
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 281
    functionName: add_pollfd
    functionSourceFile: /src/selinux/mcstrans/src/mcstransd.c
    functionUses: 0
    functionsReached:
    - syslog
    - realloc
    linkageType: ''
    returnType: int
    signature: int add_pollfd(struct pollfd **ufds, int *nfds, int connfd)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ufds
    - nfds
    argTypes:
    - struct pollfd**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 296
    functionName: adj_pollfds
    functionSourceFile: /src/selinux/mcstrans/src/mcstransd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void adj_pollfds(struct pollfd **ufds, int *nfds)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/selinux/mcstrans/src/mcstransd.c:314,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:316,1
    - Dst: close
      Src: /src/selinux/mcstrans/src/mcstransd.c:325,1
    - Dst: setsockopt
      Src: /src/selinux/mcstrans/src/mcstransd.c:329,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:331,1
    - Dst: close
      Src: /src/selinux/mcstrans/src/mcstransd.c:333,1
    - Dst: add_pollfd
      Src: /src/selinux/mcstrans/src/mcstransd.c:337,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:338,1
    - Dst: close
      Src: /src/selinux/mcstrans/src/mcstransd.c:341,1
    - Dst: service_request
      Src: /src/selinux/mcstrans/src/mcstransd.c:345,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:348,1
    - Dst: close
      Src: /src/selinux/mcstrans/src/mcstransd.c:355,1
    - Dst: log_debug
      Src: /src/selinux/mcstrans/src/mcstransd.c:364,1
    - Dst: close
      Src: /src/selinux/mcstrans/src/mcstransd.c:369,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:375,1
    - Dst: close
      Src: /src/selinux/mcstrans/src/mcstransd.c:382,1
    - Dst: adj_pollfds
      Src: /src/selinux/mcstrans/src/mcstransd.c:389,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 2
    argNames:
    - ufds
    - nfds
    argTypes:
    - struct pollfd**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 298
    functionDepth: 8
    functionLinenumber: 298
    functionLinenumberEnd: 392
    functionName: process_events
    functionSourceFile: /src/selinux/mcstrans/src/mcstransd.c
    functionUses: 0
    functionsReached:
    - service_request
    - close
    - adj_pollfds
    - add_pollfd
    - log_debug
    - syslog
    - setsockopt
    - accept
    linkageType: ''
    returnType: int
    signature: int process_events(struct pollfd **ufds, int *nfds)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/mcstrans/src/mcstransd.c:401,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:403,1
    - Dst: cleanup_exit
      Src: /src/selinux/mcstrans/src/mcstransd.c:404,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcstransd.c:412,1
    - Dst: cleanup_exit
      Src: /src/selinux/mcstrans/src/mcstransd.c:413,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:416,1
    - Dst: finish_context_colors
      Src: /src/selinux/mcstrans/src/mcstransd.c:417,1
    - Dst: finish_context_translations
      Src: /src/selinux/mcstrans/src/mcstransd.c:418,1
    - Dst: init_translations
      Src: /src/selinux/mcstrans/src/mcstransd.c:419,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:420,1
    - Dst: cleanup_exit
      Src: /src/selinux/mcstrans/src/mcstransd.c:422,1
    - Dst: init_colors
      Src: /src/selinux/mcstrans/src/mcstransd.c:424,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:425,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:427,1
    - Dst: poll
      Src: /src/selinux/mcstrans/src/mcstransd.c:433,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:438,1
    - Dst: cleanup_exit
      Src: /src/selinux/mcstrans/src/mcstransd.c:439,1
    - Dst: process_events
      Src: /src/selinux/mcstrans/src/mcstransd.c:442,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:444,1
    - Dst: cleanup_exit
      Src: /src/selinux/mcstrans/src/mcstransd.c:445,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 396
    functionDepth: 9
    functionLinenumber: 396
    functionLinenumberEnd: 448
    functionName: process_connections
    functionSourceFile: /src/selinux/mcstrans/src/mcstransd.c
    functionUses: 0
    functionsReached:
    - process_events
    - cleanup_exit
    - poll
    - malloc
    - init_translations
    - free
    - finish_context_translations
    - finish_context_colors
    - syslog
    - init_colors
    linkageType: ''
    returnType: void
    signature: void process_connections(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 453
    functionName: sigterm_handler
    functionSourceFile: /src/selinux/mcstrans/src/mcstransd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sigterm_handler(int UNUSED(sig))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - UNUSED
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 458
    functionName: sighup_handler
    functionSourceFile: /src/selinux/mcstrans/src/mcstransd.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sighup_handler(int UNUSED(sig))
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: init_translations
      Src: /src/selinux/mcstrans/src/mcstransd.c:466,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:467,1
    - Dst: cleanup_exit
      Src: /src/selinux/mcstrans/src/mcstransd.c:468,1
    - Dst: init_colors
      Src: /src/selinux/mcstrans/src/mcstransd.c:470,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:471,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:472,1
    - Dst: sigemptyset
      Src: /src/selinux/mcstrans/src/mcstransd.c:477,1
    - Dst: sigaddset
      Src: /src/selinux/mcstrans/src/mcstransd.c:478,1
    - Dst: sigaddset
      Src: /src/selinux/mcstrans/src/mcstransd.c:479,1
    - Dst: sigaddset
      Src: /src/selinux/mcstrans/src/mcstransd.c:480,1
    - Dst: sigaddset
      Src: /src/selinux/mcstrans/src/mcstransd.c:481,1
    - Dst: sigaction
      Src: /src/selinux/mcstrans/src/mcstransd.c:483,1
    - Dst: sigaction
      Src: /src/selinux/mcstrans/src/mcstransd.c:484,1
    - Dst: sigaction
      Src: /src/selinux/mcstrans/src/mcstransd.c:485,1
    - Dst: sigemptyset
      Src: /src/selinux/mcstrans/src/mcstransd.c:489,1
    - Dst: sigaddset
      Src: /src/selinux/mcstrans/src/mcstransd.c:490,1
    - Dst: sigaddset
      Src: /src/selinux/mcstrans/src/mcstransd.c:491,1
    - Dst: sigaddset
      Src: /src/selinux/mcstrans/src/mcstransd.c:492,1
    - Dst: sigaction
      Src: /src/selinux/mcstrans/src/mcstransd.c:494,1
    - Dst: sigemptyset
      Src: /src/selinux/mcstrans/src/mcstransd.c:498,1
    - Dst: sigaction
      Src: /src/selinux/mcstrans/src/mcstransd.c:500,1
    - Dst: atexit
      Src: /src/selinux/mcstrans/src/mcstransd.c:502,1
    - Dst: socket
      Src: /src/selinux/mcstrans/src/mcstransd.c:504,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:506,1
    - Dst: cleanup_exit
      Src: /src/selinux/mcstrans/src/mcstransd.c:507,1
    - Dst: memset
      Src: /src/selinux/mcstrans/src/mcstransd.c:510,1
    - Dst: strncpy
      Src: /src/selinux/mcstrans/src/mcstransd.c:512,1
    - Dst: unlink
      Src: /src/selinux/mcstrans/src/mcstransd.c:514,1
    - Dst: bind
      Src: /src/selinux/mcstrans/src/mcstransd.c:516,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:517,1
    - Dst: cleanup_exit
      Src: /src/selinux/mcstrans/src/mcstransd.c:518,1
    - Dst: listen
      Src: /src/selinux/mcstrans/src/mcstransd.c:521,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:522,1
    - Dst: cleanup_exit
      Src: /src/selinux/mcstrans/src/mcstransd.c:523,1
    - Dst: chmod
      Src: /src/selinux/mcstrans/src/mcstransd.c:526,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:527,1
    - Dst: cleanup_exit
      Src: /src/selinux/mcstrans/src/mcstransd.c:528,1
    - Dst: setrlimit
      Src: /src/selinux/mcstrans/src/mcstransd.c:534,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 460
    functionDepth: 8
    functionLinenumber: 460
    functionLinenumberEnd: 535
    functionName: initialize
    functionSourceFile: /src/selinux/mcstrans/src/mcstransd.c
    functionUses: 0
    functionsReached:
    - cleanup_exit
    - unlink
    - listen
    - bind
    - sigaction
    - sigemptyset
    - init_translations
    - chmod
    - setrlimit
    - socket
    - strncpy
    - memset
    - init_colors
    - syslog
    - sigaddset
    - atexit
    linkageType: ''
    returnType: void
    signature: void initialize(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cap_init
      Src: /src/selinux/mcstrans/src/mcstransd.c:541,1
    - Dst: cap_set_proc
      Src: /src/selinux/mcstrans/src/mcstransd.c:542,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:543,1
    - Dst: strerror
      Src: /src/selinux/mcstrans/src/mcstransd.c:544,1
    - Dst: cleanup_exit
      Src: /src/selinux/mcstrans/src/mcstransd.c:545,1
    - Dst: cap_free
      Src: /src/selinux/mcstrans/src/mcstransd.c:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 537
    functionDepth: 6
    functionLinenumber: 537
    functionLinenumberEnd: 548
    functionName: dropprivs
    functionSourceFile: /src/selinux/mcstrans/src/mcstransd.c
    functionUses: 0
    functionsReached:
    - cleanup_exit
    - cap_init
    - cap_free
    - strerror
    - syslog
    - cap_set_proc
    linkageType: ''
    returnType: void
    signature: void dropprivs(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/mcstrans/src/mcstransd.c:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - program
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 553
    functionName: usage
    functionSourceFile: /src/selinux/mcstrans/src/mcstransd.c
    functionUses: 17
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(char *program)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/selinux/mcstrans/src/mcstransd.c:559,1
    - Dst: usage
      Src: /src/selinux/mcstrans/src/mcstransd.c:565,1
    - Dst: exit
      Src: /src/selinux/mcstrans/src/mcstransd.c:566,1
    - Dst: usage
      Src: /src/selinux/mcstrans/src/mcstransd.c:569,1
    - Dst: exit
      Src: /src/selinux/mcstrans/src/mcstransd.c:570,1
    - Dst: getuid
      Src: /src/selinux/mcstrans/src/mcstransd.c:576,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:577,1
    - Dst: openlog
      Src: /src/selinux/mcstrans/src/mcstransd.c:582,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:583,1
    - Dst: initialize
      Src: /src/selinux/mcstrans/src/mcstransd.c:585,1
    - Dst: dropprivs
      Src: /src/selinux/mcstrans/src/mcstransd.c:588,1
    - Dst: daemon
      Src: /src/selinux/mcstrans/src/mcstransd.c:591,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:592,1
    - Dst: cleanup_exit
      Src: /src/selinux/mcstrans/src/mcstransd.c:593,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcstransd.c:597,1
    - Dst: process_connections
      Src: /src/selinux/mcstrans/src/mcstransd.c:598,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 555
    functionDepth: 10
    functionLinenumber: 555
    functionLinenumberEnd: 602
    functionName: main
    functionSourceFile: /src/selinux/mcstrans/src/mcstransd.c
    functionUses: 6
    functionsReached:
    - dropprivs
    - getuid
    - getopt
    - daemon
    - cleanup_exit
    - usage
    - syslog
    - process_connections
    - openlog
    - initialize
    - exit
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcscolor.c:61,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcscolor.c:62,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcscolor.c:71,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcscolor.c:72,1
    - Dst: freecon
      Src: /src/selinux/mcstrans/src/mcscolor.c:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 79
    functionName: finish_context_colors
    functionSourceFile: /src/selinux/mcstrans/src/mcscolor.c
    functionUses: 2
    functionsReached:
    - free
    - freecon
    linkageType: ''
    returnType: void
    signature: void finish_context_colors(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: string_to_security_class
      Src: /src/selinux/mcstrans/src/mcscolor.c:89,1
    - Dst: string_to_av_perm
      Src: /src/selinux/mcstrans/src/mcscolor.c:91,1
    - Dst: context_new
      Src: /src/selinux/mcstrans/src/mcscolor.c:96,1
    - Dst: context_range_get
      Src: /src/selinux/mcstrans/src/mcscolor.c:99,1
    - Dst: context_new
      Src: /src/selinux/mcstrans/src/mcscolor.c:101,1
    - Dst: context_free
      Src: /src/selinux/mcstrans/src/mcscolor.c:103,1
    - Dst: context_range_set
      Src: /src/selinux/mcstrans/src/mcscolor.c:108,1
    - Dst: context_to_str
      Src: /src/selinux/mcstrans/src/mcscolor.c:110,1
    - Dst: context_range_set
      Src: /src/selinux/mcstrans/src/mcscolor.c:114,1
    - Dst: context_str
      Src: /src/selinux/mcstrans/src/mcscolor.c:116,1
    - Dst: security_compute_av_raw
      Src: /src/selinux/mcstrans/src/mcscolor.c:120,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcscolor.c:127,1
    - Dst: context_free
      Src: /src/selinux/mcstrans/src/mcscolor.c:128,1
    - Dst: context_free
      Src: /src/selinux/mcstrans/src/mcscolor.c:129,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - pattern
    - raw
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 131
    functionName: check_dominance
    functionSourceFile: /src/selinux/mcstrans/src/mcscolor.c
    functionUses: 0
    functionsReached:
    - context_to_str
    - string_to_av_perm
    - context_new
    - context_str
    - string_to_security_class
    - context_range_get
    - security_compute_av_raw
    - free
    - context_range_set
    - context_free
    linkageType: ''
    returnType: int
    signature: int check_dominance(const char *pattern, const char *raw)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: check_dominance
      Src: /src/selinux/mcstrans/src/mcscolor.c:148,1
    - Dst: fnmatch
      Src: /src/selinux/mcstrans/src/mcscolor.c:151,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - idx
    - component
    - raw
    argTypes:
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 158
    functionName: find_color
    functionSourceFile: /src/selinux/mcstrans/src/mcscolor.c
    functionUses: 0
    functionsReached:
    - check_dominance
    - fnmatch
    linkageType: ''
    returnType: secolor_t
    signature: "secolor_t *find_color(int idx, const char *component,\n\t\t\t\t   const
      char *raw)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/mcstrans/src/mcscolor.c:164,1
    - Dst: strdup
      Src: /src/selinux/mcstrans/src/mcscolor.c:168,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcscolor.c:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - idx
    - pattern
    - fg
    - bg
    argTypes:
    - int
    - char*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 185
    functionName: add_secolor
    functionSourceFile: /src/selinux/mcstrans/src/mcscolor.c
    functionUses: 0
    functionsReached:
    - free
    - calloc
    - strdup
    linkageType: ''
    returnType: int
    signature: int add_secolor(int idx, char *pattern, uint32_t fg, uint32_t bg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sscanf
      Src: /src/selinux/mcstrans/src/mcscolor.c:192,1
    - Dst: strcmp
      Src: /src/selinux/mcstrans/src/mcscolor.c:196,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - name
    - retval
    argTypes:
    - char*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 204
    functionName: find_mnemonic
    functionSourceFile: /src/selinux/mcstrans/src/mcscolor.c
    functionUses: 0
    functionsReached:
    - strcmp
    - sscanf
    linkageType: ''
    returnType: int
    signature: int find_mnemonic(const char *name, uint32_t *retval)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/mcstrans/src/mcscolor.c:208,1
    - Dst: strdup
      Src: /src/selinux/mcstrans/src/mcscolor.c:213,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcscolor.c:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - name
    - color
    argTypes:
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 222
    functionName: add_mnemonic
    functionSourceFile: /src/selinux/mcstrans/src/mcscolor.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - strdup
    linkageType: ''
    returnType: int
    signature: int add_mnemonic(const char *name, uint32_t color)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/selinux/mcstrans/src/mcscolor.c:232,1
    - Dst: sscanf
      Src: /src/selinux/mcstrans/src/mcscolor.c:237,1
    - Dst: find_mnemonic
      Src: /src/selinux/mcstrans/src/mcscolor.c:239,1
    - Dst: find_mnemonic
      Src: /src/selinux/mcstrans/src/mcscolor.c:239,1
    - Dst: strcmp
      Src: /src/selinux/mcstrans/src/mcscolor.c:241,1
    - Dst: add_secolor
      Src: /src/selinux/mcstrans/src/mcscolor.c:242,1
    - Dst: strcmp
      Src: /src/selinux/mcstrans/src/mcscolor.c:244,1
    - Dst: sscanf
      Src: /src/selinux/mcstrans/src/mcscolor.c:245,1
    - Dst: add_mnemonic
      Src: /src/selinux/mcstrans/src/mcscolor.c:246,1
    - Dst: syslog
      Src: /src/selinux/mcstrans/src/mcscolor.c:250,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 2
    argNames:
    - buffer
    - line
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 252
    functionName: process_color
    functionSourceFile: /src/selinux/mcstrans/src/mcscolor.c
    functionUses: 0
    functionsReached:
    - add_mnemonic
    - find_mnemonic
    - isspace
    - sscanf
    - strcmp
    - add_secolor
    - syslog
    linkageType: ''
    returnType: int
    signature: int process_color(char *buffer, int line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getcon
      Src: /src/selinux/mcstrans/src/mcscolor.c:263,1
    - Dst: fopen
      Src: /src/selinux/mcstrans/src/mcscolor.c:266,1
    - Dst: selinux_colors_path
      Src: /src/selinux/mcstrans/src/mcscolor.c:266,1
    - Dst: __fsetlocking
      Src: /src/selinux/mcstrans/src/mcscolor.c:270,1
    - Dst: getline
      Src: /src/selinux/mcstrans/src/mcscolor.c:271,1
    - Dst: process_color
      Src: /src/selinux/mcstrans/src/mcscolor.c:272,1
    - Dst: free
      Src: /src/selinux/mcstrans/src/mcscolor.c:275,1
    - Dst: fclose
      Src: /src/selinux/mcstrans/src/mcscolor.c:277,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 279
    functionName: init_colors
    functionSourceFile: /src/selinux/mcstrans/src/mcscolor.c
    functionUses: 2
    functionsReached:
    - selinux_colors_path
    - process_color
    - fclose
    - __fsetlocking
    - free
    - fopen
    - getline
    - getcon
    linkageType: ''
    returnType: int
    signature: int init_colors(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: context_user_get
      Src: /src/selinux/mcstrans/src/mcscolor.c:292,1
    - Dst: context_role_get
      Src: /src/selinux/mcstrans/src/mcscolor.c:293,1
    - Dst: context_type_get
      Src: /src/selinux/mcstrans/src/mcscolor.c:294,1
    - Dst: context_range_get
      Src: /src/selinux/mcstrans/src/mcscolor.c:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - con
    - components
    argTypes:
    - context_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 298
    functionName: parse_components
    functionSourceFile: /src/selinux/mcstrans/src/mcscolor.c
    functionUses: 0
    functionsReached:
    - context_role_get
    - context_range_get
    - context_type_get
    - context_user_get
    linkageType: ''
    returnType: int
    signature: int parse_components(context_t con, char **components)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: context_new
      Src: /src/selinux/mcstrans/src/mcscolor.c:318,1
    - Dst: parse_components
      Src: /src/selinux/mcstrans/src/mcscolor.c:321,1
    - Dst: malloc
      Src: /src/selinux/mcstrans/src/mcscolor.c:324,1
    - Dst: find_color
      Src: /src/selinux/mcstrans/src/mcscolor.c:331,1
    - Dst: snprintf
      Src: /src/selinux/mcstrans/src/mcscolor.c:351,1
    - Dst: strncat
      Src: /src/selinux/mcstrans/src/mcscolor.c:353,1
    - Dst: context_free
      Src: /src/selinux/mcstrans/src/mcscolor.c:359,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 2
    argNames:
    - raw
    - color_str
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 362
    functionName: raw_color
    functionSourceFile: /src/selinux/mcstrans/src/mcscolor.c
    functionUses: 1
    functionsReached:
    - find_color
    - parse_components
    - snprintf
    - context_new
    - strncat
    - malloc
    - context_free
    linkageType: ''
    returnType: int
    signature: int raw_color(const char *raw, char **color_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/mcstrans/utils/transcon.c:12,1
    - Dst: exit
      Src: /src/selinux/mcstrans/utils/transcon.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: usage
    functionSourceFile: /src/selinux/mcstrans/utils/transcon.c
    functionUses: 18
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/selinux/mcstrans/utils/transcon.c:20,1
    - Dst: init_translations
      Src: /src/selinux/mcstrans/utils/transcon.c:21,1
    - Dst: trans_context
      Src: /src/selinux/mcstrans/utils/transcon.c:22,1
    - Dst: printf
      Src: /src/selinux/mcstrans/utils/transcon.c:23,1
    - Dst: freecon
      Src: /src/selinux/mcstrans/utils/transcon.c:24,1
    - Dst: printf
      Src: /src/selinux/mcstrans/utils/transcon.c:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 16
    functionDepth: 8
    functionLinenumber: 16
    functionLinenumberEnd: 30
    functionName: main
    functionSourceFile: /src/selinux/mcstrans/utils/transcon.c
    functionUses: 6
    functionsReached:
    - trans_context
    - freecon
    - usage
    - init_translations
    - printf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/mcstrans/utils/untranscon.c:12,1
    - Dst: exit
      Src: /src/selinux/mcstrans/utils/untranscon.c:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 14
    functionName: usage
    functionSourceFile: /src/selinux/mcstrans/utils/untranscon.c
    functionUses: 19
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/selinux/mcstrans/utils/untranscon.c:19,1
    - Dst: init_translations
      Src: /src/selinux/mcstrans/utils/untranscon.c:20,1
    - Dst: untrans_context
      Src: /src/selinux/mcstrans/utils/untranscon.c:21,1
    - Dst: printf
      Src: /src/selinux/mcstrans/utils/untranscon.c:22,1
    - Dst: freecon
      Src: /src/selinux/mcstrans/utils/untranscon.c:23,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 15
    functionDepth: 8
    functionLinenumber: 15
    functionLinenumberEnd: 28
    functionName: main
    functionSourceFile: /src/selinux/mcstrans/utils/untranscon.c
    functionUses: 6
    functionsReached:
    - freecon
    - usage
    - init_translations
    - untrans_context
    - printf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - buf
    - ','
    - size
    - ','
    - fp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: fgets_unlocked
    functionSourceFile: /src/selinux/libselinux/src/label_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: fgets_unlocked(buf, size, fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - type
    - ','
    - fmt
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 127
    functionName: COMPAT_LOG
    functionSourceFile: /src/selinux/libselinux/src/label_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: COMPAT_LOG(type, fmt...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/regex.c:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 76
    functionName: regex_arch_string_init
    functionSourceFile: /src/selinux/libselinux/src/regex.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: void regex_arch_string_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __selinux_once
      Src: /src/selinux/libselinux/src/regex.c:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: regex_arch_string
    functionSourceFile: /src/selinux/libselinux/src/regex.c
    functionUses: 0
    functionsReached:
    - __selinux_once
    linkageType: ''
    returnType: char
    signature: char *regex_arch_string(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libselinux/src/regex.c:92,1
    - Dst: regex_data_create
      Src: /src/selinux/libselinux/src/regex.c:94,1
    - Dst: pcre2_compile
      Src: /src/selinux/libselinux/src/regex.c:98,1
    - Dst: pcre2_jit_compile
      Src: /src/selinux/libselinux/src/regex.c:109,1
    - Dst: regex_data_free
      Src: /src/selinux/libselinux/src/regex.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - regex
    - pattern_string
    - errordata
    argTypes:
    - struct regex_data**
    - char*
    - struct regex_error_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 118
    functionName: regex_prepare_data
    functionSourceFile: /src/selinux/libselinux/src/regex.c
    functionUses: 0
    functionsReached:
    - pcre2_compile
    - pcre2_jit_compile
    - memset
    - regex_data_free
    - regex_data_create
    linkageType: ''
    returnType: int
    signature: "int regex_prepare_data(struct regex_data **regex, char const *pattern_string,\n\t\t
      \      struct regex_error_data *errordata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_config
      Src: /src/selinux/libselinux/src/regex.c:123,1
    - Dst: pcre2_config
      Src: /src/selinux/libselinux/src/regex.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 129
    functionName: regex_version
    functionSourceFile: /src/selinux/libselinux/src/regex.c
    functionUses: 0
    functionsReached:
    - pcre2_config
    linkageType: ''
    returnType: char
    signature: char *regex_version(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/regex.c:138,1
    - Dst: be32toh
      Src: /src/selinux/libselinux/src/regex.c:142,1
    - Dst: pcre2_serialize_get_number_of_codes
      Src: /src/selinux/libselinux/src/regex.c:152,1
    - Dst: regex_data_create
      Src: /src/selinux/libselinux/src/regex.c:156,1
    - Dst: pcre2_serialize_decode
      Src: /src/selinux/libselinux/src/regex.c:160,1
    - Dst: pcre2_jit_compile
      Src: /src/selinux/libselinux/src/regex.c:166,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/regex.c:174,1
    - Dst: regex_data_free
      Src: /src/selinux/libselinux/src/regex.c:180,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 4
    argNames:
    - mmap_area
    - regex
    - do_load_precompregex
    - regex_compiled
    argTypes:
    - struct mmap_area*
    - struct regex_data**
    - int
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 183
    functionName: regex_load_mmap
    functionSourceFile: /src/selinux/libselinux/src/regex.c
    functionUses: 0
    functionsReached:
    - pcre2_jit_compile
    - next_entry
    - be32toh
    - regex_data_free
    - pcre2_serialize_decode
    - regex_data_create
    - pcre2_serialize_get_number_of_codes
    linkageType: ''
    returnType: int
    signature: "int regex_load_mmap(struct mmap_area *mmap_area, struct regex_data
      **regex,\n\t\t    int do_load_precompregex, bool *regex_compiled)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_serialize_encode
      Src: /src/selinux/libselinux/src/regex.c:196,1
    - Dst: htobe32
      Src: /src/selinux/libselinux/src/regex.c:206,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/src/regex.c:207,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/src/regex.c:215,1
    - Dst: pcre2_serialize_free
      Src: /src/selinux/libselinux/src/regex.c:222,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 3
    argNames:
    - regex
    - fp
    - do_write_precompregex
    argTypes:
    - struct regex_data*
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 225
    functionName: regex_writef
    functionSourceFile: /src/selinux/libselinux/src/regex.c
    functionUses: 0
    functionsReached:
    - htobe32
    - pcre2_serialize_free
    - fwrite
    - pcre2_serialize_encode
    linkageType: ''
    returnType: int
    signature: "int regex_writef(const struct regex_data *regex, FILE *fp,\n\t\t int
      do_write_precompregex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_match_data_free
      Src: /src/selinux/libselinux/src/regex.c:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 230
    functionName: match_data_thread_free
    functionSourceFile: /src/selinux/libselinux/src/regex.c
    functionUses: 0
    functionsReached:
    - pcre2_match_data_free
    linkageType: ''
    returnType: void
    signature: void match_data_thread_free(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __selinux_key_create
      Src: /src/selinux/libselinux/src/regex.c:236,1
    - Dst: pcre2_match_context_create
      Src: /src/selinux/libselinux/src/regex.c:241,1
    - Dst: pcre2_set_match_limit
      Src: /src/selinux/libselinux/src/regex.c:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 246
    functionName: match_data_key_init
    functionSourceFile: /src/selinux/libselinux/src/regex.c
    functionUses: 0
    functionsReached:
    - __selinux_key_create
    - pcre2_match_context_create
    - pcre2_set_match_limit
    linkageType: ''
    returnType: void
    signature: void match_data_key_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __selinux_key_delete
      Src: /src/selinux/libselinux/src/regex.c:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 254
    functionName: match_data_key_destroy
    functionSourceFile: /src/selinux/libselinux/src/regex.c
    functionUses: 0
    functionsReached:
    - __selinux_key_delete
    linkageType: ''
    returnType: void
    signature: void match_data_key_destroy(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_code_free
      Src: /src/selinux/libselinux/src/regex.c:260,1
    - Dst: free
      Src: /src/selinux/libselinux/src/regex.c:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - regex
    argTypes:
    - struct regex_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 263
    functionName: regex_data_free
    functionSourceFile: /src/selinux/libselinux/src/regex.c
    functionUses: 2
    functionsReached:
    - pcre2_code_free
    - free
    linkageType: ''
    returnType: void
    signature: void regex_data_free(struct regex_data *regex)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: __selinux_once
      Src: /src/selinux/libselinux/src/regex.c:271,1
    - Dst: __selinux_getspecific
      Src: /src/selinux/libselinux/src/regex.c:274,1
    - Dst: pcre2_match_data_create
      Src: /src/selinux/libselinux/src/regex.c:276,1
    - Dst: __selinux_setspecific
      Src: /src/selinux/libselinux/src/regex.c:278,1
    - Dst: pcre2_match_data_create_from_pattern
      Src: /src/selinux/libselinux/src/regex.c:286,1
    - Dst: pcre2_match
      Src: /src/selinux/libselinux/src/regex.c:296,1
    - Dst: pcre2_match_data_free
      Src: /src/selinux/libselinux/src/regex.c:302,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - regex
    - subject
    - partial
    argTypes:
    - struct regex_data*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 315
    functionName: regex_match
    functionSourceFile: /src/selinux/libselinux/src/regex.c
    functionUses: 0
    functionsReached:
    - pcre2_match
    - __selinux_getspecific
    - pcre2_match_data_create_from_pattern
    - __selinux_once
    - pcre2_match_data_create
    - __selinux_setspecific
    - pcre2_match_data_free
    linkageType: ''
    returnType: int
    signature: int regex_match(struct regex_data *regex, char const *subject, int
      partial)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre2_pattern_info
      Src: /src/selinux/libselinux/src/regex.c:330,1
    - Dst: assert
      Src: /src/selinux/libselinux/src/regex.c:331,1
    - Dst: pcre2_pattern_info
      Src: /src/selinux/libselinux/src/regex.c:332,1
    - Dst: assert
      Src: /src/selinux/libselinux/src/regex.c:333,1
    - Dst: memcmp
      Src: /src/selinux/libselinux/src/regex.c:334,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - regex1
    - regex2
    argTypes:
    - struct regex_data*
    - struct regex_data*
    assertStmts:
    - condition: (rc == 0)
      pos:
        line_end: 330
        line_start: 330
        source_file: /src/selinux/libselinux/src/regex.c
    - condition: (rc == 0)
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/selinux/libselinux/src/regex.c
    constantsTouched: []
    func_position:
      end: 338
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 338
    functionName: regex_cmp
    functionSourceFile: /src/selinux/libselinux/src/regex.c
    functionUses: 0
    functionsReached:
    - pcre2_pattern_info
    - memcmp
    - assert
    linkageType: ''
    returnType: int
    signature: int regex_cmp(const struct regex_data *regex1, const struct regex_data
      *regex2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libselinux/src/regex.c:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 345
    functionName: regex_data_create
    functionSourceFile: /src/selinux/libselinux/src/regex.c
    functionUses: 2
    functionsReached:
    - calloc
    linkageType: ''
    returnType: struct regex_data
    signature: struct regex_data *regex_data_create(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 351
    functionName: regex_arch_string
    functionSourceFile: /src/selinux/libselinux/src/regex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *regex_arch_string(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libselinux/src/regex.c:373,1
    - Dst: regex_data_create
      Src: /src/selinux/libselinux/src/regex.c:375,1
    - Dst: pcre_compile
      Src: /src/selinux/libselinux/src/regex.c:379,1
    - Dst: pcre_study
      Src: /src/selinux/libselinux/src/regex.c:387,1
    - Dst: regex_data_free
      Src: /src/selinux/libselinux/src/regex.c:394,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - regex
    - pattern_string
    - errordata
    argTypes:
    - struct regex_data**
    - char*
    - struct regex_error_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 397
    functionName: regex_prepare_data
    functionSourceFile: /src/selinux/libselinux/src/regex.c
    functionUses: 0
    functionsReached:
    - memset
    - regex_data_free
    - regex_data_create
    - pcre_compile
    - pcre_study
    linkageType: ''
    returnType: int
    signature: "int regex_prepare_data(struct regex_data **regex, char const *pattern_string,\n\t\t
      \      struct regex_error_data *errordata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pcre_version
      Src: /src/selinux/libselinux/src/regex.c:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 402
    functionName: regex_version
    functionSourceFile: /src/selinux/libselinux/src/regex.c
    functionUses: 0
    functionsReached:
    - pcre_version
    linkageType: ''
    returnType: char
    signature: char *regex_version(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/regex.c:412,1
    - Dst: be32toh
      Src: /src/selinux/libselinux/src/regex.c:416,1
    - Dst: regex_data_create
      Src: /src/selinux/libselinux/src/regex.c:420,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/regex.c:426,1
    - Dst: pcre_fullinfo
      Src: /src/selinux/libselinux/src/regex.c:434,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/regex.c:438,1
    - Dst: be32toh
      Src: /src/selinux/libselinux/src/regex.c:442,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/regex.c:447,1
    - Dst: pcre_fullinfo
      Src: /src/selinux/libselinux/src/regex.c:452,1
    - Dst: regex_data_free
      Src: /src/selinux/libselinux/src/regex.c:462,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 4
    argNames:
    - mmap_area
    - regex
    - do_load_precompregex
    - regex_compiled
    argTypes:
    - struct mmap_area*
    - struct regex_data**
    - int
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 465
    functionName: regex_load_mmap
    functionSourceFile: /src/selinux/libselinux/src/regex.c
    functionUses: 0
    functionsReached:
    - pcre_fullinfo
    - next_entry
    - be32toh
    - regex_data_free
    - regex_data_create
    linkageType: ''
    returnType: int
    signature: "int regex_load_mmap(struct mmap_area *mmap_area, struct regex_data
      **regex,\n\t\t    int do_load_precompregex __attribute__((unused)),\n\t\t    bool
      *regex_compiled)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - regex
    argTypes:
    - struct regex_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 478
    functionName: get_pcre_extra
    functionSourceFile: /src/selinux/libselinux/src/regex.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pcre_extra
    signature: pcre_extra *get_pcre_extra(const struct regex_data *regex)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_pcre_extra
      Src: /src/selinux/libselinux/src/regex.c:487,1
    - Dst: pcre_fullinfo
      Src: /src/selinux/libselinux/src/regex.c:490,1
    - Dst: htobe32
      Src: /src/selinux/libselinux/src/regex.c:495,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/src/regex.c:496,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/src/regex.c:501,1
    - Dst: pcre_fullinfo
      Src: /src/selinux/libselinux/src/regex.c:507,1
    - Dst: htobe32
      Src: /src/selinux/libselinux/src/regex.c:515,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/src/regex.c:516,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/src/regex.c:522,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 3
    argNames:
    - regex
    - fp
    - do_write_precompregex
    argTypes:
    - struct regex_data*
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 528
    functionName: regex_writef
    functionSourceFile: /src/selinux/libselinux/src/regex.c
    functionUses: 0
    functionsReached:
    - htobe32
    - get_pcre_extra
    - pcre_fullinfo
    - fwrite
    linkageType: ''
    returnType: int
    signature: "int regex_writef(const struct regex_data *regex, FILE *fp,\n\t\t int
      do_write_precompregex __attribute__((unused)))"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcre_free
      Src: /src/selinux/libselinux/src/regex.c:535,1
    - Dst: pcre_free_study
      Src: /src/selinux/libselinux/src/regex.c:537,1
    - Dst: free
      Src: /src/selinux/libselinux/src/regex.c:539,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - regex
    argTypes:
    - struct regex_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 541
    functionName: regex_data_free
    functionSourceFile: /src/selinux/libselinux/src/regex.c
    functionUses: 4
    functionsReached:
    - pcre_free_study
    - free
    - pcre_free
    linkageType: ''
    returnType: void
    signature: void regex_data_free(struct regex_data *regex)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pcre_exec
      Src: /src/selinux/libselinux/src/regex.c:547,1
    - Dst: get_pcre_extra
      Src: /src/selinux/libselinux/src/regex.c:547,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/regex.c:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - regex
    - subject
    - partial
    argTypes:
    - struct regex_data*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 560
    functionName: regex_match
    functionSourceFile: /src/selinux/libselinux/src/regex.c
    functionUses: 0
    functionsReached:
    - pcre_exec
    - get_pcre_extra
    - strlen
    linkageType: ''
    returnType: int
    signature: int regex_match(struct regex_data *regex, char const *subject, int
      partial)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pcre_fullinfo
      Src: /src/selinux/libselinux/src/regex.c:575,1
    - Dst: assert
      Src: /src/selinux/libselinux/src/regex.c:576,1
    - Dst: pcre_fullinfo
      Src: /src/selinux/libselinux/src/regex.c:577,1
    - Dst: assert
      Src: /src/selinux/libselinux/src/regex.c:578,1
    - Dst: memcmp
      Src: /src/selinux/libselinux/src/regex.c:579,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - regex1
    - regex2
    argTypes:
    - struct regex_data*
    - struct regex_data*
    assertStmts:
    - condition: (rc == 0)
      pos:
        line_end: 577
        line_start: 577
        source_file: /src/selinux/libselinux/src/regex.c
    - condition: (rc == 0)
      pos:
        line_end: 575
        line_start: 575
        source_file: /src/selinux/libselinux/src/regex.c
    constantsTouched: []
    func_position:
      end: 583
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 583
    functionName: regex_cmp
    functionSourceFile: /src/selinux/libselinux/src/regex.c
    functionUses: 0
    functionsReached:
    - pcre_fullinfo
    - memcmp
    - assert
    linkageType: ''
    returnType: int
    signature: int regex_cmp(const struct regex_data *regex1, const struct regex_data
      *regex2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libselinux/src/regex.c:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 588
    functionName: regex_data_create
    functionSourceFile: /src/selinux/libselinux/src/regex.c
    functionUses: 4
    functionsReached:
    - calloc
    linkageType: ''
    returnType: struct regex_data
    signature: struct regex_data *regex_data_create(void)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/regex.c:605,1
    - Dst: abort
      Src: /src/selinux/libselinux/src/regex.c:611,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/regex.c:620,1
    - Dst: abort
      Src: /src/selinux/libselinux/src/regex.c:622,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/regex.c:630,1
    - Dst: abort
      Src: /src/selinux/libselinux/src/regex.c:632,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/regex.c:642,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/regex.c:645,1
    - Dst: abort
      Src: /src/selinux/libselinux/src/regex.c:649,1
    - Dst: pcre2_get_error_message
      Src: /src/selinux/libselinux/src/regex.c:656,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/regex.c:662,1
    - Dst: abort
      Src: /src/selinux/libselinux/src/regex.c:665,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/regex.c:667,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 67
    argCount: 3
    argNames:
    - error_data
    - buffer
    - buf_size
    argTypes:
    - struct regex_error_data*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 692
    functionName: regex_format_error
    functionSourceFile: /src/selinux/libselinux/src/regex.c
    functionUses: 0
    functionsReached:
    - pcre2_get_error_message
    - abort
    - strlen
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void regex_format_error(struct regex_error_data const *error_data,
      char *buffer,\n\t\t\tsize_t buf_size)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/policyvers.c:24,1
    - Dst: open
      Src: /src/selinux/libselinux/src/policyvers.c:25,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/policyvers.c:32,1
    - Dst: read
      Src: /src/selinux/libselinux/src/policyvers.c:33,1
    - Dst: close
      Src: /src/selinux/libselinux/src/policyvers.c:34,1
    - Dst: sscanf
      Src: /src/selinux/libselinux/src/policyvers.c:38,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 42
    functionName: security_policyvers
    functionSourceFile: /src/selinux/libselinux/src/policyvers.c
    functionUses: 1
    functionsReached:
    - close
    - snprintf
    - sscanf
    - read
    - open
    - memset
    linkageType: ''
    returnType: int
    signature: int security_policyvers(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/libselinux/src/get_default_type.c:14,1
    - Dst: selinux_default_type_path
      Src: /src/selinux/libselinux/src/get_default_type.c:14,1
    - Dst: find_default_type
      Src: /src/selinux/libselinux/src/get_default_type.c:18,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/get_default_type.c:19,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/get_default_type.c:23,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - role
    - type
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 25
    functionName: get_default_type
    functionSourceFile: /src/selinux/libselinux/src/get_default_type.c
    functionUses: 1
    functionsReached:
    - selinux_default_type_path
    - fclose
    - find_default_type
    - fopen
    linkageType: ''
    returnType: int
    signature: int get_default_type(const char *role, char **type)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libselinux/src/get_default_type.c:35,1
    - Dst: feof_unlocked
      Src: /src/selinux/libselinux/src/get_default_type.c:36,1
    - Dst: fgets_unlocked
      Src: /src/selinux/libselinux/src/get_default_type.c:37,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/get_default_type.c:41,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/get_default_type.c:42,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/get_default_type.c:45,1
    - Dst: strncmp
      Src: /src/selinux/libselinux/src/get_default_type.c:50,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/get_default_type.c:65,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 3
    argNames:
    - fp
    - role
    - type
    argTypes:
    - FILE*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 70
    functionName: find_default_type
    functionSourceFile: /src/selinux/libselinux/src/get_default_type.c
    functionUses: 1
    functionsReached:
    - strncmp
    - isspace
    - strdup
    - feof_unlocked
    - strlen
    - fgets_unlocked
    linkageType: ''
    returnType: int
    signature: int find_default_type(FILE *fp, const char *role, char **type)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/compute_av.c:29,1
    - Dst: open
      Src: /src/selinux/libselinux/src/compute_av.c:30,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/compute_av.c:35,1
    - Dst: unmap_class
      Src: /src/selinux/libselinux/src/compute_av.c:41,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/compute_av.c:43,1
    - Dst: unmap_perm
      Src: /src/selinux/libselinux/src/compute_av.c:44,1
    - Dst: write
      Src: /src/selinux/libselinux/src/compute_av.c:51,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/compute_av.c:51,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/compute_av.c:55,1
    - Dst: read
      Src: /src/selinux/libselinux/src/compute_av.c:56,1
    - Dst: sscanf
      Src: /src/selinux/libselinux/src/compute_av.c:60,1
    - Dst: map_decision
      Src: /src/selinux/libselinux/src/compute_av.c:77,1
    - Dst: free
      Src: /src/selinux/libselinux/src/compute_av.c:81,1
    - Dst: close
      Src: /src/selinux/libselinux/src/compute_av.c:82,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 5
    argNames:
    - scon
    - tcon
    - tclass
    - requested
    - avd
    argTypes:
    - char*
    - char*
    - security_class_t
    - access_vector_t
    - struct av_decision*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 84
    functionName: security_compute_av_flags_raw
    functionSourceFile: /src/selinux/libselinux/src/compute_av.c
    functionUses: 0
    functionsReached:
    - map_decision
    - close
    - snprintf
    - malloc
    - unmap_perm
    - write
    - sscanf
    - free
    - open
    - memset
    - unmap_class
    - read
    - strlen
    linkageType: ''
    returnType: int
    signature: "int security_compute_av_flags_raw(const char *scon, const char *tcon,\n\t\t\t\t
      \ security_class_t tclass,\n\t\t\t\t  access_vector_t requested,\n\t\t\t\t  struct
      av_decision *avd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: security_compute_av_flags_raw
      Src: /src/selinux/libselinux/src/compute_av.c:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - scon
    - tcon
    - tclass
    - requested
    - avd
    argTypes:
    - char*
    - char*
    - security_class_t
    - access_vector_t
    - struct av_decision*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 107
    functionName: security_compute_av_raw
    functionSourceFile: /src/selinux/libselinux/src/compute_av.c
    functionUses: 1
    functionsReached:
    - security_compute_av_flags_raw
    linkageType: ''
    returnType: int
    signature: "int security_compute_av_raw(const char *scon, const char *tcon,\n\t\t\t
      \   security_class_t tclass, access_vector_t requested,\n\t\t\t    struct av_decision
      *avd)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: selinux_trans_to_raw_context
      Src: /src/selinux/libselinux/src/compute_av.c:118,1
    - Dst: selinux_trans_to_raw_context
      Src: /src/selinux/libselinux/src/compute_av.c:120,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/compute_av.c:121,1
    - Dst: security_compute_av_flags_raw
      Src: /src/selinux/libselinux/src/compute_av.c:124,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/compute_av.c:127,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/compute_av.c:128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - scon
    - tcon
    - tclass
    - requested
    - avd
    argTypes:
    - char*
    - char*
    - security_class_t
    - access_vector_t
    - struct av_decision*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 131
    functionName: security_compute_av_flags
    functionSourceFile: /src/selinux/libselinux/src/compute_av.c
    functionUses: 0
    functionsReached:
    - security_compute_av_flags_raw
    - freecon
    - selinux_trans_to_raw_context
    linkageType: ''
    returnType: int
    signature: "int security_compute_av_flags(const char *scon, const char *tcon,\n\t\t\t
      \     security_class_t tclass,\n\t\t\t      access_vector_t requested,\n\t\t\t
      \     struct av_decision *avd)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: security_compute_av_flags
      Src: /src/selinux/libselinux/src/compute_av.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - scon
    - tcon
    - tclass
    - requested
    - avd
    argTypes:
    - char*
    - char*
    - security_class_t
    - access_vector_t
    - struct av_decision*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 154
    functionName: security_compute_av
    functionSourceFile: /src/selinux/libselinux/src/compute_av.c
    functionUses: 0
    functionsReached:
    - security_compute_av_flags
    linkageType: ''
    returnType: int
    signature: "int security_compute_av(const char *scon, const char *tcon,\n\t\t\tsecurity_class_t
      tclass, access_vector_t requested,\n\t\t\tstruct av_decision *avd)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/setenforce.c:23,1
    - Dst: open
      Src: /src/selinux/libselinux/src/setenforce.c:24,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/setenforce.c:28,1
    - Dst: write
      Src: /src/selinux/libselinux/src/setenforce.c:29,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/setenforce.c:29,1
    - Dst: close
      Src: /src/selinux/libselinux/src/setenforce.c:30,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - value
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 35
    functionName: security_setenforce
    functionSourceFile: /src/selinux/libselinux/src/setenforce.c
    functionUses: 0
    functionsReached:
    - close
    - snprintf
    - write
    - open
    - strlen
    linkageType: ''
    returnType: int
    signature: int security_setenforce(int value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fgetxattr
      Src: /src/selinux/libselinux/src/fgetfilecon.c:18,1
    - Dst: fcntl
      Src: /src/selinux/libselinux/src/fgetfilecon.c:23,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/fgetfilecon.c:29,1
    - Dst: getxattr
      Src: /src/selinux/libselinux/src/fgetfilecon.c:31,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - fd
    - name
    - value
    - size
    argTypes:
    - int
    - char*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 35
    functionName: fgetxattr_wrapper
    functionSourceFile: /src/selinux/libselinux/src/fgetfilecon.c
    functionUses: 0
    functionsReached:
    - fgetxattr
    - getxattr
    - fcntl
    - snprintf
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t fgetxattr_wrapper(int fd, const char *name, void *value,\n\t\t\t\t
      size_t size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libselinux/src/fgetfilecon.c:44,1
    - Dst: fgetxattr_wrapper
      Src: /src/selinux/libselinux/src/fgetfilecon.c:48,1
    - Dst: fgetxattr_wrapper
      Src: /src/selinux/libselinux/src/fgetfilecon.c:52,1
    - Dst: realloc
      Src: /src/selinux/libselinux/src/fgetfilecon.c:57,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/fgetfilecon.c:62,1
    - Dst: fgetxattr_wrapper
      Src: /src/selinux/libselinux/src/fgetfilecon.c:63,1
    - Dst: free
      Src: /src/selinux/libselinux/src/fgetfilecon.c:72,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - fd
    - context
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 76
    functionName: fgetfilecon_raw
    functionSourceFile: /src/selinux/libselinux/src/fgetfilecon.c
    functionUses: 0
    functionsReached:
    - realloc
    - free
    - calloc
    - memset
    - fgetxattr_wrapper
    linkageType: ''
    returnType: int
    signature: int fgetfilecon_raw(int fd, char **context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fgetfilecon_raw
      Src: /src/selinux/libselinux/src/fgetfilecon.c:85,1
    - Dst: selinux_raw_to_trans_context
      Src: /src/selinux/libselinux/src/fgetfilecon.c:88,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/fgetfilecon.c:89,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/fgetfilecon.c:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - fd
    - context
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 96
    functionName: fgetfilecon
    functionSourceFile: /src/selinux/libselinux/src/fgetfilecon.c
    functionUses: 3
    functionsReached:
    - strlen
    - selinux_raw_to_trans_context
    - fgetfilecon_raw
    - freecon
    linkageType: ''
    returnType: int
    signature: int fgetfilecon(int fd, char **context)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:40,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:41,1
    - Dst: __pthread_mutex_destroy
      Src: /src/selinux/libselinux/src/label_file.c:42,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:47,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:48,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:50,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:55,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:56,1
    - Dst: __pthread_mutex_destroy
      Src: /src/selinux/libselinux/src/label_file.c:57,1
    - Dst: regex_data_free
      Src: /src/selinux/libselinux/src/label_file.c:58,1
    - Dst: __pthread_mutex_destroy
      Src: /src/selinux/libselinux/src/label_file.c:59,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:64,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:66,1
    - Dst: free_spec_node
      Src: /src/selinux/libselinux/src/label_file.c:69,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:70,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:73,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct spec_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 74
    functionName: free_spec_node
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 1
    functionsReached:
    - regex_data_free
    - free_spec_node
    - free
    - __pthread_mutex_destroy
    linkageType: ''
    returnType: void
    signature: void free_spec_node(struct spec_node *node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libselinux/src/label_file.c:79,1
    - Dst: assert
      Src: /src/selinux/libselinux/src/label_file.c:81,1
    - Dst: assert
      Src: /src/selinux/libselinux/src/label_file.c:84,1
    - Dst: qsort
      Src: /src/selinux/libselinux/src/label_file.c:95,1
    - Dst: qsort
      Src: /src/selinux/libselinux/src/label_file.c:99,1
    - Dst: sort_spec_node
      Src: /src/selinux/libselinux/src/label_file.c:103,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 11
    argCount: 2
    argNames:
    - node
    - parent
    argTypes:
    - struct spec_node*
    - struct spec_node*
    assertStmts:
    - condition: (node != parent)
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/selinux/libselinux/src/label_file.c
    - condition: "(!parent || (node->literal_specs_num || node->regex_specs_num ||\n\t\t\t
        \  node->children_num))"
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/selinux/libselinux/src/label_file.c
    - condition: "((!parent && !node->stem) ||\n\t       (parent && node->stem &&
        node->stem[0] != '\\0'))"
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/selinux/libselinux/src/label_file.c
    constantsTouched: []
    func_position:
      end: 104
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 104
    functionName: sort_spec_node
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 1
    functionsReached:
    - sort_spec_node
    - qsort
    - assert
    linkageType: ''
    returnType: void
    signature: void sort_spec_node(struct spec_node *node, struct spec_node *parent)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.c:121,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.c:135,1
    - Dst: COMPAT_LOG
      Src: /src/selinux/libselinux/src/label_file.c:136,1
    - Dst: file_kind_to_string
      Src: /src/selinux/libselinux/src/label_file.c:140,1
    - Dst: COMPAT_LOG
      Src: /src/selinux/libselinux/src/label_file.c:144,1
    - Dst: file_kind_to_string
      Src: /src/selinux/libselinux/src/label_file.c:148,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.c:166,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.c:180,1
    - Dst: COMPAT_LOG
      Src: /src/selinux/libselinux/src/label_file.c:182,1
    - Dst: file_kind_to_string
      Src: /src/selinux/libselinux/src/label_file.c:186,1
    - Dst: COMPAT_LOG
      Src: /src/selinux/libselinux/src/label_file.c:192,1
    - Dst: file_kind_to_string
      Src: /src/selinux/libselinux/src/label_file.c:196,1
    - Dst: nodups_spec_node
      Src: /src/selinux/libselinux/src/label_file.c:207,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 45
    argCount: 2
    argNames:
    - rec
    - node
    argTypes:
    - struct selabel_handle*
    - struct spec_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 213
    functionName: nodups_spec_node
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 1
    functionsReached:
    - nodups_spec_node
    - COMPAT_LOG
    - strcmp
    - file_kind_to_string
    linkageType: ''
    returnType: int
    signature: "int nodups_spec_node(const struct selabel_handle *rec,\n\t\t\t    const
      struct spec_node *node)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getline
      Src: /src/selinux/libselinux/src/label_file.c:225,1
    - Dst: process_line
      Src: /src/selinux/libselinux/src/label_file.c:226,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 5
    argNames:
    - fp
    - prefix
    - rec
    - path
    - inputno
    argTypes:
    - FILE*
    - char*
    - struct selabel_handle*
    - char*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 235
    functionName: process_text_file
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - process_line
    - free
    - getline
    linkageType: ''
    returnType: FUZZ_EXTERN
    signature: "FUZZ_EXTERN process_text_file(FILE *fp, const char *prefix,\n\t\t\t\t
      \ struct selabel_handle *rec, const char *path,\n\t\t\t\t  uint8_t inputno)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libselinux/src/label_file.c:241,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.c:243,1
    - Dst: assert
      Src: /src/selinux/libselinux/src/label_file.c:245,1
    - Dst: __builtin_add_overflow
      Src: /src/selinux/libselinux/src/label_file.c:255,1
    - Dst: reallocarray
      Src: /src/selinux/libselinux/src/label_file.c:260,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/src/label_file.c:265,1
    - Dst: assert
      Src: /src/selinux/libselinux/src/label_file.c:282,1
    - Dst: __builtin_add_overflow
      Src: /src/selinux/libselinux/src/label_file.c:300,1
    - Dst: reallocarray
      Src: /src/selinux/libselinux/src/label_file.c:305,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/src/label_file.c:310,1
    - Dst: assert
      Src: /src/selinux/libselinux/src/label_file.c:327,1
    - Dst: __builtin_add_overflow
      Src: /src/selinux/libselinux/src/label_file.c:347,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label_file.c:353,1
    - Dst: qsort
      Src: /src/selinux/libselinux/src/label_file.c:359,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.c:372,1
    - Dst: merge_mmap_spec_nodes
      Src: /src/selinux/libselinux/src/label_file.c:377,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:380,1
    - Dst: free_spec_node
      Src: /src/selinux/libselinux/src/label_file.c:386,1
    - Dst: assert
      Src: /src/selinux/libselinux/src/label_file.c:402,1
    - Dst: assert
      Src: /src/selinux/libselinux/src/label_file.c:403,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/src/label_file.c:408,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/src/label_file.c:416,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:423,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:428,1
    - Dst: assert
      Src: /src/selinux/libselinux/src/label_file.c:434,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 115
    argCount: 2
    argNames:
    - dest
    - source
    argTypes:
    - struct spec_node*
    - struct spec_node*
    assertStmts:
    - condition: (!remaining_dest || !remaining_source)
      pos:
        line_end: 401
        line_start: 401
        source_file: /src/selinux/libselinux/src/label_file.c
    - condition: (source->from_mmap)
      pos:
        line_end: 244
        line_start: 244
        source_file: /src/selinux/libselinux/src/label_file.c
    - condition: (dest->regex_specs == NULL)
      pos:
        line_end: 326
        line_start: 326
        source_file: /src/selinux/libselinux/src/label_file.c
    - condition: (dest->children == NULL)
      pos:
        line_end: 433
        line_start: 433
        source_file: /src/selinux/libselinux/src/label_file.c
    - condition: "((dest->stem == NULL && source->stem == NULL) ||\n\t       (dest->stem
        && source->stem && dest->stem_len &&\n\t\tsource->stem_len && strcmp(dest->stem,
        source->stem) == 0))"
      pos:
        line_end: 242
        line_start: 240
        source_file: /src/selinux/libselinux/src/label_file.c
    - condition: (dest->literal_specs == NULL)
      pos:
        line_end: 281
        line_start: 281
        source_file: /src/selinux/libselinux/src/label_file.c
    - condition: "(new_children_num + remaining_dest +\n\t\t\t\t       remaining_source
        <=\n\t\t\t       new_children_alloc)"
      pos:
        line_end: 404
        line_start: 402
        source_file: /src/selinux/libselinux/src/label_file.c
    constantsTouched: []
    func_position:
      end: 445
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 445
    functionName: merge_mmap_spec_nodes
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 1
    functionsReached:
    - free_spec_node
    - reallocarray
    - strcmp
    - assert
    - merge_mmap_spec_nodes
    - qsort
    - free
    - __builtin_add_overflow
    - memcpy
    - calloc
    linkageType: ''
    returnType: int
    signature: "int merge_mmap_spec_nodes(struct spec_node *restrict dest,\n\t\t\t\t
      struct spec_node *restrict source)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_mul_overflow
      Src: /src/selinux/libselinux/src/label_file.c:452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - mmap_area
    - nmenb
    - size
    argTypes:
    - struct mmap_area*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 456
    functionName: entry_size_check
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - __builtin_mul_overflow
    linkageType: ''
    returnType: bool
    signature: "bool entry_size_check(const struct mmap_area *mmap_area,\n\t\t\t\t
      \   size_t nmenb, size_t size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:469,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:471,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctx_array
    argTypes:
    - struct context_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 472
    functionName: free_context_array
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_context_array(struct context_array *ctx_array)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:485,1
    - Dst: be32toh
      Src: /src/selinux/libselinux/src/label_file.c:488,1
    - Dst: entry_size_check
      Src: /src/selinux/libselinux/src/label_file.c:490,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label_file.c:493,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:506,1
    - Dst: be16toh
      Src: /src/selinux/libselinux/src/label_file.c:509,1
    - Dst: entry_size_check
      Src: /src/selinux/libselinux/src/label_file.c:514,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/label_file.c:517,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:521,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:523,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.c:528,1
    - Dst: selinux_validate
      Src: /src/selinux/libselinux/src/label_file.c:529,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_file.c:530,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:533,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 4
    argNames:
    - mmap_area
    - path
    - ctx_array
    - validating
    argTypes:
    - struct mmap_area*
    - char*
    - struct context_array*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 542
    functionName: load_mmap_ctxarray
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - selinux_validate
    - malloc
    - strcmp
    - selinux_log
    - be16toh
    - calloc
    - free
    - be32toh
    - entry_size_check
    - next_entry
    linkageType: ''
    returnType: int
    signature: "int load_mmap_ctxarray(struct mmap_area *mmap_area, const char *path,\n\t\t\t
      \     struct context_array *ctx_array, bool validating)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:561,1
    - Dst: be32toh
      Src: /src/selinux/libselinux/src/label_file.c:564,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/label_file.c:569,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:580,1
    - Dst: be16toh
      Src: /src/selinux/libselinux/src/label_file.c:583,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:589,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:600,1
    - Dst: be16toh
      Src: /src/selinux/libselinux/src/label_file.c:603,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:609,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/label_file.c:619,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:625,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 48
    argCount: 5
    argNames:
    - mmap_area
    - validating
    - inputno
    - lspec
    - ctx_array
    argTypes:
    - struct mmap_area*
    - bool
    - uint8_t
    - struct literal_spec*
    - struct context_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 544
    functionDepth: 0
    functionLinenumber: 544
    functionLinenumberEnd: 633
    functionName: load_mmap_literal_spec
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - be16toh
    - be32toh
    - next_entry
    - strlen
    - strdup
    linkageType: ''
    returnType: int
    signature: "int load_mmap_literal_spec(struct mmap_area *mmap_area, bool validating,\n\t\t\t\t
      \ uint8_t inputno, struct literal_spec *lspec,\n\t\t\t\t  const struct context_array
      *ctx_array)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:652,1
    - Dst: be32toh
      Src: /src/selinux/libselinux/src/label_file.c:655,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/label_file.c:660,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:671,1
    - Dst: be32toh
      Src: /src/selinux/libselinux/src/label_file.c:674,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:684,1
    - Dst: be16toh
      Src: /src/selinux/libselinux/src/label_file.c:687,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:693,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:704,1
    - Dst: be16toh
      Src: /src/selinux/libselinux/src/label_file.c:707,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/label_file.c:709,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:715,1
    - Dst: regex_load_mmap
      Src: /src/selinux/libselinux/src/label_file.c:725,1
    - Dst: __pthread_mutex_init
      Src: /src/selinux/libselinux/src/label_file.c:730,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 6
    argNames:
    - mmap_area
    - validating
    - do_load_precompregex
    - inputno
    - rspec
    - ctx_array
    argTypes:
    - struct mmap_area*
    - bool
    - bool
    - uint8_t
    - struct regex_spec*
    - struct context_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 635
    functionDepth: 2
    functionLinenumber: 635
    functionLinenumberEnd: 733
    functionName: load_mmap_regex_spec
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - regex_load_mmap
    - __pthread_mutex_init
    - be16toh
    - be32toh
    - next_entry
    - strlen
    - strdup
    linkageType: ''
    returnType: int
    signature: "int load_mmap_regex_spec(struct mmap_area *mmap_area, bool validating,\n\t\t\t\tbool
      do_load_precompregex, uint8_t inputno,\n\t\t\t\tstruct regex_spec *rspec,\n\t\t\t\tconst
      struct context_array *ctx_array)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:760,1
    - Dst: be16toh
      Src: /src/selinux/libselinux/src/label_file.c:763,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:773,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:785,1
    - Dst: be32toh
      Src: /src/selinux/libselinux/src/label_file.c:788,1
    - Dst: entry_size_check
      Src: /src/selinux/libselinux/src/label_file.c:794,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label_file.c:800,1
    - Dst: load_mmap_literal_spec
      Src: /src/selinux/libselinux/src/label_file.c:808,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:820,1
    - Dst: be32toh
      Src: /src/selinux/libselinux/src/label_file.c:823,1
    - Dst: entry_size_check
      Src: /src/selinux/libselinux/src/label_file.c:829,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label_file.c:835,1
    - Dst: load_mmap_regex_spec
      Src: /src/selinux/libselinux/src/label_file.c:843,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:855,1
    - Dst: be32toh
      Src: /src/selinux/libselinux/src/label_file.c:858,1
    - Dst: entry_size_check
      Src: /src/selinux/libselinux/src/label_file.c:866,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label_file.c:870,1
    - Dst: load_mmap_spec_node
      Src: /src/selinux/libselinux/src/label_file.c:878,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.c:887,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 87
    argCount: 8
    argNames:
    - mmap_area
    - path
    - validating
    - do_load_precompregex
    - node
    - depth
    - inputno
    - ctx_array
    argTypes:
    - struct mmap_area*
    - char*
    - bool
    - bool
    - struct spec_node*
    - unsigned
    - uint8_t
    - struct context_array*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 735
    functionDepth: 3
    functionLinenumber: 735
    functionLinenumberEnd: 898
    functionName: load_mmap_spec_node
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 1
    functionsReached:
    - load_mmap_regex_spec
    - be32toh
    - load_mmap_literal_spec
    - strcmp
    - calloc
    - load_mmap_spec_node
    - be16toh
    - entry_size_check
    - next_entry
    linkageType: ''
    returnType: int
    signature: "int load_mmap_spec_node(struct mmap_area *mmap_area, const char *path,\n\t\t\t
      \      bool validating, bool do_load_precompregex,\n\t\t\t       struct spec_node
      *node, const unsigned depth,\n\t\t\t       uint8_t inputno,\n\t\t\t       const
      struct context_array *ctx_array)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libselinux/src/label_file.c:915,1
    - Dst: mmap
      Src: /src/selinux/libselinux/src/label_file.c:919,1
    - Dst: fileno
      Src: /src/selinux/libselinux/src/label_file.c:919,1
    - Dst: madvise
      Src: /src/selinux/libselinux/src/label_file.c:923,1
    - Dst: COMPAT_LOG
      Src: /src/selinux/libselinux/src/label_file.c:925,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:938,1
    - Dst: be32toh
      Src: /src/selinux/libselinux/src/label_file.c:939,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:943,1
    - Dst: be32toh
      Src: /src/selinux/libselinux/src/label_file.c:945,1
    - Dst: COMPAT_LOG
      Src: /src/selinux/libselinux/src/label_file.c:946,1
    - Dst: be32toh
      Src: /src/selinux/libselinux/src/label_file.c:949,1
    - Dst: regex_version
      Src: /src/selinux/libselinux/src/label_file.c:954,1
    - Dst: regex_arch_string
      Src: /src/selinux/libselinux/src/label_file.c:958,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:962,1
    - Dst: be32toh
      Src: /src/selinux/libselinux/src/label_file.c:965,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/label_file.c:968,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:973,1
    - Dst: entry_size_check
      Src: /src/selinux/libselinux/src/label_file.c:979,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/label_file.c:982,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:986,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.c:993,1
    - Dst: COMPAT_LOG
      Src: /src/selinux/libselinux/src/label_file.c:994,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:1001,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:1006,1
    - Dst: be32toh
      Src: /src/selinux/libselinux/src/label_file.c:1009,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/label_file.c:1012,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:1017,1
    - Dst: entry_size_check
      Src: /src/selinux/libselinux/src/label_file.c:1023,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/label_file.c:1026,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:1030,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.c:1037,1
    - Dst: COMPAT_LOG
      Src: /src/selinux/libselinux/src/label_file.c:1038,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:1045,1
    - Dst: next_entry
      Src: /src/selinux/libselinux/src/label_file.c:1051,1
    - Dst: be64toh
      Src: /src/selinux/libselinux/src/label_file.c:1054,1
    - Dst: __builtin_add_overflow
      Src: /src/selinux/libselinux/src/label_file.c:1056,1
    - Dst: load_mmap_ctxarray
      Src: /src/selinux/libselinux/src/label_file.c:1059,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label_file.c:1063,1
    - Dst: load_mmap_spec_node
      Src: /src/selinux/libselinux/src/label_file.c:1067,1
    - Dst: free_spec_node
      Src: /src/selinux/libselinux/src/label_file.c:1082,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:1083,1
    - Dst: merge_mmap_spec_nodes
      Src: /src/selinux/libselinux/src/label_file.c:1087,1
    - Dst: free_spec_node
      Src: /src/selinux/libselinux/src/label_file.c:1091,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:1092,1
    - Dst: free_context_array
      Src: /src/selinux/libselinux/src/label_file.c:1099,1
    - Dst: free_context_array
      Src: /src/selinux/libselinux/src/label_file.c:1104,1
    - Dst: free_spec_node
      Src: /src/selinux/libselinux/src/label_file.c:1106,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:1107,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:1109,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:1110,1
    - Dst: munmap
      Src: /src/selinux/libselinux/src/label_file.c:1112,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 150
    argCount: 5
    argNames:
    - fp
    - len
    - rec
    - path
    - inputno
    argTypes:
    - FILE*
    - size_t
    - struct selabel_handle*
    - char*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 900
    functionDepth: 4
    functionLinenumber: 900
    functionLinenumberEnd: 1116
    functionName: load_mmap
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 1
    functionsReached:
    - regex_version
    - load_mmap_ctxarray
    - regex_arch_string
    - strcmp
    - fileno
    - __builtin_add_overflow
    - entry_size_check
    - be64toh
    - free_context_array
    - mmap
    - malloc
    - madvise
    - merge_mmap_spec_nodes
    - free
    - next_entry
    - strlen
    - calloc
    - be32toh
    - load_mmap_spec_node
    - COMPAT_LOG
    - free_spec_node
    - munmap
    linkageType: ''
    returnType: FUZZ_EXTERN
    signature: "FUZZ_EXTERN load_mmap(FILE *fp, const size_t len,\n\t\t\t  struct
      selabel_handle *rec, const char *path,\n\t\t\t  uint8_t inputno)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libselinux/src/label_file.c:1132,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/label_file.c:1133,1
    - Dst: strcpy
      Src: /src/selinux/libselinux/src/label_file.c:1151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - current
    - suffix
    - max
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1123
    functionDepth: 0
    functionLinenumber: 1123
    functionLinenumberEnd: 1154
    functionName: rolling_append
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - strcpy
    - strlen
    linkageType: ''
    returnType: char
    signature: char *rolling_append(char *current, const char *suffix, size_t max)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fread
      Src: /src/selinux/libselinux/src/label_file.c:1161,1
    - Dst: fseek
      Src: /src/selinux/libselinux/src/label_file.c:1163,1
    - Dst: be32toh
      Src: /src/selinux/libselinux/src/label_file.c:1170,1
    - Dst: le32toh
      Src: /src/selinux/libselinux/src/label_file.c:1177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1156
    functionDepth: 0
    functionLinenumber: 1156
    functionLinenumberEnd: 1181
    functionName: fcontext_is_binary
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - be32toh
    - le32toh
    - fread
    - fseek
    linkageType: ''
    returnType: int
    signature: int fcontext_is_binary(FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1183
    functionDepth: 0
    functionLinenumber: 1183
    functionLinenumberEnd: 1184
    functionName: ARRAY_SIZE
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(x)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/label_file.c:1200,1
    - Dst: ARRAY_SIZE
      Src: /src/selinux/libselinux/src/label_file.c:1206,1
    - Dst: rolling_append
      Src: /src/selinux/libselinux/src/label_file.c:1208,1
    - Dst: stat
      Src: /src/selinux/libselinux/src/label_file.c:1215,1
    - Dst: strcpy
      Src: /src/selinux/libselinux/src/label_file.c:1221,1
    - Dst: strcpy
      Src: /src/selinux/libselinux/src/label_file.c:1241,1
    - Dst: fopen
      Src: /src/selinux/libselinux/src/label_file.c:1250,1
    - Dst: fstat
      Src: /src/selinux/libselinux/src/label_file.c:1258,1
    - Dst: fileno
      Src: /src/selinux/libselinux/src/label_file.c:1258,1
    - Dst: fclose_errno_safe
      Src: /src/selinux/libselinux/src/label_file.c:1259,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 6
    argNames:
    - path
    - suffix
    - save_path
    - len
    - sb
    - open_oldest
    argTypes:
    - char*
    - char*
    - char*
    - size_t
    - struct stat*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1264
    functionName: open_file
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - stat
    - snprintf
    - ARRAY_SIZE
    - rolling_append
    - strcpy
    - fileno
    - fstat
    - fclose_errno_safe
    - fopen
    linkageType: ''
    returnType: FILE
    signature: "FILE *open_file(const char *path, const char *suffix, char *save_path,\n\t\t
      \      size_t len, struct stat *sb, bool open_oldest)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: open_file
      Src: /src/selinux/libselinux/src/label_file.c:1282,1
    - Dst: fcontext_is_binary
      Src: /src/selinux/libselinux/src/label_file.c:1287,1
    - Dst: fclose_errno_safe
      Src: /src/selinux/libselinux/src/label_file.c:1289,1
    - Dst: COMPAT_LOG
      Src: /src/selinux/libselinux/src/label_file.c:1294,1
    - Dst: load_mmap
      Src: /src/selinux/libselinux/src/label_file.c:1300,1
    - Dst: process_text_file
      Src: /src/selinux/libselinux/src/label_file.c:1303,1
    - Dst: digest_add_specfile
      Src: /src/selinux/libselinux/src/label_file.c:1308,1
    - Dst: fclose_errno_safe
      Src: /src/selinux/libselinux/src/label_file.c:1311,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 6
    argNames:
    - path
    - suffix
    - rec
    - prefix
    - digest
    - inputno
    argTypes:
    - char*
    - char*
    - struct selabel_handle*
    - char*
    - struct selabel_digest*
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1317
      start: 1266
    functionDepth: 5
    functionLinenumber: 1266
    functionLinenumberEnd: 1317
    functionName: process_file
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - load_mmap
    - digest_add_specfile
    - open_file
    - process_text_file
    - fclose_errno_safe
    - fcontext_is_binary
    - COMPAT_LOG
    linkageType: ''
    returnType: int
    signature: "int process_file(const char *path, const char *suffix,\n\t\t\tstruct
      selabel_handle *rec, const char *prefix,\n\t\t\tstruct selabel_digest *digest,
      uint8_t inputno)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:1322,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:1323,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:1326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - subs
    - num
    argTypes:
    - struct selabel_sub*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1319
    functionDepth: 0
    functionLinenumber: 1319
    functionLinenumberEnd: 1327
    functionName: selabel_subs_fini
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void selabel_subs_fini(struct selabel_sub *subs, uint32_t num)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/selinux/libselinux/src/label_file.c:1338,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.c:1341,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/label_file.c:1346,1
    - Dst: mempcpy
      Src: /src/selinux/libselinux/src/label_file.c:1350,1
    - Dst: mempcpy
      Src: /src/selinux/libselinux/src/label_file.c:1351,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 4
    argNames:
    - subs
    - num
    - src
    - slen
    argTypes:
    - struct selabel_sub*
    - uint32_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1329
    functionDepth: 0
    functionLinenumber: 1329
    functionLinenumberEnd: 1359
    functionName: selabel_apply_subs
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - strncmp
    - malloc
    - strcmp
    - mempcpy
    linkageType: ''
    returnType: char
    signature: "char *selabel_apply_subs(const struct selabel_sub *subs, uint32_t
      num,\n\t\t\t\tconst char *src, size_t slen)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/libselinux/src/label_file.c:1378,1
    - Dst: fgets_unlocked
      Src: /src/selinux/libselinux/src/label_file.c:1384,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/label_file.c:1390,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/label_file.c:1395,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/label_file.c:1403,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/label_file.c:1406,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/label_file.c:1412,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/label_file.c:1418,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/label_file.c:1424,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/label_file.c:1428,1
    - Dst: GROW_ARRAY
      Src: /src/selinux/libselinux/src/label_file.c:1432,1
    - Dst: fstat
      Src: /src/selinux/libselinux/src/label_file.c:1446,1
    - Dst: fileno
      Src: /src/selinux/libselinux/src/label_file.c:1446,1
    - Dst: digest_add_specfile
      Src: /src/selinux/libselinux/src/label_file.c:1450,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/label_file.c:1466,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:1471,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:1472,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:1474,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:1475,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:1477,1
    - Dst: fclose_errno_safe
      Src: /src/selinux/libselinux/src/label_file.c:1478,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 85
    argCount: 5
    argNames:
    - path
    - digest
    - out_subs
    - out_num
    - out_alloc
    argTypes:
    - char*
    - struct selabel_digest*
    - struct selabel_sub**
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1362
    functionDepth: 1
    functionLinenumber: 1362
    functionLinenumberEnd: 1480
    functionName: selabel_subs_init
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - fgets_unlocked
    - GROW_ARRAY
    - fclose
    - isspace
    - digest_add_specfile
    - fileno
    - free
    - fstat
    - fclose_errno_safe
    - fopen
    - strlen
    - strdup
    linkageType: ''
    returnType: int
    signature: "int selabel_subs_init(const char *path, struct selabel_digest *digest,\n\t\t\t
      \    struct selabel_sub **out_subs, uint32_t *out_num,\n\t\t\t     uint32_t
      *out_alloc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: selabel_apply_subs
      Src: /src/selinux/libselinux/src/label_file.c:1488,1
    - Dst: selabel_apply_subs
      Src: /src/selinux/libselinux/src/label_file.c:1490,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/label_file.c:1491,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:1493,1
    - Dst: selabel_apply_subs
      Src: /src/selinux/libselinux/src/label_file.c:1497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - data
    - key
    - key_len
    argTypes:
    - struct saved_data*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1483
    functionDepth: 1
    functionLinenumber: 1483
    functionLinenumberEnd: 1502
    functionName: selabel_sub_key
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - free
    - selabel_apply_subs
    - strlen
    linkageType: ''
    returnType: char
    signature: "char *selabel_sub_key(const struct saved_data *data, const char *key,\n\t\t\t
      \    size_t key_len)"
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_file.c:1554,1
    - Dst: ARRAY_SIZE
      Src: /src/selinux/libselinux/src/label_file.c:1562,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label_file.c:1574,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/label_file.c:1583,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/label_file.c:1595,1
    - Dst: selinux_file_context_path
      Src: /src/selinux/libselinux/src/label_file.c:1595,1
    - Dst: selabel_subs_init
      Src: /src/selinux/libselinux/src/label_file.c:1598,1
    - Dst: selinux_file_context_subs_dist_path
      Src: /src/selinux/libselinux/src/label_file.c:1599,1
    - Dst: selabel_subs_init
      Src: /src/selinux/libselinux/src/label_file.c:1604,1
    - Dst: selinux_file_context_subs_path
      Src: /src/selinux/libselinux/src/label_file.c:1604,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/label_file.c:1610,1
    - Dst: selabel_subs_init
      Src: /src/selinux/libselinux/src/label_file.c:1612,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/label_file.c:1618,1
    - Dst: selabel_subs_init
      Src: /src/selinux/libselinux/src/label_file.c:1620,1
    - Dst: asprintf
      Src: /src/selinux/libselinux/src/label_file.c:1628,1
    - Dst: process_file
      Src: /src/selinux/libselinux/src/label_file.c:1639,1
    - Dst: process_file
      Src: /src/selinux/libselinux/src/label_file.c:1649,1
    - Dst: sort_specs
      Src: /src/selinux/libselinux/src/label_file.c:1656,1
    - Dst: nodups_spec_node
      Src: /src/selinux/libselinux/src/label_file.c:1659,1
    - Dst: digest_gen_hash
      Src: /src/selinux/libselinux/src/label_file.c:1664,1
    - Dst: closef
      Src: /src/selinux/libselinux/src/label_file.c:1670,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 115
    argCount: 3
    argNames:
    - rec
    - opts
    - n
    argTypes:
    - struct selabel_handle*
    - struct selinux_opt*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1508
    functionDepth: 2
    functionLinenumber: 1508
    functionLinenumberEnd: 1673
    functionName: init
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 2106
    functionsReached:
    - asprintf
    - snprintf
    - selinux_file_context_subs_path
    - sort_specs
    - ARRAY_SIZE
    - selinux_log
    - nodups_spec_node
    - process_file
    - selinux_file_context_subs_dist_path
    - selinux_file_context_path
    - calloc
    - digest_gen_hash
    - selabel_subs_init
    - closef
    - strdup
    linkageType: ''
    returnType: int
    signature: "int init(struct selabel_handle *rec, const struct selinux_opt *opts,\n\t\tunsigned
      n)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: selabel_subs_fini
      Src: /src/selinux/libselinux/src/label_file.c:1686,1
    - Dst: selabel_subs_fini
      Src: /src/selinux/libselinux/src/label_file.c:1687,1
    - Dst: free_spec_node
      Src: /src/selinux/libselinux/src/label_file.c:1689,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:1690,1
    - Dst: munmap
      Src: /src/selinux/libselinux/src/label_file.c:1694,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:1697,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:1699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - rec
    argTypes:
    - struct selabel_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1701
      start: 1678
    functionDepth: 2
    functionLinenumber: 1678
    functionLinenumberEnd: 1701
    functionName: closef
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 1
    functionsReached:
    - free_spec_node
    - free
    - selabel_subs_fini
    - munmap
    linkageType: ''
    returnType: void
    signature: void closef(struct selabel_handle *rec)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/selinux/libselinux/src/label_file.c:1720,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.c:1722,1
    - Dst: strncmp
      Src: /src/selinux/libselinux/src/label_file.c:1728,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.c:1731,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 5
    argNames:
    - array
    - size
    - key
    - key_len
    - partial
    argTypes:
    - struct literal_spec*
    - uint32_t
    - char*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1703
    functionDepth: 0
    functionLinenumber: 1703
    functionLinenumberEnd: 1753
    functionName: search_literal_spec
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strcmp
    linkageType: ''
    returnType: uint32_t
    signature: "uint32_t search_literal_spec(const struct literal_spec *array,\n\t\t\t\t
      \   uint32_t size, const char *key,\n\t\t\t\t    size_t key_len, bool partial)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:1761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - result
    argTypes:
    - struct lookup_result*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1755
    functionDepth: 0
    functionLinenumber: 1755
    functionLinenumberEnd: 1764
    functionName: free_lookup_result
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: FUZZ_EXTERN
    signature: FUZZ_EXTERN free_lookup_result(struct lookup_result *result)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libselinux/src/label_file.c:1784,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.c:1795,1
    - Dst: likely
      Src: /src/selinux/libselinux/src/label_file.c:1798,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/label_file.c:1801,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.c:1831,1
    - Dst: likely
      Src: /src/selinux/libselinux/src/label_file.c:1834,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/label_file.c:1837,1
    - Dst: all_node_specs
      Src: /src/selinux/libselinux/src/label_file.c:1862,1
    - Dst: free_lookup_result
      Src: /src/selinux/libselinux/src/label_file.c:1880,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 57
    argCount: 4
    argNames:
    - node
    - file_kind
    - find_all
    - buf
    argTypes:
    - struct spec_node*
    - uint8_t
    - bool
    - struct lookup_result*
    assertStmts:
    - condition: (!(find_all && buf != NULL))
      pos:
        line_end: 1783
        line_start: 1783
        source_file: /src/selinux/libselinux/src/label_file.c
    constantsTouched: []
    func_position:
      end: 1883
      start: 1777
    functionDepth: 1
    functionLinenumber: 1777
    functionLinenumberEnd: 1883
    functionName: all_node_specs
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 1
    functionsReached:
    - all_node_specs
    - free_lookup_result
    - malloc
    - strcmp
    - assert
    - likely
    linkageType: ''
    returnType: struct lookup_result
    signature: "struct lookup_result *all_node_specs(struct spec_node *node,\n\t\t\t\t\t
      \   uint8_t file_kind, bool find_all,\n\t\t\t\t\t    struct lookup_result *buf)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libselinux/src/label_file.c:1909,1
    - Dst: assert
      Src: /src/selinux/libselinux/src/label_file.c:1911,1
    - Dst: search_literal_spec
      Src: /src/selinux/libselinux/src/label_file.c:1915,1
    - Dst: __atomic_store_n
      Src: /src/selinux/libselinux/src/label_file.c:1930,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.c:1937,1
    - Dst: likely
      Src: /src/selinux/libselinux/src/label_file.c:1948,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/label_file.c:1951,1
    - Dst: likely
      Src: /src/selinux/libselinux/src/label_file.c:1968,1
    - Dst: strncmp
      Src: /src/selinux/libselinux/src/label_file.c:1979,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.c:1982,1
    - Dst: compile_regex
      Src: /src/selinux/libselinux/src/label_file.c:2005,1
    - Dst: COMPAT_LOG
      Src: /src/selinux/libselinux/src/label_file.c:2006,1
    - Dst: regex_match
      Src: /src/selinux/libselinux/src/label_file.c:2013,1
    - Dst: __atomic_store_n
      Src: /src/selinux/libselinux/src/label_file.c:2020,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.c:2028,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/label_file.c:2042,1
    - Dst: likely
      Src: /src/selinux/libselinux/src/label_file.c:2056,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:2092,1
    - Dst: free_lookup_result
      Src: /src/selinux/libselinux/src/label_file.c:2094,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 101
    argCount: 6
    argNames:
    - node
    - key
    - file_kind
    - partial
    - find_all
    - buf
    argTypes:
    - struct spec_node*
    - char*
    - uint8_t
    - bool
    - bool
    - struct lookup_result*
    assertStmts:
    - condition: (!(find_all && buf != NULL))
      pos:
        line_end: 1910
        line_start: 1910
        source_file: /src/selinux/libselinux/src/label_file.c
    constantsTouched: []
    func_position:
      end: 2097
      start: 1900
    functionDepth: 2
    functionLinenumber: 1900
    functionLinenumberEnd: 2097
    functionName: lookup_check_node
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - search_literal_spec
    - strncmp
    - free_lookup_result
    - regex_match
    - malloc
    - assert
    - strcmp
    - __atomic_store_n
    - free
    - likely
    - compile_regex
    - COMPAT_LOG
    - strlen
    linkageType: ''
    returnType: struct lookup_result
    signature: "struct lookup_result *\nlookup_check_node(struct spec_node *node,
      const char *key, uint8_t file_kind,\n\t\t  bool partial, bool find_all, struct
      lookup_result *buf)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/selinux/libselinux/src/label_file.c:2115,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - array
    - size
    - key
    - key_len
    argTypes:
    - struct spec_node*
    - uint32_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2131
      start: 2099
    functionDepth: 0
    functionLinenumber: 2099
    functionLinenumberEnd: 2131
    functionName: search_child_node
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: struct spec_node
    signature: "struct spec_node *search_child_node(struct spec_node *array,\n\t\t\t\t\t
      \  uint32_t size, const char *key,\n\t\t\t\t\t   size_t key_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/selinux/libselinux/src/label_file.c:2149,1
    - Dst: strchr
      Src: /src/selinux/libselinux/src/label_file.c:2152,1
    - Dst: unlikely
      Src: /src/selinux/libselinux/src/label_file.c:2159,1
    - Dst: search_child_node
      Src: /src/selinux/libselinux/src/label_file.c:2165,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - node
    - key
    - rest_key
    argTypes:
    - struct spec_node*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2177
      start: 2133
    functionDepth: 1
    functionLinenumber: 2133
    functionLinenumberEnd: 2177
    functionName: lookup_find_deepest_node
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - search_child_node
    - strchr
    - unlikely
    linkageType: ''
    returnType: struct spec_node
    signature: "struct spec_node *lookup_find_deepest_node(struct spec_node *node,\n\t\t\t\t\t\t
      \ const char *key,\n\t\t\t\t\t\t  const char **rest_key)"
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2202
      start: 2179
    functionDepth: 0
    functionLinenumber: 2179
    functionLinenumberEnd: 2202
    functionName: mode_to_file_kind
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t mode_to_file_kind(int type)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: mode_to_file_kind
      Src: /src/selinux/libselinux/src/label_file.c:2216,1
    - Dst: unlikely
      Src: /src/selinux/libselinux/src/label_file.c:2222,1
    - Dst: unlikely
      Src: /src/selinux/libselinux/src/label_file.c:2227,1
    - Dst: unlikely
      Src: /src/selinux/libselinux/src/label_file.c:2233,1
    - Dst: strstr
      Src: /src/selinux/libselinux/src/label_file.c:2233,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/label_file.c:2234,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/label_file.c:2234,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/src/label_file.c:2239,1
    - Dst: strstr
      Src: /src/selinux/libselinux/src/label_file.c:2243,1
    - Dst: strcpy
      Src: /src/selinux/libselinux/src/label_file.c:2245,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/label_file.c:2250,1
    - Dst: unlikely
      Src: /src/selinux/libselinux/src/label_file.c:2251,1
    - Dst: unlikely
      Src: /src/selinux/libselinux/src/label_file.c:2256,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/label_file.c:2259,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/src/label_file.c:2263,1
    - Dst: selabel_sub_key
      Src: /src/selinux/libselinux/src/label_file.c:2271,1
    - Dst: lookup_find_deepest_node
      Src: /src/selinux/libselinux/src/label_file.c:2275,1
    - Dst: lookup_check_node
      Src: /src/selinux/libselinux/src/label_file.c:2278,1
    - Dst: strncmp
      Src: /src/selinux/libselinux/src/label_file.c:2291,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/label_file.c:2291,1
    - Dst: all_node_specs
      Src: /src/selinux/libselinux/src/label_file.c:2295,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:2312,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:2313,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 74
    argCount: 6
    argNames:
    - rec
    - key
    - type
    - partial
    - find_all
    - buf
    argTypes:
    - struct selabel_handle*
    - char*
    - int
    - bool
    - bool
    - struct lookup_result*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2315
      start: 2207
    functionDepth: 3
    functionLinenumber: 2207
    functionLinenumberEnd: 2315
    functionName: lookup_all
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - strncmp
    - all_node_specs
    - unlikely
    - malloc
    - strcpy
    - mode_to_file_kind
    - lookup_find_deepest_node
    - memcpy
    - selabel_sub_key
    - strstr
    - free
    - lookup_check_node
    - strlen
    linkageType: ''
    returnType: FUZZ_EXTERN
    signature: "FUZZ_EXTERN *lookup_all(struct selabel_handle *rec,\n\t\t\t\t\t     const
      char *key, int type,\n\t\t\t\t\t     bool partial, bool find_all,\n\t\t\t\t\t
      \    struct lookup_result *buf)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_all
      Src: /src/selinux/libselinux/src/label_file.c:2322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - rec
    - key
    - type
    - partial
    - buf
    argTypes:
    - struct selabel_handle*
    - char*
    - int
    - bool
    - struct lookup_result*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2323
      start: 2317
    functionDepth: 4
    functionLinenumber: 2317
    functionLinenumberEnd: 2323
    functionName: lookup_common
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - lookup_all
    linkageType: ''
    returnType: struct lookup_result
    signature: "struct lookup_result *lookup_common(struct selabel_handle *rec,\n\t\t\t\t\t
      \  const char *key, int type,\n\t\t\t\t\t   bool partial,\n\t\t\t\t\t   struct
      lookup_result *buf)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getxattr
      Src: /src/selinux/libselinux/src/label_file.c:2337,1
    - Dst: selabel_hash_all_partial_matches
      Src: /src/selinux/libselinux/src/label_file.c:2346,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label_file.c:2353,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/src/label_file.c:2357,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label_file.c:2361,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/src/label_file.c:2365,1
    - Dst: memcmp
      Src: /src/selinux/libselinux/src/label_file.c:2369,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_file.c:2375,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 5
    argNames:
    - rec
    - pathname
    - calculated_digest
    - xattr_digest
    - digest_len
    argTypes:
    - struct selabel_handle*
    - char*
    - uint8_t**
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2330
    functionDepth: 1
    functionLinenumber: 2330
    functionLinenumberEnd: 2377
    functionName: get_digests_all_partial_matches
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - selabel_hash_all_partial_matches
    - selinux_log
    - calloc
    - memcpy
    - getxattr
    - memcmp
    linkageType: ''
    returnType: bool
    signature: "bool get_digests_all_partial_matches(struct selabel_handle *rec,\n\t\t\t\t\t
      \   const char *pathname,\n\t\t\t\t\t    uint8_t **calculated_digest,\n\t\t\t\t\t
      \   uint8_t **xattr_digest,\n\t\t\t\t\t    size_t *digest_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libselinux/src/label_file.c:2382,1
    - Dst: lookup_all
      Src: /src/selinux/libselinux/src/label_file.c:2385,1
    - Dst: Sha1Initialise
      Src: /src/selinux/libselinux/src/label_file.c:2391,1
    - Dst: Sha1Update
      Src: /src/selinux/libselinux/src/label_file.c:2398,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/label_file.c:2398,1
    - Dst: Sha1Update
      Src: /src/selinux/libselinux/src/label_file.c:2399,1
    - Dst: Sha1Update
      Src: /src/selinux/libselinux/src/label_file.c:2400,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/label_file.c:2400,1
    - Dst: Sha1Finalise
      Src: /src/selinux/libselinux/src/label_file.c:2404,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/src/label_file.c:2405,1
    - Dst: free_lookup_result
      Src: /src/selinux/libselinux/src/label_file.c:2407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - rec
    - key
    - digest
    argTypes:
    - struct selabel_handle*
    - char*
    - uint8_t*
    assertStmts:
    - condition: (digest)
      pos:
        line_end: 2381
        line_start: 2381
        source_file: /src/selinux/libselinux/src/label_file.c
    constantsTouched: []
    func_position:
      end: 2409
      start: 2379
    functionDepth: 4
    functionLinenumber: 2379
    functionLinenumberEnd: 2409
    functionName: hash_all_partial_matches
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 1
    functionsReached:
    - free_lookup_result
    - Sha1Update
    - lookup_all
    - Sha1Initialise
    - Sha1Finalise
    - assert
    - memcpy
    - strlen
    linkageType: ''
    returnType: bool
    signature: "bool hash_all_partial_matches(struct selabel_handle *rec,\n\t\t\t\t
      \    const char *key, uint8_t *digest)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lookup_common
      Src: /src/selinux/libselinux/src/label_file.c:2416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - rec
    - key
    - type
    argTypes:
    - struct selabel_handle*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2421
      start: 2411
    functionDepth: 5
    functionLinenumber: 2411
    functionLinenumberEnd: 2421
    functionName: lookup
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - lookup_common
    linkageType: ''
    returnType: struct selabel_lookup_rec
    signature: "struct selabel_lookup_rec *lookup(struct selabel_handle *rec,\n\t\t\t\t\t
      const char *key, int type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lookup_common
      Src: /src/selinux/libselinux/src/label_file.c:2427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rec
    - key
    argTypes:
    - struct selabel_handle*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2428
      start: 2423
    functionDepth: 5
    functionLinenumber: 2423
    functionLinenumberEnd: 2428
    functionName: partial_match
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - lookup_common
    linkageType: ''
    returnType: bool
    signature: bool partial_match(struct selabel_handle *rec, const char *key)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: lookup
      Src: /src/selinux/libselinux/src/label_file.c:2441,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label_file.c:2446,1
    - Dst: lookup_common
      Src: /src/selinux/libselinux/src/label_file.c:2449,1
    - Dst: lookup_common
      Src: /src/selinux/libselinux/src/label_file.c:2461,1
    - Dst: free_lookup_result
      Src: /src/selinux/libselinux/src/label_file.c:2484,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:2485,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 4
    argNames:
    - rec
    - key
    - aliases
    - type
    argTypes:
    - struct selabel_handle*
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2487
      start: 2430
    functionDepth: 5
    functionLinenumber: 2430
    functionLinenumberEnd: 2487
    functionName: lookup_best_match
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - free_lookup_result
    - free
    - calloc
    - lookup_common
    - lookup
    linkageType: ''
    returnType: struct selabel_lookup_rec
    signature: "struct selabel_lookup_rec *lookup_best_match(struct selabel_handle
      *rec,\n\t\t\t\t\t\t    const char *key,\n\t\t\t\t\t\t    const char **aliases,\n\t\t\t\t\t\t
      \   int type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/selinux/libselinux/src/label_file.c:2497,1
    - Dst: COMPAT_LOG
      Src: /src/selinux/libselinux/src/label_file.c:2504,1
    - Dst: file_kind_to_string
      Src: /src/selinux/libselinux/src/label_file.c:2507,1
    - Dst: __atomic_load_n
      Src: /src/selinux/libselinux/src/label_file.c:2517,1
    - Dst: COMPAT_LOG
      Src: /src/selinux/libselinux/src/label_file.c:2523,1
    - Dst: file_kind_to_string
      Src: /src/selinux/libselinux/src/label_file.c:2526,1
    - Dst: spec_node_stats
      Src: /src/selinux/libselinux/src/label_file.c:2532,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct spec_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2533
      start: 2489
    functionDepth: 1
    functionLinenumber: 2489
    functionLinenumberEnd: 2533
    functionName: spec_node_stats
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 1
    functionsReached:
    - spec_node_stats
    - __atomic_load_n
    - COMPAT_LOG
    - file_kind_to_string
    linkageType: ''
    returnType: void
    signature: void spec_node_stats(const struct spec_node *node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: spec_node_stats
      Src: /src/selinux/libselinux/src/label_file.c:2539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rec
    argTypes:
    - struct selabel_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2540
      start: 2535
    functionDepth: 2
    functionLinenumber: 2535
    functionLinenumberEnd: 2540
    functionName: stats
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 3
    functionsReached:
    - spec_node_stats
    linkageType: ''
    returnType: void
    signature: void stats(struct selabel_handle *rec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stem
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2545
      start: 2542
    functionDepth: 0
    functionLinenumber: 2542
    functionLinenumberEnd: 2545
    functionName: fmt_stem
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *fmt_stem(const char *stem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_file.c:2553,1
    - Dst: fmt_stem
      Src: /src/selinux/libselinux/src/label_file.c:2556,1
    - Dst: file_kind_to_string
      Src: /src/selinux/libselinux/src/label_file.c:2557,1
    - Dst: file_kind_to_string
      Src: /src/selinux/libselinux/src/label_file.c:2559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - stem
    - lspec1
    - lspec2
    - reason
    - iter1
    - iter2
    argTypes:
    - char*
    - struct literal_spec*
    - struct literal_spec*
    - char*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2561
      start: 2547
    functionDepth: 1
    functionLinenumber: 2547
    functionLinenumberEnd: 2561
    functionName: lspec_incomp
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - fmt_stem
    - selinux_log
    - file_kind_to_string
    linkageType: ''
    returnType: enum selabel_cmp_result
    signature: "enum selabel_cmp_result lspec_incomp(const char *stem,\n\t\t\t\t\t
      \   const struct literal_spec *lspec1,\n\t\t\t\t\t    const struct literal_spec
      *lspec2,\n\t\t\t\t\t    const char *reason, uint32_t iter1,\n\t\t\t\t\t    uint32_t
      iter2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_file.c:2569,1
    - Dst: fmt_stem
      Src: /src/selinux/libselinux/src/label_file.c:2572,1
    - Dst: file_kind_to_string
      Src: /src/selinux/libselinux/src/label_file.c:2573,1
    - Dst: file_kind_to_string
      Src: /src/selinux/libselinux/src/label_file.c:2575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - stem
    - rspec1
    - rspec2
    - reason
    - iter1
    - iter2
    argTypes:
    - char*
    - struct regex_spec*
    - struct regex_spec*
    - char*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2577
      start: 2563
    functionDepth: 1
    functionLinenumber: 2563
    functionLinenumberEnd: 2577
    functionName: rspec_incomp
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - fmt_stem
    - selinux_log
    - file_kind_to_string
    linkageType: ''
    returnType: enum selabel_cmp_result
    signature: "enum selabel_cmp_result rspec_incomp(const char *stem,\n\t\t\t\t\t
      \   const struct regex_spec *rspec1,\n\t\t\t\t\t    const struct regex_spec
      *rspec2,\n\t\t\t\t\t    const char *reason, uint32_t iter1,\n\t\t\t\t\t    uint32_t
      iter2)"
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.c:2585,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_file.c:2588,1
    - Dst: fmt_stem
      Src: /src/selinux/libselinux/src/label_file.c:2590,1
    - Dst: fmt_stem
      Src: /src/selinux/libselinux/src/label_file.c:2590,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.c:2605,1
    - Dst: lspec_incomp
      Src: /src/selinux/libselinux/src/label_file.c:2615,1
    - Dst: lspec_incomp
      Src: /src/selinux/libselinux/src/label_file.c:2628,1
    - Dst: lspec_incomp
      Src: /src/selinux/libselinux/src/label_file.c:2643,1
    - Dst: lspec_incomp
      Src: /src/selinux/libselinux/src/label_file.c:2655,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_file.c:2667,1
    - Dst: fmt_stem
      Src: /src/selinux/libselinux/src/label_file.c:2670,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_file.c:2679,1
    - Dst: fmt_stem
      Src: /src/selinux/libselinux/src/label_file.c:2682,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.c:2700,1
    - Dst: assert
      Src: /src/selinux/libselinux/src/label_file.c:2716,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.c:2726,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.c:2745,1
    - Dst: rspec_incomp
      Src: /src/selinux/libselinux/src/label_file.c:2758,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_file.c:2769,1
    - Dst: fmt_stem
      Src: /src/selinux/libselinux/src/label_file.c:2772,1
    - Dst: file_kind_to_string
      Src: /src/selinux/libselinux/src/label_file.c:2774,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_file.c:2787,1
    - Dst: fmt_stem
      Src: /src/selinux/libselinux/src/label_file.c:2790,1
    - Dst: file_kind_to_string
      Src: /src/selinux/libselinux/src/label_file.c:2792,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.c:2811,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_file.c:2820,1
    - Dst: fmt_stem
      Src: /src/selinux/libselinux/src/label_file.c:2823,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_file.c:2835,1
    - Dst: fmt_stem
      Src: /src/selinux/libselinux/src/label_file.c:2838,1
    - Dst: spec_node_cmp
      Src: /src/selinux/libselinux/src/label_file.c:2847,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_file.c:2855,1
    - Dst: fmt_stem
      Src: /src/selinux/libselinux/src/label_file.c:2858,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_file.c:2868,1
    - Dst: fmt_stem
      Src: /src/selinux/libselinux/src/label_file.c:2871,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_file.c:2875,1
    - Dst: fmt_stem
      Src: /src/selinux/libselinux/src/label_file.c:2878,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_file.c:2887,1
    - Dst: fmt_stem
      Src: /src/selinux/libselinux/src/label_file.c:2890,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_file.c:2899,1
    - Dst: fmt_stem
      Src: /src/selinux/libselinux/src/label_file.c:2902,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 180
    argCount: 2
    argNames:
    - node1
    - node2
    argTypes:
    - struct spec_node*
    - struct spec_node*
    assertStmts:
    - condition: (result == SELABEL_EQUAL)
      pos:
        line_end: 2715
        line_start: 2715
        source_file: /src/selinux/libselinux/src/label_file.c
    constantsTouched: []
    func_position:
      end: 2909
      start: 2579
    functionDepth: 2
    functionLinenumber: 2579
    functionLinenumberEnd: 2909
    functionName: spec_node_cmp
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 1
    functionsReached:
    - rspec_incomp
    - assert
    - strcmp
    - selinux_log
    - spec_node_cmp
    - fmt_stem
    - lspec_incomp
    - file_kind_to_string
    linkageType: ''
    returnType: enum selabel_cmp_result
    signature: "enum selabel_cmp_result spec_node_cmp(const struct spec_node *node1,\n\t\t\t\t\t
      \    const struct spec_node *node2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libselinux/src/label_file.c:2917,1
    - Dst: spec_node_cmp
      Src: /src/selinux/libselinux/src/label_file.c:2928,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - h1
    - h2
    argTypes:
    - struct selabel_handle*
    - struct selabel_handle*
    assertStmts:
    - condition: "(h1->backend == SELABEL_CTX_FILE &&\n\t       h2->backend == SELABEL_CTX_FILE)"
      pos:
        line_end: 2917
        line_start: 2916
        source_file: /src/selinux/libselinux/src/label_file.c
    constantsTouched: []
    func_position:
      end: 2929
      start: 2911
    functionDepth: 3
    functionLinenumber: 2911
    functionLinenumberEnd: 2929
    functionName: cmp
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 204
    functionsReached:
    - spec_node_cmp
    - assert
    linkageType: ''
    returnType: FUZZ_EXTERN
    signature: "FUZZ_EXTERN cmp(const struct selabel_handle *h1,\n\t\t\t\t\tconst
      struct selabel_handle *h2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label_file.c:2937,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label_file.c:2941,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.c:2943,1
    - Dst: init
      Src: /src/selinux/libselinux/src/label_file.c:2960,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 3
    argNames:
    - rec
    - opts
    - nopts
    argTypes:
    - struct selabel_handle*
    - struct selinux_opt*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2961
      start: 2931
    functionDepth: 0
    functionLinenumber: 2931
    functionLinenumberEnd: 2961
    functionName: selabel_file_init
    functionSourceFile: /src/selinux/libselinux/src/label_file.c
    functionUses: 0
    functionsReached:
    - init
    - free
    - calloc
    linkageType: ''
    returnType: int
    signature: "int selabel_file_init(struct selabel_handle *rec,\n\t\t      const
      struct selinux_opt *opts, unsigned nopts)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ONCE_CONTROL
    - ','
    - INIT_FUNCTION
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 29
    functionName: __selinux_once
    functionSourceFile: /src/selinux/libselinux/src/selinux_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __selinux_once(ONCE_CONTROL, INIT_FUNCTION)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - KEY
    - ','
    - DESTRUCTOR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: __selinux_key_create
    functionSourceFile: /src/selinux/libselinux/src/selinux_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __selinux_key_create(KEY, DESTRUCTOR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - KEY
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: __selinux_key_delete
    functionSourceFile: /src/selinux/libselinux/src/selinux_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __selinux_key_delete(KEY)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - KEY
    - ','
    - VALUE
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: __selinux_setspecific
    functionSourceFile: /src/selinux/libselinux/src/selinux_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __selinux_setspecific(KEY, VALUE)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - KEY
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: __selinux_getspecific
    functionSourceFile: /src/selinux/libselinux/src/selinux_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __selinux_getspecific(KEY)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - LOCK
    - ','
    - ATTR
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: __pthread_mutex_init
    functionSourceFile: /src/selinux/libselinux/src/selinux_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __pthread_mutex_init(LOCK, ATTR)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - LOCK
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: __pthread_mutex_destroy
    functionSourceFile: /src/selinux/libselinux/src/selinux_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __pthread_mutex_destroy(LOCK)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - LOCK
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: __pthread_mutex_lock
    functionSourceFile: /src/selinux/libselinux/src/selinux_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __pthread_mutex_lock(LOCK)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - LOCK
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: __pthread_mutex_unlock
    functionSourceFile: /src/selinux/libselinux/src/selinux_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: __pthread_mutex_unlock(LOCK)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/selinux/libselinux/src/selinux_internal.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - stream
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 142
    functionName: fclose_errno_safe
    functionSourceFile: /src/selinux/libselinux/src/selinux_internal.h
    functionUses: 3
    functionsReached:
    - fclose
    linkageType: ''
    returnType: void
    signature: void fclose_errno_safe(FILE *stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    functionName: likely
    functionSourceFile: /src/selinux/libselinux/src/selinux_internal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: likely(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    functionName: unlikely
    functionSourceFile: /src/selinux/libselinux/src/selinux_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unlikely(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    functionName: likely
    functionSourceFile: /src/selinux/libselinux/src/selinux_internal.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: likely(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    functionName: unlikely
    functionSourceFile: /src/selinux/libselinux/src/selinux_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: unlikely(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    functionName: spaceship_cmp
    functionSourceFile: /src/selinux/libselinux/src/selinux_internal.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: spaceship_cmp(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - saved_errno
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: selinux_reset_errno
    functionSourceFile: /src/selinux/libselinux/src/selinux_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void selinux_reset_errno(int *saved_errno)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - mode
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 210
    functionName: string_to_file_kind
    functionSourceFile: /src/selinux/libselinux/src/label_file.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mode_t
    signature: mode_t string_to_file_kind(const char *mode)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - file_kind
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 234
    functionName: file_kind_to_string
    functionSourceFile: /src/selinux/libselinux/src/label_file.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *file_kind_to_string(uint8_t file_kind)
  - BBCount: 32
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 2
    argNames:
    - regex
    - prefix_len
    argTypes:
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 293
    functionName: regex_has_meta_chars
    functionSourceFile: /src/selinux/libselinux/src/label_file.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool regex_has_meta_chars(const char *regex, size_t *prefix_len)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libselinux/src/label_file.h:301,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:321,1
    - Dst: COMPAT_LOG
      Src: /src/selinux/libselinux/src/label_file.h:326,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:330,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:354,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 60
    argCount: 5
    argNames:
    - regex
    - len
    - out
    - path
    - lineno
    argTypes:
    - char*
    - size_t
    - char**
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 366
    functionName: regex_simplify
    functionSourceFile: /src/selinux/libselinux/src/label_file.h
    functionUses: 0
    functionsReached:
    - COMPAT_LOG
    - free
    - malloc
    linkageType: ''
    returnType: int
    signature: "int regex_simplify(const char *regex, size_t len, char **out,\n\t\t\t
      \ const char *path, unsigned int lineno)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.h:374,1
    - Dst: spaceship_cmp
      Src: /src/selinux/libselinux/src/label_file.h:379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 381
    functionName: compare_literal_spec
    functionSourceFile: /src/selinux/libselinux/src/label_file.h
    functionUses: 0
    functionsReached:
    - strcmp
    - spaceship_cmp
    linkageType: ''
    returnType: int
    signature: int compare_literal_spec(const void *p1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.h:389,1
    - Dst: assert
      Src: /src/selinux/libselinux/src/label_file.h:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts:
    - condition: (rc != 0)
      pos:
        line_end: 390
        line_start: 390
        source_file: /src/selinux/libselinux/src/label_file.h
    constantsTouched: []
    func_position:
      end: 393
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 393
    functionName: compare_spec_node
    functionSourceFile: /src/selinux/libselinux/src/label_file.h
    functionUses: 0
    functionsReached:
    - assert
    - strcmp
    linkageType: ''
    returnType: int
    signature: int compare_spec_node(const void *p1, const void *p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sort_spec_node
      Src: /src/selinux/libselinux/src/label_file.h:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct saved_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 398
    functionName: sort_specs
    functionSourceFile: /src/selinux/libselinux/src/label_file.h
    functionUses: 1
    functionsReached:
    - sort_spec_node
    linkageType: ''
    returnType: void
    signature: void sort_specs(struct saved_data *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/selinux/libselinux/src/label_file.h:423,1
    - Dst: __sync_synchronize
      Src: /src/selinux/libselinux/src/label_file.h:426,1
    - Dst: __pthread_mutex_lock
      Src: /src/selinux/libselinux/src/label_file.h:433,1
    - Dst: __atomic_load_n
      Src: /src/selinux/libselinux/src/label_file.h:438,1
    - Dst: __sync_synchronize
      Src: /src/selinux/libselinux/src/label_file.h:441,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/label_file.h:445,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/label_file.h:451,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/label_file.h:455,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/label_file.h:456,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/label_file.h:461,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/label_file.h:463,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/label_file.h:464,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/src/label_file.h:470,1
    - Dst: regex_prepare_data
      Src: /src/selinux/libselinux/src/label_file.h:476,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:477,1
    - Dst: regex_format_error
      Src: /src/selinux/libselinux/src/label_file.h:479,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/label_file.h:480,1
    - Dst: __atomic_store_n
      Src: /src/selinux/libselinux/src/label_file.h:487,1
    - Dst: __sync_synchronize
      Src: /src/selinux/libselinux/src/label_file.h:491,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/label_file.h:493,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 52
    argCount: 3
    argNames:
    - spec
    - errbuf
    - errbuf_size
    argTypes:
    - struct regex_spec*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 495
    functionName: compile_regex
    functionSourceFile: /src/selinux/libselinux/src/label_file.h
    functionUses: 1
    functionsReached:
    - snprintf
    - malloc
    - __atomic_store_n
    - __pthread_mutex_unlock
    - __sync_synchronize
    - free
    - memcpy
    - regex_prepare_data
    - __atomic_load_n
    - __pthread_mutex_lock
    - regex_format_error
    - strlen
    linkageType: ''
    returnType: int
    signature: "int compile_regex(struct regex_spec *spec, char *errbuf,\n\t\t\t size_t
      errbuf_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - arr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 524
    functionName: GROW_ARRAY
    functionSourceFile: /src/selinux/libselinux/src/label_file.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GROW_ARRAY(arr)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:534,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:535,1
    - Dst: regex_has_meta_chars
      Src: /src/selinux/libselinux/src/label_file.h:540,1
    - Dst: assert
      Src: /src/selinux/libselinux/src/label_file.h:543,1
    - Dst: strchr
      Src: /src/selinux/libselinux/src/label_file.h:557,1
    - Dst: regex_simplify
      Src: /src/selinux/libselinux/src/label_file.h:568,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:571,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:572,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/label_file.h:578,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:580,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.h:585,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:586,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:587,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:588,1
    - Dst: strncmp
      Src: /src/selinux/libselinux/src/label_file.h:595,1
    - Dst: GROW_ARRAY
      Src: /src/selinux/libselinux/src/label_file.h:604,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:606,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:607,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:608,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:620,1
    - Dst: GROW_ARRAY
      Src: /src/selinux/libselinux/src/label_file.h:627,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:629,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:630,1
    - Dst: compile_regex
      Src: /src/selinux/libselinux/src/label_file.h:657,1
    - Dst: COMPAT_LOG
      Src: /src/selinux/libselinux/src/label_file.h:659,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.h:666,1
    - Dst: compat_validate
      Src: /src/selinux/libselinux/src/label_file.h:667,1
    - Dst: regex_simplify
      Src: /src/selinux/libselinux/src/label_file.h:681,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/label_file.h:681,1
    - Dst: COMPAT_LOG
      Src: /src/selinux/libselinux/src/label_file.h:685,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:691,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:692,1
    - Dst: strchr
      Src: /src/selinux/libselinux/src/label_file.h:707,1
    - Dst: assert
      Src: /src/selinux/libselinux/src/label_file.h:719,1
    - Dst: strncmp
      Src: /src/selinux/libselinux/src/label_file.h:722,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:723,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:724,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:725,1
    - Dst: strncmp
      Src: /src/selinux/libselinux/src/label_file.h:732,1
    - Dst: GROW_ARRAY
      Src: /src/selinux/libselinux/src/label_file.h:741,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:743,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:744,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:745,1
    - Dst: strndup
      Src: /src/selinux/libselinux/src/label_file.h:749,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:751,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:752,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:753,1
    - Dst: GROW_ARRAY
      Src: /src/selinux/libselinux/src/label_file.h:770,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:772,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:773,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:774,1
    - Dst: assert
      Src: /src/selinux/libselinux/src/label_file.h:780,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/label_file.h:780,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_file.h:798,1
    - Dst: compat_validate
      Src: /src/selinux/libselinux/src/label_file.h:799,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 161
    argCount: 9
    argNames:
    - rec
    - data
    - prefix
    - regex
    - file_kind
    - context
    - path
    - inputno
    - lineno
    argTypes:
    - struct selabel_handle*
    - struct saved_data*
    - char*
    - char*
    - uint8_t
    - char*
    - char*
    - uint8_t
    - uint32_t
    assertStmts:
    - condition: (prefix_len == strlen(literal_regex))
      pos:
        line_end: 779
        line_start: 779
        source_file: /src/selinux/libselinux/src/label_file.h
    - condition: (prefix_len < UINT16_MAX)
      pos:
        line_end: 542
        line_start: 542
        source_file: /src/selinux/libselinux/src/label_file.h
    - condition: (length < UINT16_MAX)
      pos:
        line_end: 718
        line_start: 718
        source_file: /src/selinux/libselinux/src/label_file.h
    constantsTouched: []
    func_position:
      end: 807
      start: 525
    functionDepth: 3
    functionLinenumber: 525
    functionLinenumberEnd: 807
    functionName: insert_spec
    functionSourceFile: /src/selinux/libselinux/src/label_file.h
    functionUses: 0
    functionsReached:
    - strncmp
    - GROW_ARRAY
    - strchr
    - strndup
    - regex_has_meta_chars
    - assert
    - strcmp
    - compat_validate
    - free
    - compile_regex
    - regex_simplify
    - COMPAT_LOG
    - strlen
    linkageType: ''
    returnType: int
    signature: "int insert_spec(const struct selabel_handle *rec,\n\t\t       struct
      saved_data *data, const char *prefix, char *regex,\n\t\t       uint8_t file_kind,
      char *context, const char *path,\n\t\t       uint8_t inputno, uint32_t lineno)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/selinux/libselinux/src/label_file.h:818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - buf
    - fp
    - bytes
    argTypes:
    - void*
    - struct mmap_area*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 823
    functionName: next_entry
    functionSourceFile: /src/selinux/libselinux/src/label_file.h
    functionUses: 54
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int next_entry(void *buf, struct mmap_area *fp, size_t bytes)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/selinux/libselinux/src/label_file.h:839,1
    - Dst: read_spec_entries
      Src: /src/selinux/libselinux/src/label_file.h:845,1
    - Dst: COMPAT_LOG
      Src: /src/selinux/libselinux/src/label_file.h:849,1
    - Dst: COMPAT_LOG
      Src: /src/selinux/libselinux/src/label_file.h:853,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:857,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:858,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:859,1
    - Dst: COMPAT_LOG
      Src: /src/selinux/libselinux/src/label_file.h:867,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:870,1
    - Dst: string_to_file_kind
      Src: /src/selinux/libselinux/src/label_file.h:882,1
    - Dst: COMPAT_LOG
      Src: /src/selinux/libselinux/src/label_file.h:885,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:888,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:889,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:890,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_file.h:895,1
    - Dst: insert_spec
      Src: /src/selinux/libselinux/src/label_file.h:898,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 7
    argNames:
    - rec
    - path
    - prefix
    - line_buf
    - nread
    - inputno
    - lineno
    argTypes:
    - struct selabel_handle*
    - char*
    - char*
    - char*
    - size_t
    - uint8_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 827
    functionDepth: 4
    functionLinenumber: 827
    functionLinenumberEnd: 900
    functionName: process_line
    functionSourceFile: /src/selinux/libselinux/src/label_file.h
    functionUses: 1
    functionsReached:
    - strchr
    - read_spec_entries
    - free
    - string_to_file_kind
    - insert_spec
    - COMPAT_LOG
    linkageType: ''
    returnType: int
    signature: "int process_line(struct selabel_handle *rec, const char *path,\n\t\t\t
      \      const char *prefix, char *line_buf, size_t nread,\n\t\t\t       uint8_t
      inputno, uint32_t lineno)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/getenforce.c:23,1
    - Dst: open
      Src: /src/selinux/libselinux/src/getenforce.c:24,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/getenforce.c:28,1
    - Dst: read
      Src: /src/selinux/libselinux/src/getenforce.c:29,1
    - Dst: close
      Src: /src/selinux/libselinux/src/getenforce.c:30,1
    - Dst: sscanf
      Src: /src/selinux/libselinux/src/getenforce.c:34,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 38
    functionName: security_getenforce
    functionSourceFile: /src/selinux/libselinux/src/getenforce.c
    functionUses: 2
    functionsReached:
    - close
    - snprintf
    - sscanf
    - read
    - open
    - memset
    linkageType: ''
    returnType: int
    signature: int security_getenforce(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/validatetrans.c:27,1
    - Dst: open
      Src: /src/selinux/libselinux/src/validatetrans.c:28,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/validatetrans.c:35,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/validatetrans.c:40,1
    - Dst: unmap_class
      Src: /src/selinux/libselinux/src/validatetrans.c:41,1
    - Dst: write
      Src: /src/selinux/libselinux/src/validatetrans.c:49,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/validatetrans.c:49,1
    - Dst: free
      Src: /src/selinux/libselinux/src/validatetrans.c:55,1
    - Dst: close
      Src: /src/selinux/libselinux/src/validatetrans.c:56,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 4
    argNames:
    - scon
    - tcon
    - tclass
    - newcon
    argTypes:
    - char*
    - char*
    - security_class_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 58
    functionName: security_validatetrans_raw
    functionSourceFile: /src/selinux/libselinux/src/validatetrans.c
    functionUses: 0
    functionsReached:
    - close
    - snprintf
    - malloc
    - write
    - free
    - open
    - unmap_class
    - strlen
    linkageType: ''
    returnType: int
    signature: "int security_validatetrans_raw(const char *scon, const char *tcon,\n\t\t\t
      \      security_class_t tclass, const char *newcon)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: selinux_trans_to_raw_context
      Src: /src/selinux/libselinux/src/validatetrans.c:68,1
    - Dst: selinux_trans_to_raw_context
      Src: /src/selinux/libselinux/src/validatetrans.c:72,1
    - Dst: selinux_trans_to_raw_context
      Src: /src/selinux/libselinux/src/validatetrans.c:76,1
    - Dst: security_validatetrans_raw
      Src: /src/selinux/libselinux/src/validatetrans.c:80,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/validatetrans.c:83,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/validatetrans.c:84,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/validatetrans.c:85,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - scon
    - tcon
    - tclass
    - newcon
    argTypes:
    - char*
    - char*
    - security_class_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 88
    functionName: security_validatetrans
    functionSourceFile: /src/selinux/libselinux/src/validatetrans.c
    functionUses: 0
    functionsReached:
    - freecon
    - selinux_trans_to_raw_context
    - security_validatetrans_raw
    linkageType: ''
    returnType: int
    signature: "int security_validatetrans(const char *scon, const char *tcon,\n\t\t\t
      \  security_class_t tclass, const char *newcon)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: ARRAY_SIZE
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fnptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: CONFIG_MEDIA_BACKEND
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONFIG_MEDIA_BACKEND(fnptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fnptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: CONFIG_MEDIA_BACKEND
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONFIG_MEDIA_BACKEND(fnptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fnptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: CONFIG_X_BACKEND
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONFIG_X_BACKEND(fnptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fnptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: CONFIG_X_BACKEND
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONFIG_X_BACKEND(fnptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fnptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: CONFIG_DB_BACKEND
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONFIG_DB_BACKEND(fnptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fnptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: CONFIG_DB_BACKEND
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONFIG_DB_BACKEND(fnptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fnptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: CONFIG_ANDROID_BACKEND
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONFIG_ANDROID_BACKEND(fnptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fnptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: CONFIG_ANDROID_BACKEND
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CONFIG_ANDROID_BACKEND(fnptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label.c:70,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label.c:74,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label.c:79,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label.c:90,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label.c:91,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label.c:92,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - opts
    - n
    argTypes:
    - struct selinux_opt*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 95
    functionName: selabel_is_digest_set
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 0
    functionsReached:
    - free
    - calloc
    linkageType: ''
    returnType: struct selabel_digest
    signature: 'struct selabel_digest *

      selabel_is_digest_set(const struct selinux_opt *opts, unsigned n)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libselinux/src/label.c:101,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label.c:102,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label.c:106,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label.c:107,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label.c:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - struct selabel_digest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 110
    functionName: selabel_digest_fini
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void selabel_digest_fini(struct selabel_digest *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - opts
    - n
    argTypes:
    - struct selinux_opt*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 126
    functionName: selabel_is_validate_set
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int selabel_is_validate_set(const struct selinux_opt *opts,\n\t\t\t\t\t
      \ unsigned n)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/selinux/libselinux/src/label.c:133,1
    - Dst: __pthread_mutex_lock
      Src: /src/selinux/libselinux/src/label.c:137,1
    - Dst: __atomic_load_n
      Src: /src/selinux/libselinux/src/label.c:140,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/label.c:142,1
    - Dst: selinux_validate
      Src: /src/selinux/libselinux/src/label.c:146,1
    - Dst: __atomic_store_n
      Src: /src/selinux/libselinux/src/label.c:148,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/label.c:150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - contexts
    argTypes:
    - struct selabel_lookup_rec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 156
    functionName: selabel_validate
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 0
    functionsReached:
    - selinux_validate
    - __atomic_store_n
    - __pthread_mutex_unlock
    - __atomic_load_n
    - __pthread_mutex_lock
    linkageType: ''
    returnType: int
    signature: int selabel_validate(struct selabel_lookup_rec *contexts)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: compat_validate
      Src: /src/selinux/libselinux/src/label.c:165,1
    - Dst: __atomic_load_n
      Src: /src/selinux/libselinux/src/label.c:171,1
    - Dst: __pthread_mutex_lock
      Src: /src/selinux/libselinux/src/label.c:175,1
    - Dst: __atomic_load_n
      Src: /src/selinux/libselinux/src/label.c:178,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/label.c:180,1
    - Dst: selinux_raw_to_trans_context
      Src: /src/selinux/libselinux/src/label.c:184,1
    - Dst: __atomic_store_n
      Src: /src/selinux/libselinux/src/label.c:186,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/label.c:188,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - rec
    - lr
    - translating
    argTypes:
    - struct selabel_handle*
    - struct selabel_lookup_rec*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 194
    functionName: selabel_fini
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 0
    functionsReached:
    - selinux_raw_to_trans_context
    - __atomic_store_n
    - compat_validate
    - __pthread_mutex_unlock
    - __atomic_load_n
    - __pthread_mutex_lock
    linkageType: ''
    returnType: int
    signature: "int selabel_fini(const struct selabel_handle *rec,\n\t\t\tstruct selabel_lookup_rec
      *lr, bool translating)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct selabel_handle*::func_lookup
      Src: /src/selinux/libselinux/src/label.c:207,1
    - Dst: selabel_fini
      Src: /src/selinux/libselinux/src/label.c:211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - rec
    - translating
    - key
    - type
    argTypes:
    - struct selabel_handle*
    - bool
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 215
    functionName: selabel_lookup_common
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 0
    functionsReached:
    - selabel_fini
    - struct selabel_handle*::func_lookup
    linkageType: ''
    returnType: struct selabel_lookup_rec
    signature: "struct selabel_lookup_rec *\nselabel_lookup_common(struct selabel_handle
      *rec, bool translating,\n\t\t      const char *key, int type)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: struct selabel_handle*::func_lookup_best_match
      Src: /src/selinux/libselinux/src/label.c:228,1
    - Dst: selabel_fini
      Src: /src/selinux/libselinux/src/label.c:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - rec
    - translating
    - key
    - type
    - aliases
    argTypes:
    - struct selabel_handle*
    - bool
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 236
    functionName: selabel_lookup_bm_common
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 0
    functionsReached:
    - struct selabel_handle*::func_lookup_best_match
    - selabel_fini
    linkageType: ''
    returnType: struct selabel_lookup_rec
    signature: "struct selabel_lookup_rec *\nselabel_lookup_bm_common(struct selabel_handle
      *rec, bool translating,\n\t\t\t const char *key, int type, const char **aliases)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/selinux/libselinux/src/label.c:248,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label.c:258,1
    - Dst: selabel_is_validate_set
      Src: /src/selinux/libselinux/src/label.c:263,1
    - Dst: selabel_is_digest_set
      Src: /src/selinux/libselinux/src/label.c:265,1
    - Dst: selabel_close
      Src: /src/selinux/libselinux/src/label.c:268,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - backend
    - opts
    - nopts
    argTypes:
    - unsigned int
    - struct selinux_opt*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 274
    functionName: selabel_open
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 2
    functionsReached:
    - ARRAY_SIZE
    - selabel_is_validate_set
    - calloc
    - selabel_close
    - selabel_is_digest_set
    linkageType: ''
    returnType: struct selabel_handle
    signature: "struct selabel_handle *selabel_open(unsigned int backend,\n\t\t\t\t
      \   const struct selinux_opt *opts,\n\t\t\t\t    unsigned nopts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: selabel_lookup_common
      Src: /src/selinux/libselinux/src/label.c:281,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/label.c:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - rec
    - con
    - key
    - type
    argTypes:
    - struct selabel_handle*
    - char**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 287
    functionName: selabel_lookup
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 0
    functionsReached:
    - selabel_lookup_common
    - strdup
    linkageType: ''
    returnType: int
    signature: "int selabel_lookup(struct selabel_handle *rec, char **con, const char
      *key,\n\t\t   int type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: selabel_lookup_common
      Src: /src/selinux/libselinux/src/label.c:294,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/label.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - rec
    - con
    - key
    - type
    argTypes:
    - struct selabel_handle*
    - char**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 300
    functionName: selabel_lookup_raw
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 0
    functionsReached:
    - selabel_lookup_common
    - strdup
    linkageType: ''
    returnType: int
    signature: "int selabel_lookup_raw(struct selabel_handle *rec, char **con, const
      char *key,\n\t\t       int type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct selabel_handle*::func_partial_match
      Src: /src/selinux/libselinux/src/label.c:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - rec
    - key
    argTypes:
    - struct selabel_handle*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 313
    functionName: selabel_partial_match
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 0
    functionsReached:
    - struct selabel_handle*::func_partial_match
    linkageType: ''
    returnType: bool
    signature: bool selabel_partial_match(struct selabel_handle *rec, const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct selabel_handle*::func_get_digests_all_partial_matches
      Src: /src/selinux/libselinux/src/label.c:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - rec
    - key
    - calculated_digest
    - xattr_digest
    - digest_len
    argTypes:
    - struct selabel_handle*
    - char*
    - uint8_t**
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 326
    functionName: selabel_get_digests_all_partial_matches
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 0
    functionsReached:
    - struct selabel_handle*::func_get_digests_all_partial_matches
    linkageType: ''
    returnType: bool
    signature: "bool selabel_get_digests_all_partial_matches(struct selabel_handle
      *rec,\n\t\t\t\t\t     const char *key,\n\t\t\t\t\t     uint8_t **calculated_digest,\n\t\t\t\t\t
      \    uint8_t **xattr_digest,\n\t\t\t\t\t     size_t *digest_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct selabel_handle*::func_hash_all_partial_matches
      Src: /src/selinux/libselinux/src/label.c:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - rec
    - key
    - digest
    argTypes:
    - struct selabel_handle*
    - char*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 336
    functionName: selabel_hash_all_partial_matches
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 1
    functionsReached:
    - struct selabel_handle*::func_hash_all_partial_matches
    linkageType: ''
    returnType: bool
    signature: "bool selabel_hash_all_partial_matches(struct selabel_handle *rec,\n\t\t\t\t
      \     const char *key, uint8_t *digest)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: selabel_lookup_bm_common
      Src: /src/selinux/libselinux/src/label.c:348,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/label.c:352,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - rec
    - con
    - key
    - aliases
    - type
    argTypes:
    - struct selabel_handle*
    - char**
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 354
    functionName: selabel_lookup_best_match
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 0
    functionsReached:
    - selabel_lookup_bm_common
    - strdup
    linkageType: ''
    returnType: int
    signature: "int selabel_lookup_best_match(struct selabel_handle *rec, char **con,\n\t\t\t
      \     const char *key, const char **aliases, int type)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: selabel_lookup_bm_common
      Src: /src/selinux/libselinux/src/label.c:367,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/label.c:371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - rec
    - con
    - key
    - aliases
    - type
    argTypes:
    - struct selabel_handle*
    - char**
    - char*
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 356
    functionDepth: 3
    functionLinenumber: 356
    functionLinenumberEnd: 373
    functionName: selabel_lookup_best_match_raw
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 0
    functionsReached:
    - selabel_lookup_bm_common
    - strdup
    linkageType: ''
    returnType: int
    signature: "int selabel_lookup_best_match_raw(struct selabel_handle *rec, char
      **con,\n\t\t\t\t  const char *key, const char **aliases,\n\t\t\t\t  int type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct selabel_handle*::func_cmp
      Src: /src/selinux/libselinux/src/label.c:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - h1
    - h2
    argTypes:
    - struct selabel_handle*
    - struct selabel_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 382
    functionName: selabel_cmp
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 0
    functionsReached:
    - struct selabel_handle*::func_cmp
    linkageType: ''
    returnType: enum selabel_cmp_result
    signature: "enum selabel_cmp_result selabel_cmp(const struct selabel_handle *h1,\n\t\t\t\t
      \   const struct selabel_handle *h2)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 5
    argNames:
    - rec
    - digest
    - digest_len
    - specfiles
    - num_specfiles
    argTypes:
    - struct selabel_handle*
    - unsigned char**
    - size_t*
    - char***
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 397
    functionName: selabel_digest
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int selabel_digest(struct selabel_handle *rec, unsigned char **digest,\n\t\t
      \  size_t *digest_len, char ***specfiles, size_t *num_specfiles)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: selabel_digest_fini
      Src: /src/selinux/libselinux/src/label.c:404,1
    - Dst: struct selabel_handle*::func_close
      Src: /src/selinux/libselinux/src/label.c:406,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label.c:409,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label.c:410,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label.c:412,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - rec
    argTypes:
    - struct selabel_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 413
    functionName: selabel_close
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 3
    functionsReached:
    - struct selabel_handle*::func_close
    - selabel_digest_fini
    - free
    linkageType: ''
    returnType: void
    signature: void selabel_close(struct selabel_handle *rec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct selabel_handle*::func_stats
      Src: /src/selinux/libselinux/src/label.c:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rec
    argTypes:
    - struct selabel_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 418
    functionName: selabel_stats
    functionSourceFile: /src/selinux/libselinux/src/label.c
    functionUses: 1
    functionsReached:
    - struct selabel_handle*::func_stats
    linkageType: ''
    returnType: void
    signature: void selabel_stats(struct selabel_handle *rec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libselinux/src/getpeercon.c:21,1
    - Dst: getsockopt
      Src: /src/selinux/libselinux/src/getpeercon.c:25,1
    - Dst: realloc
      Src: /src/selinux/libselinux/src/getpeercon.c:29,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/getpeercon.c:34,1
    - Dst: getsockopt
      Src: /src/selinux/libselinux/src/getpeercon.c:35,1
    - Dst: free
      Src: /src/selinux/libselinux/src/getpeercon.c:39,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - fd
    - context
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 43
    functionName: getpeercon_raw
    functionSourceFile: /src/selinux/libselinux/src/getpeercon.c
    functionUses: 0
    functionsReached:
    - getsockopt
    - realloc
    - free
    - calloc
    - memset
    linkageType: ''
    returnType: int
    signature: int getpeercon_raw(int fd, char **context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getpeercon_raw
      Src: /src/selinux/libselinux/src/getpeercon.c:50,1
    - Dst: selinux_raw_to_trans_context
      Src: /src/selinux/libselinux/src/getpeercon.c:53,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/getpeercon.c:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - fd
    - context
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 58
    functionName: getpeercon
    functionSourceFile: /src/selinux/libselinux/src/getpeercon.c
    functionUses: 0
    functionsReached:
    - getpeercon_raw
    - selinux_raw_to_trans_context
    - freecon
    linkageType: ''
    returnType: int
    signature: int getpeercon(int fd, char **context)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/selinux/libselinux/src/label_support.c:32,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/label_support.c:38,1
    - Dst: isascii
      Src: /src/selinux/libselinux/src/label_support.c:39,1
    - Dst: strndup
      Src: /src/selinux/libselinux/src/label_support.c:55,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 4
    argNames:
    - entry
    - ptr
    - len
    - errbuf
    argTypes:
    - char**
    - char**
    - size_t*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 61
    functionName: read_spec_entry
    functionSourceFile: /src/selinux/libselinux/src/label_support.c
    functionUses: 0
    functionsReached:
    - isascii
    - isspace
    - strndup
    linkageType: ''
    returnType: int
    signature: "int read_spec_entry(char **entry, const char **ptr, size_t *len,\n\t\t\t\t
      \ const char **errbuf)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/selinux/libselinux/src/label_support.c:99,1
    - Dst: va_start
      Src: /src/selinux/libselinux/src/label_support.c:107,1
    - Dst: va_arg
      Src: /src/selinux/libselinux/src/label_support.c:111,1
    - Dst: va_end
      Src: /src/selinux/libselinux/src/label_support.c:115,1
    - Dst: read_spec_entry
      Src: /src/selinux/libselinux/src/label_support.c:119,1
    - Dst: va_end
      Src: /src/selinux/libselinux/src/label_support.c:121,1
    - Dst: va_end
      Src: /src/selinux/libselinux/src/label_support.c:127,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 4
    argNames:
    - line_buf
    - nread
    - errbuf
    - num_args
    argTypes:
    - char*
    - size_t
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 129
    functionName: read_spec_entries
    functionSourceFile: /src/selinux/libselinux/src/label_support.c
    functionUses: 1
    functionsReached:
    - read_spec_entry
    - va_end
    - va_arg
    - isspace
    - va_start
    linkageType: ''
    returnType: int
    signature: "int read_spec_entries(char *line_buf, size_t nread, const char **errbuf,\n\t\t
      \     int num_args, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Sha1Initialise
      Src: /src/selinux/libselinux/src/label_support.c:143,1
    - Dst: Sha1Update
      Src: /src/selinux/libselinux/src/label_support.c:149,1
    - Dst: Sha1Update
      Src: /src/selinux/libselinux/src/label_support.c:153,1
    - Dst: Sha1Finalise
      Src: /src/selinux/libselinux/src/label_support.c:155,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_support.c:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - digest
    argTypes:
    - struct selabel_digest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 158
    functionName: digest_gen_hash
    functionSourceFile: /src/selinux/libselinux/src/label_support.c
    functionUses: 1
    functionsReached:
    - Sha1Initialise
    - free
    - Sha1Finalise
    - Sha1Update
    linkageType: ''
    returnType: void
    signature: void digest_gen_hash(struct selabel_digest *digest)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/selinux/libselinux/src/label_support.c:187,1
    - Dst: fseek
      Src: /src/selinux/libselinux/src/label_support.c:194,1
    - Dst: fread
      Src: /src/selinux/libselinux/src/label_support.c:197,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/src/label_support.c:202,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/label_support.c:210,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 5
    argNames:
    - digest
    - fp
    - from_addr
    - buf_len
    - path
    argTypes:
    - struct selabel_digest*
    - FILE*
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 216
    functionName: digest_add_specfile
    functionSourceFile: /src/selinux/libselinux/src/label_support.c
    functionUses: 2
    functionsReached:
    - realloc
    - memcpy
    - fread
    - fseek
    - strdup
    linkageType: ''
    returnType: int
    signature: "int digest_add_specfile(struct selabel_digest *digest, FILE *fp,\n\t\t\tconst
      char *from_addr, size_t buf_len, const char *path)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/selinux/libselinux/src/label_x.c:44,1
    - Dst: sscanf
      Src: /src/selinux/libselinux/src/label_x.c:49,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_x.c:51,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_x.c:55,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_x.c:57,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_x.c:63,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_x.c:65,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_x.c:67,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_x.c:69,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_x.c:71,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_x.c:73,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_x.c:75,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_x.c:78,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_x.c:81,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_x.c:82,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_x.c:83,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_x.c:88,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_x.c:93,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_x.c:94,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_x.c:95,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 5
    argNames:
    - path
    - line_buf
    - pass
    - lineno
    - rec
    argTypes:
    - char*
    - char*
    - int
    - unsigned
    - struct selabel_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 98
    functionName: process_line
    functionSourceFile: /src/selinux/libselinux/src/label_x.c
    functionUses: 1
    functionsReached:
    - isspace
    - sscanf
    - strcmp
    - selinux_log
    - free
    linkageType: ''
    returnType: int
    signature: "int process_line(const char *path, const char *line_buf, int pass,\n\t\t\tunsigned
      lineno, struct selabel_handle *rec)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: selinux_x_context_path
      Src: /src/selinux/libselinux/src/label_x.c:131,1
    - Dst: fopen
      Src: /src/selinux/libselinux/src/label_x.c:132,1
    - Dst: __fsetlocking
      Src: /src/selinux/libselinux/src/label_x.c:134,1
    - Dst: fstat
      Src: /src/selinux/libselinux/src/label_x.c:136,1
    - Dst: fileno
      Src: /src/selinux/libselinux/src/label_x.c:136,1
    - Dst: S_ISREG
      Src: /src/selinux/libselinux/src/label_x.c:138,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label_x.c:142,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/label_x.c:145,1
    - Dst: getline
      Src: /src/selinux/libselinux/src/label_x.c:162,1
    - Dst: process_line
      Src: /src/selinux/libselinux/src/label_x.c:164,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label_x.c:175,1
    - Dst: fseek
      Src: /src/selinux/libselinux/src/label_x.c:182,1
    - Dst: digest_add_specfile
      Src: /src/selinux/libselinux/src/label_x.c:188,1
    - Dst: digest_gen_hash
      Src: /src/selinux/libselinux/src/label_x.c:192,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_x.c:195,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/label_x.c:196,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 78
    argCount: 3
    argNames:
    - rec
    - opts
    - n
    argTypes:
    - struct selabel_handle*
    - struct selinux_opt*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 198
    functionName: init
    functionSourceFile: /src/selinux/libselinux/src/label_x.c
    functionUses: 2107
    functionsReached:
    - S_ISREG
    - fclose
    - __fsetlocking
    - fseek
    - digest_add_specfile
    - fileno
    - selinux_x_context_path
    - fstat
    - calloc
    - fopen
    - process_line
    - digest_gen_hash
    - free
    - getline
    - strdup
    linkageType: ''
    returnType: int
    signature: "int init(struct selabel_handle *rec, const struct selinux_opt *opts,\n\t\tunsigned
      n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libselinux/src/label_x.c:216,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_x.c:217,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_x.c:218,1
    - Dst: __pthread_mutex_destroy
      Src: /src/selinux/libselinux/src/label_x.c:219,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_x.c:223,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_x.c:225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - rec
    argTypes:
    - struct selabel_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 227
    functionName: close
    functionSourceFile: /src/selinux/libselinux/src/label_x.c
    functionUses: 85
    functionsReached:
    - free
    - __pthread_mutex_destroy
    linkageType: ''
    returnType: void
    signature: void close(struct selabel_handle *rec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fnmatch
      Src: /src/selinux/libselinux/src/label_x.c:239,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - rec
    - key
    - type
    argTypes:
    - struct selabel_handle*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 251
    functionName: lookup
    functionSourceFile: /src/selinux/libselinux/src/label_x.c
    functionUses: 2
    functionsReached:
    - fnmatch
    linkageType: ''
    returnType: struct selabel_lookup_rec
    signature: "struct selabel_lookup_rec *lookup(struct selabel_handle *rec,\n\t\t\t\t\t
      const char *key, int type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_x.c:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - rec
    argTypes:
    - struct selabel_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 263
    functionName: stats
    functionSourceFile: /src/selinux/libselinux/src/label_x.c
    functionUses: 4
    functionsReached:
    - selinux_log
    linkageType: ''
    returnType: void
    signature: void stats(struct selabel_handle *rec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label_x.c:270,1
    - Dst: init
      Src: /src/selinux/libselinux/src/label_x.c:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - rec
    - opts
    - nopts
    argTypes:
    - struct selabel_handle*
    - struct selinux_opt*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 280
    functionName: selabel_x_init
    functionSourceFile: /src/selinux/libselinux/src/label_x.c
    functionUses: 0
    functionsReached:
    - init
    - calloc
    linkageType: ''
    returnType: int
    signature: "int selabel_x_init(struct selabel_handle *rec, const struct selinux_opt
      *opts,\n\t\t   unsigned nopts)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/compute_relabel.c:26,1
    - Dst: open
      Src: /src/selinux/libselinux/src/compute_relabel.c:27,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/compute_relabel.c:32,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/compute_relabel.c:38,1
    - Dst: unmap_class
      Src: /src/selinux/libselinux/src/compute_relabel.c:38,1
    - Dst: write
      Src: /src/selinux/libselinux/src/compute_relabel.c:45,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/compute_relabel.c:45,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/compute_relabel.c:49,1
    - Dst: read
      Src: /src/selinux/libselinux/src/compute_relabel.c:50,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/compute_relabel.c:54,1
    - Dst: free
      Src: /src/selinux/libselinux/src/compute_relabel.c:61,1
    - Dst: close
      Src: /src/selinux/libselinux/src/compute_relabel.c:62,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 4
    argNames:
    - scon
    - tcon
    - tclass
    - newcon
    argTypes:
    - char*
    - char*
    - security_class_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 64
    functionName: security_compute_relabel_raw
    functionSourceFile: /src/selinux/libselinux/src/compute_relabel.c
    functionUses: 0
    functionsReached:
    - close
    - snprintf
    - malloc
    - write
    - free
    - open
    - memset
    - unmap_class
    - read
    - strlen
    - strdup
    linkageType: ''
    returnType: int
    signature: "int security_compute_relabel_raw(const char *scon, const char *tcon,\n\t\t\t\t
      security_class_t tclass, char **newcon)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: selinux_trans_to_raw_context
      Src: /src/selinux/libselinux/src/compute_relabel.c:74,1
    - Dst: selinux_trans_to_raw_context
      Src: /src/selinux/libselinux/src/compute_relabel.c:76,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/compute_relabel.c:77,1
    - Dst: security_compute_relabel_raw
      Src: /src/selinux/libselinux/src/compute_relabel.c:81,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/compute_relabel.c:83,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/compute_relabel.c:84,1
    - Dst: selinux_raw_to_trans_context
      Src: /src/selinux/libselinux/src/compute_relabel.c:86,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/compute_relabel.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - scon
    - tcon
    - tclass
    - newcon
    argTypes:
    - char*
    - char*
    - security_class_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 91
    functionName: security_compute_relabel
    functionSourceFile: /src/selinux/libselinux/src/compute_relabel.c
    functionUses: 1
    functionsReached:
    - security_compute_relabel_raw
    - selinux_raw_to_trans_context
    - freecon
    - selinux_trans_to_raw_context
    linkageType: ''
    returnType: int
    signature: "int security_compute_relabel(const char *scon, const char *tcon,\n\t\t\t
      \    security_class_t tclass, char **newcon)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/selinux/libselinux/src/compute_create.c:26,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 3
    argNames:
    - objname
    - buffer
    - buflen
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 49
    functionName: object_name_encode
    functionSourceFile: /src/selinux/libselinux/src/compute_create.c
    functionUses: 0
    functionsReached:
    - isalnum
    linkageType: ''
    returnType: int
    signature: int object_name_encode(const char *objname, char *buffer, size_t buflen)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/compute_create.c:65,1
    - Dst: open
      Src: /src/selinux/libselinux/src/compute_create.c:66,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/compute_create.c:71,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/compute_create.c:77,1
    - Dst: unmap_class
      Src: /src/selinux/libselinux/src/compute_create.c:77,1
    - Dst: object_name_encode
      Src: /src/selinux/libselinux/src/compute_create.c:84,1
    - Dst: write
      Src: /src/selinux/libselinux/src/compute_create.c:90,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/compute_create.c:90,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/compute_create.c:94,1
    - Dst: read
      Src: /src/selinux/libselinux/src/compute_create.c:95,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/compute_create.c:99,1
    - Dst: free
      Src: /src/selinux/libselinux/src/compute_create.c:106,1
    - Dst: close
      Src: /src/selinux/libselinux/src/compute_create.c:107,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 5
    argNames:
    - scon
    - tcon
    - tclass
    - objname
    - newcon
    argTypes:
    - char*
    - char*
    - security_class_t
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 109
    functionName: security_compute_create_name_raw
    functionSourceFile: /src/selinux/libselinux/src/compute_create.c
    functionUses: 0
    functionsReached:
    - close
    - snprintf
    - object_name_encode
    - malloc
    - write
    - free
    - open
    - memset
    - unmap_class
    - read
    - strlen
    - strdup
    linkageType: ''
    returnType: int
    signature: "int security_compute_create_name_raw(const char *scon, const char
      *tcon,\n\t\t\t\t     security_class_t tclass,\n\t\t\t\t     const char *objname,
      char **newcon)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: security_compute_create_name_raw
      Src: /src/selinux/libselinux/src/compute_create.c:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - scon
    - tcon
    - tclass
    - newcon
    argTypes:
    - char*
    - char*
    - security_class_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 116
    functionName: security_compute_create_raw
    functionSourceFile: /src/selinux/libselinux/src/compute_create.c
    functionUses: 0
    functionsReached:
    - security_compute_create_name_raw
    linkageType: ''
    returnType: int
    signature: "int security_compute_create_raw(const char *scon, const char *tcon,\n\t\t\t\tsecurity_class_t
      tclass, char **newcon)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: selinux_trans_to_raw_context
      Src: /src/selinux/libselinux/src/compute_create.c:127,1
    - Dst: selinux_trans_to_raw_context
      Src: /src/selinux/libselinux/src/compute_create.c:129,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/compute_create.c:130,1
    - Dst: security_compute_create_name_raw
      Src: /src/selinux/libselinux/src/compute_create.c:134,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/compute_create.c:136,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/compute_create.c:137,1
    - Dst: selinux_raw_to_trans_context
      Src: /src/selinux/libselinux/src/compute_create.c:139,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/compute_create.c:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - scon
    - tcon
    - tclass
    - objname
    - newcon
    argTypes:
    - char*
    - char*
    - security_class_t
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 144
    functionName: security_compute_create_name
    functionSourceFile: /src/selinux/libselinux/src/compute_create.c
    functionUses: 0
    functionsReached:
    - security_compute_create_name_raw
    - selinux_raw_to_trans_context
    - freecon
    - selinux_trans_to_raw_context
    linkageType: ''
    returnType: int
    signature: "int security_compute_create_name(const char *scon, const char *tcon,\n\t\t\t\t
      security_class_t tclass, const char *objname,\n\t\t\t\t char **newcon)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: security_compute_create_name
      Src: /src/selinux/libselinux/src/compute_create.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - scon
    - tcon
    - tclass
    - newcon
    argTypes:
    - char*
    - char*
    - security_class_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 3
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: security_compute_create
    functionSourceFile: /src/selinux/libselinux/src/compute_create.c
    functionUses: 0
    functionsReached:
    - security_compute_create_name
    linkageType: ''
    returnType: int
    signature: "int security_compute_create(const char *scon, const char *tcon,\n\t\t\t
      \   security_class_t tclass, char **newcon)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/selinux/libselinux/src/matchpathcon.c:21,1
    - Dst: vfprintf
      Src: /src/selinux/libselinux/src/matchpathcon.c:22,1
    - Dst: va_end
      Src: /src/selinux/libselinux/src/matchpathcon.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: default_printf
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_end
    - vfprintf
    linkageType: ''
    returnType: void
    signature: void default_printf(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: set_matchpathcon_printf
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_matchpathcon_printf(void (*f)(const char *fmt, ...))
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/selinux/libselinux/src/matchpathcon.c:48,1
    - Dst: __pthread_mutex_lock
      Src: /src/selinux/libselinux/src/matchpathcon.c:52,1
    - Dst: __atomic_load_n
      Src: /src/selinux/libselinux/src/matchpathcon.c:54,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/matchpathcon.c:56,1
    - Dst: myinvalidcon
      Src: /src/selinux/libselinux/src/matchpathcon.c:61,1
    - Dst: mycanoncon
      Src: /src/selinux/libselinux/src/matchpathcon.c:63,1
    - Dst: __atomic_store_n
      Src: /src/selinux/libselinux/src/matchpathcon.c:66,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/matchpathcon.c:68,1
    - Dst: selabel_validate
      Src: /src/selinux/libselinux/src/matchpathcon.c:70,1
    - Dst: COMPAT_LOG
      Src: /src/selinux/libselinux/src/matchpathcon.c:73,1
    - Dst: COMPAT_LOG
      Src: /src/selinux/libselinux/src/matchpathcon.c:78,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 4
    argNames:
    - rec
    - contexts
    - path
    - lineno
    argTypes:
    - struct selabel_handle*
    - struct selabel_lookup_rec*
    - char*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 87
    functionName: compat_validate
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 2
    functionsReached:
    - myinvalidcon
    - mycanoncon
    - __atomic_store_n
    - __pthread_mutex_unlock
    - selabel_validate
    - __atomic_load_n
    - __pthread_mutex_lock
    - COMPAT_LOG
    linkageType: ''
    returnType: int
    signature: "int compat_validate(const struct selabel_handle *rec,\n\t\t    struct
      selabel_lookup_rec *contexts, const char *path,\n\t\t    unsigned lineno)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libselinux/src/matchpathcon.c:108,1
    - Dst: free
      Src: /src/selinux/libselinux/src/matchpathcon.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 113
    functionName: free_array_elts
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_array_elts(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_smul_overflow
      Src: /src/selinux/libselinux/src/matchpathcon.c:120,1
    - Dst: free_array_elts
      Src: /src/selinux/libselinux/src/matchpathcon.c:122,1
    - Dst: reallocarray
      Src: /src/selinux/libselinux/src/matchpathcon.c:125,1
    - Dst: free_array_elts
      Src: /src/selinux/libselinux/src/matchpathcon.c:128,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/matchpathcon.c:135,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/matchpathcon.c:142,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - con
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 146
    functionName: add_array_elt
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached:
    - reallocarray
    - malloc
    - free_array_elts
    - __builtin_smul_overflow
    - strdup
    linkageType: ''
    returnType: int
    signature: int add_array_elt(char *con)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: set_matchpathcon_invalidcon
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_matchpathcon_invalidcon(int (*f)(const char *p, unsigned l,
      char *c))
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: security_canonicalize_context_raw
      Src: /src/selinux/libselinux/src/matchpathcon.c:156,1
    - Dst: myprintf
      Src: /src/selinux/libselinux/src/matchpathcon.c:160,1
    - Dst: myprintf
      Src: /src/selinux/libselinux/src/matchpathcon.c:163,1
    - Dst: free
      Src: /src/selinux/libselinux/src/matchpathcon.c:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - path
    - lineno
    - context
    argTypes:
    - char*
    - unsigned
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 169
    functionName: default_canoncon
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached:
    - security_canonicalize_context_raw
    - free
    - myprintf
    linkageType: ''
    returnType: int
    signature: int default_canoncon(const char *path, unsigned lineno, char **context)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: set_matchpathcon_canoncon
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_matchpathcon_canoncon(int (*f)(const char *p, unsigned l,
      char **c))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libselinux/src/matchpathcon.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - flags
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 193
    functionName: set_matchpathcon_flags
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void set_matchpathcon_flags(unsigned int flags)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libselinux/src/matchpathcon.c:236,1
    - Dst: lstat
      Src: /src/selinux/libselinux/src/matchpathcon.c:245,1
    - Dst: free
      Src: /src/selinux/libselinux/src/matchpathcon.c:248,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/matchpathcon.c:249,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/matchpathcon.c:255,1
    - Dst: myprintf
      Src: /src/selinux/libselinux/src/matchpathcon.c:258,1
    - Dst: free
      Src: /src/selinux/libselinux/src/matchpathcon.c:262,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/matchpathcon.c:263,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/matchpathcon.c:273,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/matchpathcon.c:278,1
    - Dst: free
      Src: /src/selinux/libselinux/src/matchpathcon.c:285,1
    - Dst: myprintf
      Src: /src/selinux/libselinux/src/matchpathcon.c:287,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 57
    argCount: 3
    argNames:
    - ino
    - specind
    - file
    argTypes:
    - ino_t
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 290
    functionName: matchpathcon_filespec_add
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached:
    - myprintf
    - malloc
    - strcmp
    - free
    - calloc
    - lstat
    - strdup
    linkageType: ''
    returnType: int
    signature: int matchpathcon_filespec_add(ino_t ino, int specind, const char *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: matchpathcon_filespec_add64
      Src: /src/selinux/libselinux/src/matchpathcon.c:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ino
    - specind
    - file
    argTypes:
    - unsigned long
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 310
    functionName: matchpathcon_filespec_add
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached:
    - matchpathcon_filespec_add64
    linkageType: ''
    returnType: int
    signature: int matchpathcon_filespec_add(unsigned long ino, int specind, const
      char *file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: myprintf
      Src: /src/selinux/libselinux/src/matchpathcon.c:348,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 351
    functionName: matchpathcon_filespec_eval
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached:
    - myprintf
    linkageType: ''
    returnType: void
    signature: void matchpathcon_filespec_eval(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_array_elts
      Src: /src/selinux/libselinux/src/matchpathcon.c:361,1
    - Dst: free
      Src: /src/selinux/libselinux/src/matchpathcon.c:371,1
    - Dst: free
      Src: /src/selinux/libselinux/src/matchpathcon.c:372,1
    - Dst: free
      Src: /src/selinux/libselinux/src/matchpathcon.c:376,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 378
    functionName: matchpathcon_filespec_destroy
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached:
    - free
    - free_array_elts
    linkageType: ''
    returnType: void
    signature: void matchpathcon_filespec_destroy(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free_array_elts
      Src: /src/selinux/libselinux/src/matchpathcon.c:382,1
    - Dst: selabel_close
      Src: /src/selinux/libselinux/src/matchpathcon.c:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 388
    functionName: matchpathcon_fini_internal
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached:
    - selabel_close
    - free_array_elts
    linkageType: ''
    returnType: void
    signature: void matchpathcon_fini_internal(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: matchpathcon_fini_internal
      Src: /src/selinux/libselinux/src/matchpathcon.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 390
    functionDepth: 3
    functionLinenumber: 390
    functionLinenumberEnd: 393
    functionName: matchpathcon_thread_destructor
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached:
    - matchpathcon_fini_internal
    linkageType: ''
    returnType: void
    signature: void matchpathcon_thread_destructor(void __attribute__((unused)) *
      ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __selinux_key_delete
      Src: /src/selinux/libselinux/src/matchpathcon.c:400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 401
    functionName: matchpathcon_lib_destructor
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached:
    - __selinux_key_delete
    linkageType: ''
    returnType: void
    signature: void matchpathcon_lib_destructor(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __selinux_key_create
      Src: /src/selinux/libselinux/src/matchpathcon.c:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 408
    functionName: matchpathcon_init_once
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached:
    - __selinux_key_create
    linkageType: ''
    returnType: void
    signature: void matchpathcon_init_once(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __selinux_once
      Src: /src/selinux/libselinux/src/matchpathcon.c:415,1
    - Dst: __selinux_setspecific
      Src: /src/selinux/libselinux/src/matchpathcon.c:416,1
    - Dst: selabel_open
      Src: /src/selinux/libselinux/src/matchpathcon.c:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - path
    - subset
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 410
    functionDepth: 2
    functionLinenumber: 410
    functionLinenumberEnd: 427
    functionName: matchpathcon_init_prefix
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached:
    - selabel_open
    - __selinux_once
    - __selinux_setspecific
    linkageType: ''
    returnType: int
    signature: int matchpathcon_init_prefix(const char *path, const char *subset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: matchpathcon_init_prefix
      Src: /src/selinux/libselinux/src/matchpathcon.c:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 432
    functionName: matchpathcon_init
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached:
    - matchpathcon_init_prefix
    linkageType: ''
    returnType: int
    signature: int matchpathcon_init(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: matchpathcon_fini_internal
      Src: /src/selinux/libselinux/src/matchpathcon.c:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 434
    functionDepth: 3
    functionLinenumber: 434
    functionLinenumberEnd: 437
    functionName: matchpathcon_fini
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached:
    - matchpathcon_fini_internal
    linkageType: ''
    returnType: void
    signature: void matchpathcon_fini(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libselinux/src/matchpathcon.c:452,1
    - Dst: myprintf
      Src: /src/selinux/libselinux/src/matchpathcon.c:454,1
    - Dst: strrchr
      Src: /src/selinux/libselinux/src/matchpathcon.c:459,1
    - Dst: strcpy
      Src: /src/selinux/libselinux/src/matchpathcon.c:463,1
    - Dst: realpath
      Src: /src/selinux/libselinux/src/matchpathcon.c:467,1
    - Dst: realpath
      Src: /src/selinux/libselinux/src/matchpathcon.c:470,1
    - Dst: myprintf
      Src: /src/selinux/libselinux/src/matchpathcon.c:474,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/matchpathcon.c:479,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/matchpathcon.c:480,1
    - Dst: myprintf
      Src: /src/selinux/libselinux/src/matchpathcon.c:481,1
    - Dst: strcpy
      Src: /src/selinux/libselinux/src/matchpathcon.c:489,1
    - Dst: strcpy
      Src: /src/selinux/libselinux/src/matchpathcon.c:491,1
    - Dst: free
      Src: /src/selinux/libselinux/src/matchpathcon.c:493,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 2
    argNames:
    - name
    - resolved_path
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 495
    functionName: realpath_not_final
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached:
    - myprintf
    - realpath
    - strcpy
    - free
    - strrchr
    - strlen
    - strdup
    linkageType: ''
    returnType: int
    signature: int realpath_not_final(const char *name, char *resolved_path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: matchpathcon_init_prefix
      Src: /src/selinux/libselinux/src/matchpathcon.c:501,1
    - Dst: S_ISLNK
      Src: /src/selinux/libselinux/src/matchpathcon.c:504,1
    - Dst: realpath_not_final
      Src: /src/selinux/libselinux/src/matchpathcon.c:505,1
    - Dst: realpath
      Src: /src/selinux/libselinux/src/matchpathcon.c:508,1
    - Dst: selabel_lookup_raw
      Src: /src/selinux/libselinux/src/matchpathcon.c:513,1
    - Dst: selabel_lookup
      Src: /src/selinux/libselinux/src/matchpathcon.c:514,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - path
    - mode
    - con
    argTypes:
    - char*
    - mode_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 497
    functionDepth: 4
    functionLinenumber: 497
    functionLinenumberEnd: 515
    functionName: matchpathcon_internal
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached:
    - S_ISLNK
    - realpath
    - selabel_lookup_raw
    - selabel_lookup
    - matchpathcon_init_prefix
    - realpath_not_final
    linkageType: ''
    returnType: int
    signature: int matchpathcon_internal(const char *path, mode_t mode, char **con)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: matchpathcon_internal
      Src: /src/selinux/libselinux/src/matchpathcon.c:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - path
    - mode
    - con
    argTypes:
    - char*
    - mode_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 517
    functionDepth: 5
    functionLinenumber: 517
    functionLinenumberEnd: 520
    functionName: matchpathcon
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached:
    - matchpathcon_internal
    linkageType: ''
    returnType: int
    signature: int matchpathcon(const char *path, mode_t mode, char **con)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: matchpathcon_internal
      Src: /src/selinux/libselinux/src/matchpathcon.c:524,1
    - Dst: add_array_elt
      Src: /src/selinux/libselinux/src/matchpathcon.c:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - name
    - mode
    - con
    argTypes:
    - char*
    - mode_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 522
    functionDepth: 5
    functionLinenumber: 522
    functionLinenumberEnd: 530
    functionName: matchpathcon_index
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached:
    - add_array_elt
    - matchpathcon_internal
    linkageType: ''
    returnType: int
    signature: int matchpathcon_index(const char *name, mode_t mode, char **con)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: selabel_stats
      Src: /src/selinux/libselinux/src/matchpathcon.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 535
    functionName: matchpathcon_checkmatches
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached:
    - selabel_stats
    linkageType: ''
    returnType: void
    signature: void matchpathcon_checkmatches(char *str __attribute__((unused)))
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/selinux/libselinux/src/matchpathcon.c:548,1
    - Dst: strchr
      Src: /src/selinux/libselinux/src/matchpathcon.c:549,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/matchpathcon.c:556,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 557
    functionName: selinux_file_context_cmp
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached:
    - strchr
    - strcmp
    linkageType: ''
    returnType: int
    signature: int selinux_file_context_cmp(const char *a, const char *b)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: S_ISLNK
      Src: /src/selinux/libselinux/src/matchpathcon.c:567,1
    - Dst: realpath_not_final
      Src: /src/selinux/libselinux/src/matchpathcon.c:568,1
    - Dst: realpath
      Src: /src/selinux/libselinux/src/matchpathcon.c:571,1
    - Dst: lgetfilecon_raw
      Src: /src/selinux/libselinux/src/matchpathcon.c:576,1
    - Dst: matchpathcon_init_prefix
      Src: /src/selinux/libselinux/src/matchpathcon.c:584,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/matchpathcon.c:585,1
    - Dst: selabel_lookup_raw
      Src: /src/selinux/libselinux/src/matchpathcon.c:589,1
    - Dst: selinux_file_context_cmp
      Src: /src/selinux/libselinux/src/matchpathcon.c:601,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/matchpathcon.c:604,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/matchpathcon.c:605,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 559
    functionDepth: 4
    functionLinenumber: 559
    functionLinenumberEnd: 607
    functionName: selinux_file_context_verify
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached:
    - freecon
    - S_ISLNK
    - realpath
    - selinux_file_context_cmp
    - selabel_lookup_raw
    - realpath_not_final
    - matchpathcon_init_prefix
    - lgetfilecon_raw
    linkageType: ''
    returnType: int
    signature: int selinux_file_context_verify(const char *path, mode_t mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/selinux/libselinux/src/matchpathcon.c:614,1
    - Dst: matchpathcon_init_prefix
      Src: /src/selinux/libselinux/src/matchpathcon.c:617,1
    - Dst: selabel_lookup_raw
      Src: /src/selinux/libselinux/src/matchpathcon.c:622,1
    - Dst: lsetfilecon_raw
      Src: /src/selinux/libselinux/src/matchpathcon.c:626,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/matchpathcon.c:627,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 609
    functionDepth: 4
    functionLinenumber: 609
    functionLinenumberEnd: 630
    functionName: selinux_lsetfilecon_default
    functionSourceFile: /src/selinux/libselinux/src/matchpathcon.c
    functionUses: 0
    functionsReached:
    - freecon
    - lsetfilecon_raw
    - selabel_lookup_raw
    - matchpathcon_init_prefix
    - lstat
    linkageType: ''
    returnType: int
    signature: int selinux_lsetfilecon_default(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettid
      Src: /src/selinux/libselinux/src/procattr.c:45,1
    - Dst: syscall
      Src: /src/selinux/libselinux/src/procattr.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: selinux_gettid
    functionSourceFile: /src/selinux/libselinux/src/procattr.c
    functionUses: 0
    functionsReached:
    - gettid
    - syscall
    linkageType: ''
    returnType: pid_t
    signature: pid_t selinux_gettid(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libselinux/src/procattr.c:54,1
    - Dst: free
      Src: /src/selinux/libselinux/src/procattr.c:56,1
    - Dst: free
      Src: /src/selinux/libselinux/src/procattr.c:58,1
    - Dst: free
      Src: /src/selinux/libselinux/src/procattr.c:60,1
    - Dst: free
      Src: /src/selinux/libselinux/src/procattr.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 63
    functionName: procattr_thread_destructor
    functionSourceFile: /src/selinux/libselinux/src/procattr.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void procattr_thread_destructor(void __attribute__((unused)) * unused)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __selinux_key_delete
      Src: /src/selinux/libselinux/src/procattr.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: procattr_destructor
    functionSourceFile: /src/selinux/libselinux/src/procattr.c
    functionUses: 0
    functionsReached:
    - __selinux_key_delete
    linkageType: ''
    returnType: void
    signature: void procattr_destructor(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __selinux_setspecific
      Src: /src/selinux/libselinux/src/procattr.c:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 81
    functionName: init_thread_destructor
    functionSourceFile: /src/selinux/libselinux/src/procattr.c
    functionUses: 0
    functionsReached:
    - __selinux_setspecific
    linkageType: ''
    returnType: void
    signature: void init_thread_destructor(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __selinux_key_create
      Src: /src/selinux/libselinux/src/procattr.c:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: init_procattr
    functionSourceFile: /src/selinux/libselinux/src/procattr.c
    functionUses: 0
    functionsReached:
    - __selinux_key_create
    linkageType: ''
    returnType: void
    signature: void init_procattr(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/procattr.c:101,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/procattr.c:104,1
    - Dst: open
      Src: /src/selinux/libselinux/src/procattr.c:110,1
    - Dst: selinux_gettid
      Src: /src/selinux/libselinux/src/procattr.c:113,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/procattr.c:114,1
    - Dst: open
      Src: /src/selinux/libselinux/src/procattr.c:125,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - pid
    - attr
    - flags
    argTypes:
    - pid_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 126
    functionName: openattr
    functionSourceFile: /src/selinux/libselinux/src/procattr.c
    functionUses: 0
    functionsReached:
    - open
    - snprintf
    - selinux_gettid
    linkageType: ''
    returnType: int
    signature: int openattr(pid_t pid, const char *attr, int flags)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: __selinux_once
      Src: /src/selinux/libselinux/src/procattr.c:137,1
    - Dst: init_thread_destructor
      Src: /src/selinux/libselinux/src/procattr.c:138,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/procattr.c:141,1
    - Dst: openattr
      Src: /src/selinux/libselinux/src/procattr.c:148,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/procattr.c:153,1
    - Dst: read
      Src: /src/selinux/libselinux/src/procattr.c:160,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/procattr.c:170,1
    - Dst: free
      Src: /src/selinux/libselinux/src/procattr.c:177,1
    - Dst: close
      Src: /src/selinux/libselinux/src/procattr.c:179,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 45
    argCount: 4
    argNames:
    - context
    - pid
    - attr
    - prev_context
    argTypes:
    - char**
    - pid_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 182
    functionName: getprocattrcon_raw
    functionSourceFile: /src/selinux/libselinux/src/procattr.c
    functionUses: 0
    functionsReached:
    - close
    - openattr
    - __selinux_once
    - free
    - calloc
    - read
    - init_thread_destructor
    - strdup
    linkageType: ''
    returnType: int
    signature: "int getprocattrcon_raw(char **context, pid_t pid, const char *attr,\n\t\t\t
      \     const char *prev_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getprocattrcon_raw
      Src: /src/selinux/libselinux/src/procattr.c:190,1
    - Dst: selinux_raw_to_trans_context
      Src: /src/selinux/libselinux/src/procattr.c:193,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/procattr.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - context
    - pid
    - attr
    - prev_context
    argTypes:
    - char**
    - pid_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 198
    functionName: getprocattrcon
    functionSourceFile: /src/selinux/libselinux/src/procattr.c
    functionUses: 0
    functionsReached:
    - getprocattrcon_raw
    - selinux_raw_to_trans_context
    - freecon
    linkageType: ''
    returnType: int
    signature: "int getprocattrcon(char **context, pid_t pid, const char *attr,\n\t\t\t
      \ const char *prev_context)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: __selinux_once
      Src: /src/selinux/libselinux/src/procattr.c:208,1
    - Dst: init_thread_destructor
      Src: /src/selinux/libselinux/src/procattr.c:209,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/procattr.c:214,1
    - Dst: openattr
      Src: /src/selinux/libselinux/src/procattr.c:217,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/procattr.c:222,1
    - Dst: write
      Src: /src/selinux/libselinux/src/procattr.c:226,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/procattr.c:226,1
    - Dst: write
      Src: /src/selinux/libselinux/src/procattr.c:230,1
    - Dst: close
      Src: /src/selinux/libselinux/src/procattr.c:235,1
    - Dst: free
      Src: /src/selinux/libselinux/src/procattr.c:238,1
    - Dst: free
      Src: /src/selinux/libselinux/src/procattr.c:242,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 3
    argNames:
    - context
    - attr
    - prev_context
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 246
    functionName: setprocattrcon_raw
    functionSourceFile: /src/selinux/libselinux/src/procattr.c
    functionUses: 0
    functionsReached:
    - close
    - strcmp
    - openattr
    - write
    - __selinux_once
    - free
    - init_thread_destructor
    - strlen
    - strdup
    linkageType: ''
    returnType: int
    signature: "int setprocattrcon_raw(const char *context, const char *attr,\n\t\t\t
      \     char **prev_context)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: selinux_trans_to_raw_context
      Src: /src/selinux/libselinux/src/procattr.c:254,1
    - Dst: setprocattrcon_raw
      Src: /src/selinux/libselinux/src/procattr.c:257,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/procattr.c:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - context
    - attr
    - prev_context
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 248
    functionDepth: 3
    functionLinenumber: 248
    functionLinenumberEnd: 262
    functionName: setprocattrcon
    functionSourceFile: /src/selinux/libselinux/src/procattr.c
    functionUses: 0
    functionsReached:
    - freecon
    - setprocattrcon_raw
    - selinux_trans_to_raw_context
    linkageType: ''
    returnType: int
    signature: "int setprocattrcon(const char *context, const char *attr,\n\t\t\t
      \ char **prev_context)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fn
    - ','
    - attr
    - ','
    - prev_context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 273
    functionName: getselfattr_def
    functionSourceFile: /src/selinux/libselinux/src/procattr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: getselfattr_def(fn, attr, prev_context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fn
    - ','
    - attr
    - ','
    - prev_context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 283
    functionName: setselfattr_def
    functionSourceFile: /src/selinux/libselinux/src/procattr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: setselfattr_def(fn, attr, prev_context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - fn
    - ','
    - attr
    - ','
    - prev_context
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 287
    functionName: all_selfattr_def
    functionSourceFile: /src/selinux/libselinux/src/procattr.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: all_selfattr_def(fn, attr, prev_context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getprocattrcon_raw
      Src: /src/selinux/libselinux/src/procattr.c:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pid
    - c
    argTypes:
    - pid_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 304
    functionName: getpidcon_raw
    functionSourceFile: /src/selinux/libselinux/src/procattr.c
    functionUses: 1
    functionsReached:
    - getprocattrcon_raw
    linkageType: ''
    returnType: int
    signature: int getpidcon_raw(pid_t pid, char **c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getprocattrcon
      Src: /src/selinux/libselinux/src/procattr.c:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pid
    - c
    argTypes:
    - pid_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 306
    functionDepth: 4
    functionLinenumber: 306
    functionLinenumberEnd: 313
    functionName: getpidcon
    functionSourceFile: /src/selinux/libselinux/src/procattr.c
    functionUses: 1
    functionsReached:
    - getprocattrcon
    linkageType: ''
    returnType: int
    signature: int getpidcon(pid_t pid, char **c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getprocattrcon_raw
      Src: /src/selinux/libselinux/src/procattr.c:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pid
    - c
    argTypes:
    - pid_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 315
    functionDepth: 3
    functionLinenumber: 315
    functionLinenumberEnd: 322
    functionName: getpidprevcon_raw
    functionSourceFile: /src/selinux/libselinux/src/procattr.c
    functionUses: 0
    functionsReached:
    - getprocattrcon_raw
    linkageType: ''
    returnType: int
    signature: int getpidprevcon_raw(pid_t pid, char **c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getprocattrcon
      Src: /src/selinux/libselinux/src/procattr.c:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - pid
    - c
    argTypes:
    - pid_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 324
    functionDepth: 4
    functionLinenumber: 324
    functionLinenumberEnd: 331
    functionName: getpidprevcon
    functionSourceFile: /src/selinux/libselinux/src/procattr.c
    functionUses: 0
    functionsReached:
    - getprocattrcon
    linkageType: ''
    returnType: int
    signature: int getpidprevcon(pid_t pid, char **c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: L1
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: L1(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - l
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: L2
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: L2(l)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - n
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: S_
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: S_(n, s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/libselinux/src/selinux_config.c:89,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/selinux_config.c:93,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/selinux_config.c:95,1
    - Dst: fgets_unlocked
      Src: /src/selinux/libselinux/src/selinux_config.c:101,1
    - Dst: strncmp
      Src: /src/selinux/libselinux/src/selinux_config.c:102,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/selinux_config.c:106,1
    - Dst: strncasecmp
      Src: /src/selinux/libselinux/src/selinux_config.c:109,1
    - Dst: strncasecmp
      Src: /src/selinux/libselinux/src/selinux_config.c:113,1
    - Dst: strncasecmp
      Src: /src/selinux/libselinux/src/selinux_config.c:118,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/selinux_config.c:126,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_config.c:127,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 1
    argNames:
    - enforce
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 130
    functionName: selinux_getenforcemode
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 1
    functionsReached:
    - strncmp
    - fclose
    - strncasecmp
    - isspace
    - malloc
    - free
    - fopen
    - fgets_unlocked
    linkageType: ''
    returnType: int
    signature: int selinux_getenforcemode(int *enforce)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __selinux_once
      Src: /src/selinux/libselinux/src/selinux_config.c:136,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/selinux_config.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 141
    functionName: selinux_getpolicytype
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached:
    - __selinux_once
    - strdup
    linkageType: ''
    returnType: int
    signature: int selinux_getpolicytype(char **type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_config.c:145,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/selinux_config.c:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: setpolicytype
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached:
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: int setpolicytype(const char *type)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/libselinux/src/selinux_config.c:163,1
    - Dst: __fsetlocking
      Src: /src/selinux/libselinux/src/selinux_config.c:165,1
    - Dst: getline
      Src: /src/selinux/libselinux/src/selinux_config.c:166,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/selinux_config.c:170,1
    - Dst: strncasecmp
      Src: /src/selinux/libselinux/src/selinux_config.c:175,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/selinux_config.c:178,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/selinux_config.c:180,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_config.c:182,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/selinux_config.c:183,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/selinux_config.c:186,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/selinux_config.c:188,1
    - Dst: iscntrl
      Src: /src/selinux/libselinux/src/selinux_config.c:189,1
    - Dst: setpolicytype
      Src: /src/selinux/libselinux/src/selinux_config.c:193,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_config.c:194,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_config.c:195,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/selinux_config.c:196,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_config.c:199,1
    - Dst: strncmp
      Src: /src/selinux/libselinux/src/selinux_config.c:201,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/selinux_config.c:204,1
    - Dst: isdigit
      Src: /src/selinux/libselinux/src/selinux_config.c:211,1
    - Dst: atoi
      Src: /src/selinux/libselinux/src/selinux_config.c:212,1
    - Dst: strncasecmp
      Src: /src/selinux/libselinux/src/selinux_config.c:213,1
    - Dst: strncasecmp
      Src: /src/selinux/libselinux/src/selinux_config.c:216,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_config.c:220,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/selinux_config.c:221,1
    - Dst: setpolicytype
      Src: /src/selinux/libselinux/src/selinux_config.c:224,1
    - Dst: asprintf
      Src: /src/selinux/libselinux/src/selinux_config.c:227,1
    - Dst: asprintf
      Src: /src/selinux/libselinux/src/selinux_config.c:232,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 236
    functionName: init_selinux_config
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached:
    - strncmp
    - fclose
    - strncasecmp
    - strlen
    - isspace
    - asprintf
    - iscntrl
    - __fsetlocking
    - atoi
    - free
    - isdigit
    - fopen
    - setpolicytype
    - getline
    - strdup
    linkageType: ''
    returnType: void
    signature: void init_selinux_config(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_config.c:243,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_config.c:246,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_config.c:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 251
    functionName: fini_selinux_policyroot
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void fini_selinux_policyroot(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fini_selinux_policyroot
      Src: /src/selinux/libselinux/src/selinux_config.c:255,1
    - Dst: init_selinux_config
      Src: /src/selinux/libselinux/src/selinux_config.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 253
    functionDepth: 2
    functionLinenumber: 253
    functionLinenumberEnd: 257
    functionName: selinux_reset_config
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached:
    - fini_selinux_policyroot
    - init_selinux_config
    linkageType: ''
    returnType: void
    signature: void selinux_reset_config(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __selinux_once
      Src: /src/selinux/libselinux/src/selinux_config.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 263
    functionName: get_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 12
    functionsReached:
    - __selinux_once
    linkageType: ''
    returnType: char
    signature: char *get_path(int idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 268
    functionName: selinux_default_type_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 1
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_default_type_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __selinux_once
      Src: /src/selinux/libselinux/src/selinux_config.c:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 274
    functionName: selinux_policy_root
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 4
    functionsReached:
    - __selinux_once
    linkageType: ''
    returnType: char
    signature: char *selinux_policy_root(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/selinux/libselinux/src/selinux_config.c:279,1
    - Dst: fini_selinux_policyroot
      Src: /src/selinux/libselinux/src/selinux_config.c:286,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/selinux_config.c:288,1
    - Dst: setpolicytype
      Src: /src/selinux/libselinux/src/selinux_config.c:292,1
    - Dst: asprintf
      Src: /src/selinux/libselinux/src/selinux_config.c:296,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 302
    functionName: selinux_set_policy_root
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 1
    functionsReached:
    - asprintf
    - strrchr
    - setpolicytype
    - fini_selinux_policyroot
    - strdup
    linkageType: ''
    returnType: int
    signature: int selinux_set_policy_root(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: selinux_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *selinux_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 312
    functionName: selinux_default_context_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_default_context_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: selinux_securetty_types_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_securetty_types_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 322
    functionName: selinux_failsafe_context_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_failsafe_context_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 327
    functionName: selinux_removable_context_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_removable_context_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: selinux_binary_policy_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 2
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_binary_policy_path(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/selinux_config.c:341,1
    - Dst: access
      Src: /src/selinux/libselinux/src/selinux_config.c:343,1
    - Dst: security_policyvers
      Src: /src/selinux/libselinux/src/selinux_config.c:347,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/selinux_config.c:350,1
    - Dst: selinux_binary_policy_path
      Src: /src/selinux/libselinux/src/selinux_config.c:351,1
    - Dst: access
      Src: /src/selinux/libselinux/src/selinux_config.c:352,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 357
    functionName: selinux_current_policy_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 1
    functionsReached:
    - selinux_binary_policy_path
    - access
    - snprintf
    - security_policyvers
    linkageType: ''
    returnType: char
    signature: char *selinux_current_policy_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: selinux_file_context_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 3
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_file_context_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 367
    functionName: selinux_homedir_context_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_homedir_context_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 372
    functionName: selinux_media_context_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_media_context_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 377
    functionName: selinux_customizable_types_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_customizable_types_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 382
    functionName: selinux_contexts_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 1
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_contexts_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 387
    functionName: selinux_user_contexts_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_user_contexts_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 393
    functionName: selinux_booleans_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_booleans_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 399
    functionName: selinux_users_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_users_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 401
    functionDepth: 2
    functionLinenumber: 401
    functionLinenumberEnd: 404
    functionName: selinux_usersconf_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 1
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_usersconf_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 409
    functionName: selinux_translations_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 1
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_translations_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 414
    functionName: selinux_colors_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 1
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_colors_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 419
    functionName: selinux_netfilter_context_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 1
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_netfilter_context_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 424
    functionName: selinux_file_context_homedir_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 1
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_file_context_homedir_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 429
    functionName: selinux_file_context_local_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 1
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_file_context_local_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 434
    functionName: selinux_x_context_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 1
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_x_context_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 439
    functionName: selinux_virtual_domain_context_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_virtual_domain_context_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 441
    functionDepth: 2
    functionLinenumber: 441
    functionLinenumberEnd: 444
    functionName: selinux_virtual_image_context_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_virtual_image_context_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 449
    functionName: selinux_lxc_contexts_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_lxc_contexts_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 454
    functionName: selinux_openrc_contexts_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_openrc_contexts_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 459
    functionName: selinux_openssh_contexts_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_openssh_contexts_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 464
    functionName: selinux_snapperd_contexts_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_snapperd_contexts_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 469
    functionName: selinux_systemd_contexts_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_systemd_contexts_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 474
    functionName: selinux_booleans_subs_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_booleans_subs_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 479
    functionName: selinux_file_context_subs_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 1
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_file_context_subs_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 484
    functionName: selinux_file_context_subs_dist_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 1
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_file_context_subs_dist_path(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_path
      Src: /src/selinux/libselinux/src/selinux_config.c:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 486
    functionDepth: 2
    functionLinenumber: 486
    functionLinenumberEnd: 489
    functionName: selinux_sepgsql_context_path
    functionSourceFile: /src/selinux/libselinux/src/selinux_config.c
    functionUses: 0
    functionsReached:
    - get_path
    linkageType: ''
    returnType: char
    signature: char *selinux_sepgsql_context_path(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lsetxattr
      Src: /src/selinux/libselinux/src/lsetfilecon.c:12,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/lsetfilecon.c:13,1
    - Dst: lgetfilecon_raw
      Src: /src/selinux/libselinux/src/lsetfilecon.c:17,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/lsetfilecon.c:18,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/lsetfilecon.c:23,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - path
    - context
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 26
    functionName: lsetfilecon_raw
    functionSourceFile: /src/selinux/libselinux/src/lsetfilecon.c
    functionUses: 1
    functionsReached:
    - lsetxattr
    - freecon
    - strcmp
    - lgetfilecon_raw
    - strlen
    linkageType: ''
    returnType: int
    signature: int lsetfilecon_raw(const char *path, const char *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: selinux_trans_to_raw_context
      Src: /src/selinux/libselinux/src/lsetfilecon.c:33,1
    - Dst: lsetfilecon_raw
      Src: /src/selinux/libselinux/src/lsetfilecon.c:36,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/lsetfilecon.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - path
    - context
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 41
    functionName: lsetfilecon
    functionSourceFile: /src/selinux/libselinux/src/lsetfilecon.c
    functionUses: 0
    functionsReached:
    - lsetfilecon_raw
    - freecon
    - selinux_trans_to_raw_context
    linkageType: ''
    returnType: int
    signature: int lsetfilecon(const char *path, const char *context)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/libselinux/src/selinux_check_securetty_context.c:11,1
    - Dst: selinux_securetty_types_path
      Src: /src/selinux/libselinux/src/selinux_check_securetty_context.c:11,1
    - Dst: context_new
      Src: /src/selinux/libselinux/src/selinux_check_securetty_context.c:15,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/selinux_check_securetty_context.c:17,1
    - Dst: context_type_get
      Src: /src/selinux/libselinux/src/selinux_check_securetty_context.c:21,1
    - Dst: getline
      Src: /src/selinux/libselinux/src/selinux_check_securetty_context.c:28,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/selinux_check_securetty_context.c:34,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/selinux_check_securetty_context.c:40,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/selinux_check_securetty_context.c:44,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_check_securetty_context.c:50,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/selinux_check_securetty_context.c:51,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/selinux_check_securetty_context.c:52,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 1
    argNames:
    - tty_context
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 9
    functionDepth: 3
    functionLinenumber: 9
    functionLinenumberEnd: 55
    functionName: selinux_check_securetty_context
    functionSourceFile: /src/selinux/libselinux/src/selinux_check_securetty_context.c
    functionUses: 1
    functionsReached:
    - fclose
    - context_new
    - isspace
    - strcmp
    - free
    - context_type_get
    - fopen
    - selinux_securetty_types_path
    - getline
    - context_free
    linkageType: ''
    returnType: int
    signature: int selinux_check_securetty_context(const char *tty_context)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/check_context.c:22,1
    - Dst: open
      Src: /src/selinux/libselinux/src/check_context.c:23,1
    - Dst: write
      Src: /src/selinux/libselinux/src/check_context.c:27,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/check_context.c:27,1
    - Dst: close
      Src: /src/selinux/libselinux/src/check_context.c:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - con
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 32
    functionName: security_check_context_raw
    functionSourceFile: /src/selinux/libselinux/src/check_context.c
    functionUses: 0
    functionsReached:
    - close
    - snprintf
    - write
    - open
    - strlen
    linkageType: ''
    returnType: int
    signature: int security_check_context_raw(const char *con)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: selinux_trans_to_raw_context
      Src: /src/selinux/libselinux/src/check_context.c:39,1
    - Dst: security_check_context_raw
      Src: /src/selinux/libselinux/src/check_context.c:42,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/check_context.c:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - con
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 47
    functionName: security_check_context
    functionSourceFile: /src/selinux/libselinux/src/check_context.c
    functionUses: 1
    functionsReached:
    - security_check_context_raw
    - freecon
    - selinux_trans_to_raw_context
    linkageType: ''
    returnType: int
    signature: int security_check_context(const char *con)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libselinux/src/audit2why.c:58,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/audit2why.c:61,1
    - Dst: sepol_bool_get_name
      Src: /src/selinux/libselinux/src/audit2why.c:61,1
    - Dst: free
      Src: /src/selinux/libselinux/src/audit2why.c:63,1
    - Dst: sepol_bool_get_value
      Src: /src/selinux/libselinux/src/audit2why.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - boolean
    - arg
    argTypes:
    - sepol_bool_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 69
    functionName: load_booleans
    functionSourceFile: /src/selinux/libselinux/src/audit2why.c
    functionUses: 0
    functionsReached:
    - sepol_bool_get_name
    - malloc
    - sepol_bool_get_value
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: int load_booleans(const sepol_bool_t *boolean, void *arg)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libselinux/src/audit2why.c:86,1
    - Dst: PyErr_SetString
      Src: /src/selinux/libselinux/src/audit2why.c:88,1
    - Dst: sepol_bool_key_create
      Src: /src/selinux/libselinux/src/audit2why.c:94,1
    - Dst: PyErr_SetString
      Src: /src/selinux/libselinux/src/audit2why.c:96,1
    - Dst: sepol_bool_query
      Src: /src/selinux/libselinux/src/audit2why.c:100,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/audit2why.c:104,1
    - Dst: PyErr_SetString
      Src: /src/selinux/libselinux/src/audit2why.c:106,1
    - Dst: sepol_bool_set_value
      Src: /src/selinux/libselinux/src/audit2why.c:110,1
    - Dst: sepol_bool_set
      Src: /src/selinux/libselinux/src/audit2why.c:112,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/audit2why.c:114,1
    - Dst: PyErr_SetString
      Src: /src/selinux/libselinux/src/audit2why.c:116,1
    - Dst: sepol_compute_av_reason
      Src: /src/selinux/libselinux/src/audit2why.c:121,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/audit2why.c:124,1
    - Dst: PyErr_SetString
      Src: /src/selinux/libselinux/src/audit2why.c:127,1
    - Dst: sepol_bool_set_value
      Src: /src/selinux/libselinux/src/audit2why.c:136,1
    - Dst: sepol_bool_set
      Src: /src/selinux/libselinux/src/audit2why.c:137,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/audit2why.c:140,1
    - Dst: PyErr_SetString
      Src: /src/selinux/libselinux/src/audit2why.c:144,1
    - Dst: sepol_bool_free
      Src: /src/selinux/libselinux/src/audit2why.c:148,1
    - Dst: sepol_bool_key_free
      Src: /src/selinux/libselinux/src/audit2why.c:149,1
    - Dst: sepol_bool_key_free
      Src: /src/selinux/libselinux/src/audit2why.c:154,1
    - Dst: sepol_bool_free
      Src: /src/selinux/libselinux/src/audit2why.c:157,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/audit2why.c:160,1
    - Dst: PyErr_SetString
      Src: /src/selinux/libselinux/src/audit2why.c:162,1
    - Dst: free
      Src: /src/selinux/libselinux/src/audit2why.c:163,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/audit2why.c:170,1
    - Dst: PyErr_SetString
      Src: /src/selinux/libselinux/src/audit2why.c:172,1
    - Dst: free
      Src: /src/selinux/libselinux/src/audit2why.c:179,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 72
    argCount: 1
    argNames:
    - bools
    argTypes:
    - struct boolean_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 71
    functionDepth: 5
    functionLinenumber: 71
    functionLinenumberEnd: 181
    functionName: check_booleans
    functionSourceFile: /src/selinux/libselinux/src/audit2why.c
    functionUses: 0
    functionsReached:
    - sepol_bool_set_value
    - sepol_bool_query
    - snprintf
    - sepol_bool_set
    - sepol_bool_key_free
    - sepol_bool_free
    - sepol_compute_av_reason
    - PyErr_SetString
    - calloc
    - free
    - sepol_bool_key_create
    - strdup
    linkageType: ''
    returnType: int
    signature: int check_booleans(struct boolean_t **bools)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/selinux/libselinux/src/audit2why.c:187,1
    - Dst: free
      Src: /src/selinux/libselinux/src/audit2why.c:193,1
    - Dst: free
      Src: /src/selinux/libselinux/src/audit2why.c:194,1
    - Dst: free
      Src: /src/selinux/libselinux/src/audit2why.c:196,1
    - Dst: sepol_sidtab_shutdown
      Src: /src/selinux/libselinux/src/audit2why.c:197,1
    - Dst: sepol_sidtab_destroy
      Src: /src/selinux/libselinux/src/audit2why.c:198,1
    - Dst: sepol_policydb_free
      Src: /src/selinux/libselinux/src/audit2why.c:199,1
    - Dst: sepol_handle_destroy
      Src: /src/selinux/libselinux/src/audit2why.c:200,1
    - Dst: free
      Src: /src/selinux/libselinux/src/audit2why.c:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 183
    functionDepth: 4
    functionLinenumber: 183
    functionLinenumberEnd: 210
    functionName: finish
    functionSourceFile: /src/selinux/libselinux/src/audit2why.c
    functionUses: 2
    functionsReached:
    - sepol_policydb_free
    - PyArg_ParseTuple
    - sepol_sidtab_shutdown
    - free
    - sepol_handle_destroy
    - sepol_sidtab_destroy
    linkageType: ''
    returnType: PyObject
    signature: PyObject *finish(PyObject *self __attribute__((unused)), PyObject *args)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: selinux_current_policy_path
      Src: /src/selinux/libselinux/src/audit2why.c:224,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/audit2why.c:227,1
    - Dst: PyErr_SetString
      Src: /src/selinux/libselinux/src/audit2why.c:230,1
    - Dst: fopen
      Src: /src/selinux/libselinux/src/audit2why.c:235,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/audit2why.c:237,1
    - Dst: PyErr_SetString
      Src: /src/selinux/libselinux/src/audit2why.c:239,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/audit2why.c:243,1
    - Dst: PyErr_SetString
      Src: /src/selinux/libselinux/src/audit2why.c:245,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/audit2why.c:246,1
    - Dst: sepol_policy_file_create
      Src: /src/selinux/libselinux/src/audit2why.c:253,1
    - Dst: sepol_policydb_create
      Src: /src/selinux/libselinux/src/audit2why.c:254,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/audit2why.c:255,1
    - Dst: PyErr_SetString
      Src: /src/selinux/libselinux/src/audit2why.c:257,1
    - Dst: sepol_policy_file_set_fp
      Src: /src/selinux/libselinux/src/audit2why.c:260,1
    - Dst: sepol_policydb_read
      Src: /src/selinux/libselinux/src/audit2why.c:261,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/audit2why.c:262,1
    - Dst: PyErr_SetString
      Src: /src/selinux/libselinux/src/audit2why.c:264,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/audit2why.c:267,1
    - Dst: sepol_set_policydb
      Src: /src/selinux/libselinux/src/audit2why.c:269,1
    - Dst: sepol_handle_create
      Src: /src/selinux/libselinux/src/audit2why.c:270,1
    - Dst: sepol_msg_set_callback
      Src: /src/selinux/libselinux/src/audit2why.c:272,1
    - Dst: sepol_bool_count
      Src: /src/selinux/libselinux/src/audit2why.c:274,1
    - Dst: PyErr_SetString
      Src: /src/selinux/libselinux/src/audit2why.c:276,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/audit2why.c:282,1
    - Dst: PyErr_SetString
      Src: /src/selinux/libselinux/src/audit2why.c:284,1
    - Dst: sepol_bool_iterate
      Src: /src/selinux/libselinux/src/audit2why.c:288,1
    - Dst: sepol_sidtab_init
      Src: /src/selinux/libselinux/src/audit2why.c:294,1
    - Dst: PyErr_SetString
      Src: /src/selinux/libselinux/src/audit2why.c:296,1
    - Dst: sepol_set_sidtab
      Src: /src/selinux/libselinux/src/audit2why.c:299,1
    - Dst: free
      Src: /src/selinux/libselinux/src/audit2why.c:303,1
    - Dst: sepol_handle_destroy
      Src: /src/selinux/libselinux/src/audit2why.c:307,1
    - Dst: sepol_policydb_free
      Src: /src/selinux/libselinux/src/audit2why.c:309,1
    - Dst: free
      Src: /src/selinux/libselinux/src/audit2why.c:310,1
    - Dst: sepol_policy_file_free
      Src: /src/selinux/libselinux/src/audit2why.c:314,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/audit2why.c:316,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 81
    argCount: 1
    argNames:
    - init_path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 212
    functionDepth: 9
    functionLinenumber: 212
    functionLinenumberEnd: 318
    functionName: __policy_init
    functionSourceFile: /src/selinux/libselinux/src/audit2why.c
    functionUses: 0
    functionsReached:
    - sepol_set_sidtab
    - sepol_policydb_free
    - sepol_sidtab_init
    - fopen
    - sepol_policy_file_create
    - sepol_bool_count
    - sepol_policydb_read
    - sepol_handle_create
    - free
    - sepol_bool_iterate
    - sepol_msg_set_callback
    - calloc
    - PyErr_SetString
    - sepol_policydb_create
    - sepol_policy_file_free
    - fclose
    - snprintf
    - selinux_current_policy_path
    - sepol_policy_file_set_fp
    - sepol_set_policydb
    - sepol_handle_destroy
    linkageType: ''
    returnType: int
    signature: int __policy_init(const char *init_path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PyErr_SetString
      Src: /src/selinux/libselinux/src/audit2why.c:325,1
    - Dst: PyArg_ParseTuple
      Src: /src/selinux/libselinux/src/audit2why.c:329,1
    - Dst: __policy_init
      Src: /src/selinux/libselinux/src/audit2why.c:331,1
    - Dst: Py_BuildValue
      Src: /src/selinux/libselinux/src/audit2why.c:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 320
    functionDepth: 10
    functionLinenumber: 320
    functionLinenumberEnd: 333
    functionName: init
    functionSourceFile: /src/selinux/libselinux/src/audit2why.c
    functionUses: 2110
    functionsReached:
    - Py_BuildValue
    - PyErr_SetString
    - PyArg_ParseTuple
    - __policy_init
    linkageType: ''
    returnType: PyObject
    signature: PyObject *init(PyObject *self __attribute__((unused)), PyObject *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - X
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 339
    functionName: RETURN
    functionSourceFile: /src/selinux/libselinux/src/audit2why.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN(X)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PyArg_ParseTuple
      Src: /src/selinux/libselinux/src/audit2why.c:358,1
    - Dst: PyList_Size
      Src: /src/selinux/libselinux/src/audit2why.c:363,1
    - Dst: RETURN
      Src: /src/selinux/libselinux/src/audit2why.c:370,1
    - Dst: sepol_context_to_sid
      Src: /src/selinux/libselinux/src/audit2why.c:372,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/audit2why.c:372,1
    - Dst: RETURN
      Src: /src/selinux/libselinux/src/audit2why.c:374,1
    - Dst: sepol_context_to_sid
      Src: /src/selinux/libselinux/src/audit2why.c:376,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/audit2why.c:376,1
    - Dst: RETURN
      Src: /src/selinux/libselinux/src/audit2why.c:378,1
    - Dst: sepol_string_to_security_class
      Src: /src/selinux/libselinux/src/audit2why.c:380,1
    - Dst: RETURN
      Src: /src/selinux/libselinux/src/audit2why.c:382,1
    - Dst: PyList_GetItem
      Src: /src/selinux/libselinux/src/audit2why.c:393,1
    - Dst: _PyUnicode_AsString
      Src: /src/selinux/libselinux/src/audit2why.c:396,1
    - Dst: sepol_string_to_av_perm
      Src: /src/selinux/libselinux/src/audit2why.c:401,1
    - Dst: RETURN
      Src: /src/selinux/libselinux/src/audit2why.c:403,1
    - Dst: sepol_compute_av_reason_buffer
      Src: /src/selinux/libselinux/src/audit2why.c:409,1
    - Dst: RETURN
      Src: /src/selinux/libselinux/src/audit2why.c:412,1
    - Dst: RETURN
      Src: /src/selinux/libselinux/src/audit2why.c:415,1
    - Dst: check_booleans
      Src: /src/selinux/libselinux/src/audit2why.c:422,1
    - Dst: RETURN
      Src: /src/selinux/libselinux/src/audit2why.c:424,1
    - Dst: RETURN
      Src: /src/selinux/libselinux/src/audit2why.c:426,1
    - Dst: PyList_New
      Src: /src/selinux/libselinux/src/audit2why.c:437,1
    - Dst: Py_BuildValue
      Src: /src/selinux/libselinux/src/audit2why.c:440,1
    - Dst: PyList_SetItem
      Src: /src/selinux/libselinux/src/audit2why.c:442,1
    - Dst: free
      Src: /src/selinux/libselinux/src/audit2why.c:445,1
    - Dst: Py_BuildValue
      Src: /src/selinux/libselinux/src/audit2why.c:447,1
    - Dst: Py_BuildValue
      Src: /src/selinux/libselinux/src/audit2why.c:454,1
    - Dst: free
      Src: /src/selinux/libselinux/src/audit2why.c:455,1
    - Dst: RETURN
      Src: /src/selinux/libselinux/src/audit2why.c:458,1
    - Dst: RETURN
      Src: /src/selinux/libselinux/src/audit2why.c:462,1
    - Dst: RETURN
      Src: /src/selinux/libselinux/src/audit2why.c:465,1
    - Dst: RETURN
      Src: /src/selinux/libselinux/src/audit2why.c:467,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 68
    argCount: 2
    argNames:
    - self
    - args
    argTypes:
    - PyObject*
    - PyObject*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 340
    functionDepth: 6
    functionLinenumber: 340
    functionLinenumberEnd: 468
    functionName: analyze
    functionSourceFile: /src/selinux/libselinux/src/audit2why.c
    functionUses: 0
    functionsReached:
    - PyList_New
    - PyList_SetItem
    - sepol_context_to_sid
    - PyArg_ParseTuple
    - PyList_Size
    - _PyUnicode_AsString
    - sepol_string_to_av_perm
    - RETURN
    - PyList_GetItem
    - Py_BuildValue
    - free
    - sepol_compute_av_reason_buffer
    - sepol_string_to_security_class
    - check_booleans
    - strlen
    linkageType: ''
    returnType: PyObject
    signature: PyObject *analyze(PyObject *self __attribute__((unused)), PyObject
      *args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PyModule_Create
      Src: /src/selinux/libselinux/src/audit2why.c:492,1
    - Dst: PyModule_AddIntConstant
      Src: /src/selinux/libselinux/src/audit2why.c:496,1
    - Dst: PyModule_AddIntConstant
      Src: /src/selinux/libselinux/src/audit2why.c:497,1
    - Dst: PyModule_AddIntConstant
      Src: /src/selinux/libselinux/src/audit2why.c:498,1
    - Dst: PyModule_AddIntConstant
      Src: /src/selinux/libselinux/src/audit2why.c:499,1
    - Dst: PyModule_AddIntConstant
      Src: /src/selinux/libselinux/src/audit2why.c:500,1
    - Dst: PyModule_AddIntConstant
      Src: /src/selinux/libselinux/src/audit2why.c:501,1
    - Dst: PyModule_AddIntConstant
      Src: /src/selinux/libselinux/src/audit2why.c:502,1
    - Dst: PyModule_AddIntConstant
      Src: /src/selinux/libselinux/src/audit2why.c:503,1
    - Dst: PyModule_AddIntConstant
      Src: /src/selinux/libselinux/src/audit2why.c:504,1
    - Dst: PyModule_AddIntConstant
      Src: /src/selinux/libselinux/src/audit2why.c:505,1
    - Dst: PyModule_AddIntConstant
      Src: /src/selinux/libselinux/src/audit2why.c:506,1
    - Dst: PyModule_AddIntConstant
      Src: /src/selinux/libselinux/src/audit2why.c:507,1
    - Dst: PyModule_AddIntConstant
      Src: /src/selinux/libselinux/src/audit2why.c:508,1
    - Dst: PyModule_AddIntConstant
      Src: /src/selinux/libselinux/src/audit2why.c:509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 512
    functionName: PyInit_audit2why
    functionSourceFile: /src/selinux/libselinux/src/audit2why.c
    functionUses: 0
    functionsReached:
    - PyModule_AddIntConstant
    - PyModule_Create
    linkageType: ''
    returnType: PyMODINIT_FUNC
    signature: PyMODINIT_FUNC PyInit_audit2why(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/disable.c:23,1
    - Dst: open
      Src: /src/selinux/libselinux/src/disable.c:24,1
    - Dst: write
      Src: /src/selinux/libselinux/src/disable.c:30,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/disable.c:30,1
    - Dst: close
      Src: /src/selinux/libselinux/src/disable.c:31,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 36
    functionName: security_disable
    functionSourceFile: /src/selinux/libselinux/src/disable.c
    functionUses: 0
    functionsReached:
    - close
    - snprintf
    - write
    - open
    - strlen
    linkageType: ''
    returnType: int
    signature: int security_disable(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libselinux/src/context.c:27,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/context.c:28,1
    - Dst: free
      Src: /src/selinux/libselinux/src/context.c:34,1
    - Dst: strndup
      Src: /src/selinux/libselinux/src/context.c:72,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/context.c:81,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 51
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 83
    functionName: context_new
    functionSourceFile: /src/selinux/libselinux/src/context.c
    functionUses: 7
    functionsReached:
    - context_free
    - free
    - malloc
    - strndup
    linkageType: ''
    returnType: context_t
    signature: context_t context_new(const char *str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libselinux/src/context.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: conditional_free
    functionSourceFile: /src/selinux/libselinux/src/context.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void conditional_free(char **v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: conditional_free
      Src: /src/selinux/libselinux/src/context.c:104,1
    - Dst: conditional_free
      Src: /src/selinux/libselinux/src/context.c:106,1
    - Dst: free
      Src: /src/selinux/libselinux/src/context.c:108,1
    - Dst: free
      Src: /src/selinux/libselinux/src/context.c:110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - context
    argTypes:
    - context_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 112
    functionName: context_free
    functionSourceFile: /src/selinux/libselinux/src/context.c
    functionUses: 68
    functionsReached:
    - free
    - conditional_free
    linkageType: ''
    returnType: void
    signature: void context_free(context_t context)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: conditional_free
      Src: /src/selinux/libselinux/src/context.c:122,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/context.c:125,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/context.c:128,1
    - Dst: stpcpy
      Src: /src/selinux/libselinux/src/context.c:132,1
    - Dst: stpcpy
      Src: /src/selinux/libselinux/src/context.c:136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - context
    argTypes:
    - context_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 141
    functionName: context_str
    functionSourceFile: /src/selinux/libselinux/src/context.c
    functionUses: 4
    functionsReached:
    - stpcpy
    - strlen
    - malloc
    - conditional_free
    linkageType: ''
    returnType: char
    signature: char *context_str(context_t context)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libselinux/src/context.c:154,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/context.c:157,1
    - Dst: stpcpy
      Src: /src/selinux/libselinux/src/context.c:161,1
    - Dst: stpcpy
      Src: /src/selinux/libselinux/src/context.c:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - context
    argTypes:
    - context_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 170
    functionName: context_to_str
    functionSourceFile: /src/selinux/libselinux/src/context.c
    functionUses: 31
    functionsReached:
    - stpcpy
    - malloc
    - strlen
    linkageType: ''
    returnType: char
    signature: char *context_to_str(context_t context)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libselinux/src/context.c:186,1
    - Dst: conditional_free
      Src: /src/selinux/libselinux/src/context.c:191,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - n
    - idx
    - str
    argTypes:
    - context_private_t*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 194
    functionName: set_comp
    functionSourceFile: /src/selinux/libselinux/src/context.c
    functionUses: 0
    functionsReached:
    - conditional_free
    - strdup
    linkageType: ''
    returnType: int
    signature: int set_comp(context_private_t *n, int idx, const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: def_get
    functionSourceFile: /src/selinux/libselinux/src/context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: def_get(name, tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - tag
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: def_set
    functionSourceFile: /src/selinux/libselinux/src/context.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: def_set(name, tag)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_selinux_enabled
      Src: /src/selinux/libselinux/src/setexecfilecon.c:13,1
    - Dst: getcon
      Src: /src/selinux/libselinux/src/setexecfilecon.c:16,1
    - Dst: getfilecon
      Src: /src/selinux/libselinux/src/setexecfilecon.c:20,1
    - Dst: security_compute_create
      Src: /src/selinux/libselinux/src/setexecfilecon.c:24,1
    - Dst: string_to_security_class
      Src: /src/selinux/libselinux/src/setexecfilecon.c:25,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/setexecfilecon.c:29,1
    - Dst: context_new
      Src: /src/selinux/libselinux/src/setexecfilecon.c:32,1
    - Dst: context_type_set
      Src: /src/selinux/libselinux/src/setexecfilecon.c:35,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/setexecfilecon.c:37,1
    - Dst: context_to_str
      Src: /src/selinux/libselinux/src/setexecfilecon.c:38,1
    - Dst: setexeccon
      Src: /src/selinux/libselinux/src/setexecfilecon.c:43,1
    - Dst: security_getenforce
      Src: /src/selinux/libselinux/src/setexecfilecon.c:46,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/setexecfilecon.c:49,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/setexecfilecon.c:50,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/setexecfilecon.c:51,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/setexecfilecon.c:52,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 40
    argCount: 2
    argNames:
    - filename
    - fallback_type
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 7
    functionDepth: 4
    functionLinenumber: 7
    functionLinenumberEnd: 54
    functionName: setexecfilecon
    functionSourceFile: /src/selinux/libselinux/src/setexecfilecon.c
    functionUses: 0
    functionsReached:
    - context_to_str
    - context_new
    - freecon
    - security_getenforce
    - string_to_security_class
    - getfilecon
    - strcmp
    - context_free
    - is_selinux_enabled
    - context_type_set
    - setexeccon
    - security_compute_create
    - getcon
    linkageType: ''
    returnType: int
    signature: int setexecfilecon(const char *filename, const char *fallback_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setexecfilecon
      Src: /src/selinux/libselinux/src/setexecfilecon.c:62,1
    - Dst: execve
      Src: /src/selinux/libselinux/src/setexecfilecon.c:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - verified
    - filename
    - argv
    - envp
    argTypes:
    - unsigned int
    - char*
    - char*[]
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 57
    functionDepth: 5
    functionLinenumber: 57
    functionLinenumberEnd: 67
    functionName: rpm_execcon
    functionSourceFile: /src/selinux/libselinux/src/setexecfilecon.c
    functionUses: 0
    functionsReached:
    - execve
    - setexecfilecon
    linkageType: ''
    returnType: int
    signature: "int rpm_execcon(unsigned int verified __attribute__((unused)),\n\t\tconst
      char *filename, char *const argv[], char *const envp[])"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/canonicalize_context.c:24,1
    - Dst: open
      Src: /src/selinux/libselinux/src/canonicalize_context.c:25,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/canonicalize_context.c:30,1
    - Dst: strlcpy
      Src: /src/selinux/libselinux/src/canonicalize_context.c:35,1
    - Dst: write
      Src: /src/selinux/libselinux/src/canonicalize_context.c:41,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/canonicalize_context.c:41,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/canonicalize_context.c:45,1
    - Dst: read
      Src: /src/selinux/libselinux/src/canonicalize_context.c:46,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/canonicalize_context.c:52,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/canonicalize_context.c:54,1
    - Dst: free
      Src: /src/selinux/libselinux/src/canonicalize_context.c:62,1
    - Dst: close
      Src: /src/selinux/libselinux/src/canonicalize_context.c:63,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 2
    argNames:
    - con
    - canoncon
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 65
    functionName: security_canonicalize_context_raw
    functionSourceFile: /src/selinux/libselinux/src/canonicalize_context.c
    functionUses: 2
    functionsReached:
    - close
    - snprintf
    - strlcpy
    - malloc
    - write
    - free
    - open
    - memset
    - read
    - strlen
    - strdup
    linkageType: ''
    returnType: int
    signature: int security_canonicalize_context_raw(const char *con, char **canoncon)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: selinux_trans_to_raw_context
      Src: /src/selinux/libselinux/src/canonicalize_context.c:73,1
    - Dst: security_canonicalize_context_raw
      Src: /src/selinux/libselinux/src/canonicalize_context.c:76,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/canonicalize_context.c:78,1
    - Dst: selinux_raw_to_trans_context
      Src: /src/selinux/libselinux/src/canonicalize_context.c:80,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/canonicalize_context.c:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - con
    - canoncon
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 85
    functionName: security_canonicalize_context
    functionSourceFile: /src/selinux/libselinux/src/canonicalize_context.c
    functionUses: 0
    functionsReached:
    - security_canonicalize_context_raw
    - selinux_raw_to_trans_context
    - freecon
    - selinux_trans_to_raw_context
    linkageType: ''
    returnType: int
    signature: int security_canonicalize_context(const char *con, char **canoncon)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/selinux/libselinux/src/setrans_client.c:53,1
    - Dst: socket
      Src: /src/selinux/libselinux/src/setrans_client.c:57,1
    - Dst: fcntl
      Src: /src/selinux/libselinux/src/setrans_client.c:59,1
    - Dst: close
      Src: /src/selinux/libselinux/src/setrans_client.c:60,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/setrans_client.c:67,1
    - Dst: strlcpy
      Src: /src/selinux/libselinux/src/setrans_client.c:70,1
    - Dst: close
      Src: /src/selinux/libselinux/src/setrans_client.c:72,1
    - Dst: connect
      Src: /src/selinux/libselinux/src/setrans_client.c:77,1
    - Dst: close
      Src: /src/selinux/libselinux/src/setrans_client.c:78,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 83
    functionName: setransd_open
    functionSourceFile: /src/selinux/libselinux/src/setrans_client.c
    functionUses: 0
    functionsReached:
    - fcntl
    - close
    - strlcpy
    - socket
    - connect
    - memset
    linkageType: ''
    returnType: int
    signature: int setransd_open(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libselinux/src/setrans_client.c:106,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/setrans_client.c:107,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/setrans_client.c:119,1
    - Dst: sendmsg
      Src: /src/selinux/libselinux/src/setrans_client.c:127,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 4
    argNames:
    - fd
    - function
    - data1
    - data2
    argTypes:
    - int
    - uint32_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 138
    functionName: send_request
    functionSourceFile: /src/selinux/libselinux/src/setrans_client.c
    functionUses: 0
    functionsReached:
    - sendmsg
    - memset
    - strlen
    linkageType: ''
    returnType: int
    signature: "int send_request(int fd, uint32_t function, const char *data1,\n\t\t\tconst
      char *data2)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: readv
      Src: /src/selinux/libselinux/src/setrans_client.c:163,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/setrans_client.c:180,1
    - Dst: readv
      Src: /src/selinux/libselinux/src/setrans_client.c:187,1
    - Dst: free
      Src: /src/selinux/libselinux/src/setrans_client.c:191,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 4
    argNames:
    - fd
    - function
    - outdata
    - ret_val
    argTypes:
    - int
    - uint32_t
    - char**
    - int32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 198
    functionName: receive_response
    functionSourceFile: /src/selinux/libselinux/src/setrans_client.c
    functionUses: 0
    functionsReached:
    - readv
    - free
    - calloc
    linkageType: ''
    returnType: int
    signature: "int receive_response(int fd, uint32_t function, char **outdata,\n\t\t\t
      \   int32_t *ret_val)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setransd_open
      Src: /src/selinux/libselinux/src/setrans_client.c:208,1
    - Dst: send_request
      Src: /src/selinux/libselinux/src/setrans_client.c:212,1
    - Dst: receive_response
      Src: /src/selinux/libselinux/src/setrans_client.c:216,1
    - Dst: close
      Src: /src/selinux/libselinux/src/setrans_client.c:222,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - raw
    - transp
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 224
    functionName: raw_to_trans_context
    functionSourceFile: /src/selinux/libselinux/src/setrans_client.c
    functionUses: 8
    functionsReached:
    - send_request
    - setransd_open
    - close
    - receive_response
    linkageType: ''
    returnType: int
    signature: int raw_to_trans_context(const char *raw, char **transp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setransd_open
      Src: /src/selinux/libselinux/src/setrans_client.c:234,1
    - Dst: send_request
      Src: /src/selinux/libselinux/src/setrans_client.c:237,1
    - Dst: receive_response
      Src: /src/selinux/libselinux/src/setrans_client.c:241,1
    - Dst: close
      Src: /src/selinux/libselinux/src/setrans_client.c:247,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - trans
    - rawp
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 249
    functionName: trans_to_raw_context
    functionSourceFile: /src/selinux/libselinux/src/setrans_client.c
    functionUses: 9
    functionsReached:
    - send_request
    - setransd_open
    - close
    - receive_response
    linkageType: ''
    returnType: int
    signature: int trans_to_raw_context(const char *trans, char **rawp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setransd_open
      Src: /src/selinux/libselinux/src/setrans_client.c:259,1
    - Dst: send_request
      Src: /src/selinux/libselinux/src/setrans_client.c:263,1
    - Dst: receive_response
      Src: /src/selinux/libselinux/src/setrans_client.c:267,1
    - Dst: close
      Src: /src/selinux/libselinux/src/setrans_client.c:273,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - raw
    - colors
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 275
    functionName: raw_context_to_color
    functionSourceFile: /src/selinux/libselinux/src/setrans_client.c
    functionUses: 1
    functionsReached:
    - send_request
    - setransd_open
    - close
    - receive_response
    linkageType: ''
    returnType: int
    signature: int raw_context_to_color(const char *raw, char **colors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libselinux/src/setrans_client.c:279,1
    - Dst: free
      Src: /src/selinux/libselinux/src/setrans_client.c:280,1
    - Dst: free
      Src: /src/selinux/libselinux/src/setrans_client.c:281,1
    - Dst: free
      Src: /src/selinux/libselinux/src/setrans_client.c:282,1
    - Dst: free
      Src: /src/selinux/libselinux/src/setrans_client.c:283,1
    - Dst: free
      Src: /src/selinux/libselinux/src/setrans_client.c:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - unused
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 285
    functionName: setrans_thread_destructor
    functionSourceFile: /src/selinux/libselinux/src/setrans_client.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void setrans_thread_destructor(void __attribute__((unused)) * unused)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __selinux_key_delete
      Src: /src/selinux/libselinux/src/setrans_client.c:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 295
    functionName: setrans_lib_destructor
    functionSourceFile: /src/selinux/libselinux/src/setrans_client.c
    functionUses: 0
    functionsReached:
    - __selinux_key_delete
    linkageType: ''
    returnType: void
    signature: void setrans_lib_destructor(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __selinux_setspecific
      Src: /src/selinux/libselinux/src/setrans_client.c:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 307
    functionName: init_thread_destructor
    functionSourceFile: /src/selinux/libselinux/src/setrans_client.c
    functionUses: 2
    functionsReached:
    - __selinux_setspecific
    linkageType: ''
    returnType: void
    signature: void init_thread_destructor(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: access
      Src: /src/selinux/libselinux/src/setrans_client.c:311,1
    - Dst: __selinux_key_create
      Src: /src/selinux/libselinux/src/setrans_client.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 317
    functionName: init_context_translations
    functionSourceFile: /src/selinux/libselinux/src/setrans_client.c
    functionUses: 0
    functionsReached:
    - access
    - __selinux_key_create
    linkageType: ''
    returnType: void
    signature: void init_context_translations(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: __selinux_once
      Src: /src/selinux/libselinux/src/setrans_client.c:326,1
    - Dst: init_thread_destructor
      Src: /src/selinux/libselinux/src/setrans_client.c:327,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/setrans_client.c:330,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/setrans_client.c:334,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/setrans_client.c:335,1
    - Dst: free
      Src: /src/selinux/libselinux/src/setrans_client.c:337,1
    - Dst: free
      Src: /src/selinux/libselinux/src/setrans_client.c:339,1
    - Dst: trans_to_raw_context
      Src: /src/selinux/libselinux/src/setrans_client.c:341,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/setrans_client.c:342,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/setrans_client.c:344,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/setrans_client.c:347,1
    - Dst: free
      Src: /src/selinux/libselinux/src/setrans_client.c:349,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - trans
    - rawp
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 319
    functionDepth: 3
    functionLinenumber: 319
    functionLinenumberEnd: 356
    functionName: selinux_trans_to_raw_context
    functionSourceFile: /src/selinux/libselinux/src/setrans_client.c
    functionUses: 9
    functionsReached:
    - strcmp
    - __selinux_once
    - free
    - trans_to_raw_context
    - init_thread_destructor
    - strdup
    linkageType: ''
    returnType: int
    signature: int selinux_trans_to_raw_context(const char *trans, char **rawp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: __selinux_once
      Src: /src/selinux/libselinux/src/setrans_client.c:365,1
    - Dst: init_thread_destructor
      Src: /src/selinux/libselinux/src/setrans_client.c:366,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/setrans_client.c:369,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/setrans_client.c:373,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/setrans_client.c:374,1
    - Dst: free
      Src: /src/selinux/libselinux/src/setrans_client.c:376,1
    - Dst: free
      Src: /src/selinux/libselinux/src/setrans_client.c:378,1
    - Dst: raw_to_trans_context
      Src: /src/selinux/libselinux/src/setrans_client.c:380,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/setrans_client.c:381,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/setrans_client.c:383,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/setrans_client.c:386,1
    - Dst: free
      Src: /src/selinux/libselinux/src/setrans_client.c:388,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - raw
    - transp
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 358
    functionDepth: 3
    functionLinenumber: 358
    functionLinenumberEnd: 395
    functionName: selinux_raw_to_trans_context
    functionSourceFile: /src/selinux/libselinux/src/setrans_client.c
    functionUses: 8
    functionsReached:
    - raw_to_trans_context
    - strcmp
    - __selinux_once
    - free
    - init_thread_destructor
    - strdup
    linkageType: ''
    returnType: int
    signature: int selinux_raw_to_trans_context(const char *raw, char **transp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: __selinux_once
      Src: /src/selinux/libselinux/src/setrans_client.c:404,1
    - Dst: init_thread_destructor
      Src: /src/selinux/libselinux/src/setrans_client.c:405,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/setrans_client.c:408,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/setrans_client.c:412,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/setrans_client.c:413,1
    - Dst: free
      Src: /src/selinux/libselinux/src/setrans_client.c:415,1
    - Dst: free
      Src: /src/selinux/libselinux/src/setrans_client.c:417,1
    - Dst: raw_context_to_color
      Src: /src/selinux/libselinux/src/setrans_client.c:419,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/setrans_client.c:422,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/setrans_client.c:425,1
    - Dst: free
      Src: /src/selinux/libselinux/src/setrans_client.c:427,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - raw
    - transp
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 397
    functionDepth: 3
    functionLinenumber: 397
    functionLinenumberEnd: 434
    functionName: selinux_raw_context_to_color
    functionSourceFile: /src/selinux/libselinux/src/setrans_client.c
    functionUses: 1
    functionsReached:
    - raw_context_to_color
    - strcmp
    - __selinux_once
    - free
    - init_thread_destructor
    - strdup
    linkageType: ''
    returnType: int
    signature: int selinux_raw_context_to_color(const char *raw, char **transp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libselinux/src/setrans_client.c:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - trans
    - rawp
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 448
    functionName: selinux_trans_to_raw_context
    functionSourceFile: /src/selinux/libselinux/src/setrans_client.c
    functionUses: 9
    functionsReached:
    - strdup
    linkageType: ''
    returnType: int
    signature: int selinux_trans_to_raw_context(const char *trans, char **rawp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libselinux/src/setrans_client.c:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - raw
    - transp
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 459
    functionName: selinux_raw_to_trans_context
    functionSourceFile: /src/selinux/libselinux/src/setrans_client.c
    functionUses: 8
    functionsReached:
    - strdup
    linkageType: ''
    returnType: int
    signature: int selinux_raw_to_trans_context(const char *raw, char **transp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/libselinux/src/is_customizable_type.c:22,1
    - Dst: selinux_customizable_types_path
      Src: /src/selinux/libselinux/src/is_customizable_type.c:22,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/is_customizable_type.c:26,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/is_customizable_type.c:28,1
    - Dst: fgets_unlocked
      Src: /src/selinux/libselinux/src/is_customizable_type.c:31,1
    - Dst: fseek
      Src: /src/selinux/libselinux/src/is_customizable_type.c:35,1
    - Dst: free
      Src: /src/selinux/libselinux/src/is_customizable_type.c:36,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/is_customizable_type.c:37,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/is_customizable_type.c:42,1
    - Dst: fgets_unlocked
      Src: /src/selinux/libselinux/src/is_customizable_type.c:45,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/is_customizable_type.c:47,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/is_customizable_type.c:48,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/is_customizable_type.c:49,1
    - Dst: free
      Src: /src/selinux/libselinux/src/is_customizable_type.c:53,1
    - Dst: free
      Src: /src/selinux/libselinux/src/is_customizable_type.c:54,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/is_customizable_type.c:62,1
    - Dst: free
      Src: /src/selinux/libselinux/src/is_customizable_type.c:63,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 15
    functionDepth: 3
    functionLinenumber: 15
    functionLinenumberEnd: 67
    functionName: customizable_init
    functionSourceFile: /src/selinux/libselinux/src/is_customizable_type.c
    functionUses: 0
    functionsReached:
    - fclose
    - strlen
    - strdup
    - fopen
    - malloc
    - free
    - calloc
    - selinux_customizable_types_path
    - fseek
    - fgets_unlocked
    linkageType: ''
    returnType: void
    signature: void customizable_init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __selinux_once
      Src: /src/selinux/libselinux/src/is_customizable_type.c:75,1
    - Dst: context_new
      Src: /src/selinux/libselinux/src/is_customizable_type.c:79,1
    - Dst: context_type_get
      Src: /src/selinux/libselinux/src/is_customizable_type.c:83,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/is_customizable_type.c:85,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/is_customizable_type.c:90,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/is_customizable_type.c:91,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/is_customizable_type.c:95,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - scontext
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 97
    functionName: is_context_customizable
    functionSourceFile: /src/selinux/libselinux/src/is_customizable_type.c
    functionUses: 0
    functionsReached:
    - context_new
    - strcmp
    - __selinux_once
    - context_type_get
    - context_free
    linkageType: ''
    returnType: int
    signature: int is_context_customizable(const char *scontext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ssid
    - tsid
    - tclass
    argTypes:
    - security_id_t
    - security_id_t
    - security_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 66
    functionName: avc_hash
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int avc_hash(security_id_t ssid, security_id_t tsid,\n\t\t\t   security_class_t
      tclass)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libselinux/src/avc.c:72,1
    - Dst: avc_get_lock
      Src: /src/selinux/libselinux/src/avc.c:74,1
    - Dst: sidtab_context_to_sid
      Src: /src/selinux/libselinux/src/avc.c:75,1
    - Dst: avc_release_lock
      Src: /src/selinux/libselinux/src/avc.c:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - sid
    argTypes:
    - char*
    - security_id_t*
    assertStmts:
    - condition: (avc_running)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/selinux/libselinux/src/avc.c
    constantsTouched: []
    func_position:
      end: 78
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 78
    functionName: avc_context_to_sid_raw
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_get_lock
    - avc_release_lock
    - assert
    - sidtab_context_to_sid
    linkageType: ''
    returnType: int
    signature: int avc_context_to_sid_raw(const char *ctx, security_id_t *sid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: selinux_trans_to_raw_context
      Src: /src/selinux/libselinux/src/avc.c:85,1
    - Dst: avc_context_to_sid_raw
      Src: /src/selinux/libselinux/src/avc.c:88,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/avc.c:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - sid
    argTypes:
    - char*
    - security_id_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 80
    functionDepth: 4
    functionLinenumber: 80
    functionLinenumberEnd: 93
    functionName: avc_context_to_sid
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - freecon
    - avc_context_to_sid_raw
    - selinux_trans_to_raw_context
    linkageType: ''
    returnType: int
    signature: int avc_context_to_sid(const char *ctx, security_id_t *sid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avc_get_lock
      Src: /src/selinux/libselinux/src/avc.c:99,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/avc.c:100,1
    - Dst: avc_release_lock
      Src: /src/selinux/libselinux/src/avc.c:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - sid
    - ctx
    argTypes:
    - security_id_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 104
    functionName: avc_sid_to_context_raw
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_get_lock
    - avc_release_lock
    - strdup
    linkageType: ''
    returnType: int
    signature: int avc_sid_to_context_raw(security_id_t sid, char **ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avc_sid_to_context_raw
      Src: /src/selinux/libselinux/src/avc.c:111,1
    - Dst: selinux_raw_to_trans_context
      Src: /src/selinux/libselinux/src/avc.c:114,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/avc.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - sid
    - ctx
    argTypes:
    - security_id_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 106
    functionDepth: 4
    functionLinenumber: 106
    functionLinenumberEnd: 119
    functionName: avc_sid_to_context
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_sid_to_context_raw
    - selinux_raw_to_trans_context
    - freecon
    linkageType: ''
    returnType: int
    signature: int avc_sid_to_context(security_id_t sid, char **ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sid
    argTypes:
    - security_id_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: sidget
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sidget(security_id_t sid __attribute__((unused)))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sid
    argTypes:
    - security_id_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: sidput
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int sidput(security_id_t sid __attribute__((unused)))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: security_get_initial_context_raw
      Src: /src/selinux/libselinux/src/avc.c:136,1
    - Dst: avc_context_to_sid_raw
      Src: /src/selinux/libselinux/src/avc.c:139,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/avc.c:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - name
    - sid
    argTypes:
    - char*
    - security_id_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 144
    functionName: avc_get_initial_sid
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_context_to_sid_raw
    - freecon
    - security_get_initial_context_raw
    linkageType: ''
    returnType: int
    signature: int avc_get_initial_sid(const char *name, security_id_t *sid)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/selinux/libselinux/src/avc.c:159,1
    - Dst: set_callbacks
      Src: /src/selinux/libselinux/src/avc.c:161,1
    - Dst: avc_alloc_lock
      Src: /src/selinux/libselinux/src/avc.c:163,1
    - Dst: avc_alloc_lock
      Src: /src/selinux/libselinux/src/avc.c:164,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/avc.c:166,1
    - Dst: sidtab_init
      Src: /src/selinux/libselinux/src/avc.c:174,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc.c:176,1
    - Dst: avc_malloc
      Src: /src/selinux/libselinux/src/avc.c:181,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc.c:183,1
    - Dst: avc_malloc::avc_malloc
      Src: /src/selinux/libselinux/src/avc.c:190,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc.c:192,1
    - Dst: security_getenforce
      Src: /src/selinux/libselinux/src/avc.c:203,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc.c:205,1
    - Dst: selinux_status_open
      Src: /src/selinux/libselinux/src/avc.c:213,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc.c:215,1
    - Dst: avc_node_freelist::avc_node_freelist
      Src: /src/selinux/libselinux/src/avc.c:225,1
    - Dst: next::next
      Src: /src/selinux/libselinux/src/avc.c:226,1
    - Dst: avc_free
      Src: /src/selinux/libselinux/src/avc.c:229,1
    - Dst: sidtab_destroy
      Src: /src/selinux/libselinux/src/avc.c:232,1
    - Dst: avc_free_lock
      Src: /src/selinux/libselinux/src/avc.c:234,1
    - Dst: avc_free_lock
      Src: /src/selinux/libselinux/src/avc.c:235,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 70
    argCount: 5
    argNames:
    - prefix
    - mem_cb
    - log_cb
    - thread_cb
    - lock_cb
    argTypes:
    - char*
    - struct avc_memory_callback*
    - struct avc_log_callback*
    - struct avc_thread_callback*
    - struct avc_lock_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 237
    functionName: avc_init_internal
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_free
    - sidtab_init
    - avc_alloc_lock
    - selinux_status_open
    - avc_node_freelist::avc_node_freelist
    - sidtab_destroy
    - security_getenforce
    - next::next
    - avc_malloc
    - avc_log
    - avc_malloc::avc_malloc
    - avc_free_lock
    - strncpy
    - set_callbacks
    - memset
    linkageType: ''
    returnType: int
    signature: "int avc_init_internal(const char *prefix,\n\t\t\t     const struct
      avc_memory_callback *mem_cb,\n\t\t\t     const struct avc_log_callback *log_cb,\n\t\t\t
      \    const struct avc_thread_callback *thread_cb,\n\t\t\t     const struct avc_lock_callback
      *lock_cb)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avc_init_internal
      Src: /src/selinux/libselinux/src/avc.c:253,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - opts
    - nopts
    argTypes:
    - struct selinux_opt*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 254
    functionName: avc_open
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_init_internal
    linkageType: ''
    returnType: int
    signature: int avc_open(const struct selinux_opt *opts, unsigned nopts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avc_init_internal
      Src: /src/selinux/libselinux/src/avc.c:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - prefix
    - mem_cb
    - log_cb
    - thread_cb
    - lock_cb
    argTypes:
    - char*
    - struct avc_memory_callback*
    - struct avc_log_callback*
    - struct avc_thread_callback*
    - struct avc_lock_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 262
    functionName: avc_init
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_init_internal
    linkageType: ''
    returnType: int
    signature: "int avc_init(const char *prefix, const struct avc_memory_callback
      *mem_cb,\n\t     const struct avc_log_callback *log_cb,\n\t     const struct
      avc_thread_callback *thread_cb,\n\t     const struct avc_lock_callback *lock_cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/selinux/libselinux/src/avc.c:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct avc_cache_stats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: avc_cache_stats
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void avc_cache_stats(struct avc_cache_stats *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libselinux/src/avc.c:272,1
    - Dst: avc_get_lock
      Src: /src/selinux/libselinux/src/avc.c:273,1
    - Dst: avc_get_lock
      Src: /src/selinux/libselinux/src/avc.c:274,1
    - Dst: sidtab_sid_stats
      Src: /src/selinux/libselinux/src/avc.c:275,1
    - Dst: avc_release_lock
      Src: /src/selinux/libselinux/src/avc.c:276,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc.c:277,1
    - Dst: avc_release_lock
      Src: /src/selinux/libselinux/src/avc.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (avc_running)
      pos:
        line_end: 271
        line_start: 271
        source_file: /src/selinux/libselinux/src/avc.c
    constantsTouched: []
    func_position:
      end: 279
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 279
    functionName: avc_sid_stats
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_release_lock
    - sidtab_sid_stats
    - assert
    - avc_log
    - avc_get_lock
    linkageType: ''
    returnType: void
    signature: void avc_sid_stats(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: avc_get_lock
      Src: /src/selinux/libselinux/src/avc.c:286,1
    - Dst: avc_release_lock
      Src: /src/selinux/libselinux/src/avc.c:304,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc.c:306,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 311
    functionName: avc_av_stats
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_get_lock
    - avc_release_lock
    - avc_log
    linkageType: ''
    returnType: void
    signature: void avc_av_stats(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 349
    functionName: avc_reclaim_node
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct avc_node
    signature: struct avc_node *avc_reclaim_node(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libselinux/src/avc.c:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ae
    argTypes:
    - struct avc_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 354
    functionName: avc_clear_avc_entry
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: void
    signature: void avc_clear_avc_entry(struct avc_entry *ae)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: avc_cleanup
      Src: /src/selinux/libselinux/src/avc.c:363,1
    - Dst: avc_node_freelist::avc_node_freelist
      Src: /src/selinux/libselinux/src/avc.c:366,1
    - Dst: avc_reclaim_node::avc_reclaim_node
      Src: /src/selinux/libselinux/src/avc.c:370,1
    - Dst: avc_hash
      Src: /src/selinux/libselinux/src/avc.c:375,1
    - Dst: avc_clear_avc_entry
      Src: /src/selinux/libselinux/src/avc.c:376,1
    - Dst: ae::ae
      Src: /src/selinux/libselinux/src/avc.c:376,1
    - Dst: ae::ae
      Src: /src/selinux/libselinux/src/avc.c:377,1
    - Dst: ae::ae
      Src: /src/selinux/libselinux/src/avc.c:378,1
    - Dst: ae::ae
      Src: /src/selinux/libselinux/src/avc.c:379,1
    - Dst: ae::ae
      Src: /src/selinux/libselinux/src/avc.c:380,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - ssid
    - tsid
    - tclass
    argTypes:
    - security_id_t
    - security_id_t
    - security_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 386
    functionName: avc_claim_node
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_reclaim_node::avc_reclaim_node
    - avc_clear_avc_entry
    - avc_node_freelist::avc_node_freelist
    - avc_cleanup
    - ae::ae
    - avc_hash
    linkageType: ''
    returnType: struct avc_node
    signature: 'struct avc_node *

      avc_claim_node(security_id_t ssid, security_id_t tsid, security_class_t tclass)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: avc_hash
      Src: /src/selinux/libselinux/src/avc.c:397,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 4
    argNames:
    - ssid
    - tsid
    - tclass
    - probes
    argTypes:
    - security_id_t
    - security_id_t
    - security_class_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 419
    functionName: avc_search_node
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_hash
    linkageType: ''
    returnType: struct avc_node
    signature: "struct avc_node *avc_search_node(security_id_t ssid,\n\t\t\t\t\t       security_id_t
      tsid,\n\t\t\t\t\t       security_class_t tclass,\n\t\t\t\t\t       int *probes)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avc_cache_stats_incr
      Src: /src/selinux/libselinux/src/avc.c:443,1
    - Dst: avc_search_node
      Src: /src/selinux/libselinux/src/avc.c:444,1
    - Dst: avc_cache_stats_incr
      Src: /src/selinux/libselinux/src/avc.c:447,1
    - Dst: avc_cache_stats_add
      Src: /src/selinux/libselinux/src/avc.c:448,1
    - Dst: avc_cache_stats_incr
      Src: /src/selinux/libselinux/src/avc.c:453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - ssid
    - tsid
    - tclass
    - requested
    - aeref
    argTypes:
    - security_id_t
    - security_id_t
    - security_class_t
    - access_vector_t
    - struct avc_entry_ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 457
    functionName: avc_lookup
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_cache_stats_incr
    - avc_search_node
    - avc_cache_stats_add
    linkageType: ''
    returnType: int
    signature: "int avc_lookup(security_id_t ssid, security_id_t tsid,\n\t\t      security_class_t
      tclass, access_vector_t requested,\n\t\t      struct avc_entry_ref *aeref)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc.c:486,1
    - Dst: avc_claim_node
      Src: /src/selinux/libselinux/src/avc.c:493,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/src/avc.c:499,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - ssid
    - tsid
    - tclass
    - ae
    - aeref
    argTypes:
    - security_id_t
    - security_id_t
    - security_class_t
    - struct avc_entry*
    - struct avc_entry_ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 478
    functionDepth: 2
    functionLinenumber: 478
    functionLinenumberEnd: 503
    functionName: avc_insert
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_log
    - memcpy
    - avc_claim_node
    linkageType: ''
    returnType: int
    signature: "int avc_insert(security_id_t ssid, security_id_t tsid,\n\t\t      security_class_t
      tclass, struct avc_entry *ae,\n\t\t      struct avc_entry_ref *aeref)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 507
    functionName: avc_cleanup
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void avc_cleanup(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: avc_get_lock
      Src: /src/selinux/libselinux/src/avc.c:519,1
    - Dst: avc_clear_avc_entry
      Src: /src/selinux/libselinux/src/avc.c:526,1
    - Dst: avc_release_lock
      Src: /src/selinux/libselinux/src/avc.c:535,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/avc.c:537,1
    - Dst: struct avc_callback_node*::callback
      Src: /src/selinux/libselinux/src/avc.c:541,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 551
    functionName: avc_reset
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_release_lock
    - avc_clear_avc_entry
    - struct avc_callback_node*::callback
    - memset
    - avc_get_lock
    linkageType: ''
    returnType: int
    signature: int avc_reset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libselinux/src/avc.c:559,1
    - Dst: avc_get_lock
      Src: /src/selinux/libselinux/src/avc.c:561,1
    - Dst: selinux_status_close
      Src: /src/selinux/libselinux/src/avc.c:563,1
    - Dst: avc_free
      Src: /src/selinux/libselinux/src/avc.c:570,1
    - Dst: avc_free
      Src: /src/selinux/libselinux/src/avc.c:576,1
    - Dst: avc_release_lock
      Src: /src/selinux/libselinux/src/avc.c:578,1
    - Dst: avc_free
      Src: /src/selinux/libselinux/src/avc.c:583,1
    - Dst: sidtab_destroy
      Src: /src/selinux/libselinux/src/avc.c:585,1
    - Dst: avc_free_lock
      Src: /src/selinux/libselinux/src/avc.c:586,1
    - Dst: avc_free_lock
      Src: /src/selinux/libselinux/src/avc.c:587,1
    - Dst: avc_free
      Src: /src/selinux/libselinux/src/avc.c:588,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (avc_running)
      pos:
        line_end: 558
        line_start: 558
        source_file: /src/selinux/libselinux/src/avc.c
    constantsTouched: []
    func_position:
      end: 590
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 590
    functionName: avc_destroy
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_release_lock
    - avc_free
    - sidtab_destroy
    - assert
    - selinux_status_close
    - avc_free_lock
    - avc_get_lock
    linkageType: ''
    returnType: void
    signature: void avc_destroy(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: avc_alloc_lock
      Src: /src/selinux/libselinux/src/avc.c:611,1
    - Dst: avc_get_lock
      Src: /src/selinux/libselinux/src/avc.c:613,1
    - Dst: avc_release_lock
      Src: /src/selinux/libselinux/src/avc.c:622,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc.c:624,1
    - Dst: avc_release_lock
      Src: /src/selinux/libselinux/src/avc.c:632,1
    - Dst: avc_free_lock
      Src: /src/selinux/libselinux/src/avc.c:634,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 636
    functionName: avc_ratelimit
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_release_lock
    - avc_alloc_lock
    - avc_log
    - avc_free_lock
    - avc_get_lock
    linkageType: ''
    returnType: int
    signature: int avc_ratelimit(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avc_ratelimit
      Src: /src/selinux/libselinux/src/avc.c:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 638
    functionDepth: 2
    functionLinenumber: 638
    functionLinenumberEnd: 646
    functionName: check_avc_ratelimit
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_ratelimit
    linkageType: ''
    returnType: int
    signature: int check_avc_ratelimit(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log_append
      Src: /src/selinux/libselinux/src/avc.c:660,1
    - Dst: log_append
      Src: /src/selinux/libselinux/src/avc.c:664,1
    - Dst: security_av_perm_to_string
      Src: /src/selinux/libselinux/src/avc.c:668,1
    - Dst: log_append
      Src: /src/selinux/libselinux/src/avc.c:671,1
    - Dst: log_append
      Src: /src/selinux/libselinux/src/avc.c:678,1
    - Dst: log_append
      Src: /src/selinux/libselinux/src/avc.c:679,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - tclass
    - av
    argTypes:
    - security_class_t
    - access_vector_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 680
    functionName: avc_dump_av
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - security_av_perm_to_string
    - log_append
    linkageType: ''
    returnType: void
    signature: void avc_dump_av(security_class_t tclass, access_vector_t av)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avc_get_lock
      Src: /src/selinux/libselinux/src/avc.c:691,1
    - Dst: log_append
      Src: /src/selinux/libselinux/src/avc.c:693,1
    - Dst: avc_release_lock
      Src: /src/selinux/libselinux/src/avc.c:696,1
    - Dst: log_append
      Src: /src/selinux/libselinux/src/avc.c:697,1
    - Dst: security_class_to_string
      Src: /src/selinux/libselinux/src/avc.c:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ssid
    - tsid
    - tclass
    argTypes:
    - security_id_t
    - security_id_t
    - security_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 699
    functionName: avc_dump_query
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_get_lock
    - avc_release_lock
    - security_class_to_string
    - log_append
    linkageType: ''
    returnType: void
    signature: "void avc_dump_query(security_id_t ssid, security_id_t tsid,\n\t\t\t
      \  security_class_t tclass)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: check_avc_ratelimit
      Src: /src/selinux/libselinux/src/avc.c:717,1
    - Dst: avc_get_lock
      Src: /src/selinux/libselinux/src/avc.c:721,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/avc.c:722,1
    - Dst: avc_dump_av
      Src: /src/selinux/libselinux/src/avc.c:724,1
    - Dst: log_append
      Src: /src/selinux/libselinux/src/avc.c:725,1
    - Dst: avc_suppl_audit
      Src: /src/selinux/libselinux/src/avc.c:728,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/avc.c:728,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/avc.c:729,1
    - Dst: log_append
      Src: /src/selinux/libselinux/src/avc.c:731,1
    - Dst: avc_dump_query
      Src: /src/selinux/libselinux/src/avc.c:732,1
    - Dst: log_append
      Src: /src/selinux/libselinux/src/avc.c:735,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc.c:737,1
    - Dst: avc_release_lock
      Src: /src/selinux/libselinux/src/avc.c:739,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 7
    argNames:
    - ssid
    - tsid
    - tclass
    - requested
    - avd
    - result
    - a
    argTypes:
    - security_id_t
    - security_id_t
    - security_class_t
    - access_vector_t
    - struct av_decision*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 701
    functionDepth: 3
    functionLinenumber: 701
    functionLinenumberEnd: 740
    functionName: avc_audit
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_release_lock
    - snprintf
    - avc_log
    - avc_dump_av
    - log_append
    - avc_suppl_audit
    - avc_get_lock
    - check_avc_ratelimit
    - avc_dump_query
    - strlen
    linkageType: ''
    returnType: void
    signature: "void avc_audit(security_id_t ssid, security_id_t tsid, security_class_t
      tclass,\n\t       access_vector_t requested, struct av_decision *avd, int result,\n\t
      \      void *a)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - avd
    argTypes:
    - struct av_decision*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 749
    functionName: avd_init
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void avd_init(struct av_decision *avd)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: avd_init
      Src: /src/selinux/libselinux/src/avc.c:762,1
    - Dst: selinux_status_updated
      Src: /src/selinux/libselinux/src/avc.c:765,1
    - Dst: avc_entry_ref_init
      Src: /src/selinux/libselinux/src/avc.c:769,1
    - Dst: avc_get_lock
      Src: /src/selinux/libselinux/src/avc.c:773,1
    - Dst: avc_cache_stats_incr
      Src: /src/selinux/libselinux/src/avc.c:774,1
    - Dst: avc_cache_stats_incr
      Src: /src/selinux/libselinux/src/avc.c:780,1
    - Dst: avc_cache_stats_incr
      Src: /src/selinux/libselinux/src/avc.c:783,1
    - Dst: avc_cache_stats_incr
      Src: /src/selinux/libselinux/src/avc.c:789,1
    - Dst: avc_lookup
      Src: /src/selinux/libselinux/src/avc.c:790,1
    - Dst: security_compute_av_flags_raw
      Src: /src/selinux/libselinux/src/avc.c:792,1
    - Dst: avc_insert
      Src: /src/selinux/libselinux/src/avc.c:801,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/src/avc.c:809,1
    - Dst: avc_release_lock
      Src: /src/selinux/libselinux/src/avc.c:824,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 56
    argCount: 6
    argNames:
    - ssid
    - tsid
    - tclass
    - requested
    - aeref
    - avd
    argTypes:
    - security_id_t
    - security_id_t
    - security_class_t
    - access_vector_t
    - struct avc_entry_ref*
    - struct av_decision*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 751
    functionDepth: 3
    functionLinenumber: 751
    functionLinenumberEnd: 826
    functionName: avc_has_perm_noaudit
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_release_lock
    - avd_init
    - security_compute_av_flags_raw
    - avc_insert
    - avc_cache_stats_incr
    - avc_entry_ref_init
    - memcpy
    - avc_get_lock
    - avc_lookup
    - selinux_status_updated
    linkageType: ''
    returnType: int
    signature: "int avc_has_perm_noaudit(security_id_t ssid, security_id_t tsid,\n\t\t\t
      security_class_t tclass, access_vector_t requested,\n\t\t\t struct avc_entry_ref
      *aeref, struct av_decision *avd)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avc_has_perm_noaudit
      Src: /src/selinux/libselinux/src/avc.c:835,1
    - Dst: avc_audit
      Src: /src/selinux/libselinux/src/avc.c:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - ssid
    - tsid
    - tclass
    - requested
    - aeref
    - auditdata
    argTypes:
    - security_id_t
    - security_id_t
    - security_class_t
    - access_vector_t
    - struct avc_entry_ref*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 828
    functionDepth: 4
    functionLinenumber: 828
    functionLinenumberEnd: 840
    functionName: avc_has_perm
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_audit
    - avc_has_perm_noaudit
    linkageType: ''
    returnType: int
    signature: "int avc_has_perm(security_id_t ssid, security_id_t tsid,\n\t\t security_class_t
      tclass, access_vector_t requested,\n\t\t struct avc_entry_ref *aeref, void *auditdata)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: avc_entry_ref_init
      Src: /src/selinux/libselinux/src/avc.c:851,1
    - Dst: assert
      Src: /src/selinux/libselinux/src/avc.c:854,1
    - Dst: avc_get_lock
      Src: /src/selinux/libselinux/src/avc.c:856,1
    - Dst: avc_lookup
      Src: /src/selinux/libselinux/src/avc.c:859,1
    - Dst: security_compute_av_flags_raw
      Src: /src/selinux/libselinux/src/avc.c:862,1
    - Dst: avc_insert
      Src: /src/selinux/libselinux/src/avc.c:866,1
    - Dst: security_compute_create_raw
      Src: /src/selinux/libselinux/src/avc.c:874,1
    - Dst: sidtab_context_to_sid
      Src: /src/selinux/libselinux/src/avc.c:878,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/avc.c:879,1
    - Dst: avc_release_lock
      Src: /src/selinux/libselinux/src/avc.c:891,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 4
    argNames:
    - ssid
    - tsid
    - tclass
    - newsid
    argTypes:
    - security_id_t
    - security_id_t
    - security_class_t
    - security_id_t*
    assertStmts:
    - condition: (avc_running)
      pos:
        line_end: 853
        line_start: 853
        source_file: /src/selinux/libselinux/src/avc.c
    constantsTouched: []
    func_position:
      end: 893
      start: 842
    functionDepth: 3
    functionLinenumber: 842
    functionLinenumberEnd: 893
    functionName: avc_compute_create
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_release_lock
    - freecon
    - sidtab_context_to_sid
    - security_compute_av_flags_raw
    - assert
    - avc_insert
    - avc_entry_ref_init
    - avc_get_lock
    - security_compute_create_raw
    - avc_lookup
    linkageType: ''
    returnType: int
    signature: "int avc_compute_create(security_id_t ssid, security_id_t tsid,\n\t\t
      \      security_class_t tclass, security_id_t *newsid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libselinux/src/avc.c:902,1
    - Dst: avc_get_lock
      Src: /src/selinux/libselinux/src/avc.c:903,1
    - Dst: security_compute_member_raw
      Src: /src/selinux/libselinux/src/avc.c:905,1
    - Dst: sidtab_context_to_sid
      Src: /src/selinux/libselinux/src/avc.c:908,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/avc.c:909,1
    - Dst: avc_release_lock
      Src: /src/selinux/libselinux/src/avc.c:911,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - ssid
    - tsid
    - tclass
    - newsid
    argTypes:
    - security_id_t
    - security_id_t
    - security_class_t
    - security_id_t*
    assertStmts:
    - condition: (avc_running)
      pos:
        line_end: 901
        line_start: 901
        source_file: /src/selinux/libselinux/src/avc.c
    constantsTouched: []
    func_position:
      end: 913
      start: 895
    functionDepth: 1
    functionLinenumber: 895
    functionLinenumberEnd: 913
    functionName: avc_compute_member
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_release_lock
    - freecon
    - sidtab_context_to_sid
    - assert
    - security_compute_member_raw
    - avc_get_lock
    linkageType: ''
    returnType: int
    signature: "int avc_compute_member(security_id_t ssid, security_id_t tsid,\n\t\t
      \      security_class_t tclass, security_id_t *newsid)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avc_malloc
      Src: /src/selinux/libselinux/src/avc.c:926,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 5
    argNames:
    - events
    - ssid
    - tsid
    - tclass
    - perms
    argTypes:
    - uint32_t
    - security_id_t
    - security_id_t
    - security_class_t
    - access_vector_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 942
    functionName: avc_add_callback
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_malloc
    linkageType: ''
    returnType: int
    signature: "int avc_add_callback(int (*callback)(uint32_t event, security_id_t
      ssid,\n\t\t\t\t     security_id_t tsid,\n\t\t\t\t     security_class_t tclass,\n\t\t\t\t
      \    access_vector_t perms,\n\t\t\t\t     access_vector_t *out_retained),\n\t\t
      \    uint32_t events, security_id_t ssid, security_id_t tsid,\n\t\t     security_class_t
      tclass, access_vector_t perms)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - security_id_t
    - security_id_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 947
    functionName: avc_sidcmp
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int avc_sidcmp(security_id_t x, security_id_t y)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - event
    - node
    - perms
    argTypes:
    - uint32_t
    - struct avc_node*
    - access_vector_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 973
    functionName: avc_update_node
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void avc_update_node(uint32_t event, struct avc_node *node,\n\t\t\t\t
      \  access_vector_t perms)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: avc_get_lock
      Src: /src/selinux/libselinux/src/avc.c:982,1
    - Dst: avc_sidcmp
      Src: /src/selinux/libselinux/src/avc.c:989,1
    - Dst: avc_sidcmp
      Src: /src/selinux/libselinux/src/avc.c:990,1
    - Dst: avc_update_node
      Src: /src/selinux/libselinux/src/avc.c:992,1
    - Dst: avc_search_node
      Src: /src/selinux/libselinux/src/avc.c:998,1
    - Dst: avc_update_node
      Src: /src/selinux/libselinux/src/avc.c:1000,1
    - Dst: avc_release_lock
      Src: /src/selinux/libselinux/src/avc.c:1004,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 5
    argNames:
    - event
    - ssid
    - tsid
    - tclass
    - perms
    argTypes:
    - uint32_t
    - security_id_t
    - security_id_t
    - security_class_t
    - access_vector_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 975
    functionDepth: 2
    functionLinenumber: 975
    functionLinenumberEnd: 1007
    functionName: avc_update_cache
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_sidcmp
    - avc_release_lock
    - avc_update_node
    - avc_get_lock
    - avc_search_node
    linkageType: ''
    returnType: int
    signature: "int avc_update_cache(uint32_t event, security_id_t ssid,\n\t\t\t    security_id_t
      tsid, security_class_t tclass,\n\t\t\t    access_vector_t perms)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: avc_update_cache
      Src: /src/selinux/libselinux/src/avc.c:1030,1
    - Dst: avc_sidcmp
      Src: /src/selinux/libselinux/src/avc.c:1033,1
    - Dst: avc_sidcmp
      Src: /src/selinux/libselinux/src/avc.c:1034,1
    - Dst: struct avc_callback_node*::callback
      Src: /src/selinux/libselinux/src/avc.c:1037,1
    - Dst: avc_update_cache
      Src: /src/selinux/libselinux/src/avc.c:1051,1
    - Dst: avc_get_lock
      Src: /src/selinux/libselinux/src/avc.c:1055,1
    - Dst: avc_release_lock
      Src: /src/selinux/libselinux/src/avc.c:1058,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 7
    argNames:
    - event
    - ssid
    - tsid
    - tclass
    - perms
    - seqno
    - out_retained
    argTypes:
    - uint32_t
    - security_id_t
    - security_id_t
    - security_class_t
    - access_vector_t
    - uint32_t
    - access_vector_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1014
    functionDepth: 3
    functionLinenumber: 1014
    functionLinenumberEnd: 1062
    functionName: avc_control
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_sidcmp
    - avc_release_lock
    - avc_update_cache
    - struct avc_callback_node*::callback
    - avc_get_lock
    linkageType: ''
    returnType: int
    signature: "int avc_control(uint32_t event, security_id_t ssid, security_id_t
      tsid,\n\t\t       security_class_t tclass, access_vector_t perms,\n\t\t       uint32_t
      seqno, access_vector_t *out_retained)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avc_control
      Src: /src/selinux/libselinux/src/avc.c:1075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ssid
    - tsid
    - tclass
    - perms
    - seqno
    argTypes:
    - security_id_t
    - security_id_t
    - security_class_t
    - access_vector_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1072
    functionDepth: 4
    functionLinenumber: 1072
    functionLinenumberEnd: 1077
    functionName: avc_ss_grant
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_control
    linkageType: ''
    returnType: int
    signature: "int avc_ss_grant(security_id_t ssid, security_id_t tsid,\n\t\t security_class_t
      tclass, access_vector_t perms, uint32_t seqno)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avc_control
      Src: /src/selinux/libselinux/src/avc.c:1096,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ssid
    - tsid
    - tclass
    - perms
    - seqno
    - out_retained
    argTypes:
    - security_id_t
    - security_id_t
    - security_class_t
    - access_vector_t
    - uint32_t
    - access_vector_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1092
    functionDepth: 4
    functionLinenumber: 1092
    functionLinenumberEnd: 1098
    functionName: avc_ss_try_revoke
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_control
    linkageType: ''
    returnType: int
    signature: "int avc_ss_try_revoke(security_id_t ssid, security_id_t tsid,\n\t\t
      \     security_class_t tclass, access_vector_t perms,\n\t\t      uint32_t seqno,
      access_vector_t *out_retained)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avc_control
      Src: /src/selinux/libselinux/src/avc.c:1115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ssid
    - tsid
    - tclass
    - perms
    - seqno
    argTypes:
    - security_id_t
    - security_id_t
    - security_class_t
    - access_vector_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1111
    functionDepth: 4
    functionLinenumber: 1111
    functionLinenumberEnd: 1117
    functionName: avc_ss_revoke
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_control
    linkageType: ''
    returnType: int
    signature: "int avc_ss_revoke(security_id_t ssid, security_id_t tsid,\n\t\t  security_class_t
      tclass, access_vector_t perms,\n\t\t  uint32_t seqno)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avc_reset
      Src: /src/selinux/libselinux/src/avc.c:1127,1
    - Dst: avc_get_lock
      Src: /src/selinux/libselinux/src/avc.c:1129,1
    - Dst: avc_release_lock
      Src: /src/selinux/libselinux/src/avc.c:1132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - seqno
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1123
    functionDepth: 2
    functionLinenumber: 1123
    functionLinenumberEnd: 1135
    functionName: avc_ss_reset
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_get_lock
    - avc_release_lock
    - avc_reset
    linkageType: ''
    returnType: int
    signature: int avc_ss_reset(uint32_t seqno)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avc_control
      Src: /src/selinux/libselinux/src/avc.c:1151,1
    - Dst: avc_control
      Src: /src/selinux/libselinux/src/avc.c:1154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - ssid
    - tsid
    - tclass
    - perms
    - seqno
    - enable
    argTypes:
    - security_id_t
    - security_id_t
    - security_class_t
    - access_vector_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1146
    functionDepth: 4
    functionLinenumber: 1146
    functionLinenumberEnd: 1156
    functionName: avc_ss_set_auditallow
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_control
    linkageType: ''
    returnType: int
    signature: "int avc_ss_set_auditallow(security_id_t ssid, security_id_t tsid,\n\t\t\t
      \ security_class_t tclass, access_vector_t perms,\n\t\t\t  uint32_t seqno, uint32_t
      enable)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avc_control
      Src: /src/selinux/libselinux/src/avc.c:1172,1
    - Dst: avc_control
      Src: /src/selinux/libselinux/src/avc.c:1175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 6
    argNames:
    - ssid
    - tsid
    - tclass
    - perms
    - seqno
    - enable
    argTypes:
    - security_id_t
    - security_id_t
    - security_class_t
    - access_vector_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1167
    functionDepth: 4
    functionLinenumber: 1167
    functionLinenumberEnd: 1177
    functionName: avc_ss_set_auditdeny
    functionSourceFile: /src/selinux/libselinux/src/avc.c
    functionUses: 0
    functionsReached:
    - avc_control
    linkageType: ''
    returnType: int
    signature: "int avc_ss_set_auditdeny(security_id_t ssid, security_id_t tsid,\n\t\t\t
      security_class_t tclass, access_vector_t perms,\n\t\t\t uint32_t seqno, uint32_t
      enable)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/libselinux/src/query_user_context.c:18,1
    - Dst: printf
      Src: /src/selinux/libselinux/src/query_user_context.c:20,1
    - Dst: printf
      Src: /src/selinux/libselinux/src/query_user_context.c:23,1
    - Dst: fgets
      Src: /src/selinux/libselinux/src/query_user_context.c:24,1
    - Dst: strtol
      Src: /src/selinux/libselinux/src/query_user_context.c:26,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - list
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 30
    functionName: context_menu
    functionSourceFile: /src/selinux/libselinux/src/query_user_context.c
    functionUses: 0
    functionsReached:
    - printf
    - strtol
    - fgets
    linkageType: ''
    returnType: int
    signature: int context_menu(char **list)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/libselinux/src/query_user_context.c:45,1
    - Dst: printf
      Src: /src/selinux/libselinux/src/query_user_context.c:47,1
    - Dst: fgets
      Src: /src/selinux/libselinux/src/query_user_context.c:48,1
    - Dst: context_menu
      Src: /src/selinux/libselinux/src/query_user_context.c:52,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/query_user_context.c:53,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/query_user_context.c:59,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/query_user_context.c:63,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - list
    - usercon
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 69
    functionName: query_user_context
    functionSourceFile: /src/selinux/libselinux/src/query_user_context.c
    functionUses: 0
    functionsReached:
    - context_menu
    - printf
    - strdup
    - fgets
    linkageType: ''
    returnType: int
    signature: int query_user_context(char **list, char **usercon)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/libselinux/src/query_user_context.c:79,1
    - Dst: fgets
      Src: /src/selinux/libselinux/src/query_user_context.c:80,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/query_user_context.c:82,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/query_user_context.c:83,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/query_user_context.c:85,1
    - Dst: printf
      Src: /src/selinux/libselinux/src/query_user_context.c:86,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - fieldstr
    - newfield
    - newfieldlen
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 91
    functionName: get_field
    functionSourceFile: /src/selinux/libselinux/src/query_user_context.c
    functionUses: 0
    functionsReached:
    - printf
    - strlen
    - fgets
    linkageType: ''
    returnType: void
    signature: void get_field(const char *fieldstr, char *newfield, int newfieldlen)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: is_selinux_mls_enabled
      Src: /src/selinux/libselinux/src/query_user_context.c:109,1
    - Dst: context_new
      Src: /src/selinux/libselinux/src/query_user_context.c:119,1
    - Dst: context_new
      Src: /src/selinux/libselinux/src/query_user_context.c:121,1
    - Dst: printf
      Src: /src/selinux/libselinux/src/query_user_context.c:127,1
    - Dst: fgets
      Src: /src/selinux/libselinux/src/query_user_context.c:128,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/query_user_context.c:130,1
    - Dst: context_user_set
      Src: /src/selinux/libselinux/src/query_user_context.c:135,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/query_user_context.c:136,1
    - Dst: get_field
      Src: /src/selinux/libselinux/src/query_user_context.c:139,1
    - Dst: context_role_set
      Src: /src/selinux/libselinux/src/query_user_context.c:140,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/query_user_context.c:141,1
    - Dst: get_field
      Src: /src/selinux/libselinux/src/query_user_context.c:144,1
    - Dst: context_type_set
      Src: /src/selinux/libselinux/src/query_user_context.c:145,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/query_user_context.c:146,1
    - Dst: get_field
      Src: /src/selinux/libselinux/src/query_user_context.c:151,1
    - Dst: context_range_set
      Src: /src/selinux/libselinux/src/query_user_context.c:152,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/query_user_context.c:153,1
    - Dst: context_str
      Src: /src/selinux/libselinux/src/query_user_context.c:159,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/query_user_context.c:161,1
    - Dst: security_check_context
      Src: /src/selinux/libselinux/src/query_user_context.c:164,1
    - Dst: printf
      Src: /src/selinux/libselinux/src/query_user_context.c:167,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/query_user_context.c:170,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/query_user_context.c:171,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 2
    argNames:
    - user
    - newcon
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 175
    functionName: manual_user_enter_context
    functionSourceFile: /src/selinux/libselinux/src/query_user_context.c
    functionUses: 0
    functionsReached:
    - context_new
    - context_user_set
    - context_str
    - strdup
    - get_field
    - fgets
    - is_selinux_mls_enabled
    - context_type_set
    - context_role_set
    - security_check_context
    - printf
    - context_range_set
    - context_free
    linkageType: ''
    returnType: int
    signature: int manual_user_enter_context(const char *user, char **newcon)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fsetxattr
      Src: /src/selinux/libselinux/src/fsetfilecon.c:17,1
    - Dst: fcntl
      Src: /src/selinux/libselinux/src/fsetfilecon.c:22,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/fsetfilecon.c:28,1
    - Dst: setxattr
      Src: /src/selinux/libselinux/src/fsetfilecon.c:30,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 5
    argNames:
    - fd
    - name
    - value
    - size
    - flags
    argTypes:
    - int
    - char*
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 34
    functionName: fsetxattr_wrapper
    functionSourceFile: /src/selinux/libselinux/src/fsetfilecon.c
    functionUses: 0
    functionsReached:
    - fsetxattr
    - setxattr
    - fcntl
    - snprintf
    linkageType: ''
    returnType: int
    signature: "int fsetxattr_wrapper(int fd, const char *name, const void *value,\n\t\t\t
      \    size_t size, int flags)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fsetxattr_wrapper
      Src: /src/selinux/libselinux/src/fsetfilecon.c:38,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/fsetfilecon.c:39,1
    - Dst: fgetfilecon_raw
      Src: /src/selinux/libselinux/src/fsetfilecon.c:43,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/fsetfilecon.c:44,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/fsetfilecon.c:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - fd
    - context
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: fsetfilecon_raw
    functionSourceFile: /src/selinux/libselinux/src/fsetfilecon.c
    functionUses: 0
    functionsReached:
    - freecon
    - strcmp
    - fsetxattr_wrapper
    - fgetfilecon_raw
    - strlen
    linkageType: ''
    returnType: int
    signature: int fsetfilecon_raw(int fd, const char *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: selinux_trans_to_raw_context
      Src: /src/selinux/libselinux/src/fsetfilecon.c:59,1
    - Dst: fsetfilecon_raw
      Src: /src/selinux/libselinux/src/fsetfilecon.c:62,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/fsetfilecon.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fd
    - context
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 54
    functionDepth: 4
    functionLinenumber: 54
    functionLinenumberEnd: 67
    functionName: fsetfilecon
    functionSourceFile: /src/selinux/libselinux/src/fsetfilecon.c
    functionUses: 2
    functionsReached:
    - freecon
    - selinux_trans_to_raw_context
    - fsetfilecon_raw
    linkageType: ''
    returnType: int
    signature: int fsetfilecon(int fd, const char *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sched_yield
      Src: /src/selinux/libselinux/src/sestatus.c:71,1
    - Dst: __sync_synchronize
      Src: /src/selinux/libselinux/src/sestatus.c:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - status
    argTypes:
    - struct selinux_status_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 80
    functionName: read_sequence
    functionSourceFile: /src/selinux/libselinux/src/sestatus.c
    functionUses: 0
    functionsReached:
    - sched_yield
    - __sync_synchronize
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t read_sequence(struct selinux_status_t *status)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: read_sequence
      Src: /src/selinux/libselinux/src/sestatus.c:108,1
    - Dst: __pthread_mutex_lock
      Src: /src/selinux/libselinux/src/sestatus.c:114,1
    - Dst: avc_netlink_check_nb
      Src: /src/selinux/libselinux/src/sestatus.c:117,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/sestatus.c:118,1
    - Dst: read_sequence
      Src: /src/selinux/libselinux/src/sestatus.c:124,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/sestatus.c:138,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/sestatus.c:144,1
    - Dst: read_sequence
      Src: /src/selinux/libselinux/src/sestatus.c:153,1
    - Dst: avc_process_setenforce
      Src: /src/selinux/libselinux/src/sestatus.c:157,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/sestatus.c:158,1
    - Dst: avc_process_policyload
      Src: /src/selinux/libselinux/src/sestatus.c:163,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/sestatus.c:164,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/sestatus.c:171,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 173
    functionName: selinux_status_updated
    functionSourceFile: /src/selinux/libselinux/src/sestatus.c
    functionUses: 1
    functionsReached:
    - __pthread_mutex_unlock
    - avc_process_policyload
    - read_sequence
    - avc_process_setenforce
    - __pthread_mutex_lock
    - avc_netlink_check_nb
    linkageType: ''
    returnType: int
    signature: int selinux_status_updated(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __pthread_mutex_lock
      Src: /src/selinux/libselinux/src/sestatus.c:194,1
    - Dst: avc_netlink_check_nb
      Src: /src/selinux/libselinux/src/sestatus.c:195,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/sestatus.c:196,1
    - Dst: read_sequence
      Src: /src/selinux/libselinux/src/sestatus.c:202,1
    - Dst: read_sequence
      Src: /src/selinux/libselinux/src/sestatus.c:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 209
    functionName: selinux_status_getenforce
    functionSourceFile: /src/selinux/libselinux/src/sestatus.c
    functionUses: 0
    functionsReached:
    - __pthread_mutex_unlock
    - __pthread_mutex_lock
    - read_sequence
    - avc_netlink_check_nb
    linkageType: ''
    returnType: int
    signature: int selinux_status_getenforce(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __pthread_mutex_lock
      Src: /src/selinux/libselinux/src/sestatus.c:233,1
    - Dst: avc_netlink_check_nb
      Src: /src/selinux/libselinux/src/sestatus.c:234,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/sestatus.c:235,1
    - Dst: read_sequence
      Src: /src/selinux/libselinux/src/sestatus.c:241,1
    - Dst: read_sequence
      Src: /src/selinux/libselinux/src/sestatus.c:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 248
    functionName: selinux_status_policyload
    functionSourceFile: /src/selinux/libselinux/src/sestatus.c
    functionUses: 0
    functionsReached:
    - __pthread_mutex_unlock
    - __pthread_mutex_lock
    - read_sequence
    - avc_netlink_check_nb
    linkageType: ''
    returnType: int
    signature: int selinux_status_policyload(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: security_deny_unknown
      Src: /src/selinux/libselinux/src/sestatus.c:268,1
    - Dst: read_sequence
      Src: /src/selinux/libselinux/src/sestatus.c:272,1
    - Dst: read_sequence
      Src: /src/selinux/libselinux/src/sestatus.c:276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 279
    functionName: selinux_status_deny_unknown
    functionSourceFile: /src/selinux/libselinux/src/sestatus.c
    functionUses: 0
    functionsReached:
    - security_deny_unknown
    - read_sequence
    linkageType: ''
    returnType: int
    signature: int selinux_status_deny_unknown(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - enforcing
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 290
    functionName: fallback_cb_setenforce
    functionSourceFile: /src/selinux/libselinux/src/sestatus.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fallback_cb_setenforce(int enforcing)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - policyload
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 298
    functionName: fallback_cb_policyload
    functionSourceFile: /src/selinux/libselinux/src/sestatus.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int fallback_cb_policyload(int policyload)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/selinux/libselinux/src/sestatus.c:327,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/sestatus.c:331,1
    - Dst: open
      Src: /src/selinux/libselinux/src/sestatus.c:332,1
    - Dst: mmap
      Src: /src/selinux/libselinux/src/sestatus.c:336,1
    - Dst: close
      Src: /src/selinux/libselinux/src/sestatus.c:337,1
    - Dst: read_sequence
      Src: /src/selinux/libselinux/src/sestatus.c:345,1
    - Dst: read_sequence
      Src: /src/selinux/libselinux/src/sestatus.c:349,1
    - Dst: avc_netlink_open
      Src: /src/selinux/libselinux/src/sestatus.c:363,1
    - Dst: selinux_set_callback
      Src: /src/selinux/libselinux/src/sestatus.c:368,1
    - Dst: selinux_set_callback
      Src: /src/selinux/libselinux/src/sestatus.c:370,1
    - Dst: avc_create_thread
      Src: /src/selinux/libselinux/src/sestatus.c:378,1
    - Dst: security_getenforce
      Src: /src/selinux/libselinux/src/sestatus.c:382,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 1
    argNames:
    - fallback
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 390
    functionName: selinux_status_open
    functionSourceFile: /src/selinux/libselinux/src/sestatus.c
    functionUses: 1
    functionsReached:
    - close
    - snprintf
    - mmap
    - security_getenforce
    - sysconf
    - avc_netlink_open
    - open
    - avc_create_thread
    - read_sequence
    - selinux_set_callback
    linkageType: ''
    returnType: int
    signature: int selinux_status_open(int fallback)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: avc_stop_thread
      Src: /src/selinux/libselinux/src/sestatus.c:409,1
    - Dst: avc_netlink_release_fd
      Src: /src/selinux/libselinux/src/sestatus.c:411,1
    - Dst: avc_netlink_close
      Src: /src/selinux/libselinux/src/sestatus.c:412,1
    - Dst: sysconf
      Src: /src/selinux/libselinux/src/sestatus.c:417,1
    - Dst: munmap
      Src: /src/selinux/libselinux/src/sestatus.c:420,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 424
    functionName: selinux_status_close
    functionSourceFile: /src/selinux/libselinux/src/sestatus.c
    functionUses: 1
    functionsReached:
    - avc_netlink_release_fd
    - avc_netlink_close
    - munmap
    - sysconf
    - avc_stop_thread
    linkageType: ''
    returnType: void
    signature: void selinux_status_close(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_selinux_enabled
      Src: /src/selinux/libselinux/src/checkAccess.c:15,1
    - Dst: avc_open
      Src: /src/selinux/libselinux/src/checkAccess.c:17,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 3
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: avc_init_once
    functionSourceFile: /src/selinux/libselinux/src/checkAccess.c
    functionUses: 0
    functionsReached:
    - is_selinux_enabled
    - avc_open
    linkageType: ''
    returnType: void
    signature: void avc_init_once(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: __selinux_once
      Src: /src/selinux/libselinux/src/checkAccess.c:31,1
    - Dst: avc_context_to_sid
      Src: /src/selinux/libselinux/src/checkAccess.c:36,1
    - Dst: avc_context_to_sid
      Src: /src/selinux/libselinux/src/checkAccess.c:40,1
    - Dst: selinux_status_updated
      Src: /src/selinux/libselinux/src/checkAccess.c:44,1
    - Dst: string_to_security_class
      Src: /src/selinux/libselinux/src/checkAccess.c:46,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/checkAccess.c:49,1
    - Dst: security_deny_unknown
      Src: /src/selinux/libselinux/src/checkAccess.c:50,1
    - Dst: string_to_av_perm
      Src: /src/selinux/libselinux/src/checkAccess.c:56,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/checkAccess.c:59,1
    - Dst: security_deny_unknown
      Src: /src/selinux/libselinux/src/checkAccess.c:61,1
    - Dst: avc_has_perm
      Src: /src/selinux/libselinux/src/checkAccess.c:67,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 5
    argNames:
    - scon
    - tcon
    - class
    - perm
    - aux
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 22
    functionDepth: 5
    functionLinenumber: 22
    functionLinenumberEnd: 68
    functionName: selinux_check_access
    functionSourceFile: /src/selinux/libselinux/src/checkAccess.c
    functionUses: 0
    functionsReached:
    - string_to_av_perm
    - string_to_security_class
    - security_deny_unknown
    - avc_has_perm
    - avc_log
    - __selinux_once
    - avc_context_to_sid
    - selinux_status_updated
    linkageType: ''
    returnType: int
    signature: "int selinux_check_access(const char *scon, const char *tcon, const
      char *class,\n\t\t\t const char *perm, void *aux)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_selinux_enabled
      Src: /src/selinux/libselinux/src/checkAccess.c:74,1
    - Dst: getprevcon_raw
      Src: /src/selinux/libselinux/src/checkAccess.c:76,1
    - Dst: string_to_security_class
      Src: /src/selinux/libselinux/src/checkAccess.c:81,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/checkAccess.c:83,1
    - Dst: security_deny_unknown
      Src: /src/selinux/libselinux/src/checkAccess.c:84,1
    - Dst: security_compute_av_raw
      Src: /src/selinux/libselinux/src/checkAccess.c:89,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/checkAccess.c:95,1
    - Dst: security_getenforce
      Src: /src/selinux/libselinux/src/checkAccess.c:98,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - requested
    argTypes:
    - access_vector_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 102
    functionName: selinux_check_passwd_access_internal
    functionSourceFile: /src/selinux/libselinux/src/checkAccess.c
    functionUses: 0
    functionsReached:
    - freecon
    - security_getenforce
    - string_to_security_class
    - security_deny_unknown
    - security_compute_av_raw
    - getprevcon_raw
    - is_selinux_enabled
    linkageType: ''
    returnType: int
    signature: int selinux_check_passwd_access_internal(access_vector_t requested)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: selinux_check_passwd_access_internal
      Src: /src/selinux/libselinux/src/checkAccess.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - requested
    argTypes:
    - access_vector_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 4
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: selinux_check_passwd_access
    functionSourceFile: /src/selinux/libselinux/src/checkAccess.c
    functionUses: 0
    functionsReached:
    - selinux_check_passwd_access_internal
    linkageType: ''
    returnType: int
    signature: int selinux_check_passwd_access(access_vector_t requested)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: selinux_check_passwd_access_internal
      Src: /src/selinux/libselinux/src/checkAccess.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - requested
    argTypes:
    - access_vector_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 112
    functionName: checkPasswdAccess
    functionSourceFile: /src/selinux/libselinux/src/checkAccess.c
    functionUses: 0
    functionsReached:
    - selinux_check_passwd_access_internal
    linkageType: ''
    returnType: int
    signature: int checkPasswdAccess(access_vector_t requested)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libselinux/src/label_backends_android.c:42,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/label_backends_android.c:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - A
    - B
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 46
    functionName: cmp
    functionSourceFile: /src/selinux/libselinux/src/label_backends_android.c
    functionUses: 225
    functionsReached:
    - strlen
    linkageType: ''
    returnType: int
    signature: int cmp(const void *A, const void *B)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_backends_android.c:60,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_backends_android.c:62,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_backends_android.c:66,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_backends_android.c:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - data
    - path
    argTypes:
    - struct saved_data*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 82
    functionName: nodups_specs
    functionSourceFile: /src/selinux/libselinux/src/label_backends_android.c
    functionUses: 0
    functionsReached:
    - strcmp
    - selinux_log
    linkageType: ''
    returnType: int
    signature: int nodups_specs(struct saved_data *data, const char *path)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: read_spec_entries
      Src: /src/selinux/libselinux/src/label_backends_android.c:94,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/label_backends_android.c:94,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_backends_android.c:98,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_backends_android.c:102,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_backends_android.c:106,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_backends_android.c:114,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_backends_android.c:116,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_backends_android.c:122,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_backends_android.c:123,1
    - Dst: selabel_validate
      Src: /src/selinux/libselinux/src/label_backends_android.c:130,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_backends_android.c:131,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 5
    argNames:
    - rec
    - path
    - line_buf
    - pass
    - lineno
    argTypes:
    - struct selabel_handle*
    - char*
    - char*
    - int
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 144
    functionName: process_line
    functionSourceFile: /src/selinux/libselinux/src/label_backends_android.c
    functionUses: 2
    functionsReached:
    - read_spec_entries
    - selinux_log
    - selabel_validate
    - free
    - strlen
    linkageType: ''
    returnType: int
    signature: "int process_line(struct selabel_handle *rec, const char *path,\n\t\t\tchar
      *line_buf, int pass, unsigned lineno)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/libselinux/src/label_backends_android.c:178,1
    - Dst: fstat
      Src: /src/selinux/libselinux/src/label_backends_android.c:181,1
    - Dst: fileno
      Src: /src/selinux/libselinux/src/label_backends_android.c:181,1
    - Dst: S_ISREG
      Src: /src/selinux/libselinux/src/label_backends_android.c:184,1
    - Dst: fgets
      Src: /src/selinux/libselinux/src/label_backends_android.c:198,1
    - Dst: process_line
      Src: /src/selinux/libselinux/src/label_backends_android.c:200,1
    - Dst: nodups_specs
      Src: /src/selinux/libselinux/src/label_backends_android.c:208,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label_backends_android.c:220,1
    - Dst: fseek
      Src: /src/selinux/libselinux/src/label_backends_android.c:228,1
    - Dst: qsort
      Src: /src/selinux/libselinux/src/label_backends_android.c:234,1
    - Dst: digest_add_specfile
      Src: /src/selinux/libselinux/src/label_backends_android.c:236,1
    - Dst: digest_gen_hash
      Src: /src/selinux/libselinux/src/label_backends_android.c:240,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/label_backends_android.c:243,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 72
    argCount: 3
    argNames:
    - rec
    - opts
    - n
    argTypes:
    - struct selabel_handle*
    - struct selinux_opt*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 245
    functionName: init
    functionSourceFile: /src/selinux/libselinux/src/label_backends_android.c
    functionUses: 2113
    functionsReached:
    - S_ISREG
    - fclose
    - nodups_specs
    - digest_add_specfile
    - fgets
    - fileno
    - qsort
    - fstat
    - calloc
    - fopen
    - process_line
    - digest_gen_hash
    - fseek
    linkageType: ''
    returnType: int
    signature: "int init(struct selabel_handle *rec, const struct selinux_opt *opts,\n\t\tunsigned
      n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libselinux/src/label_backends_android.c:261,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_backends_android.c:262,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_backends_android.c:263,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_backends_android.c:267,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_backends_android.c:269,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - rec
    argTypes:
    - struct selabel_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 271
    functionName: closef
    functionSourceFile: /src/selinux/libselinux/src/label_backends_android.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void closef(struct selabel_handle *rec)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/selinux/libselinux/src/label_backends_android.c:289,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/label_backends_android.c:290,1
    - Dst: strncmp
      Src: /src/selinux/libselinux/src/label_backends_android.c:293,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 3
    argNames:
    - rec
    - key
    - type
    argTypes:
    - struct selabel_handle*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 307
    functionName: property_lookup
    functionSourceFile: /src/selinux/libselinux/src/label_backends_android.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: struct selabel_lookup_rec
    signature: "struct selabel_lookup_rec *property_lookup(struct selabel_handle *rec,\n\t\t\t\t\t\t
      \ const char *key,\n\t\t\t\t\t\t  int\n\t\t\t\t\t\t  __attribute__((unused))
      type)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_backends_android.c:325,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_backends_android.c:327,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - rec
    - key
    - type
    argTypes:
    - struct selabel_handle*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 341
    functionName: service_lookup
    functionSourceFile: /src/selinux/libselinux/src/label_backends_android.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct selabel_lookup_rec
    signature: "struct selabel_lookup_rec *service_lookup(struct selabel_handle *rec,\n\t\t\t\t\t\t
      const char *key,\n\t\t\t\t\t\t int\n\t\t\t\t\t\t __attribute__((unused)) type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_backends_android.c:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rec
    argTypes:
    - struct selabel_handle __attribute__((unused))*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 347
    functionName: stats
    functionSourceFile: /src/selinux/libselinux/src/label_backends_android.c
    functionUses: 6
    functionsReached:
    - selinux_log
    linkageType: ''
    returnType: void
    signature: void stats(struct selabel_handle __attribute__((unused)) * rec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label_backends_android.c:354,1
    - Dst: init
      Src: /src/selinux/libselinux/src/label_backends_android.c:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - rec
    - opts
    - nopts
    argTypes:
    - struct selabel_handle*
    - struct selinux_opt*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 364
    functionName: selabel_property_init
    functionSourceFile: /src/selinux/libselinux/src/label_backends_android.c
    functionUses: 0
    functionsReached:
    - init
    - calloc
    linkageType: ''
    returnType: int
    signature: "int selabel_property_init(struct selabel_handle *rec,\n\t\t\t  const
      struct selinux_opt *opts, unsigned nopts)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label_backends_android.c:371,1
    - Dst: init
      Src: /src/selinux/libselinux/src/label_backends_android.c:380,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - rec
    - opts
    - nopts
    argTypes:
    - struct selabel_handle*
    - struct selinux_opt*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 381
    functionName: selabel_service_init
    functionSourceFile: /src/selinux/libselinux/src/label_backends_android.c
    functionUses: 0
    functionsReached:
    - init
    - calloc
    linkageType: ''
    returnType: int
    signature: "int selabel_service_init(struct selabel_handle *rec,\n\t\t\t const
      struct selinux_opt *opts, unsigned nopts)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libselinux/src/lgetfilecon.c:17,1
    - Dst: lgetxattr
      Src: /src/selinux/libselinux/src/lgetfilecon.c:21,1
    - Dst: lgetxattr
      Src: /src/selinux/libselinux/src/lgetfilecon.c:25,1
    - Dst: realloc
      Src: /src/selinux/libselinux/src/lgetfilecon.c:30,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/lgetfilecon.c:35,1
    - Dst: lgetxattr
      Src: /src/selinux/libselinux/src/lgetfilecon.c:36,1
    - Dst: free
      Src: /src/selinux/libselinux/src/lgetfilecon.c:45,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - path
    - context
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 49
    functionName: lgetfilecon_raw
    functionSourceFile: /src/selinux/libselinux/src/lgetfilecon.c
    functionUses: 3
    functionsReached:
    - realloc
    - free
    - lgetxattr
    - calloc
    - memset
    linkageType: ''
    returnType: int
    signature: int lgetfilecon_raw(const char *path, char **context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lgetfilecon_raw
      Src: /src/selinux/libselinux/src/lgetfilecon.c:58,1
    - Dst: selinux_raw_to_trans_context
      Src: /src/selinux/libselinux/src/lgetfilecon.c:61,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/lgetfilecon.c:62,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/lgetfilecon.c:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - path
    - context
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 51
    functionDepth: 4
    functionLinenumber: 51
    functionLinenumberEnd: 68
    functionName: lgetfilecon
    functionSourceFile: /src/selinux/libselinux/src/lgetfilecon.c
    functionUses: 1
    functionsReached:
    - lgetfilecon_raw
    - strlen
    - selinux_raw_to_trans_context
    - freecon
    linkageType: ''
    returnType: int
    signature: int lgetfilecon(const char *path, char **context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: selinux_log
    functionSourceFile: /src/selinux/libselinux/src/callbacks.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: selinux_log(type, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: statfs
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 112
    functionName: probe_proc
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached:
    - statfs
    linkageType: ''
    returnType: bool
    signature: bool probe_proc(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:120,1
    - Dst: getfilecon_raw
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:124,1
    - Dst: lgetfilecon_raw
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:127,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - fd
    - pathname
    - con
    argTypes:
    - int
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 128
    functionName: fd_path_getfilecon
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached:
    - getfilecon_raw
    - lgetfilecon_raw
    - snprintf
    linkageType: ''
    returnType: int
    signature: int fd_path_getfilecon(int fd, const char *pathname, char **con)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:136,1
    - Dst: setfilecon_raw
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:140,1
    - Dst: lsetfilecon_raw
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - fd
    - pathname
    - con
    argTypes:
    - int
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 144
    functionName: fd_path_setfilecon
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached:
    - setfilecon_raw
    - lsetfilecon_raw
    - snprintf
    linkageType: ''
    returnType: int
    signature: int fd_path_setfilecon(int fd, const char *pathname, char *con)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: selinux_restorecon_default_handle
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:151,1
    - Dst: selinux_restorecon_set_sehandle
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:152,1
    - Dst: exclude_non_seclabel_mounts
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:157,1
    - Dst: probe_proc
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 160
    functionName: restorecon_init
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached:
    - selinux_restorecon_default_handle
    - probe_proc
    - exclude_non_seclabel_mounts
    - selinux_restorecon_set_sehandle
    linkageType: ''
    returnType: void
    signature: void restorecon_init(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:197,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - directory
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 206
    functionName: remove_exclude
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached:
    - free
    - strcmp
    linkageType: ''
    returnType: void
    signature: void remove_exclude(const char *directory)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:215,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:223,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:228,1
    - Dst: reallocarray
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:234,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:241,1
    - Dst: strndup
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:247,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:257,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - directory
    - who
    argTypes:
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 259
    functionName: add_exclude
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 2
    functionsReached:
    - reallocarray
    - strndup
    - strcmp
    - selinux_log
    - strlen
    linkageType: ''
    returnType: int
    signature: int add_exclude(const char *directory, bool who)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - file
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 274
    functionName: check_excluded
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: int
    signature: int check_excluded(const char *file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:281,1
    - Dst: statvfs
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:282,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 286
    functionName: file_system_count
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached:
    - statvfs
    - memset
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t file_system_count(const char *name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: uname
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:306,1
    - Dst: strverscmp
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:306,1
    - Dst: is_selinux_enabled
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:308,1
    - Dst: fopen
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:311,1
    - Dst: getline
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:315,1
    - Dst: strtok_r
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:319,1
    - Dst: strtok_r
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:325,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:328,1
    - Dst: remove_exclude
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:336,1
    - Dst: strtok_r
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:339,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:341,1
    - Dst: file_system_count
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:343,1
    - Dst: strtok_r
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:346,1
    - Dst: add_exclude
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:351,1
    - Dst: assert
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:353,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:357,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:358,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0)
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/selinux/libselinux/src/selinux_restorecon.c
    constantsTouched: []
    func_position:
      end: 361
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 361
    functionName: exclude_non_seclabel_mounts
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 1
    functionsReached:
    - file_system_count
    - fclose
    - strverscmp
    - strtok_r
    - uname
    - selinux_log
    - remove_exclude
    - strcmp
    - assert
    - add_exclude
    - free
    - fopen
    - is_selinux_enabled
    - getline
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t exclude_non_seclabel_mounts(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: selabel_get_digests_all_partial_matches
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:381,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:387,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:392,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:394,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:395,1
    - Dst: sprintf
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:400,1
    - Dst: removexattr
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:406,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:408,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:415,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:416,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:419,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:421,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:426,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:428,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:429,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:448,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 3
    argNames:
    - directory
    - delete_nonmatch
    - delete_all
    argTypes:
    - char*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 450
    functionName: add_xattr_entry
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached:
    - selabel_get_digests_all_partial_matches
    - removexattr
    - malloc
    - selinux_log
    - sprintf
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int add_xattr_entry(const char *directory, bool delete_nonmatch,\n\t\t\t
      \  bool delete_all)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: __pthread_mutex_lock
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:496,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:499,1
    - Dst: lstat
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:508,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:510,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:511,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:512,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:515,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:521,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:524,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:528,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:529,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:533,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:536,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:548,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:552,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:555,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:561,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:565,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:567,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:569,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:570,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:573,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 77
    argCount: 4
    argNames:
    - ino
    - con
    - file
    - flags
    argTypes:
    - ino_t
    - char*
    - char*
    - struct rest_flags*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 575
    functionName: filespec_add
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached:
    - freecon
    - malloc
    - strcmp
    - selinux_log
    - free
    - calloc
    - __pthread_mutex_unlock
    - __pthread_mutex_lock
    - lstat
    - strdup
    linkageType: ''
    returnType: int
    signature: "int filespec_add(ino_t ino, const char *con, const char *file,\n\t\t\tconst
      struct rest_flags *flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:604,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 608
    functionName: filespec_eval
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached:
    - selinux_log
    linkageType: ''
    returnType: void
    signature: void filespec_eval(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 612
    functionName: filespec_eval
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void filespec_eval(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freecon
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:631,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:632,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:633,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:637,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 639
    functionName: filespec_destroy
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached:
    - free
    - freecon
    linkageType: ''
    returnType: void
    signature: void filespec_destroy(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: context_new
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:655,1
    - Dst: context_new
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:660,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:662,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:667,1
    - Dst: context_type_get
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:667,1
    - Dst: context_type_get
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:667,1
    - Dst: context_type_set
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:669,1
    - Dst: context_type_get
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:669,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:675,1
    - Dst: context_user_get
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:675,1
    - Dst: context_user_get
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:676,1
    - Dst: context_user_set
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:678,1
    - Dst: context_user_get
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:678,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:683,1
    - Dst: context_role_get
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:683,1
    - Dst: context_role_get
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:684,1
    - Dst: context_role_set
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:686,1
    - Dst: context_role_get
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:686,1
    - Dst: context_to_str
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:693,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:703,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:704,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 54
    argCount: 4
    argNames:
    - curcon
    - newcon
    - set_user_role
    - newtypecon
    argTypes:
    - char*
    - char*
    - bool
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 647
    functionDepth: 2
    functionLinenumber: 647
    functionLinenumberEnd: 707
    functionName: compare_portions
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached:
    - context_to_str
    - context_new
    - context_user_set
    - context_role_get
    - strcmp
    - context_type_get
    - context_type_set
    - context_role_set
    - context_user_get
    - context_free
    linkageType: ''
    returnType: int
    signature: "int compare_portions(const char *curcon, const char *newcon,\n\t\t\t
      \   bool set_user_role, char **newtypecon)"
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: S_ISDIR
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:719,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:721,1
    - Dst: strncmp
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:727,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:728,1
    - Dst: selabel_lookup_raw
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:738,1
    - Dst: selabel_lookup_raw
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:741,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:747,1
    - Dst: __atomic_add_fetch
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:762,1
    - Dst: __pthread_mutex_lock
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:765,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:771,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:773,1
    - Dst: fflush
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:776,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:777,1
    - Dst: filespec_add
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:782,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:785,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:787,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:793,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:799,1
    - Dst: fd_path_getfilecon
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:802,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:812,1
    - Dst: is_context_customizable
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:814,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:816,1
    - Dst: compare_portions
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:831,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:838,1
    - Dst: fd_path_setfilecon
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:846,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:851,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:865,1
    - Dst: syslog
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:872,1
    - Dst: syslog
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:876,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:888,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:889,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:892,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 121
    argCount: 6
    argNames:
    - fd
    - pathname
    - sb
    - flags
    - first
    - updated_out
    argTypes:
    - int
    - char*
    - struct stat*
    - struct rest_flags*
    - bool
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 709
    functionDepth: 4
    functionLinenumber: 709
    functionLinenumberEnd: 896
    functionName: restorecon_sb
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached:
    - strncmp
    - freecon
    - compare_portions
    - is_context_customizable
    - __atomic_add_fetch
    - selinux_log
    - strcmp
    - selabel_lookup_raw
    - filespec_add
    - fd_path_getfilecon
    - S_ISDIR
    - fflush
    - __pthread_mutex_unlock
    - __pthread_mutex_lock
    - syslog
    - fprintf
    - fd_path_setfilecon
    linkageType: ''
    returnType: int
    signature: "int restorecon_sb(int fd, const char *pathname, const struct stat
      *sb,\n\t\t\t const struct rest_flags *flags, bool first,\n\t\t\t bool *updated_out)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: selabel_get_digests_all_partial_matches
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:916,1
    - Dst: assert
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:925,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:926,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:931,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:932,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - pathname
    - digest_out
    - have_digest
    argTypes:
    - char*
    - uint8_t[]
    - bool*
    assertStmts:
    - condition: (digest_len == SHA1_HASH_SIZE)
      pos:
        line_end: 924
        line_start: 924
        source_file: /src/selinux/libselinux/src/selinux_restorecon.c
    constantsTouched: []
    func_position:
      end: 934
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 934
    functionName: check_context_match_for_dir
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached:
    - selabel_get_digests_all_partial_matches
    - free
    - memcpy
    - assert
    linkageType: ''
    returnType: bool
    signature: "bool check_context_match_for_dir(const char *pathname,\n\t\t\t\t\tuint8_t
      digest_out[SHA1_HASH_SIZE],\n\t\t\t\t\tbool *have_digest)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reallocarray
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:978,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:980,1
    - Dst: fdopendir
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:987,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:989,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 5
    argNames:
    - st
    - rdfd
    - dev
    - ino
    - pathlen
    argTypes:
    - struct rest_state*
    - int
    - dev_t
    - ino_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 969
    functionDepth: 0
    functionLinenumber: 969
    functionLinenumberEnd: 1001
    functionName: walk_push
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached:
    - close
    - reallocarray
    - fdopendir
    linkageType: ''
    returnType: int
    signature: "int walk_push(struct rest_state *st, int rdfd, dev_t dev, ino_t ino,\n\t\t
      \    size_t pathlen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct rest_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 1003
    functionDepth: 0
    functionLinenumber: 1003
    functionLinenumberEnd: 1007
    functionName: prune_pathbuf
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void prune_pathbuf(struct rest_state *st)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: closedir
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1014,1
    - Dst: prune_pathbuf
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct rest_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1009
    functionDepth: 1
    functionLinenumber: 1009
    functionLinenumberEnd: 1016
    functionName: walk_pop
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached:
    - closedir
    - prune_pathbuf
    linkageType: ''
    returnType: void
    signature: void walk_pop(struct rest_state *st)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: walk_pop
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1021,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1022,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct rest_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1018
    functionDepth: 2
    functionLinenumber: 1018
    functionLinenumberEnd: 1025
    functionName: walk_free
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached:
    - walk_pop
    - free
    linkageType: ''
    returnType: void
    signature: void walk_free(struct rest_state *st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1030,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1039,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - st
    - name
    argTypes:
    - struct rest_state*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1027
    functionDepth: 0
    functionLinenumber: 1027
    functionLinenumberEnd: 1042
    functionName: walk_path_append
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached:
    - memcpy
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t walk_path_append(struct rest_state *st, const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - st
    - dev
    - ino
    argTypes:
    - struct rest_state*
    - dev_t
    - ino_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1044
    functionDepth: 0
    functionLinenumber: 1044
    functionLinenumberEnd: 1050
    functionName: walk_is_cycle
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool walk_is_cycle(const struct rest_state *st, dev_t dev, ino_t ino)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct rest_state*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1052
    functionDepth: 0
    functionLinenumber: 1052
    functionLinenumberEnd: 1064
    functionName: note_walk_error
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool note_walk_error(struct rest_state *state)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - d_type
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 1070
    functionDepth: 0
    functionLinenumber: 1070
    functionLinenumberEnd: 1090
    functionName: d_type_to_mode
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mode_t
    signature: mode_t d_type_to_mode(unsigned char d_type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: openat
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1097,1
    - Dst: fcntl
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1099,1
    - Dst: fstat
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1103,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1104,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - dfd
    - name
    - sb
    argTypes:
    - int
    - char*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1109
      start: 1092
    functionDepth: 0
    functionLinenumber: 1092
    functionLinenumberEnd: 1109
    functionName: open_final
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached:
    - close
    - fcntl
    - fstat
    - openat
    linkageType: ''
    returnType: int
    signature: int open_final(int dfd, const char *name, struct stat *sb)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1127,1
    - Dst: fstat
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1129,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1130,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1140,1
    - Dst: open
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1145,1
    - Dst: open
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1148,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1152,1
    - Dst: strchr
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1160,1
    - Dst: openat
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1167,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1170,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1172,1
    - Dst: open_final
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1181,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1182,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1183,1
    - Dst: open_final
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1187,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1188,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1189,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 2
    argNames:
    - path
    - sb
    argTypes:
    - char*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1191
      start: 1111
    functionDepth: 0
    functionLinenumber: 1111
    functionLinenumberEnd: 1191
    functionName: safe_open
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached:
    - close
    - strchr
    - openat
    - syscall
    - free
    - open
    - fstat
    - open_final
    - strdup
    linkageType: ''
    returnType: int
    signature: int safe_open(const char *path, struct stat *sb)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1208,1
    - Dst: strlcpy
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1209,1
    - Dst: S_ISDIR
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1211,1
    - Dst: openat
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1212,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1217,1
    - Dst: note_walk_error
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1220,1
    - Dst: dirfd
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1228,1
    - Dst: readdir
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1232,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1235,1
    - Dst: walk_pop
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1239,1
    - Dst: note_walk_error
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1240,1
    - Dst: fsetxattr
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1251,1
    - Dst: dirfd
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1251,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1254,1
    - Dst: walk_pop
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1258,1
    - Dst: walk_path_append
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1267,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1269,1
    - Dst: note_walk_error
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1274,1
    - Dst: openat
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1279,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1283,1
    - Dst: note_walk_error
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1287,1
    - Dst: d_type_to_mode
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1301,1
    - Dst: S_ISDIR
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1303,1
    - Dst: fstat
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1308,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1309,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1312,1
    - Dst: note_walk_error
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1314,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1319,1
    - Dst: S_ISDIR
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1324,1
    - Dst: openat
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1325,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1330,1
    - Dst: note_walk_error
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1338,1
    - Dst: strlcpy
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1342,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 83
    argCount: 7
    argNames:
    - state
    - ent_fd
    - rd_fd
    - ent_sb
    - ent_path
    - ent_path_sz
    - ent_pathlen
    argTypes:
    - struct rest_state*
    - int*
    - int*
    - struct stat*
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1198
    functionDepth: 2
    functionLinenumber: 1198
    functionLinenumberEnd: 1354
    functionName: walk_next
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached:
    - readdir
    - fsetxattr
    - close
    - openat
    - walk_path_append
    - note_walk_error
    - strlcpy
    - dirfd
    - walk_pop
    - selinux_log
    - fstat
    - S_ISDIR
    - memset
    - strlen
    - d_type_to_mode
    linkageType: ''
    returnType: int
    signature: "int walk_next(struct rest_state *state, int *ent_fd, int *rd_fd,\n\t\t
      \    struct stat *ent_sb, char *ent_path, size_t ent_path_sz,\n\t\t     size_t
      *ent_pathlen)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: __pthread_mutex_lock
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1367,1
    - Dst: walk_next
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1372,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1375,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1377,1
    - Dst: S_ISDIR
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1381,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1386,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1388,1
    - Dst: prune_pathbuf
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1389,1
    - Dst: walk_is_cycle
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1394,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1396,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1399,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1400,1
    - Dst: prune_pathbuf
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1401,1
    - Dst: selabel_partial_match
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1406,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1407,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1409,1
    - Dst: prune_pathbuf
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1410,1
    - Dst: check_excluded
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1414,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1415,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1417,1
    - Dst: prune_pathbuf
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1418,1
    - Dst: check_context_match_for_dir
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1426,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1429,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1433,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1434,1
    - Dst: prune_pathbuf
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1435,1
    - Dst: walk_push
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1440,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1442,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1453,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1461,1
    - Dst: restorecon_sb
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1464,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1466,1
    - Dst: __pthread_mutex_lock
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1469,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1500,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 103
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1356
    functionDepth: 5
    functionLinenumber: 1356
    functionLinenumberEnd: 1502
    functionName: selinux_restorecon_thread
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached:
    - check_context_match_for_dir
    - selabel_partial_match
    - close
    - walk_next
    - walk_push
    - selinux_log
    - check_excluded
    - restorecon_sb
    - S_ISDIR
    - memcpy
    - walk_is_cycle
    - __pthread_mutex_unlock
    - __pthread_mutex_lock
    - prune_pathbuf
    linkageType: ''
    returnType: void
    signature: void *selinux_restorecon_thread(void *arg)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: __selinux_once
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1588,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1604,1
    - Dst: sysconf
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1609,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1615,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1626,1
    - Dst: basename
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1629,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1630,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1630,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1631,1
    - Dst: realpath
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1632,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1634,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1643,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1645,1
    - Dst: dirname
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1648,1
    - Dst: realpath
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1649,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1650,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1652,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1659,1
    - Dst: asprintf
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1660,1
    - Dst: asprintf
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1662,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1665,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1669,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1671,1
    - Dst: safe_open
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1676,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1679,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1680,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1683,1
    - Dst: S_ISDIR
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1691,1
    - Dst: check_excluded
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1695,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1696,1
    - Dst: restorecon_sb
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1702,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1707,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1712,1
    - Dst: S_ISLNK
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1713,1
    - Dst: fstatfs
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1713,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1714,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1716,1
    - Dst: strlcpy
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1728,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1730,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1732,1
    - Dst: selinux_restorecon_thread
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1742,1
    - Dst: pthread_self
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1745,1
    - Dst: __pthread_mutex_init
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1748,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1750,1
    - Dst: pthread_create
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1760,1
    - Dst: selinux_restorecon_thread
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1774,1
    - Dst: pthread_equal
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1779,1
    - Dst: pthread_join
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1781,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1783,1
    - Dst: __pthread_mutex_destroy
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1785,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1796,1
    - Dst: close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1801,1
    - Dst: walk_free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1802,1
    - Dst: filespec_eval
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1806,1
    - Dst: filespec_destroy
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1807,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1809,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1810,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1814,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1819,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 213
    argCount: 3
    argNames:
    - pathname_orig
    - restorecon_flags
    - nthreads
    argTypes:
    - char*
    - unsigned int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1504
    functionDepth: 6
    functionLinenumber: 1504
    functionLinenumberEnd: 1825
    functionName: selinux_restorecon_common
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 0
    functionsReached:
    - S_ISLNK
    - selinux_log
    - strcmp
    - check_excluded
    - fprintf
    - safe_open
    - walk_free
    - realpath
    - __pthread_mutex_init
    - free
    - S_ISDIR
    - pthread_join
    - asprintf
    - fstatfs
    - filespec_eval
    - pthread_create
    - dirname
    - __pthread_mutex_destroy
    - pthread_equal
    - strlcpy
    - selinux_restorecon_thread
    - __selinux_once
    - calloc
    - memset
    - restorecon_sb
    - basename
    - strdup
    - close
    - sysconf
    - filespec_destroy
    - pthread_self
    linkageType: ''
    returnType: int
    signature: "int selinux_restorecon_common(const char *pathname_orig,\n\t\t\t\t
      \    unsigned int restorecon_flags,\n\t\t\t\t     size_t nthreads)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: selinux_restorecon_common
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pathname_orig
    - restorecon_flags
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1832
    functionDepth: 7
    functionLinenumber: 1832
    functionLinenumberEnd: 1835
    functionName: selinux_restorecon
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 1
    functionsReached:
    - selinux_restorecon_common
    linkageType: ''
    returnType: int
    signature: int selinux_restorecon(const char *pathname_orig, unsigned int restorecon_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: selinux_restorecon_common
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - pathname_orig
    - restorecon_flags
    - nthreads
    argTypes:
    - char*
    - unsigned int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1838
    functionDepth: 7
    functionLinenumber: 1838
    functionLinenumberEnd: 1843
    functionName: selinux_restorecon_parallel
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 1
    functionsReached:
    - selinux_restorecon_common
    linkageType: ''
    returnType: int
    signature: "int selinux_restorecon_parallel(const char *pathname_orig,\n\t\t\t\tunsigned
      int restorecon_flags, size_t nthreads)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: selabel_close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1853,1
    - Dst: selabel_digest
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1861,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - hndl
    argTypes:
    - struct selabel_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1866
      start: 1846
    functionDepth: 2
    functionLinenumber: 1846
    functionLinenumberEnd: 1866
    functionName: selinux_restorecon_set_sehandle
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 4
    functionsReached:
    - selabel_close
    - selabel_digest
    linkageType: ''
    returnType: void
    signature: void selinux_restorecon_set_sehandle(struct selabel_handle *hndl)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: selabel_open
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1878,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1872
    functionDepth: 2
    functionLinenumber: 1872
    functionLinenumberEnd: 1888
    functionName: selinux_restorecon_default_handle
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 2
    functionsReached:
    - selinux_log
    - selabel_open
    linkageType: ''
    returnType: struct selabel_handle
    signature: struct selabel_handle *selinux_restorecon_default_handle(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1900,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1901,1
    - Dst: add_exclude
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1907,1
    - Dst: assert
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1909,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - exclude_list
    argTypes:
    - char**
    assertStmts:
    - condition: (0)
      pos:
        line_end: 1908
        line_start: 1908
        source_file: /src/selinux/libselinux/src/selinux_restorecon.c
    constantsTouched: []
    func_position:
      end: 1911
      start: 1894
    functionDepth: 1
    functionLinenumber: 1894
    functionLinenumberEnd: 1911
    functionName: selinux_restorecon_set_exclude_list
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 2
    functionsReached:
    - assert
    - add_exclude
    - lstat
    - selinux_log
    linkageType: ''
    returnType: void
    signature: void selinux_restorecon_set_exclude_list(const char **exclude_list)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1920,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1922,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1924,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1929,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - alt_rootpath
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1935
      start: 1914
    functionDepth: 1
    functionLinenumber: 1914
    functionLinenumberEnd: 1935
    functionName: selinux_restorecon_set_alt_rootpath
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 1
    functionsReached:
    - free
    - strlen
    - selinux_log
    - strdup
    linkageType: ''
    returnType: int
    signature: int selinux_restorecon_set_alt_rootpath(const char *alt_rootpath)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: __selinux_once
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1966,1
    - Dst: lstat
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1983,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1987,1
    - Dst: statfs
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1992,1
    - Dst: check_excluded
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:1998,1
    - Dst: add_xattr_entry
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:2001,1
    - Dst: fts_open
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:2014,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:2016,1
    - Dst: fts_read
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:2020,1
    - Dst: statfs
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:2025,1
    - Dst: check_excluded
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:2031,1
    - Dst: fts_set
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:2032,1
    - Dst: add_xattr_entry
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:2036,1
    - Dst: fts_close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:2051,1
    - Dst: fts_close
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:2056,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:2063,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:2064,1
    - Dst: free
      Src: /src/selinux/libselinux/src/selinux_restorecon.c:2065,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 78
    argCount: 3
    argNames:
    - pathname
    - xattr_flags
    - xattr_list
    argTypes:
    - char*
    - unsigned int
    - struct dir_xattr***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 1940
    functionDepth: 2
    functionLinenumber: 1940
    functionLinenumberEnd: 2071
    functionName: selinux_restorecon_xattr
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 1
    functionsReached:
    - fts_read
    - fts_set
    - selinux_log
    - check_excluded
    - fts_close
    - add_xattr_entry
    - __selinux_once
    - free
    - fts_open
    - lstat
    - statfs
    linkageType: ''
    returnType: int
    signature: "int selinux_restorecon_xattr(const char *pathname, unsigned int xattr_flags,\n\t\t\t
      \    struct dir_xattr ***xattr_list)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2076
      start: 2073
    functionDepth: 0
    functionLinenumber: 2073
    functionLinenumberEnd: 2076
    functionName: selinux_restorecon_get_skipped_errors
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: long unsigned
    signature: long unsigned selinux_restorecon_get_skipped_errors(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2078
    functionDepth: 0
    functionLinenumber: 2078
    functionLinenumberEnd: 2081
    functionName: selinux_restorecon_get_relabeled_files
    functionSourceFile: /src/selinux/libselinux/src/selinux_restorecon.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: long unsigned
    signature: long unsigned selinux_restorecon_get_relabeled_files(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: setxattr
      Src: /src/selinux/libselinux/src/setfilecon.c:12,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/setfilecon.c:13,1
    - Dst: getfilecon_raw
      Src: /src/selinux/libselinux/src/setfilecon.c:17,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/setfilecon.c:18,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/setfilecon.c:23,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - path
    - context
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 10
    functionDepth: 1
    functionLinenumber: 10
    functionLinenumberEnd: 26
    functionName: setfilecon_raw
    functionSourceFile: /src/selinux/libselinux/src/setfilecon.c
    functionUses: 4
    functionsReached:
    - freecon
    - strcmp
    - getfilecon_raw
    - setxattr
    - strlen
    linkageType: ''
    returnType: int
    signature: int setfilecon_raw(const char *path, const char *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: selinux_trans_to_raw_context
      Src: /src/selinux/libselinux/src/setfilecon.c:33,1
    - Dst: setfilecon_raw
      Src: /src/selinux/libselinux/src/setfilecon.c:36,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/setfilecon.c:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - path
    - context
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 41
    functionName: setfilecon
    functionSourceFile: /src/selinux/libselinux/src/setfilecon.c
    functionUses: 3
    functionsReached:
    - setfilecon_raw
    - freecon
    - selinux_trans_to_raw_context
    linkageType: ''
    returnType: int
    signature: int setfilecon(const char *path, const char *context)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - d
    argTypes:
    - struct dirent*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: filename_select
    functionSourceFile: /src/selinux/libselinux/src/booleans.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int filename_select(const struct dirent *d)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/booleans.c:54,1
    - Dst: scandir
      Src: /src/selinux/libselinux/src/booleans.c:55,1
    - Dst: free
      Src: /src/selinux/libselinux/src/booleans.c:60,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/booleans.c:65,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/booleans.c:72,1
    - Dst: free
      Src: /src/selinux/libselinux/src/booleans.c:82,1
    - Dst: free
      Src: /src/selinux/libselinux/src/booleans.c:84,1
    - Dst: free
      Src: /src/selinux/libselinux/src/booleans.c:89,1
    - Dst: free
      Src: /src/selinux/libselinux/src/booleans.c:91,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 2
    argNames:
    - names
    - len
    argTypes:
    - char***
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 94
    functionName: security_get_boolean_names
    functionSourceFile: /src/selinux/libselinux/src/booleans.c
    functionUses: 2
    functionsReached:
    - snprintf
    - malloc
    - scandir
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: int security_get_boolean_names(char ***names, int *len)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/libselinux/src/booleans.c:106,1
    - Dst: selinux_booleans_subs_path
      Src: /src/selinux/libselinux/src/booleans.c:106,1
    - Dst: getline
      Src: /src/selinux/libselinux/src/booleans.c:110,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/booleans.c:114,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/booleans.c:122,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/booleans.c:125,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/booleans.c:129,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/booleans.c:134,1
    - Dst: strchr
      Src: /src/selinux/libselinux/src/booleans.c:138,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/booleans.c:139,1
    - Dst: free
      Src: /src/selinux/libselinux/src/booleans.c:143,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/booleans.c:144,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/booleans.c:147,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 40
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 149
    functionName: selinux_boolean_sub
    functionSourceFile: /src/selinux/libselinux/src/booleans.c
    functionUses: 1
    functionsReached:
    - fclose
    - selinux_booleans_subs_path
    - isspace
    - strchr
    - strcmp
    - free
    - fopen
    - getline
    - strdup
    linkageType: ''
    returnType: char
    signature: char *selinux_boolean_sub(const char *name)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/selinux/libselinux/src/booleans.c:160,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/booleans.c:166,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/booleans.c:166,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/booleans.c:167,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/booleans.c:171,1
    - Dst: open
      Src: /src/selinux/libselinux/src/booleans.c:176,1
    - Dst: selinux_boolean_sub
      Src: /src/selinux/libselinux/src/booleans.c:180,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/booleans.c:185,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/booleans.c:185,1
    - Dst: realloc
      Src: /src/selinux/libselinux/src/booleans.c:186,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/booleans.c:191,1
    - Dst: open
      Src: /src/selinux/libselinux/src/booleans.c:196,1
    - Dst: free
      Src: /src/selinux/libselinux/src/booleans.c:198,1
    - Dst: free
      Src: /src/selinux/libselinux/src/booleans.c:199,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 2
    argNames:
    - name
    - flag
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 151
    functionDepth: 4
    functionLinenumber: 151
    functionLinenumberEnd: 202
    functionName: bool_open
    functionSourceFile: /src/selinux/libselinux/src/booleans.c
    functionUses: 0
    functionsReached:
    - strchr
    - snprintf
    - selinux_boolean_sub
    - malloc
    - realloc
    - free
    - open
    - strlen
    linkageType: ''
    returnType: int
    signature: int bool_open(const char *name, int flag)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libselinux/src/booleans.c:215,1
    - Dst: bool_open
      Src: /src/selinux/libselinux/src/booleans.c:221,1
    - Dst: read
      Src: /src/selinux/libselinux/src/booleans.c:225,1
    - Dst: close
      Src: /src/selinux/libselinux/src/booleans.c:227,1
    - Dst: free
      Src: /src/selinux/libselinux/src/booleans.c:234,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - name
    - buf
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 205
    functionDepth: 5
    functionLinenumber: 205
    functionLinenumberEnd: 236
    functionName: get_bool_value
    functionSourceFile: /src/selinux/libselinux/src/booleans.c
    functionUses: 0
    functionsReached:
    - close
    - malloc
    - free
    - read
    - bool_open
    linkageType: ''
    returnType: int
    signature: int get_bool_value(const char *name, char **buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_bool_value
      Src: /src/selinux/libselinux/src/booleans.c:243,1
    - Dst: atoi
      Src: /src/selinux/libselinux/src/booleans.c:246,1
    - Dst: free
      Src: /src/selinux/libselinux/src/booleans.c:250,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 238
    functionDepth: 6
    functionLinenumber: 238
    functionLinenumberEnd: 252
    functionName: security_get_boolean_pending
    functionSourceFile: /src/selinux/libselinux/src/booleans.c
    functionUses: 1
    functionsReached:
    - atoi
    - get_bool_value
    - free
    linkageType: ''
    returnType: int
    signature: int security_get_boolean_pending(const char *name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_bool_value
      Src: /src/selinux/libselinux/src/booleans.c:259,1
    - Dst: atoi
      Src: /src/selinux/libselinux/src/booleans.c:263,1
    - Dst: free
      Src: /src/selinux/libselinux/src/booleans.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 254
    functionDepth: 6
    functionLinenumber: 254
    functionLinenumberEnd: 269
    functionName: security_get_boolean_active
    functionSourceFile: /src/selinux/libselinux/src/booleans.c
    functionUses: 3
    functionsReached:
    - atoi
    - get_bool_value
    - free
    linkageType: ''
    returnType: int
    signature: int security_get_boolean_active(const char *name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: bool_open
      Src: /src/selinux/libselinux/src/booleans.c:285,1
    - Dst: write
      Src: /src/selinux/libselinux/src/booleans.c:295,1
    - Dst: close
      Src: /src/selinux/libselinux/src/booleans.c:296,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 271
    functionDepth: 5
    functionLinenumber: 271
    functionLinenumberEnd: 302
    functionName: security_set_boolean
    functionSourceFile: /src/selinux/libselinux/src/booleans.c
    functionUses: 0
    functionsReached:
    - bool_open
    - close
    - write
    linkageType: ''
    returnType: int
    signature: int security_set_boolean(const char *name, int value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/booleans.c:315,1
    - Dst: open
      Src: /src/selinux/libselinux/src/booleans.c:316,1
    - Dst: write
      Src: /src/selinux/libselinux/src/booleans.c:323,1
    - Dst: close
      Src: /src/selinux/libselinux/src/booleans.c:324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 330
    functionName: security_commit_booleans
    functionSourceFile: /src/selinux/libselinux/src/booleans.c
    functionUses: 0
    functionsReached:
    - write
    - close
    - open
    - snprintf
    linkageType: ''
    returnType: int
    signature: int security_commit_booleans(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: security_set_boolean
      Src: /src/selinux/libselinux/src/booleans.c:337,1
    - Dst: security_get_boolean_active
      Src: /src/selinux/libselinux/src/booleans.c:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - boollist
    - end
    argTypes:
    - SELboolean*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 332
    functionDepth: 7
    functionLinenumber: 332
    functionLinenumberEnd: 340
    functionName: rollback
    functionSourceFile: /src/selinux/libselinux/src/booleans.c
    functionUses: 0
    functionsReached:
    - security_set_boolean
    - security_get_boolean_active
    linkageType: ''
    returnType: void
    signature: void rollback(SELboolean *boollist, size_t end)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: security_set_boolean
      Src: /src/selinux/libselinux/src/booleans.c:348,1
    - Dst: rollback
      Src: /src/selinux/libselinux/src/booleans.c:349,1
    - Dst: security_commit_booleans
      Src: /src/selinux/libselinux/src/booleans.c:355,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - boolcnt
    - boollist
    - permanent
    argTypes:
    - size_t
    - SELboolean*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 342
    functionDepth: 6
    functionLinenumber: 342
    functionLinenumberEnd: 364
    functionName: security_set_boolean_list
    functionSourceFile: /src/selinux/libselinux/src/booleans.c
    functionUses: 2
    functionsReached:
    - security_set_boolean
    - security_commit_booleans
    - rollback
    linkageType: ''
    returnType: int
    signature: "int security_set_boolean_list(size_t boolcnt, SELboolean *boollist,\n\t\t\t
      \     int permanent)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 370
    functionName: security_load_booleans
    functionSourceFile: /src/selinux/libselinux/src/booleans.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int security_load_booleans(char *path __attribute__((unused)))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - boolcnt
    - boollist
    - permanent
    argTypes:
    - size_t
    - SELboolean*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 381
    functionName: security_set_boolean_list
    functionSourceFile: /src/selinux/libselinux/src/booleans.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int security_set_boolean_list(size_t boolcnt __attribute__((unused)),\n\t\t\t
      \     SELboolean *boollist __attribute__((unused)),\n\t\t\t      int permanent
      __attribute__((unused)))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 386
    functionName: security_load_booleans
    functionSourceFile: /src/selinux/libselinux/src/booleans.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int security_load_booleans(char *path __attribute__((unused)))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - names
    - len
    argTypes:
    - char***
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 392
    functionName: security_get_boolean_names
    functionSourceFile: /src/selinux/libselinux/src/booleans.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int security_get_boolean_names(char ***names __attribute__((unused)),\n\t\t\t
      \      int *len __attribute__((unused)))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 397
    functionName: security_get_boolean_pending
    functionSourceFile: /src/selinux/libselinux/src/booleans.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int security_get_boolean_pending(const char *name __attribute__((unused)))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 402
    functionName: security_get_boolean_active
    functionSourceFile: /src/selinux/libselinux/src/booleans.c
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int security_get_boolean_active(const char *name __attribute__((unused)))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 408
    functionName: security_set_boolean
    functionSourceFile: /src/selinux/libselinux/src/booleans.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int security_set_boolean(const char *name __attribute__((unused)),\n\t\t\t
      int value __attribute__((unused)))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 413
    functionName: security_commit_booleans
    functionSourceFile: /src/selinux/libselinux/src/booleans.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int security_commit_booleans(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 418
    functionName: selinux_boolean_sub
    functionSourceFile: /src/selinux/libselinux/src/booleans.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *selinux_boolean_sub(const char *name __attribute__((unused)))
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libselinux/src/getfilecon.c:17,1
    - Dst: getxattr
      Src: /src/selinux/libselinux/src/getfilecon.c:21,1
    - Dst: getxattr
      Src: /src/selinux/libselinux/src/getfilecon.c:25,1
    - Dst: realloc
      Src: /src/selinux/libselinux/src/getfilecon.c:30,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/getfilecon.c:35,1
    - Dst: getxattr
      Src: /src/selinux/libselinux/src/getfilecon.c:36,1
    - Dst: free
      Src: /src/selinux/libselinux/src/getfilecon.c:45,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - path
    - context
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 49
    functionName: getfilecon_raw
    functionSourceFile: /src/selinux/libselinux/src/getfilecon.c
    functionUses: 8
    functionsReached:
    - realloc
    - free
    - calloc
    - memset
    - getxattr
    linkageType: ''
    returnType: int
    signature: int getfilecon_raw(const char *path, char **context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getfilecon_raw
      Src: /src/selinux/libselinux/src/getfilecon.c:58,1
    - Dst: selinux_raw_to_trans_context
      Src: /src/selinux/libselinux/src/getfilecon.c:61,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/getfilecon.c:62,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/getfilecon.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - path
    - context
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 51
    functionDepth: 4
    functionLinenumber: 51
    functionLinenumberEnd: 68
    functionName: getfilecon
    functionSourceFile: /src/selinux/libselinux/src/getfilecon.c
    functionUses: 6
    functionsReached:
    - freecon
    - strlen
    - selinux_raw_to_trans_context
    - getfilecon_raw
    linkageType: ''
    returnType: int
    signature: int getfilecon(const char *path, char **context)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: statfs
      Src: /src/selinux/libselinux/src/init.c:37,1
    - Dst: statvfs
      Src: /src/selinux/libselinux/src/init.c:42,1
    - Dst: set_selinuxmnt
      Src: /src/selinux/libselinux/src/init.c:45,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - mnt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 53
    functionName: verify_selinuxmnt
    functionSourceFile: /src/selinux/libselinux/src/init.c
    functionUses: 0
    functionsReached:
    - set_selinuxmnt
    - statvfs
    - statfs
    linkageType: ''
    returnType: int
    signature: int verify_selinuxmnt(const char *mnt)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/libselinux/src/init.c:63,1
    - Dst: __fsetlocking
      Src: /src/selinux/libselinux/src/init.c:66,1
    - Dst: getline
      Src: /src/selinux/libselinux/src/init.c:68,1
    - Dst: strstr
      Src: /src/selinux/libselinux/src/init.c:70,1
    - Dst: getline
      Src: /src/selinux/libselinux/src/init.c:74,1
    - Dst: free
      Src: /src/selinux/libselinux/src/init.c:77,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/init.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 80
    functionName: selinuxfs_exists
    functionSourceFile: /src/selinux/libselinux/src/init.c
    functionUses: 0
    functionsReached:
    - fclose
    - __fsetlocking
    - free
    - fopen
    - strstr
    - getline
    linkageType: ''
    returnType: int
    signature: int selinuxfs_exists(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: verify_selinuxmnt
      Src: /src/selinux/libselinux/src/init.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: init_selinuxmnt
    functionSourceFile: /src/selinux/libselinux/src/init.c
    functionUses: 0
    functionsReached:
    - verify_selinuxmnt
    linkageType: ''
    returnType: void
    signature: void init_selinuxmnt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libselinux/src/init.c:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: fini_selinuxmnt
    functionSourceFile: /src/selinux/libselinux/src/init.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void fini_selinuxmnt(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libselinux/src/init.c:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mnt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: set_selinuxmnt
    functionSourceFile: /src/selinux/libselinux/src/init.c
    functionUses: 1
    functionsReached:
    - strdup
    linkageType: ''
    returnType: void
    signature: void set_selinuxmnt(const char *mnt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/selinux/libselinux/src/init.c:108,1
    - Dst: init_selinuxmnt
      Src: /src/selinux/libselinux/src/init.c:113,1
    - Dst: access
      Src: /src/selinux/libselinux/src/init.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 117
    functionName: init_lib
    functionSourceFile: /src/selinux/libselinux/src/init.c
    functionUses: 0
    functionsReached:
    - init_selinuxmnt
    - access
    - sysconf
    linkageType: ''
    returnType: void
    signature: void init_lib(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fini_selinuxmnt
      Src: /src/selinux/libselinux/src/init.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: fini_lib
    functionSourceFile: /src/selinux/libselinux/src/init.c
    functionUses: 0
    functionsReached:
    - fini_selinuxmnt
    linkageType: ''
    returnType: void
    signature: void fini_lib(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/reject_unknown.c:23,1
    - Dst: open
      Src: /src/selinux/libselinux/src/reject_unknown.c:24,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/reject_unknown.c:28,1
    - Dst: read
      Src: /src/selinux/libselinux/src/reject_unknown.c:29,1
    - Dst: close
      Src: /src/selinux/libselinux/src/reject_unknown.c:30,1
    - Dst: sscanf
      Src: /src/selinux/libselinux/src/reject_unknown.c:34,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 38
    functionName: security_reject_unknown
    functionSourceFile: /src/selinux/libselinux/src/reject_unknown.c
    functionUses: 0
    functionsReached:
    - close
    - snprintf
    - sscanf
    - read
    - open
    - memset
    linkageType: ''
    returnType: int
    signature: int security_reject_unknown(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/libselinux/src/seusers.c:22,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/seusers.c:31,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:34,1
    - Dst: strchr
      Src: /src/selinux/libselinux/src/seusers.c:37,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/seusers.c:42,1
    - Dst: strchr
      Src: /src/selinux/libselinux/src/seusers.c:47,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/seusers.c:52,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/seusers.c:57,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/seusers.c:61,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/seusers.c:69,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/seusers.c:73,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/seusers.c:77,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:81,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:87,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:88,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:89,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:90,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 64
    argCount: 5
    argNames:
    - buffer
    - luserp
    - seuserp
    - levelp
    - mls_enabled
    argTypes:
    - char*
    - char**
    - char**
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 92
    functionName: process_seusers
    functionSourceFile: /src/selinux/libselinux/src/seusers.c
    functionUses: 0
    functionsReached:
    - strchr
    - isspace
    - strcmp
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: "int process_seusers(const char *buffer, char **luserp, char **seuserp,\n\t\t\t
      \  char **levelp, int mls_enabled)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/selinux/libselinux/src/seusers.c:105,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/seusers.c:112,1
    - Dst: getpwnam_r
      Src: /src/selinux/libselinux/src/seusers.c:116,1
    - Dst: __builtin_smull_overflow
      Src: /src/selinux/libselinux/src/seusers.c:118,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:119,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:128,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 130
    functionName: get_default_gid
    functionSourceFile: /src/selinux/libselinux/src/seusers.c
    functionUses: 0
    functionsReached:
    - sysconf
    - getpwnam_r
    - malloc
    - __builtin_smull_overflow
    - free
    linkageType: ''
    returnType: gid_t
    signature: gid_t get_default_gid(const char *name)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/selinux/libselinux/src/seusers.c:139,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/seusers.c:145,1
    - Dst: getgrnam_r
      Src: /src/selinux/libselinux/src/seusers.c:148,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:150,1
    - Dst: getgrouplist
      Src: /src/selinux/libselinux/src/seusers.c:159,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/seusers.c:162,1
    - Dst: getgrouplist
      Src: /src/selinux/libselinux/src/seusers.c:165,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:180,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:181,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 45
    argCount: 3
    argNames:
    - group
    - name
    - gid
    argTypes:
    - char*
    - char*
    - gid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 183
    functionName: check_group
    functionSourceFile: /src/selinux/libselinux/src/seusers.c
    functionUses: 0
    functionsReached:
    - sysconf
    - malloc
    - free
    - calloc
    - getgrnam_r
    - getgrouplist
    linkageType: ''
    returnType: int
    signature: int check_group(const char *group, const char *name, const gid_t gid)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: is_selinux_mls_enabled
      Src: /src/selinux/libselinux/src/seusers.c:192,1
    - Dst: get_default_gid
      Src: /src/selinux/libselinux/src/seusers.c:202,1
    - Dst: fopen
      Src: /src/selinux/libselinux/src/seusers.c:204,1
    - Dst: selinux_usersconf_path
      Src: /src/selinux/libselinux/src/seusers.c:204,1
    - Dst: __fsetlocking
      Src: /src/selinux/libselinux/src/seusers.c:208,1
    - Dst: getline
      Src: /src/selinux/libselinux/src/seusers.c:209,1
    - Dst: process_seusers
      Src: /src/selinux/libselinux/src/seusers.c:211,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/seusers.c:216,1
    - Dst: selinux_usersconf_path
      Src: /src/selinux/libselinux/src/seusers.c:218,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/seusers.c:222,1
    - Dst: check_group
      Src: /src/selinux/libselinux/src/seusers.c:226,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/seusers.c:231,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:235,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:236,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:239,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:244,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/seusers.c:245,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:248,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:249,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:250,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:251,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:252,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:259,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:260,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/seusers.c:277,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 66
    argCount: 3
    argNames:
    - name
    - r_seuser
    - r_level
    argTypes:
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 185
    functionDepth: 3
    functionLinenumber: 185
    functionLinenumberEnd: 282
    functionName: getseuserbyname
    functionSourceFile: /src/selinux/libselinux/src/seusers.c
    functionUses: 0
    functionsReached:
    - check_group
    - fclose
    - process_seusers
    - __fsetlocking
    - selinux_log
    - strcmp
    - is_selinux_mls_enabled
    - selinux_usersconf_path
    - free
    - fopen
    - get_default_gid
    - getline
    - strdup
    linkageType: ''
    returnType: int
    signature: int getseuserbyname(const char *name, char **r_seuser, char **r_level)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: asprintf
      Src: /src/selinux/libselinux/src/seusers.c:296,1
    - Dst: selinux_policy_root
      Src: /src/selinux/libselinux/src/seusers.c:296,1
    - Dst: fopen
      Src: /src/selinux/libselinux/src/seusers.c:299,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:300,1
    - Dst: __fsetlocking
      Src: /src/selinux/libselinux/src/seusers.c:303,1
    - Dst: getline
      Src: /src/selinux/libselinux/src/seusers.c:304,1
    - Dst: strncmp
      Src: /src/selinux/libselinux/src/seusers.c:305,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:306,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/seusers.c:307,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/seusers.c:314,1
    - Dst: strncmp
      Src: /src/selinux/libselinux/src/seusers.c:315,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:317,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/seusers.c:318,1
    - Dst: strchr
      Src: /src/selinux/libselinux/src/seusers.c:327,1
    - Dst: strchr
      Src: /src/selinux/libselinux/src/seusers.c:332,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/seusers.c:337,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/seusers.c:341,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/seusers.c:345,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:347,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:353,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/seusers.c:355,1
    - Dst: free
      Src: /src/selinux/libselinux/src/seusers.c:356,1
    - Dst: getseuserbyname
      Src: /src/selinux/libselinux/src/seusers.c:358,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 66
    argCount: 4
    argNames:
    - username
    - service
    - r_seuser
    - r_level
    argTypes:
    - char*
    - char*
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 284
    functionDepth: 4
    functionLinenumber: 284
    functionLinenumberEnd: 359
    functionName: getseuser
    functionSourceFile: /src/selinux/libselinux/src/seusers.c
    functionUses: 0
    functionsReached:
    - strncmp
    - asprintf
    - strlen
    - strchr
    - strdup
    - fclose
    - getseuserbyname
    - __fsetlocking
    - free
    - fopen
    - getline
    - selinux_policy_root
    linkageType: ''
    returnType: int
    signature: "int getseuser(const char *username, const char *service, char **r_seuser,\n\t
      \     char **r_level)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/load_policy.c:37,1
    - Dst: open
      Src: /src/selinux/libselinux/src/load_policy.c:38,1
    - Dst: write
      Src: /src/selinux/libselinux/src/load_policy.c:42,1
    - Dst: close
      Src: /src/selinux/libselinux/src/load_policy.c:43,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 47
    functionName: security_load_policy
    functionSourceFile: /src/selinux/libselinux/src/load_policy.c
    functionUses: 0
    functionsReached:
    - write
    - close
    - open
    - snprintf
    linkageType: ''
    returnType: int
    signature: int security_load_policy(const void *data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: max
    functionSourceFile: /src/selinux/libselinux/src/load_policy.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: max(a, b)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: security_policyvers
      Src: /src/selinux/libselinux/src/load_policy.c:55,1
    - Dst: dlopen
      Src: /src/selinux/libselinux/src/load_policy.c:81,1
    - Dst: dlerror
      Src: /src/selinux/libselinux/src/load_policy.c:84,1
    - Dst: dlsym
      Src: /src/selinux/libselinux/src/load_policy.c:90,1
    - Dst: DLERR
      Src: /src/selinux/libselinux/src/load_policy.c:91,1
    - Dst: dlsym
      Src: /src/selinux/libselinux/src/load_policy.c:92,1
    - Dst: DLERR
      Src: /src/selinux/libselinux/src/load_policy.c:93,1
    - Dst: dlsym
      Src: /src/selinux/libselinux/src/load_policy.c:96,1
    - Dst: DLERR
      Src: /src/selinux/libselinux/src/load_policy.c:97,1
    - Dst: dlsym
      Src: /src/selinux/libselinux/src/load_policy.c:98,1
    - Dst: DLERR
      Src: /src/selinux/libselinux/src/load_policy.c:99,1
    - Dst: dlsym
      Src: /src/selinux/libselinux/src/load_policy.c:101,1
    - Dst: DLERR
      Src: /src/selinux/libselinux/src/load_policy.c:102,1
    - Dst: dlsym
      Src: /src/selinux/libselinux/src/load_policy.c:103,1
    - Dst: DLERR
      Src: /src/selinux/libselinux/src/load_policy.c:104,1
    - Dst: dlsym
      Src: /src/selinux/libselinux/src/load_policy.c:105,1
    - Dst: DLERR
      Src: /src/selinux/libselinux/src/load_policy.c:106,1
    - Dst: dlsym
      Src: /src/selinux/libselinux/src/load_policy.c:107,1
    - Dst: DLERR
      Src: /src/selinux/libselinux/src/load_policy.c:108,1
    - Dst: dlsym
      Src: /src/selinux/libselinux/src/load_policy.c:109,1
    - Dst: DLERR
      Src: /src/selinux/libselinux/src/load_policy.c:110,1
    - Dst: dlsym
      Src: /src/selinux/libselinux/src/load_policy.c:111,1
    - Dst: DLERR
      Src: /src/selinux/libselinux/src/load_policy.c:112,1
    - Dst: max
      Src: /src/selinux/libselinux/src/load_policy.c:130,1
    - Dst: vers_max
      Src: /src/selinux/libselinux/src/load_policy.c:130,1
    - Dst: vers_min
      Src: /src/selinux/libselinux/src/load_policy.c:131,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/load_policy.c:136,1
    - Dst: selinux_binary_policy_path
      Src: /src/selinux/libselinux/src/load_policy.c:136,1
    - Dst: open
      Src: /src/selinux/libselinux/src/load_policy.c:138,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/load_policy.c:141,1
    - Dst: selinux_binary_policy_path
      Src: /src/selinux/libselinux/src/load_policy.c:142,1
    - Dst: open
      Src: /src/selinux/libselinux/src/load_policy.c:143,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/load_policy.c:146,1
    - Dst: selinux_binary_policy_path
      Src: /src/selinux/libselinux/src/load_policy.c:149,1
    - Dst: fstat
      Src: /src/selinux/libselinux/src/load_policy.c:153,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/load_policy.c:154,1
    - Dst: mmap
      Src: /src/selinux/libselinux/src/load_policy.c:161,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/load_policy.c:163,1
    - Dst: policy_file_create
      Src: /src/selinux/libselinux/src/load_policy.c:171,1
    - Dst: policydb_create
      Src: /src/selinux/libselinux/src/load_policy.c:173,1
    - Dst: policy_file_free
      Src: /src/selinux/libselinux/src/load_policy.c:174,1
    - Dst: policy_file_set_mem
      Src: /src/selinux/libselinux/src/load_policy.c:177,1
    - Dst: policydb_read
      Src: /src/selinux/libselinux/src/load_policy.c:178,1
    - Dst: policy_file_free
      Src: /src/selinux/libselinux/src/load_policy.c:179,1
    - Dst: policydb_free
      Src: /src/selinux/libselinux/src/load_policy.c:180,1
    - Dst: policydb_set_vers
      Src: /src/selinux/libselinux/src/load_policy.c:183,1
    - Dst: policydb_to_image
      Src: /src/selinux/libselinux/src/load_policy.c:184,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/load_policy.c:186,1
    - Dst: policy_file_free
      Src: /src/selinux/libselinux/src/load_policy.c:190,1
    - Dst: policydb_free
      Src: /src/selinux/libselinux/src/load_policy.c:191,1
    - Dst: munmap
      Src: /src/selinux/libselinux/src/load_policy.c:192,1
    - Dst: close
      Src: /src/selinux/libselinux/src/load_policy.c:193,1
    - Dst: policy_file_free
      Src: /src/selinux/libselinux/src/load_policy.c:197,1
    - Dst: policydb_free
      Src: /src/selinux/libselinux/src/load_policy.c:198,1
    - Dst: security_load_policy
      Src: /src/selinux/libselinux/src/load_policy.c:201,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/load_policy.c:204,1
    - Dst: free
      Src: /src/selinux/libselinux/src/load_policy.c:210,1
    - Dst: munmap
      Src: /src/selinux/libselinux/src/load_policy.c:211,1
    - Dst: close
      Src: /src/selinux/libselinux/src/load_policy.c:213,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/load_policy.c:217,1
    - Dst: dlclose
      Src: /src/selinux/libselinux/src/load_policy.c:219,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 115
    argCount: 1
    argNames:
    - preservebools
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 53
    functionDepth: 9
    functionLinenumber: 53
    functionLinenumberEnd: 222
    functionName: selinux_mkload_policy
    functionSourceFile: /src/selinux/libselinux/src/load_policy.c
    functionUses: 1
    functionsReached:
    - dlopen
    - policy_file_create
    - vers_min
    - selinux_log
    - DLERR
    - security_policyvers
    - policydb_set_vers
    - dlerror
    - policydb_read
    - mmap
    - free
    - fstat
    - policydb_to_image
    - policy_file_set_mem
    - vers_max
    - security_load_policy
    - max
    - policydb_free
    - policydb_create
    - munmap
    - close
    - snprintf
    - dlclose
    - dlsym
    - open
    - policy_file_free
    - selinux_binary_policy_path
    linkageType: ''
    returnType: int
    signature: int selinux_mkload_policy(int preservebools __attribute__((unused)))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: DLERR
    functionSourceFile: /src/selinux/libselinux/src/load_policy.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DLERR()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: selinux_reset_config
      Src: /src/selinux/libselinux/src/load_policy.c:243,1
    - Dst: selinux_getenforcemode
      Src: /src/selinux/libselinux/src/load_policy.c:249,1
    - Dst: mount
      Src: /src/selinux/libselinux/src/load_policy.c:252,1
    - Dst: fopen
      Src: /src/selinux/libselinux/src/load_policy.c:253,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/load_policy.c:255,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/load_policy.c:257,1
    - Dst: fgets
      Src: /src/selinux/libselinux/src/load_policy.c:260,1
    - Dst: strstr
      Src: /src/selinux/libselinux/src/load_policy.c:263,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/load_policy.c:265,1
    - Dst: strtol
      Src: /src/selinux/libselinux/src/load_policy.c:271,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/load_policy.c:282,1
    - Dst: free
      Src: /src/selinux/libselinux/src/load_policy.c:283,1
    - Dst: mount
      Src: /src/selinux/libselinux/src/load_policy.c:303,1
    - Dst: mount
      Src: /src/selinux/libselinux/src/load_policy.c:306,1
    - Dst: selinuxfs_exists
      Src: /src/selinux/libselinux/src/load_policy.c:313,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/load_policy.c:323,1
    - Dst: umount2
      Src: /src/selinux/libselinux/src/load_policy.c:329,1
    - Dst: set_selinuxmnt
      Src: /src/selinux/libselinux/src/load_policy.c:333,1
    - Dst: umount2
      Src: /src/selinux/libselinux/src/load_policy.c:336,1
    - Dst: security_disable
      Src: /src/selinux/libselinux/src/load_policy.c:346,1
    - Dst: umount
      Src: /src/selinux/libselinux/src/load_policy.c:350,1
    - Dst: fini_selinuxmnt
      Src: /src/selinux/libselinux/src/load_policy.c:351,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 1
    argNames:
    - enforce
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 361
    functionName: selinux_init_load_policy
    functionSourceFile: /src/selinux/libselinux/src/load_policy.c
    functionUses: 1
    functionsReached:
    - set_selinuxmnt
    - selinux_reset_config
    - fclose
    - strtol
    - isspace
    - umount
    - malloc
    - selinux_log
    - fgets
    - selinux_getenforcemode
    - security_disable
    - umount2
    - fini_selinuxmnt
    - free
    - fopen
    - mount
    - selinuxfs_exists
    - strstr
    linkageType: ''
    returnType: int
    signature: int selinux_init_load_policy(int *enforce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/stringrep.c:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 42
    functionName: get_class_cache_entry_name
    functionSourceFile: /src/selinux/libselinux/src/stringrep.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: struct discover_class_node
    signature: struct discover_class_node *get_class_cache_entry_name(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - security_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 53
    functionName: get_class_cache_entry_value
    functionSourceFile: /src/selinux/libselinux/src/stringrep.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct discover_class_node
    signature: 'struct discover_class_node *

      get_class_cache_entry_value(security_class_t c)'
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/selinux/libselinux/src/stringrep.c:71,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/stringrep.c:75,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/stringrep.c:80,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/stringrep.c:85,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/stringrep.c:90,1
    - Dst: open
      Src: /src/selinux/libselinux/src/stringrep.c:94,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/stringrep.c:98,1
    - Dst: read
      Src: /src/selinux/libselinux/src/stringrep.c:99,1
    - Dst: close
      Src: /src/selinux/libselinux/src/stringrep.c:100,1
    - Dst: sscanf
      Src: /src/selinux/libselinux/src/stringrep.c:104,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/stringrep.c:108,1
    - Dst: opendir
      Src: /src/selinux/libselinux/src/stringrep.c:112,1
    - Dst: readdir
      Src: /src/selinux/libselinux/src/stringrep.c:116,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/stringrep.c:121,1
    - Dst: open
      Src: /src/selinux/libselinux/src/stringrep.c:126,1
    - Dst: fstat
      Src: /src/selinux/libselinux/src/stringrep.c:130,1
    - Dst: close
      Src: /src/selinux/libselinux/src/stringrep.c:131,1
    - Dst: close
      Src: /src/selinux/libselinux/src/stringrep.c:136,1
    - Dst: readdir
      Src: /src/selinux/libselinux/src/stringrep.c:137,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/stringrep.c:141,1
    - Dst: read
      Src: /src/selinux/libselinux/src/stringrep.c:142,1
    - Dst: close
      Src: /src/selinux/libselinux/src/stringrep.c:143,1
    - Dst: sscanf
      Src: /src/selinux/libselinux/src/stringrep.c:147,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/stringrep.c:153,1
    - Dst: readdir
      Src: /src/selinux/libselinux/src/stringrep.c:157,1
    - Dst: closedir
      Src: /src/selinux/libselinux/src/stringrep.c:159,1
    - Dst: closedir
      Src: /src/selinux/libselinux/src/stringrep.c:164,1
    - Dst: free
      Src: /src/selinux/libselinux/src/stringrep.c:166,1
    - Dst: free
      Src: /src/selinux/libselinux/src/stringrep.c:168,1
    - Dst: free
      Src: /src/selinux/libselinux/src/stringrep.c:170,1
    - Dst: free
      Src: /src/selinux/libselinux/src/stringrep.c:172,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 98
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 174
    functionName: discover_class
    functionSourceFile: /src/selinux/libselinux/src/stringrep.c
    functionUses: 0
    functionsReached:
    - readdir
    - opendir
    - strchr
    - snprintf
    - close
    - malloc
    - sscanf
    - free
    - calloc
    - open
    - memset
    - read
    - fstat
    - closedir
    - strdup
    linkageType: ''
    returnType: struct discover_class_node
    signature: struct discover_class_node *discover_class(const char *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __pthread_mutex_lock
      Src: /src/selinux/libselinux/src/stringrep.c:180,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/stringrep.c:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 204
    functionName: selinux_flush_class_cache
    functionSourceFile: /src/selinux/libselinux/src/stringrep.c
    functionUses: 0
    functionsReached:
    - __pthread_mutex_unlock
    - __pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void selinux_flush_class_cache(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __pthread_mutex_lock
      Src: /src/selinux/libselinux/src/stringrep.c:212,1
    - Dst: get_class_cache_entry_name
      Src: /src/selinux/libselinux/src/stringrep.c:213,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/stringrep.c:216,1
    - Dst: map_class
      Src: /src/selinux/libselinux/src/stringrep.c:217,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/stringrep.c:219,1
    - Dst: discover_class
      Src: /src/selinux/libselinux/src/stringrep.c:222,1
    - Dst: __pthread_mutex_lock
      Src: /src/selinux/libselinux/src/stringrep.c:235,1
    - Dst: get_class_cache_entry_name
      Src: /src/selinux/libselinux/src/stringrep.c:236,1
    - Dst: free
      Src: /src/selinux/libselinux/src/stringrep.c:246,1
    - Dst: free
      Src: /src/selinux/libselinux/src/stringrep.c:248,1
    - Dst: free
      Src: /src/selinux/libselinux/src/stringrep.c:249,1
    - Dst: free
      Src: /src/selinux/libselinux/src/stringrep.c:250,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/stringrep.c:253,1
    - Dst: map_class
      Src: /src/selinux/libselinux/src/stringrep.c:255,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 256
    functionName: string_to_security_class
    functionSourceFile: /src/selinux/libselinux/src/stringrep.c
    functionUses: 12
    functionsReached:
    - map_class
    - discover_class
    - free
    - __pthread_mutex_unlock
    - __pthread_mutex_lock
    - get_class_cache_entry_name
    linkageType: ''
    returnType: security_class_t
    signature: security_class_t string_to_security_class(const char *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: S_ISREG
      Src: /src/selinux/libselinux/src/stringrep.c:260,1
    - Dst: string_to_security_class
      Src: /src/selinux/libselinux/src/stringrep.c:261,1
    - Dst: S_ISDIR
      Src: /src/selinux/libselinux/src/stringrep.c:262,1
    - Dst: string_to_security_class
      Src: /src/selinux/libselinux/src/stringrep.c:263,1
    - Dst: S_ISCHR
      Src: /src/selinux/libselinux/src/stringrep.c:264,1
    - Dst: string_to_security_class
      Src: /src/selinux/libselinux/src/stringrep.c:265,1
    - Dst: S_ISBLK
      Src: /src/selinux/libselinux/src/stringrep.c:266,1
    - Dst: string_to_security_class
      Src: /src/selinux/libselinux/src/stringrep.c:267,1
    - Dst: S_ISFIFO
      Src: /src/selinux/libselinux/src/stringrep.c:268,1
    - Dst: string_to_security_class
      Src: /src/selinux/libselinux/src/stringrep.c:269,1
    - Dst: S_ISLNK
      Src: /src/selinux/libselinux/src/stringrep.c:270,1
    - Dst: string_to_security_class
      Src: /src/selinux/libselinux/src/stringrep.c:271,1
    - Dst: S_ISSOCK
      Src: /src/selinux/libselinux/src/stringrep.c:272,1
    - Dst: string_to_security_class
      Src: /src/selinux/libselinux/src/stringrep.c:273,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - m
    argTypes:
    - mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 277
    functionName: mode_to_security_class
    functionSourceFile: /src/selinux/libselinux/src/stringrep.c
    functionUses: 0
    functionsReached:
    - S_ISCHR
    - S_ISREG
    - string_to_security_class
    - S_ISLNK
    - S_ISBLK
    - S_ISSOCK
    - S_ISFIFO
    - S_ISDIR
    linkageType: ''
    returnType: security_class_t
    signature: security_class_t mode_to_security_class(mode_t m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unmap_class
      Src: /src/selinux/libselinux/src/stringrep.c:282,1
    - Dst: __pthread_mutex_lock
      Src: /src/selinux/libselinux/src/stringrep.c:284,1
    - Dst: get_class_cache_entry_value
      Src: /src/selinux/libselinux/src/stringrep.c:285,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/stringrep.c:289,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/stringrep.c:290,1
    - Dst: map_perm
      Src: /src/selinux/libselinux/src/stringrep.c:291,1
    - Dst: UINT32_C
      Src: /src/selinux/libselinux/src/stringrep.c:291,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/stringrep.c:294,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - tclass
    - s
    argTypes:
    - security_class_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 298
    functionName: string_to_av_perm
    functionSourceFile: /src/selinux/libselinux/src/stringrep.c
    functionUses: 5
    functionsReached:
    - map_perm
    - strcmp
    - UINT32_C
    - unmap_class
    - get_class_cache_entry_value
    - __pthread_mutex_unlock
    - __pthread_mutex_lock
    linkageType: ''
    returnType: access_vector_t
    signature: access_vector_t string_to_av_perm(security_class_t tclass, const char
      *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unmap_class
      Src: /src/selinux/libselinux/src/stringrep.c:305,1
    - Dst: __pthread_mutex_lock
      Src: /src/selinux/libselinux/src/stringrep.c:307,1
    - Dst: get_class_cache_entry_value
      Src: /src/selinux/libselinux/src/stringrep.c:308,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/stringrep.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - tclass
    argTypes:
    - security_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 313
    functionName: security_class_to_string
    functionSourceFile: /src/selinux/libselinux/src/stringrep.c
    functionUses: 1
    functionsReached:
    - get_class_cache_entry_value
    - __pthread_mutex_unlock
    - __pthread_mutex_lock
    - unmap_class
    linkageType: ''
    returnType: char
    signature: char *security_class_to_string(security_class_t tclass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unmap_perm
      Src: /src/selinux/libselinux/src/stringrep.c:322,1
    - Dst: unmap_class
      Src: /src/selinux/libselinux/src/stringrep.c:323,1
    - Dst: __pthread_mutex_lock
      Src: /src/selinux/libselinux/src/stringrep.c:325,1
    - Dst: get_class_cache_entry_value
      Src: /src/selinux/libselinux/src/stringrep.c:326,1
    - Dst: UINT32_C
      Src: /src/selinux/libselinux/src/stringrep.c:329,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/stringrep.c:331,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/stringrep.c:335,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - tclass
    - av
    argTypes:
    - security_class_t
    - access_vector_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 337
    functionName: security_av_perm_to_string
    functionSourceFile: /src/selinux/libselinux/src/stringrep.c
    functionUses: 1
    functionsReached:
    - unmap_perm
    - UINT32_C
    - unmap_class
    - get_class_cache_entry_value
    - __pthread_mutex_unlock
    - __pthread_mutex_lock
    linkageType: ''
    returnType: char
    signature: "char *security_av_perm_to_string(security_class_t tclass,\n\t\t\t\t
      \      access_vector_t av)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: security_av_perm_to_string
      Src: /src/selinux/libselinux/src/stringrep.c:351,1
    - Dst: UINT32_C
      Src: /src/selinux/libselinux/src/stringrep.c:352,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/stringrep.c:354,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/stringrep.c:358,1
    - Dst: sprintf
      Src: /src/selinux/libselinux/src/stringrep.c:369,1
    - Dst: sprintf
      Src: /src/selinux/libselinux/src/stringrep.c:373,1
    - Dst: sprintf
      Src: /src/selinux/libselinux/src/stringrep.c:376,1
    - Dst: sprintf
      Src: /src/selinux/libselinux/src/stringrep.c:378,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - tclass
    - av
    - res
    argTypes:
    - security_class_t
    - access_vector_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 381
    functionName: security_av_string
    functionSourceFile: /src/selinux/libselinux/src/stringrep.c
    functionUses: 0
    functionsReached:
    - malloc
    - UINT32_C
    - sprintf
    - security_av_perm_to_string
    - strlen
    linkageType: ''
    returnType: int
    signature: int security_av_string(security_class_t tclass, access_vector_t av,
      char **res)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/libselinux/src/stringrep.c:389,1
    - Dst: printf
      Src: /src/selinux/libselinux/src/stringrep.c:393,1
    - Dst: security_av_perm_to_string
      Src: /src/selinux/libselinux/src/stringrep.c:397,1
    - Dst: printf
      Src: /src/selinux/libselinux/src/stringrep.c:400,1
    - Dst: printf
      Src: /src/selinux/libselinux/src/stringrep.c:409,1
    - Dst: printf
      Src: /src/selinux/libselinux/src/stringrep.c:410,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - tclass
    - av
    argTypes:
    - security_class_t
    - access_vector_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 383
    functionDepth: 2
    functionLinenumber: 383
    functionLinenumberEnd: 411
    functionName: print_access_vector
    functionSourceFile: /src/selinux/libselinux/src/stringrep.c
    functionUses: 0
    functionsReached:
    - security_av_perm_to_string
    - printf
    linkageType: ''
    returnType: void
    signature: void print_access_vector(security_class_t tclass, access_vector_t av)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - value
    - ','
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: rol
    functionSourceFile: /src/selinux/libselinux/src/sha1.c
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rol(value, bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: blk0
    functionSourceFile: /src/selinux/libselinux/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: blk0(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: blk
    functionSourceFile: /src/selinux/libselinux/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: blk(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: R0
    functionSourceFile: /src/selinux/libselinux/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R0(v, w, x, y, z, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: R1
    functionSourceFile: /src/selinux/libselinux/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R1(v, w, x, y, z, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: R2
    functionSourceFile: /src/selinux/libselinux/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R2(v, w, x, y, z, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: R3
    functionSourceFile: /src/selinux/libselinux/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R3(v, w, x, y, z, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - v
    - ','
    - w
    - ','
    - x
    - ','
    - y
    - ','
    - z
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: R4
    functionSourceFile: /src/selinux/libselinux/src/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: R4(v, w, x, y, z, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/selinux/libselinux/src/sha1.c:101,1
    - Dst: R0
      Src: /src/selinux/libselinux/src/sha1.c:111,1
    - Dst: R0
      Src: /src/selinux/libselinux/src/sha1.c:112,1
    - Dst: R0
      Src: /src/selinux/libselinux/src/sha1.c:113,1
    - Dst: R0
      Src: /src/selinux/libselinux/src/sha1.c:114,1
    - Dst: R0
      Src: /src/selinux/libselinux/src/sha1.c:115,1
    - Dst: R0
      Src: /src/selinux/libselinux/src/sha1.c:116,1
    - Dst: R0
      Src: /src/selinux/libselinux/src/sha1.c:117,1
    - Dst: R0
      Src: /src/selinux/libselinux/src/sha1.c:118,1
    - Dst: R0
      Src: /src/selinux/libselinux/src/sha1.c:119,1
    - Dst: R0
      Src: /src/selinux/libselinux/src/sha1.c:120,1
    - Dst: R0
      Src: /src/selinux/libselinux/src/sha1.c:121,1
    - Dst: R0
      Src: /src/selinux/libselinux/src/sha1.c:122,1
    - Dst: R0
      Src: /src/selinux/libselinux/src/sha1.c:123,1
    - Dst: R0
      Src: /src/selinux/libselinux/src/sha1.c:124,1
    - Dst: R0
      Src: /src/selinux/libselinux/src/sha1.c:125,1
    - Dst: R0
      Src: /src/selinux/libselinux/src/sha1.c:126,1
    - Dst: R1
      Src: /src/selinux/libselinux/src/sha1.c:127,1
    - Dst: R1
      Src: /src/selinux/libselinux/src/sha1.c:128,1
    - Dst: R1
      Src: /src/selinux/libselinux/src/sha1.c:129,1
    - Dst: R1
      Src: /src/selinux/libselinux/src/sha1.c:130,1
    - Dst: R2
      Src: /src/selinux/libselinux/src/sha1.c:131,1
    - Dst: R2
      Src: /src/selinux/libselinux/src/sha1.c:132,1
    - Dst: R2
      Src: /src/selinux/libselinux/src/sha1.c:133,1
    - Dst: R2
      Src: /src/selinux/libselinux/src/sha1.c:134,1
    - Dst: R2
      Src: /src/selinux/libselinux/src/sha1.c:135,1
    - Dst: R2
      Src: /src/selinux/libselinux/src/sha1.c:136,1
    - Dst: R2
      Src: /src/selinux/libselinux/src/sha1.c:137,1
    - Dst: R2
      Src: /src/selinux/libselinux/src/sha1.c:138,1
    - Dst: R2
      Src: /src/selinux/libselinux/src/sha1.c:139,1
    - Dst: R2
      Src: /src/selinux/libselinux/src/sha1.c:140,1
    - Dst: R2
      Src: /src/selinux/libselinux/src/sha1.c:141,1
    - Dst: R2
      Src: /src/selinux/libselinux/src/sha1.c:142,1
    - Dst: R2
      Src: /src/selinux/libselinux/src/sha1.c:143,1
    - Dst: R2
      Src: /src/selinux/libselinux/src/sha1.c:144,1
    - Dst: R2
      Src: /src/selinux/libselinux/src/sha1.c:145,1
    - Dst: R2
      Src: /src/selinux/libselinux/src/sha1.c:146,1
    - Dst: R2
      Src: /src/selinux/libselinux/src/sha1.c:147,1
    - Dst: R2
      Src: /src/selinux/libselinux/src/sha1.c:148,1
    - Dst: R2
      Src: /src/selinux/libselinux/src/sha1.c:149,1
    - Dst: R2
      Src: /src/selinux/libselinux/src/sha1.c:150,1
    - Dst: R3
      Src: /src/selinux/libselinux/src/sha1.c:151,1
    - Dst: R3
      Src: /src/selinux/libselinux/src/sha1.c:152,1
    - Dst: R3
      Src: /src/selinux/libselinux/src/sha1.c:153,1
    - Dst: R3
      Src: /src/selinux/libselinux/src/sha1.c:154,1
    - Dst: R3
      Src: /src/selinux/libselinux/src/sha1.c:155,1
    - Dst: R3
      Src: /src/selinux/libselinux/src/sha1.c:156,1
    - Dst: R3
      Src: /src/selinux/libselinux/src/sha1.c:157,1
    - Dst: R3
      Src: /src/selinux/libselinux/src/sha1.c:158,1
    - Dst: R3
      Src: /src/selinux/libselinux/src/sha1.c:159,1
    - Dst: R3
      Src: /src/selinux/libselinux/src/sha1.c:160,1
    - Dst: R3
      Src: /src/selinux/libselinux/src/sha1.c:161,1
    - Dst: R3
      Src: /src/selinux/libselinux/src/sha1.c:162,1
    - Dst: R3
      Src: /src/selinux/libselinux/src/sha1.c:163,1
    - Dst: R3
      Src: /src/selinux/libselinux/src/sha1.c:164,1
    - Dst: R3
      Src: /src/selinux/libselinux/src/sha1.c:165,1
    - Dst: R3
      Src: /src/selinux/libselinux/src/sha1.c:166,1
    - Dst: R3
      Src: /src/selinux/libselinux/src/sha1.c:167,1
    - Dst: R3
      Src: /src/selinux/libselinux/src/sha1.c:168,1
    - Dst: R3
      Src: /src/selinux/libselinux/src/sha1.c:169,1
    - Dst: R3
      Src: /src/selinux/libselinux/src/sha1.c:170,1
    - Dst: R4
      Src: /src/selinux/libselinux/src/sha1.c:171,1
    - Dst: R4
      Src: /src/selinux/libselinux/src/sha1.c:172,1
    - Dst: R4
      Src: /src/selinux/libselinux/src/sha1.c:173,1
    - Dst: R4
      Src: /src/selinux/libselinux/src/sha1.c:174,1
    - Dst: R4
      Src: /src/selinux/libselinux/src/sha1.c:175,1
    - Dst: R4
      Src: /src/selinux/libselinux/src/sha1.c:176,1
    - Dst: R4
      Src: /src/selinux/libselinux/src/sha1.c:177,1
    - Dst: R4
      Src: /src/selinux/libselinux/src/sha1.c:178,1
    - Dst: R4
      Src: /src/selinux/libselinux/src/sha1.c:179,1
    - Dst: R4
      Src: /src/selinux/libselinux/src/sha1.c:180,1
    - Dst: R4
      Src: /src/selinux/libselinux/src/sha1.c:181,1
    - Dst: R4
      Src: /src/selinux/libselinux/src/sha1.c:182,1
    - Dst: R4
      Src: /src/selinux/libselinux/src/sha1.c:183,1
    - Dst: R4
      Src: /src/selinux/libselinux/src/sha1.c:184,1
    - Dst: R4
      Src: /src/selinux/libselinux/src/sha1.c:185,1
    - Dst: R4
      Src: /src/selinux/libselinux/src/sha1.c:186,1
    - Dst: R4
      Src: /src/selinux/libselinux/src/sha1.c:187,1
    - Dst: R4
      Src: /src/selinux/libselinux/src/sha1.c:188,1
    - Dst: R4
      Src: /src/selinux/libselinux/src/sha1.c:189,1
    - Dst: R4
      Src: /src/selinux/libselinux/src/sha1.c:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 92
    argCount: 2
    argNames:
    - state
    - buffer
    argTypes:
    - uint32_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 198
    functionName: TransformFunction
    functionSourceFile: /src/selinux/libselinux/src/sha1.c
    functionUses: 2
    functionsReached:
    - R3
    - R2
    - R1
    - R4
    - R0
    - memcpy
    linkageType: ''
    returnType: ignore_unsigned_overflow_
    signature: ignore_unsigned_overflow_ TransformFunction(uint32_t state[5], const
      uint8_t buffer[64])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - Context
    argTypes:
    - Sha1Context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 219
    functionName: Sha1Initialise
    functionSourceFile: /src/selinux/libselinux/src/sha1.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sha1Initialise(Sha1Context *Context)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/selinux/libselinux/src/sha1.c:240,1
    - Dst: TransformFunction
      Src: /src/selinux/libselinux/src/sha1.c:241,1
    - Dst: TransformFunction
      Src: /src/selinux/libselinux/src/sha1.c:243,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/src/sha1.c:251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - Context
    - Buffer
    - BufferSize
    argTypes:
    - Sha1Context*
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 253
    functionName: Sha1Update
    functionSourceFile: /src/selinux/libselinux/src/sha1.c
    functionUses: 2
    functionsReached:
    - memcpy
    - TransformFunction
    linkageType: ''
    returnType: void
    signature: void Sha1Update(Sha1Context *Context, const void *Buffer, uint32_t
      BufferSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Sha1Update
      Src: /src/selinux/libselinux/src/sha1.c:272,1
    - Dst: Sha1Update
      Src: /src/selinux/libselinux/src/sha1.c:274,1
    - Dst: Sha1Update
      Src: /src/selinux/libselinux/src/sha1.c:277,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - Context
    - Digest
    argTypes:
    - Sha1Context*
    - SHA1_HASH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 284
    functionName: Sha1Finalise
    functionSourceFile: /src/selinux/libselinux/src/sha1.c
    functionUses: 2
    functionsReached:
    - Sha1Update
    linkageType: ''
    returnType: void
    signature: void Sha1Finalise(Sha1Context *Context, SHA1_HASH *Digest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libselinux/src/freeconary.c:14,1
    - Dst: free
      Src: /src/selinux/libselinux/src/freeconary.c:16,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - con
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 17
    functionName: freeconary
    functionSourceFile: /src/selinux/libselinux/src/freeconary.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void freeconary(char **con)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/selinux/libselinux/src/label_db.c:98,1
    - Dst: sscanf
      Src: /src/selinux/libselinux/src/label_db.c:107,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_db.c:111,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/label_db.c:121,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_db.c:123,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_db.c:125,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_db.c:127,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_db.c:129,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_db.c:131,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_db.c:133,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_db.c:135,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_db.c:137,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_db.c:139,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_db.c:141,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_db.c:143,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/label_db.c:145,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_db.c:148,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_db.c:154,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_db.c:163,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_db.c:164,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_db.c:165,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_db.c:166,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 4
    argNames:
    - path
    - line_buf
    - line_num
    - catalog
    argTypes:
    - char*
    - char*
    - unsigned int
    - catalog_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 169
    functionName: process_line
    functionSourceFile: /src/selinux/libselinux/src/label_db.c
    functionUses: 3
    functionsReached:
    - strchr
    - strcmp
    - sscanf
    - selinux_log
    - free
    - memset
    linkageType: ''
    returnType: int
    signature: "int process_line(const char *path, char *line_buf, unsigned int line_num,\n\t\t\tcatalog_t
      *catalog)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libselinux/src/label_db.c:185,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_db.c:186,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_db.c:187,1
    - Dst: __pthread_mutex_destroy
      Src: /src/selinux/libselinux/src/label_db.c:188,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_db.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - rec
    argTypes:
    - struct selabel_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 191
    functionName: db_close
    functionSourceFile: /src/selinux/libselinux/src/label_db.c
    functionUses: 0
    functionsReached:
    - free
    - __pthread_mutex_destroy
    linkageType: ''
    returnType: void
    signature: void db_close(struct selabel_handle *rec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fnmatch
      Src: /src/selinux/libselinux/src/label_db.c:208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - rec
    - key
    - type
    argTypes:
    - struct selabel_handle*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 218
    functionName: db_lookup
    functionSourceFile: /src/selinux/libselinux/src/label_db.c
    functionUses: 0
    functionsReached:
    - fnmatch
    linkageType: ''
    returnType: struct selabel_lookup_rec
    signature: "struct selabel_lookup_rec *db_lookup(struct selabel_handle *rec,\n\t\t\t\t\t
      \   const char *key, int type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_db.c:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - rec
    argTypes:
    - struct selabel_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 233
    functionName: db_stats
    functionSourceFile: /src/selinux/libselinux/src/label_db.c
    functionUses: 0
    functionsReached:
    - selinux_log
    linkageType: ''
    returnType: void
    signature: void db_stats(struct selabel_handle *rec)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/libselinux/src/label_db.c:253,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_db.c:278,1
    - Dst: selinux_sepgsql_context_path
      Src: /src/selinux/libselinux/src/label_db.c:288,1
    - Dst: fopen
      Src: /src/selinux/libselinux/src/label_db.c:290,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_db.c:291,1
    - Dst: fstat
      Src: /src/selinux/libselinux/src/label_db.c:294,1
    - Dst: fileno
      Src: /src/selinux/libselinux/src/label_db.c:294,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_db.c:295,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/label_db.c:296,1
    - Dst: S_ISREG
      Src: /src/selinux/libselinux/src/label_db.c:299,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_db.c:300,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/label_db.c:301,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label_db.c:305,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_db.c:307,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/label_db.c:308,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/label_db.c:311,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_db.c:313,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/label_db.c:314,1
    - Dst: getline
      Src: /src/selinux/libselinux/src/label_db.c:322,1
    - Dst: __builtin_mul_overflow
      Src: /src/selinux/libselinux/src/label_db.c:334,1
    - Dst: __builtin_add_overflow
      Src: /src/selinux/libselinux/src/label_db.c:336,1
    - Dst: realloc
      Src: /src/selinux/libselinux/src/label_db.c:339,1
    - Dst: process_line
      Src: /src/selinux/libselinux/src/label_db.c:350,1
    - Dst: digest_add_specfile
      Src: /src/selinux/libselinux/src/label_db.c:354,1
    - Dst: digest_gen_hash
      Src: /src/selinux/libselinux/src/label_db.c:357,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_db.c:359,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/label_db.c:360,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_db.c:365,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_db.c:369,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_db.c:370,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_db.c:371,1
    - Dst: __pthread_mutex_destroy
      Src: /src/selinux/libselinux/src/label_db.c:372,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_db.c:374,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/label_db.c:375,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 91
    argCount: 3
    argNames:
    - opts
    - nopts
    - rec
    argTypes:
    - struct selinux_opt*
    - unsigned
    - struct selabel_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 238
    functionDepth: 3
    functionLinenumber: 238
    functionLinenumberEnd: 378
    functionName: db_init
    functionSourceFile: /src/selinux/libselinux/src/label_db.c
    functionUses: 1485
    functionsReached:
    - S_ISREG
    - fclose
    - __pthread_mutex_destroy
    - selinux_sepgsql_context_path
    - process_line
    - __builtin_mul_overflow
    - malloc
    - digest_add_specfile
    - realloc
    - fileno
    - free
    - fstat
    - calloc
    - fopen
    - __builtin_add_overflow
    - digest_gen_hash
    - getline
    - strdup
    linkageType: ''
    returnType: catalog_t
    signature: "catalog_t *db_init(const struct selinux_opt *opts, unsigned nopts,\n\t\t\t
      \ struct selabel_handle *rec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: db_init
      Src: /src/selinux/libselinux/src/label_db.c:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - rec
    - opts
    - nopts
    argTypes:
    - struct selabel_handle*
    - struct selinux_opt*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 383
    functionDepth: 4
    functionLinenumber: 383
    functionLinenumberEnd: 392
    functionName: selabel_db_init
    functionSourceFile: /src/selinux/libselinux/src/label_db.c
    functionUses: 0
    functionsReached:
    - db_init
    linkageType: ''
    returnType: int
    signature: "int selabel_db_init(struct selabel_handle *rec, const struct selinux_opt
      *opts,\n\t\t    unsigned nopts)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: isspace
      Src: /src/selinux/libselinux/src/label_media.c:42,1
    - Dst: sscanf
      Src: /src/selinux/libselinux/src/label_media.c:47,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_media.c:49,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_media.c:53,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_media.c:64,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_media.c:65,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 5
    argNames:
    - path
    - line_buf
    - pass
    - lineno
    - rec
    argTypes:
    - char*
    - char*
    - int
    - unsigned
    - struct selabel_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 68
    functionName: process_line
    functionSourceFile: /src/selinux/libselinux/src/label_media.c
    functionUses: 4
    functionsReached:
    - sscanf
    - free
    - isspace
    - selinux_log
    linkageType: ''
    returnType: int
    signature: "int process_line(const char *path, const char *line_buf, int pass,\n\t\t\tunsigned
      lineno, struct selabel_handle *rec)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: selinux_media_context_path
      Src: /src/selinux/libselinux/src/label_media.c:101,1
    - Dst: fopen
      Src: /src/selinux/libselinux/src/label_media.c:102,1
    - Dst: __fsetlocking
      Src: /src/selinux/libselinux/src/label_media.c:104,1
    - Dst: fstat
      Src: /src/selinux/libselinux/src/label_media.c:106,1
    - Dst: fileno
      Src: /src/selinux/libselinux/src/label_media.c:106,1
    - Dst: S_ISREG
      Src: /src/selinux/libselinux/src/label_media.c:108,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label_media.c:112,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/label_media.c:115,1
    - Dst: getline
      Src: /src/selinux/libselinux/src/label_media.c:132,1
    - Dst: process_line
      Src: /src/selinux/libselinux/src/label_media.c:134,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label_media.c:145,1
    - Dst: fseek
      Src: /src/selinux/libselinux/src/label_media.c:152,1
    - Dst: digest_add_specfile
      Src: /src/selinux/libselinux/src/label_media.c:158,1
    - Dst: digest_gen_hash
      Src: /src/selinux/libselinux/src/label_media.c:162,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_media.c:165,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/label_media.c:166,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 78
    argCount: 3
    argNames:
    - rec
    - opts
    - n
    argTypes:
    - struct selabel_handle*
    - struct selinux_opt*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 168
    functionName: init
    functionSourceFile: /src/selinux/libselinux/src/label_media.c
    functionUses: 2117
    functionsReached:
    - S_ISREG
    - fclose
    - selinux_media_context_path
    - __fsetlocking
    - fseek
    - digest_add_specfile
    - fileno
    - free
    - fstat
    - calloc
    - fopen
    - process_line
    - digest_gen_hash
    - getline
    - strdup
    linkageType: ''
    returnType: int
    signature: "int init(struct selabel_handle *rec, const struct selinux_opt *opts,\n\t\tunsigned
      n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libselinux/src/label_media.c:186,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_media.c:187,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_media.c:188,1
    - Dst: __pthread_mutex_destroy
      Src: /src/selinux/libselinux/src/label_media.c:189,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_media.c:193,1
    - Dst: free
      Src: /src/selinux/libselinux/src/label_media.c:195,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - rec
    argTypes:
    - struct selabel_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 197
    functionName: close
    functionSourceFile: /src/selinux/libselinux/src/label_media.c
    functionUses: 129
    functionsReached:
    - free
    - __pthread_mutex_destroy
    linkageType: ''
    returnType: void
    signature: void close(struct selabel_handle *rec)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/selinux/libselinux/src/label_media.c:208,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/label_media.c:208,1
    - Dst: strncmp
      Src: /src/selinux/libselinux/src/label_media.c:210,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 3
    argNames:
    - rec
    - key
    - type
    argTypes:
    - struct selabel_handle*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 222
    functionName: lookup
    functionSourceFile: /src/selinux/libselinux/src/label_media.c
    functionUses: 5
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: struct selabel_lookup_rec
    signature: "struct selabel_lookup_rec *lookup(struct selabel_handle *rec,\n\t\t\t\t\t
      const char *key,\n\t\t\t\t\t int type __attribute__((unused)))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/label_media.c:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - rec
    argTypes:
    - struct selabel_handle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 234
    functionName: stats
    functionSourceFile: /src/selinux/libselinux/src/label_media.c
    functionUses: 6
    functionsReached:
    - selinux_log
    linkageType: ''
    returnType: void
    signature: void stats(struct selabel_handle *rec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/libselinux/src/label_media.c:241,1
    - Dst: init
      Src: /src/selinux/libselinux/src/label_media.c:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - rec
    - opts
    - nopts
    argTypes:
    - struct selabel_handle*
    - struct selinux_opt*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 251
    functionName: selabel_media_init
    functionSourceFile: /src/selinux/libselinux/src/label_media.c
    functionUses: 0
    functionsReached:
    - init
    - calloc
    linkageType: ''
    returnType: int
    signature: "int selabel_media_init(struct selabel_handle *rec,\n\t\t       const
      struct selinux_opt *opts, unsigned nopts)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/checkreqprot.c:23,1
    - Dst: open
      Src: /src/selinux/libselinux/src/checkreqprot.c:24,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/checkreqprot.c:28,1
    - Dst: read
      Src: /src/selinux/libselinux/src/checkreqprot.c:29,1
    - Dst: close
      Src: /src/selinux/libselinux/src/checkreqprot.c:30,1
    - Dst: sscanf
      Src: /src/selinux/libselinux/src/checkreqprot.c:34,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 38
    functionName: security_get_checkreqprot
    functionSourceFile: /src/selinux/libselinux/src/checkreqprot.c
    functionUses: 1
    functionsReached:
    - close
    - snprintf
    - sscanf
    - read
    - open
    - memset
    linkageType: ''
    returnType: int
    signature: int security_get_checkreqprot(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: sidtab_hash
    functionSourceFile: /src/selinux/libselinux/src/avc_sidtab.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ignore_unsigned_overflow_
    signature: ignore_unsigned_overflow_ sidtab_hash(const char *key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avc_malloc
      Src: /src/selinux/libselinux/src/avc_sidtab.c:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct sidtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 44
    functionName: sidtab_init
    functionSourceFile: /src/selinux/libselinux/src/avc_sidtab.c
    functionUses: 5
    functionsReached:
    - avc_malloc
    linkageType: ''
    returnType: int
    signature: int sidtab_init(struct sidtab *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: avc_malloc
      Src: /src/selinux/libselinux/src/avc_sidtab.c:55,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/avc_sidtab.c:58,1
    - Dst: avc_free
      Src: /src/selinux/libselinux/src/avc_sidtab.c:60,1
    - Dst: sidtab_hash
      Src: /src/selinux/libselinux/src/avc_sidtab.c:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - s
    - ctx
    argTypes:
    - struct sidtab*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 70
    functionName: sidtab_insert
    functionSourceFile: /src/selinux/libselinux/src/avc_sidtab.c
    functionUses: 3
    functionsReached:
    - avc_free
    - sidtab_hash
    - avc_malloc
    - strdup
    linkageType: ''
    returnType: struct sidtab_node
    signature: struct sidtab_node *sidtab_insert(struct sidtab *s, const char *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sidtab_hash
      Src: /src/selinux/libselinux/src/avc_sidtab.c:78,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/avc_sidtab.c:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - s
    - ctx
    argTypes:
    - struct sidtab*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 88
    functionName: sidtab_context_lookup
    functionSourceFile: /src/selinux/libselinux/src/avc_sidtab.c
    functionUses: 0
    functionsReached:
    - sidtab_hash
    - strcmp
    linkageType: ''
    returnType: struct security_id
    signature: "struct security_id *sidtab_context_lookup(const struct sidtab *s,\n\t\t\t\t\t\tconst
      char *ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sidtab_context_lookup
      Src: /src/selinux/libselinux/src/avc_sidtab.c:93,1
    - Dst: sidtab_insert::sidtab_insert
      Src: /src/selinux/libselinux/src/avc_sidtab.c:101,1
    - Dst: sid_s::sid_s
      Src: /src/selinux/libselinux/src/avc_sidtab.c:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - s
    - ctx
    - sid
    argTypes:
    - struct sidtab*
    - char*
    - security_id_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 109
    functionName: sidtab_context_to_sid
    functionSourceFile: /src/selinux/libselinux/src/avc_sidtab.c
    functionUses: 14
    functionsReached:
    - sidtab_insert::sidtab_insert
    - sidtab_context_lookup
    - sid_s::sid_s
    linkageType: ''
    returnType: int
    signature: int sidtab_context_to_sid(struct sidtab *s, const char *ctx, security_id_t
      *sid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/avc_sidtab.c:133,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - s
    - buf
    - buflen
    argTypes:
    - struct sidtab*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 137
    functionName: sidtab_sid_stats
    functionSourceFile: /src/selinux/libselinux/src/avc_sidtab.c
    functionUses: 1
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: void sidtab_sid_stats(const struct sidtab *s, char *buf, size_t buflen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: freecon
      Src: /src/selinux/libselinux/src/avc_sidtab.c:152,1
    - Dst: avc_free
      Src: /src/selinux/libselinux/src/avc_sidtab.c:153,1
    - Dst: avc_free
      Src: /src/selinux/libselinux/src/avc_sidtab.c:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct sidtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 158
    functionName: sidtab_destroy
    functionSourceFile: /src/selinux/libselinux/src/avc_sidtab.c
    functionUses: 5
    functionsReached:
    - avc_free
    - freecon
    linkageType: ''
    returnType: void
    signature: void sidtab_destroy(struct sidtab *s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/compute_user.c:27,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/compute_user.c:31,1
    - Dst: open
      Src: /src/selinux/libselinux/src/compute_user.c:32,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/compute_user.c:37,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/compute_user.c:43,1
    - Dst: write
      Src: /src/selinux/libselinux/src/compute_user.c:50,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/compute_user.c:50,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/compute_user.c:54,1
    - Dst: read
      Src: /src/selinux/libselinux/src/compute_user.c:55,1
    - Dst: sscanf
      Src: /src/selinux/libselinux/src/compute_user.c:59,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/compute_user.c:66,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/compute_user.c:72,1
    - Dst: freeconary
      Src: /src/selinux/libselinux/src/compute_user.c:77,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/compute_user.c:82,1
    - Dst: freeconary
      Src: /src/selinux/libselinux/src/compute_user.c:84,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/compute_user.c:88,1
    - Dst: free
      Src: /src/selinux/libselinux/src/compute_user.c:94,1
    - Dst: close
      Src: /src/selinux/libselinux/src/compute_user.c:95,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 3
    argNames:
    - scon
    - user
    - con
    argTypes:
    - char*
    - char*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 97
    functionName: security_compute_user_raw
    functionSourceFile: /src/selinux/libselinux/src/compute_user.c
    functionUses: 0
    functionsReached:
    - close
    - snprintf
    - freeconary
    - malloc
    - write
    - selinux_log
    - sscanf
    - free
    - open
    - memset
    - read
    - calloc
    - strlen
    - strdup
    linkageType: ''
    returnType: int
    signature: int security_compute_user_raw(const char *scon, const char *user, char
      ***con)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: selinux_trans_to_raw_context
      Src: /src/selinux/libselinux/src/compute_user.c:104,1
    - Dst: security_compute_user_raw
      Src: /src/selinux/libselinux/src/compute_user.c:108,1
    - Dst: selinux_raw_to_trans_context
      Src: /src/selinux/libselinux/src/compute_user.c:115,1
    - Dst: freeconary
      Src: /src/selinux/libselinux/src/compute_user.c:116,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/compute_user.c:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - scon
    - user
    - con
    argTypes:
    - char*
    - char*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 99
    functionDepth: 4
    functionLinenumber: 99
    functionLinenumberEnd: 126
    functionName: security_compute_user
    functionSourceFile: /src/selinux/libselinux/src/compute_user.c
    functionUses: 0
    functionsReached:
    - selinux_raw_to_trans_context
    - freecon
    - selinux_trans_to_raw_context
    - freeconary
    - security_compute_user_raw
    linkageType: ''
    returnType: int
    signature: int security_compute_user(const char *scon, const char *user, char
      ***con)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_ordered_context_list
      Src: /src/selinux/libselinux/src/get_context_list.c:25,1
    - Dst: context_new
      Src: /src/selinux/libselinux/src/get_context_list.c:30,1
    - Dst: context_role_get
      Src: /src/selinux/libselinux/src/get_context_list.c:33,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/get_context_list.c:34,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/get_context_list.c:35,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/get_context_list.c:38,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/get_context_list.c:46,1
    - Dst: freeconary
      Src: /src/selinux/libselinux/src/get_context_list.c:51,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - user
    - role
    - fromcon
    - newcon
    argTypes:
    - char*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 53
    functionName: get_default_context_with_role
    functionSourceFile: /src/selinux/libselinux/src/get_context_list.c
    functionUses: 0
    functionsReached:
    - context_new
    - strdup
    - context_role_get
    - get_ordered_context_list
    - freeconary
    - strcmp
    - context_free
    linkageType: ''
    returnType: int
    signature: "int get_default_context_with_role(const char *user, const char *role,\n\t\t\t\t
      \ const char *fromcon, char **newcon)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_default_context_with_role
      Src: /src/selinux/libselinux/src/get_context_list.c:65,1
    - Dst: getcon
      Src: /src/selinux/libselinux/src/get_context_list.c:69,1
    - Dst: context_new
      Src: /src/selinux/libselinux/src/get_context_list.c:76,1
    - Dst: context_range_set
      Src: /src/selinux/libselinux/src/get_context_list.c:80,1
    - Dst: context_str
      Src: /src/selinux/libselinux/src/get_context_list.c:83,1
    - Dst: get_default_context_with_role
      Src: /src/selinux/libselinux/src/get_context_list.c:87,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/get_context_list.c:90,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/get_context_list.c:91,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 5
    argNames:
    - user
    - role
    - level
    - fromcon
    - newcon
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 55
    functionDepth: 3
    functionLinenumber: 55
    functionLinenumberEnd: 93
    functionName: get_default_context_with_rolelevel
    functionSourceFile: /src/selinux/libselinux/src/get_context_list.c
    functionUses: 0
    functionsReached:
    - context_new
    - freecon
    - get_default_context_with_role
    - getcon
    - context_free
    - context_range_set
    - context_str
    linkageType: ''
    returnType: int
    signature: "int get_default_context_with_rolelevel(const char *user, const char
      *role,\n\t\t\t\t       const char *level, const char *fromcon,\n\t\t\t\t       char
      **newcon)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_ordered_context_list
      Src: /src/selinux/libselinux/src/get_context_list.c:100,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/get_context_list.c:104,1
    - Dst: freeconary
      Src: /src/selinux/libselinux/src/get_context_list.c:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - user
    - fromcon
    - newcon
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 109
    functionName: get_default_context
    functionSourceFile: /src/selinux/libselinux/src/get_context_list.c
    functionUses: 0
    functionsReached:
    - get_ordered_context_list
    - freeconary
    - strdup
    linkageType: ''
    returnType: int
    signature: int get_default_context(const char *user, const char *fromcon, char
      **newcon)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/get_context_list.c:117,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - reachable
    - usercon_str
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 122
    functionName: is_in_reachable
    functionSourceFile: /src/selinux/libselinux/src/get_context_list.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int is_in_reachable(char **reachable, const char *usercon_str)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libselinux/src/get_context_list.c:130,1
    - Dst: context_role_get
      Src: /src/selinux/libselinux/src/get_context_list.c:146,1
    - Dst: context_type_get
      Src: /src/selinux/libselinux/src/get_context_list.c:147,1
    - Dst: context_range_get
      Src: /src/selinux/libselinux/src/get_context_list.c:148,1
    - Dst: getline
      Src: /src/selinux/libselinux/src/get_context_list.c:153,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/get_context_list.c:159,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/get_context_list.c:166,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/get_context_list.c:173,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/get_context_list.c:180,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/get_context_list.c:186,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/get_context_list.c:187,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/get_context_list.c:202,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/get_context_list.c:209,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/get_context_list.c:215,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/get_context_list.c:216,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/get_context_list.c:223,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/get_context_list.c:224,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/get_context_list.c:231,1
    - Dst: context_new
      Src: /src/selinux/libselinux/src/get_context_list.c:232,1
    - Dst: free
      Src: /src/selinux/libselinux/src/get_context_list.c:235,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/get_context_list.c:239,1
    - Dst: free
      Src: /src/selinux/libselinux/src/get_context_list.c:243,1
    - Dst: free
      Src: /src/selinux/libselinux/src/get_context_list.c:247,1
    - Dst: context_range_set
      Src: /src/selinux/libselinux/src/get_context_list.c:248,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/get_context_list.c:249,1
    - Dst: context_to_str
      Src: /src/selinux/libselinux/src/get_context_list.c:253,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/get_context_list.c:255,1
    - Dst: is_in_reachable
      Src: /src/selinux/libselinux/src/get_context_list.c:261,1
    - Dst: free
      Src: /src/selinux/libselinux/src/get_context_list.c:262,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/get_context_list.c:263,1
    - Dst: security_check_context
      Src: /src/selinux/libselinux/src/get_context_list.c:267,1
    - Dst: reallocarray
      Src: /src/selinux/libselinux/src/get_context_list.c:268,1
    - Dst: free
      Src: /src/selinux/libselinux/src/get_context_list.c:271,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/get_context_list.c:272,1
    - Dst: free
      Src: /src/selinux/libselinux/src/get_context_list.c:282,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/get_context_list.c:283,1
    - Dst: free
      Src: /src/selinux/libselinux/src/get_context_list.c:289,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 127
    argCount: 5
    argNames:
    - fp
    - fromcon
    - user
    - reachable
    - nreachable
    argTypes:
    - FILE*
    - context_t
    - char*
    - char***
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 291
    functionName: get_context_user
    functionSourceFile: /src/selinux/libselinux/src/get_context_list.c
    functionUses: 0
    functionsReached:
    - context_to_str
    - strlen
    - reallocarray
    - isspace
    - snprintf
    - context_role_get
    - context_new
    - context_range_get
    - malloc
    - strcmp
    - selinux_log
    - free
    - context_type_get
    - is_in_reachable
    - security_check_context
    - context_range_set
    - getline
    - context_free
    linkageType: ''
    returnType: int
    signature: "int get_context_user(FILE *fp, context_t fromcon, const char *user,\n\t\t\t
      \   char ***reachable, unsigned int *nreachable)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/libselinux/src/get_context_list.c:300,1
    - Dst: selinux_failsafe_context_path
      Src: /src/selinux/libselinux/src/get_context_list.c:300,1
    - Dst: fgets_unlocked
      Src: /src/selinux/libselinux/src/get_context_list.c:304,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/get_context_list.c:305,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/get_context_list.c:309,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/get_context_list.c:313,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/get_context_list.c:314,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/get_context_list.c:317,1
    - Dst: free
      Src: /src/selinux/libselinux/src/get_context_list.c:319,1
    - Dst: security_check_context
      Src: /src/selinux/libselinux/src/get_context_list.c:329,1
    - Dst: free
      Src: /src/selinux/libselinux/src/get_context_list.c:330,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - user
    - newcon
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 293
    functionDepth: 3
    functionLinenumber: 293
    functionLinenumberEnd: 336
    functionName: get_failsafe_context
    functionSourceFile: /src/selinux/libselinux/src/get_context_list.c
    functionUses: 0
    functionsReached:
    - fclose
    - snprintf
    - malloc
    - free
    - fopen
    - security_check_context
    - selinux_failsafe_context_path
    - strlen
    - fgets_unlocked
    linkageType: ''
    returnType: int
    signature: int get_failsafe_context(const char *user, char **newcon)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_ordered_context_list
      Src: /src/selinux/libselinux/src/get_context_list.c:347,1
    - Dst: getcon
      Src: /src/selinux/libselinux/src/get_context_list.c:350,1
    - Dst: context_new
      Src: /src/selinux/libselinux/src/get_context_list.c:357,1
    - Dst: context_range_set
      Src: /src/selinux/libselinux/src/get_context_list.c:361,1
    - Dst: context_str
      Src: /src/selinux/libselinux/src/get_context_list.c:364,1
    - Dst: get_ordered_context_list
      Src: /src/selinux/libselinux/src/get_context_list.c:368,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/get_context_list.c:371,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/get_context_list.c:372,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 4
    argNames:
    - user
    - level
    - fromcon
    - list
    argTypes:
    - char*
    - char*
    - char*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 374
    functionName: get_ordered_context_list_with_level
    functionSourceFile: /src/selinux/libselinux/src/get_context_list.c
    functionUses: 0
    functionsReached:
    - context_new
    - freecon
    - get_ordered_context_list
    - getcon
    - context_free
    - context_range_set
    - context_str
    linkageType: ''
    returnType: int
    signature: "int get_ordered_context_list_with_level(const char *user, const char
      *level,\n\t\t\t\t\tconst char *fromcon, char ***list)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_ordered_context_list_with_level
      Src: /src/selinux/libselinux/src/get_context_list.c:382,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/get_context_list.c:386,1
    - Dst: freeconary
      Src: /src/selinux/libselinux/src/get_context_list.c:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - user
    - level
    - fromcon
    - newcon
    argTypes:
    - char*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 376
    functionDepth: 3
    functionLinenumber: 376
    functionLinenumberEnd: 391
    functionName: get_default_context_with_level
    functionSourceFile: /src/selinux/libselinux/src/get_context_list.c
    functionUses: 0
    functionsReached:
    - get_ordered_context_list_with_level
    - freeconary
    - strdup
    linkageType: ''
    returnType: int
    signature: "int get_default_context_with_level(const char *user, const char *level,\n\t\t\t\t
      \  const char *fromcon, char **newcon)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: selinux_user_contexts_path
      Src: /src/selinux/libselinux/src/get_context_list.c:403,1
    - Dst: getcon
      Src: /src/selinux/libselinux/src/get_context_list.c:408,1
    - Dst: context_new
      Src: /src/selinux/libselinux/src/get_context_list.c:414,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/get_context_list.c:420,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/get_context_list.c:420,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/get_context_list.c:421,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/get_context_list.c:424,1
    - Dst: fopen
      Src: /src/selinux/libselinux/src/get_context_list.c:425,1
    - Dst: __fsetlocking
      Src: /src/selinux/libselinux/src/get_context_list.c:427,1
    - Dst: get_context_user
      Src: /src/selinux/libselinux/src/get_context_list.c:428,1
    - Dst: fclose_errno_safe
      Src: /src/selinux/libselinux/src/get_context_list.c:430,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/get_context_list.c:432,1
    - Dst: free
      Src: /src/selinux/libselinux/src/get_context_list.c:439,1
    - Dst: fopen
      Src: /src/selinux/libselinux/src/get_context_list.c:440,1
    - Dst: selinux_default_context_path
      Src: /src/selinux/libselinux/src/get_context_list.c:440,1
    - Dst: __fsetlocking
      Src: /src/selinux/libselinux/src/get_context_list.c:442,1
    - Dst: get_context_user
      Src: /src/selinux/libselinux/src/get_context_list.c:443,1
    - Dst: fclose_errno_safe
      Src: /src/selinux/libselinux/src/get_context_list.c:444,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/get_context_list.c:446,1
    - Dst: selinux_default_context_path
      Src: /src/selinux/libselinux/src/get_context_list.c:449,1
    - Dst: freeconary
      Src: /src/selinux/libselinux/src/get_context_list.c:462,1
    - Dst: context_free
      Src: /src/selinux/libselinux/src/get_context_list.c:464,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/get_context_list.c:465,1
    - Dst: freeconary
      Src: /src/selinux/libselinux/src/get_context_list.c:473,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/get_context_list.c:474,1
    - Dst: get_failsafe_context
      Src: /src/selinux/libselinux/src/get_context_list.c:479,1
    - Dst: freeconary
      Src: /src/selinux/libselinux/src/get_context_list.c:481,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 68
    argCount: 3
    argNames:
    - user
    - fromcon
    - list
    argTypes:
    - char*
    - char*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 393
    functionDepth: 4
    functionLinenumber: 393
    functionLinenumberEnd: 487
    functionName: get_ordered_context_list
    functionSourceFile: /src/selinux/libselinux/src/get_context_list.c
    functionUses: 3
    functionsReached:
    - selinux_user_contexts_path
    - context_new
    - snprintf
    - freecon
    - get_context_user
    - __fsetlocking
    - malloc
    - selinux_log
    - freeconary
    - context_free
    - free
    - selinux_default_context_path
    - fclose_errno_safe
    - fopen
    - calloc
    - get_failsafe_context
    - strlen
    - getcon
    linkageType: ''
    returnType: int
    signature: "int get_ordered_context_list(const char *user, const char *fromcon,\n\t\t\t
      \    char ***list)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: selinux_media_context_path
      Src: /src/selinux/libselinux/src/matchmediacon.c:16,1
    - Dst: fopen
      Src: /src/selinux/libselinux/src/matchmediacon.c:21,1
    - Dst: feof_unlocked
      Src: /src/selinux/libselinux/src/matchmediacon.c:23,1
    - Dst: fgets_unlocked
      Src: /src/selinux/libselinux/src/matchmediacon.c:24,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/matchmediacon.c:26,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/matchmediacon.c:29,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/matchmediacon.c:30,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/matchmediacon.c:33,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/matchmediacon.c:41,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/matchmediacon.c:47,1
    - Dst: fclose
      Src: /src/selinux/libselinux/src/matchmediacon.c:52,1
    - Dst: isspace
      Src: /src/selinux/libselinux/src/matchmediacon.c:57,1
    - Dst: selinux_raw_to_trans_context
      Src: /src/selinux/libselinux/src/matchmediacon.c:63,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 39
    argCount: 2
    argNames:
    - media
    - con
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 14
    functionDepth: 4
    functionLinenumber: 14
    functionLinenumberEnd: 69
    functionName: matchmediacon
    functionSourceFile: /src/selinux/libselinux/src/matchmediacon.c
    functionUses: 0
    functionsReached:
    - fclose
    - selinux_media_context_path
    - isspace
    - selinux_raw_to_trans_context
    - strcmp
    - feof_unlocked
    - fopen
    - strlen
    - fgets_unlocked
    linkageType: ''
    returnType: int
    signature: int matchmediacon(const char *media, char **con)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: ARRAY_SIZE
    functionSourceFile: /src/selinux/libselinux/src/mapping.c
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(x)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: security_reject_unknown
      Src: /src/selinux/libselinux/src/mapping.c:41,1
    - Dst: security_deny_unknown
      Src: /src/selinux/libselinux/src/mapping.c:42,1
    - Dst: free
      Src: /src/selinux/libselinux/src/mapping.c:44,1
    - Dst: avc_reset
      Src: /src/selinux/libselinux/src/mapping.c:48,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/mapping.c:65,1
    - Dst: string_to_security_class
      Src: /src/selinux/libselinux/src/mapping.c:75,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/mapping.c:77,1
    - Dst: ARRAY_SIZE
      Src: /src/selinux/libselinux/src/mapping.c:88,1
    - Dst: string_to_av_perm
      Src: /src/selinux/libselinux/src/mapping.c:94,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/mapping.c:96,1
    - Dst: selinux_log
      Src: /src/selinux/libselinux/src/mapping.c:109,1
    - Dst: free
      Src: /src/selinux/libselinux/src/mapping.c:118,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 62
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct security_class_mapping*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 123
    functionName: selinux_set_mapping
    functionSourceFile: /src/selinux/libselinux/src/mapping.c
    functionUses: 0
    functionsReached:
    - string_to_av_perm
    - security_deny_unknown
    - string_to_security_class
    - ARRAY_SIZE
    - selinux_log
    - avc_reset
    - free
    - calloc
    - security_reject_unknown
    linkageType: ''
    returnType: int
    signature: int selinux_set_mapping(const struct security_class_mapping *map)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - tclass
    argTypes:
    - security_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 140
    functionName: unmap_class
    functionSourceFile: /src/selinux/libselinux/src/mapping.c
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: security_class_t
    signature: security_class_t unmap_class(security_class_t tclass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_C
      Src: /src/selinux/libselinux/src/mapping.c:149,1
    - Dst: UINT32_C
      Src: /src/selinux/libselinux/src/mapping.c:151,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - tclass
    - tperm
    argTypes:
    - security_class_t
    - access_vector_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 162
    functionName: unmap_perm
    functionSourceFile: /src/selinux/libselinux/src/mapping.c
    functionUses: 2
    functionsReached:
    - UINT32_C
    linkageType: ''
    returnType: access_vector_t
    signature: access_vector_t unmap_perm(security_class_t tclass, access_vector_t
      tperm)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - kclass
    argTypes:
    - security_class_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 182
    functionName: map_class
    functionSourceFile: /src/selinux/libselinux/src/mapping.c
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: security_class_t
    signature: security_class_t map_class(security_class_t kclass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_C
      Src: /src/selinux/libselinux/src/mapping.c:192,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - tclass
    - kperm
    argTypes:
    - security_class_t
    - access_vector_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 203
    functionName: map_perm
    functionSourceFile: /src/selinux/libselinux/src/mapping.c
    functionUses: 12
    functionsReached:
    - UINT32_C
    linkageType: ''
    returnType: access_vector_t
    signature: access_vector_t map_perm(security_class_t tclass, access_vector_t kperm)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: security_deny_unknown
      Src: /src/selinux/libselinux/src/mapping.c:208,1
    - Dst: UINT32_C
      Src: /src/selinux/libselinux/src/mapping.c:215,1
    - Dst: UINT32_C
      Src: /src/selinux/libselinux/src/mapping.c:217,1
    - Dst: UINT32_C
      Src: /src/selinux/libselinux/src/mapping.c:223,1
    - Dst: UINT32_C
      Src: /src/selinux/libselinux/src/mapping.c:225,1
    - Dst: UINT32_C
      Src: /src/selinux/libselinux/src/mapping.c:231,1
    - Dst: UINT32_C
      Src: /src/selinux/libselinux/src/mapping.c:236,1
    - Dst: UINT32_C
      Src: /src/selinux/libselinux/src/mapping.c:238,1
    - Dst: UINT32_C
      Src: /src/selinux/libselinux/src/mapping.c:247,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 30
    argCount: 2
    argNames:
    - tclass
    - avd
    argTypes:
    - security_class_t
    - struct av_decision*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 250
    functionName: map_decision
    functionSourceFile: /src/selinux/libselinux/src/mapping.c
    functionUses: 1
    functionsReached:
    - security_deny_unknown
    - UINT32_C
    linkageType: ''
    returnType: void
    signature: void map_decision(security_class_t tclass, struct av_decision *avd)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - mem_cb
    - log_cb
    - thread_cb
    - lock_cb
    argTypes:
    - struct avc_memory_callback*
    - struct avc_log_callback*
    - struct avc_thread_callback*
    - struct avc_lock_callback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 65
    functionName: set_callbacks
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void set_callbacks(const struct avc_memory_callback *mem_cb,\n\t\t\t\t
      const struct avc_log_callback *log_cb,\n\t\t\t\t const struct avc_thread_callback
      *thread_cb,\n\t\t\t\t const struct avc_lock_callback *lock_cb)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avc_func_malloc
      Src: /src/selinux/libselinux/src/avc_internal.h:77,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/avc_internal.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: avc_malloc
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.h
    functionUses: 4
    functionsReached:
    - avc_func_malloc
    - malloc
    linkageType: ''
    returnType: void
    signature: void *avc_malloc(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avc_func_free
      Src: /src/selinux/libselinux/src/avc_internal.h:83,1
    - Dst: free
      Src: /src/selinux/libselinux/src/avc_internal.h:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: avc_free
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.h
    functionUses: 4
    functionsReached:
    - free
    - avc_func_free
    linkageType: ''
    returnType: void
    signature: void avc_free(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - type
    - ','
    - format
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: avc_log
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: avc_log(type, format...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avc_func_audit
      Src: /src/selinux/libselinux/src/avc_internal.h:101,1
    - Dst: selinux_audit
      Src: /src/selinux/libselinux/src/avc_internal.h:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - ptr
    - class
    - buf
    - len
    argTypes:
    - void*
    - security_class_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: avc_suppl_audit
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.h
    functionUses: 1
    functionsReached:
    - selinux_audit
    - avc_func_audit
    linkageType: ''
    returnType: void
    signature: "void avc_suppl_audit(void *ptr, security_class_t class, char *buf,\n\t\t\t\t
      \  size_t len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: avc_func_create_thread
      Src: /src/selinux/libselinux/src/avc_internal.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: avc_create_thread
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.h
    functionUses: 1
    functionsReached:
    - avc_func_create_thread
    linkageType: ''
    returnType: void
    signature: void *avc_create_thread(void (*run)(void))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avc_func_stop_thread
      Src: /src/selinux/libselinux/src/avc_internal.h:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - thread
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: avc_stop_thread
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.h
    functionUses: 1
    functionsReached:
    - avc_func_stop_thread
    linkageType: ''
    returnType: void
    signature: void avc_stop_thread(void *thread)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: avc_func_alloc_lock
      Src: /src/selinux/libselinux/src/avc_internal.h:122,1
    - Dst: avc_malloc
      Src: /src/selinux/libselinux/src/avc_internal.h:124,1
    - Dst: __pthread_mutex_init
      Src: /src/selinux/libselinux/src/avc_internal.h:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: avc_alloc_lock
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.h
    functionUses: 2
    functionsReached:
    - avc_func_alloc_lock
    - __pthread_mutex_init
    - avc_malloc
    linkageType: ''
    returnType: void
    signature: void *avc_alloc_lock(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: avc_func_get_lock
      Src: /src/selinux/libselinux/src/avc_internal.h:133,1
    - Dst: __pthread_mutex_lock
      Src: /src/selinux/libselinux/src/avc_internal.h:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - lock
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: avc_get_lock
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.h
    functionUses: 15
    functionsReached:
    - avc_func_get_lock
    - __pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void avc_get_lock(void *lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: avc_func_release_lock
      Src: /src/selinux/libselinux/src/avc_internal.h:141,1
    - Dst: __pthread_mutex_unlock
      Src: /src/selinux/libselinux/src/avc_internal.h:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - lock
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: avc_release_lock
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.h
    functionUses: 15
    functionsReached:
    - __pthread_mutex_unlock
    - avc_func_release_lock
    linkageType: ''
    returnType: void
    signature: void avc_release_lock(void *lock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: avc_func_free_lock
      Src: /src/selinux/libselinux/src/avc_internal.h:149,1
    - Dst: __pthread_mutex_destroy
      Src: /src/selinux/libselinux/src/avc_internal.h:151,1
    - Dst: avc_free
      Src: /src/selinux/libselinux/src/avc_internal.h:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - lock
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 154
    functionName: avc_free_lock
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.h
    functionUses: 3
    functionsReached:
    - avc_func_free_lock
    - avc_free
    - __pthread_mutex_destroy
    linkageType: ''
    returnType: void
    signature: void avc_free_lock(void *lock)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: avc_cache_stats_incr
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: avc_cache_stats_incr(field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - field
    - ','
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 167
    functionName: avc_cache_stats_add
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: avc_cache_stats_add(field, num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - field
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: avc_cache_stats_incr
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: avc_cache_stats_incr(field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - field
    - ','
    - num
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: avc_cache_stats_add
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: avc_cache_stats_add(field, num)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 6
    argNames:
    - (
    - buf
    - ','
    - format
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: log_append
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: log_append(buf, format...)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/compute_member.c:26,1
    - Dst: open
      Src: /src/selinux/libselinux/src/compute_member.c:27,1
    - Dst: malloc
      Src: /src/selinux/libselinux/src/compute_member.c:32,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/compute_member.c:38,1
    - Dst: unmap_class
      Src: /src/selinux/libselinux/src/compute_member.c:38,1
    - Dst: write
      Src: /src/selinux/libselinux/src/compute_member.c:45,1
    - Dst: strlen
      Src: /src/selinux/libselinux/src/compute_member.c:45,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/compute_member.c:49,1
    - Dst: read
      Src: /src/selinux/libselinux/src/compute_member.c:50,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/compute_member.c:54,1
    - Dst: free
      Src: /src/selinux/libselinux/src/compute_member.c:61,1
    - Dst: close
      Src: /src/selinux/libselinux/src/compute_member.c:62,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 4
    argNames:
    - scon
    - tcon
    - tclass
    - newcon
    argTypes:
    - char*
    - char*
    - security_class_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 64
    functionName: security_compute_member_raw
    functionSourceFile: /src/selinux/libselinux/src/compute_member.c
    functionUses: 1
    functionsReached:
    - close
    - snprintf
    - malloc
    - write
    - free
    - open
    - memset
    - unmap_class
    - read
    - strlen
    - strdup
    linkageType: ''
    returnType: int
    signature: "int security_compute_member_raw(const char *scon, const char *tcon,\n\t\t\t\tsecurity_class_t
      tclass, char **newcon)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: selinux_trans_to_raw_context
      Src: /src/selinux/libselinux/src/compute_member.c:74,1
    - Dst: selinux_trans_to_raw_context
      Src: /src/selinux/libselinux/src/compute_member.c:76,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/compute_member.c:77,1
    - Dst: security_compute_member_raw
      Src: /src/selinux/libselinux/src/compute_member.c:81,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/compute_member.c:83,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/compute_member.c:84,1
    - Dst: selinux_raw_to_trans_context
      Src: /src/selinux/libselinux/src/compute_member.c:86,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/compute_member.c:90,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - scon
    - tcon
    - tclass
    - newcon
    argTypes:
    - char*
    - char*
    - security_class_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 66
    functionDepth: 4
    functionLinenumber: 66
    functionLinenumberEnd: 94
    functionName: security_compute_member
    functionSourceFile: /src/selinux/libselinux/src/compute_member.c
    functionUses: 0
    functionsReached:
    - security_compute_member_raw
    - selinux_raw_to_trans_context
    - freecon
    - selinux_trans_to_raw_context
    linkageType: ''
    returnType: int
    signature: "int security_compute_member(const char *scon, const char *tcon,\n\t\t\t
      \   security_class_t tclass, char **newcon)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/selinux/libselinux/src/get_initial_context.c:26,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/get_initial_context.c:31,1
    - Dst: open
      Src: /src/selinux/libselinux/src/get_initial_context.c:38,1
    - Dst: calloc
      Src: /src/selinux/libselinux/src/get_initial_context.c:43,1
    - Dst: read
      Src: /src/selinux/libselinux/src/get_initial_context.c:48,1
    - Dst: strdup
      Src: /src/selinux/libselinux/src/get_initial_context.c:52,1
    - Dst: free
      Src: /src/selinux/libselinux/src/get_initial_context.c:59,1
    - Dst: close
      Src: /src/selinux/libselinux/src/get_initial_context.c:60,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 2
    argNames:
    - name
    - con
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 62
    functionName: security_get_initial_context_raw
    functionSourceFile: /src/selinux/libselinux/src/get_initial_context.c
    functionUses: 1
    functionsReached:
    - strchr
    - snprintf
    - close
    - free
    - open
    - calloc
    - read
    - strdup
    linkageType: ''
    returnType: int
    signature: int security_get_initial_context_raw(const char *name, char **con)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: security_get_initial_context_raw
      Src: /src/selinux/libselinux/src/get_initial_context.c:69,1
    - Dst: selinux_raw_to_trans_context
      Src: /src/selinux/libselinux/src/get_initial_context.c:71,1
    - Dst: freecon
      Src: /src/selinux/libselinux/src/get_initial_context.c:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - name
    - con
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 64
    functionDepth: 4
    functionLinenumber: 64
    functionLinenumberEnd: 76
    functionName: security_get_initial_context
    functionSourceFile: /src/selinux/libselinux/src/get_initial_context.c
    functionUses: 0
    functionsReached:
    - selinux_raw_to_trans_context
    - freecon
    - security_get_initial_context_raw
    linkageType: ''
    returnType: int
    signature: int security_get_initial_context(const char *name, char **con)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/libselinux/src/freecon.c:8,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - con
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 9
    functionName: freecon
    functionSourceFile: /src/selinux/libselinux/src/freecon.c
    functionUses: 48
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void freecon(char *con)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/selinux/libselinux/src/selinux_internal.c:11,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/src/selinux_internal.c:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dest
    - src
    - size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 19
    functionName: strlcpy
    functionSourceFile: /src/selinux/libselinux/src/selinux_internal.c
    functionUses: 4
    functionsReached:
    - memcpy
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t strlcpy(char *dest, const char *src, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/selinux/libselinux/src/selinux_internal.c:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ptr
    - nmemb
    - size
    argTypes:
    - void*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: reallocarray
    functionSourceFile: /src/selinux/libselinux/src/selinux_internal.c
    functionUses: 15
    functionsReached:
    - realloc
    linkageType: ''
    returnType: void
    signature: void *reallocarray(void *ptr, size_t nmemb, size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/deny_unknown.c:23,1
    - Dst: open
      Src: /src/selinux/libselinux/src/deny_unknown.c:24,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/deny_unknown.c:28,1
    - Dst: read
      Src: /src/selinux/libselinux/src/deny_unknown.c:29,1
    - Dst: close
      Src: /src/selinux/libselinux/src/deny_unknown.c:30,1
    - Dst: sscanf
      Src: /src/selinux/libselinux/src/deny_unknown.c:34,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 38
    functionName: security_deny_unknown
    functionSourceFile: /src/selinux/libselinux/src/deny_unknown.c
    functionUses: 6
    functionsReached:
    - close
    - snprintf
    - sscanf
    - read
    - open
    - memset
    linkageType: ''
    returnType: int
    signature: int security_deny_unknown(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc_internal.c:60,1
    - Dst: avc_ss_reset
      Src: /src/selinux/libselinux/src/avc_internal.c:66,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc_internal.c:67,1
    - Dst: selinux_netlink_setenforce
      Src: /src/selinux/libselinux/src/avc_internal.c:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - enforcing
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 75
    functionName: avc_process_setenforce
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.c
    functionUses: 1
    functionsReached:
    - avc_log
    - selinux_netlink_setenforce
    - avc_ss_reset
    linkageType: ''
    returnType: int
    signature: int avc_process_setenforce(int enforcing)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc_internal.c:82,1
    - Dst: avc_ss_reset
      Src: /src/selinux/libselinux/src/avc_internal.c:85,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc_internal.c:87,1
    - Dst: selinux_flush_class_cache
      Src: /src/selinux/libselinux/src/avc_internal.c:93,1
    - Dst: selinux_netlink_policyload
      Src: /src/selinux/libselinux/src/avc_internal.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - seqno
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 96
    functionName: avc_process_policyload
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.c
    functionUses: 1
    functionsReached:
    - avc_log
    - selinux_netlink_policyload
    - selinux_flush_class_cache
    - avc_ss_reset
    linkageType: ''
    returnType: int
    signature: int avc_process_policyload(uint32_t seqno)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/selinux/libselinux/src/avc_internal.c:106,1
    - Dst: fcntl
      Src: /src/selinux/libselinux/src/avc_internal.c:112,1
    - Dst: close
      Src: /src/selinux/libselinux/src/avc_internal.c:113,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/avc_internal.c:121,1
    - Dst: bind
      Src: /src/selinux/libselinux/src/avc_internal.c:125,1
    - Dst: close
      Src: /src/selinux/libselinux/src/avc_internal.c:126,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - blocking
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 133
    functionName: avc_netlink_open
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.c
    functionUses: 1
    functionsReached:
    - fcntl
    - close
    - bind
    - socket
    - memset
    linkageType: ''
    returnType: int
    signature: int avc_netlink_open(int blocking)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/selinux/libselinux/src/avc_internal.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: avc_netlink_close
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.c
    functionUses: 1
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void avc_netlink_close(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: poll
      Src: /src/selinux/libselinux/src/avc_internal.c:151,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc_internal.c:158,1
    - Dst: recvfrom
      Src: /src/selinux/libselinux/src/avc_internal.c:163,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc_internal.c:169,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc_internal.c:176,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc_internal.c:183,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc_internal.c:191,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - buf
    - buflen
    - blocking
    argTypes:
    - void*
    - unsigned
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 198
    functionName: avc_netlink_receive
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.c
    functionUses: 0
    functionsReached:
    - avc_log
    - recvfrom
    - poll
    linkageType: ''
    returnType: int
    signature: int avc_netlink_receive(void *buf, unsigned buflen, int blocking)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: NLMSG_LENGTH
      Src: /src/selinux/libselinux/src/avc_internal.c:209,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc_internal.c:210,1
    - Dst: NLMSG_DATA
      Src: /src/selinux/libselinux/src/avc_internal.c:215,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc_internal.c:222,1
    - Dst: NLMSG_LENGTH
      Src: /src/selinux/libselinux/src/avc_internal.c:230,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc_internal.c:231,1
    - Dst: NLMSG_DATA
      Src: /src/selinux/libselinux/src/avc_internal.c:236,1
    - Dst: avc_process_setenforce
      Src: /src/selinux/libselinux/src/avc_internal.c:237,1
    - Dst: NLMSG_LENGTH
      Src: /src/selinux/libselinux/src/avc_internal.c:246,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc_internal.c:247,1
    - Dst: NLMSG_DATA
      Src: /src/selinux/libselinux/src/avc_internal.c:252,1
    - Dst: avc_process_policyload
      Src: /src/selinux/libselinux/src/avc_internal.c:253,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc_internal.c:260,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 1
    argNames:
    - buf
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 200
    functionDepth: 4
    functionLinenumber: 200
    functionLinenumberEnd: 265
    functionName: avc_netlink_process
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.c
    functionUses: 0
    functionsReached:
    - NLMSG_DATA
    - avc_log
    - NLMSG_LENGTH
    - avc_process_setenforce
    - avc_process_policyload
    linkageType: ''
    returnType: int
    signature: int avc_netlink_process(void *buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: avc_netlink_receive
      Src: /src/selinux/libselinux/src/avc_internal.c:274,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc_internal.c:281,1
    - Dst: avc_netlink_process
      Src: /src/selinux/libselinux/src/avc_internal.c:288,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 267
    functionDepth: 5
    functionLinenumber: 267
    functionLinenumberEnd: 290
    functionName: avc_netlink_check_nb
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.c
    functionUses: 3
    functionsReached:
    - avc_log
    - avc_netlink_process
    - avc_netlink_receive
    linkageType: ''
    returnType: int
    signature: int avc_netlink_check_nb(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: avc_netlink_receive
      Src: /src/selinux/libselinux/src/avc_internal.c:300,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc_internal.c:305,1
    - Dst: avc_netlink_process
      Src: /src/selinux/libselinux/src/avc_internal.c:312,1
    - Dst: close
      Src: /src/selinux/libselinux/src/avc_internal.c:317,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc_internal.c:319,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 293
    functionDepth: 5
    functionLinenumber: 293
    functionLinenumberEnd: 322
    functionName: avc_netlink_loop
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.c
    functionUses: 0
    functionsReached:
    - avc_log
    - avc_netlink_process
    - close
    - avc_netlink_receive
    linkageType: ''
    returnType: void
    signature: void avc_netlink_loop(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: avc_netlink_open
      Src: /src/selinux/libselinux/src/avc_internal.c:328,1
    - Dst: avc_log
      Src: /src/selinux/libselinux/src/avc_internal.c:330,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 340
    functionName: avc_netlink_acquire_fd
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.c
    functionUses: 0
    functionsReached:
    - avc_log
    - avc_netlink_open
    linkageType: ''
    returnType: int
    signature: int avc_netlink_acquire_fd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 345
    functionName: avc_netlink_release_fd
    functionSourceFile: /src/selinux/libselinux/src/avc_internal.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void avc_netlink_release_fd(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 21
    functionName: is_selinux_enabled
    functionSourceFile: /src/selinux/libselinux/src/enabled.c
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_selinux_enabled(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/src/enabled.c:36,1
    - Dst: open
      Src: /src/selinux/libselinux/src/enabled.c:37,1
    - Dst: memset
      Src: /src/selinux/libselinux/src/enabled.c:41,1
    - Dst: read
      Src: /src/selinux/libselinux/src/enabled.c:44,1
    - Dst: close
      Src: /src/selinux/libselinux/src/enabled.c:46,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/src/enabled.c:50,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 54
    functionName: is_selinux_mls_enabled
    functionSourceFile: /src/selinux/libselinux/src/enabled.c
    functionUses: 5
    functionsReached:
    - close
    - snprintf
    - strcmp
    - read
    - open
    - memset
    linkageType: ''
    returnType: int
    signature: int is_selinux_mls_enabled(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/selinux/libselinux/src/callbacks.c:16,1
    - Dst: va_start
      Src: /src/selinux/libselinux/src/callbacks.c:21,1
    - Dst: vfprintf
      Src: /src/selinux/libselinux/src/callbacks.c:22,1
    - Dst: va_end
      Src: /src/selinux/libselinux/src/callbacks.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - type
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 25
    functionName: default_selinux_log
    functionSourceFile: /src/selinux/libselinux/src/callbacks.c
    functionUses: 0
    functionsReached:
    - va_start
    - va_end
    - vfprintf
    - format
    linkageType: ''
    returnType: int
    signature: int default_selinux_log(int type __attribute__((unused)), const char
      *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ptr
    - cls
    - buf
    - len
    argTypes:
    - void*
    - security_class_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: default_selinux_audit
    functionSourceFile: /src/selinux/libselinux/src/callbacks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int default_selinux_audit(void *ptr __attribute__((unused)),\n\t\t\t\t
      security_class_t cls __attribute__((unused)),\n\t\t\t\t char *buf __attribute__((unused)),\n\t\t\t\t
      size_t len __attribute__((unused)))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: security_check_context
      Src: /src/selinux/libselinux/src/callbacks.c:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: default_selinux_validate
    functionSourceFile: /src/selinux/libselinux/src/callbacks.c
    functionUses: 0
    functionsReached:
    - security_check_context
    linkageType: ''
    returnType: int
    signature: int default_selinux_validate(char **ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - enforcing
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: default_selinux_setenforce
    functionSourceFile: /src/selinux/libselinux/src/callbacks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int default_selinux_setenforce(int enforcing __attribute__((unused)))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seqno
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: default_selinux_policyload
    functionSourceFile: /src/selinux/libselinux/src/callbacks.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int default_selinux_policyload(int seqno __attribute__((unused)))
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - type
    - cb
    argTypes:
    - int
    - union selinux_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 89
    functionName: selinux_set_callback
    functionSourceFile: /src/selinux/libselinux/src/callbacks.c
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void selinux_set_callback(int type, union selinux_callback cb)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/selinux/libselinux/src/callbacks.c:113,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 118
    functionName: selinux_get_callback
    functionSourceFile: /src/selinux/libselinux/src/callbacks.c
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: union selinux_callback
    signature: union selinux_callback selinux_get_callback(int type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - aeref
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    functionName: avc_entry_ref_init
    functionSourceFile: /src/selinux/libselinux/include/selinux/avc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: avc_entry_ref_init(aeref)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: null_log
    functionSourceFile: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
    functionUses: 0
    functionsReached:
    - format
    linkageType: ''
    returnType: int
    signature: "int null_log(int type __attribute__((unused)),\n\t const char *fmt
      __attribute__((unused)), ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:27,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctxp
    argTypes:
    - char**
    assertStmts:
    - condition: (strcmp(*ctxp, "<<none>>") != 0)
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: validate_context
    functionSourceFile: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
    functionUses: 3
    functionsReached:
    - strcmp
    - assert
    linkageType: ''
    returnType: int
    signature: int validate_context(char **ctxp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:43,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - fd
    - data
    - size
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 56
    functionName: write_full
    functionSourceFile: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
    functionUses: 4
    functionsReached:
    - write
    linkageType: ''
    returnType: int
    signature: int write_full(int fd, const void *data, size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memfd_create
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:63,1
    - Dst: write_full
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:67,1
    - Dst: close
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:69,1
    - Dst: fdopen
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:73,1
    - Dst: close
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:75,1
    - Dst: fseek
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:79,1
    - Dst: fclose
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 86
    functionName: convert_data
    functionSourceFile: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
    functionUses: 0
    functionsReached:
    - fclose
    - close
    - memfd_create
    - write_full
    - fdopen
    - fseek
    linkageType: ''
    returnType: FILE
    signature: FILE *convert_data(const uint8_t *data, size_t size)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: memmem
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:129,1
    - Dst: malloc
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:134,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:138,1
    - Dst: memmem
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:142,1
    - Dst: malloc
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:146,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:150,1
    - Dst: memmem
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:157,1
    - Dst: malloc
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:161,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:165,1
    - Dst: malloc
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:173,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:177,1
    - Dst: selinux_set_callback
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:189,1
    - Dst: selinux_set_callback
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:192,1
    - Dst: calloc
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:196,1
    - Dst: convert_data
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:202,1
    - Dst: load_mmap
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:207,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:209,1
    - Dst: fclose
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:213,1
    - Dst: convert_data
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:217,1
    - Dst: load_mmap
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:222,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:225,1
    - Dst: fclose
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:229,1
    - Dst: convert_data
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:234,1
    - Dst: load_mmap
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:239,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:242,1
    - Dst: fclose
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:246,1
    - Dst: sort_specs
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:250,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:252,1
    - Dst: cmp
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:252,1
    - Dst: lookup_all
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:255,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:258,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:261,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:262,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:263,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:264,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:265,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:265,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:266,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:267,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:268,1
    - Dst: strlen
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:268,1
    - Dst: free_lookup_result
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:272,1
    - Dst: fclose
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:274,1
    - Dst: free_spec_node
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:276,1
    - Dst: free
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:277,1
    - Dst: munmap
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:285,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:286,1
    - Dst: free
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:289,1
    - Dst: free
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:293,1
    - Dst: free
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:294,1
    - Dst: free
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:295,1
    - Dst: free
      Src: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c:296,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 144
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (errno != 0)
      pos:
        line_end: 241
        line_start: 241
        source_file: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
    - condition: (res->lr->ctx_raw[0] != '\0')
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
    - condition: (errno != 0)
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
    - condition: (errno != 0)
      pos:
        line_end: 257
        line_start: 257
        source_file: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
    - condition: (res->regex_str)
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
    - condition: (res->regex_str[0] != '\0')
      pos:
        line_end: 261
        line_start: 261
        source_file: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
    - condition: (res->prefix_len <= strlen(res->regex_str))
      pos:
        line_end: 267
        line_start: 267
        source_file: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
    - condition: (rc == 0)
      pos:
        line_end: 285
        line_start: 285
        source_file: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
    - condition: (errno != 0)
      pos:
        line_end: 224
        line_start: 224
        source_file: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
    - condition: (res->lr->ctx_raw)
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
    - condition: (!res->lr->ctx_trans)
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
    - condition: (cmp(&rec, &rec) == SELABEL_EQUAL)
      pos:
        line_end: 251
        line_start: 251
        source_file: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
    - condition: (strcmp(res->lr->ctx_raw, "<<none>>") != 0)
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
    - condition: (res->lr->validated)
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
    constantsTouched: []
    func_position:
      end: 300
      start: 88
    functionDepth: 5
    functionLinenumber: 88
    functionLinenumberEnd: 300
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
    functionUses: 0
    functionsReached:
    - load_mmap
    - free_spec_node
    - fclose
    - strlen
    - free_lookup_result
    - cmp
    - lookup_all
    - munmap
    - memmem
    - sort_specs
    - malloc
    - assert
    - strcmp
    - free
    - calloc
    - memcpy
    - convert_data
    - selinux_set_callback
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - fmt
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: null_log
    functionSourceFile: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c
    functionUses: 0
    functionsReached:
    - format
    linkageType: ''
    returnType: int
    signature: "int null_log(int type __attribute__((unused)),\n\t const char *fmt
      __attribute__((unused)), ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:27,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctxp
    argTypes:
    - char**
    assertStmts:
    - condition: (strcmp(*ctxp, "<<none>>") != 0)
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: validate_context
    functionSourceFile: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c
    functionUses: 3
    functionsReached:
    - strcmp
    - assert
    linkageType: ''
    returnType: int
    signature: int validate_context(char **ctxp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:43,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - fd
    - data
    - size
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 56
    functionName: write_full
    functionSourceFile: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c
    functionUses: 5
    functionsReached:
    - write
    linkageType: ''
    returnType: int
    signature: int write_full(int fd, const void *data, size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memfd_create
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:63,1
    - Dst: write_full
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:67,1
    - Dst: close
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:69,1
    - Dst: fdopen
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:73,1
    - Dst: close
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:75,1
    - Dst: fseek
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:79,1
    - Dst: fclose
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 86
    functionName: convert_data
    functionSourceFile: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c
    functionUses: 1
    functionsReached:
    - fclose
    - close
    - memfd_create
    - write_full
    - fdopen
    - fseek
    linkageType: ''
    returnType: FILE
    signature: FILE *convert_data(const uint8_t *data, size_t size)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: memmem
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:125,1
    - Dst: malloc
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:130,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:134,1
    - Dst: malloc
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:137,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:141,1
    - Dst: selinux_set_callback
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:153,1
    - Dst: selinux_set_callback
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:156,1
    - Dst: calloc
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:160,1
    - Dst: convert_data
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:166,1
    - Dst: process_text_file
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:171,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:173,1
    - Dst: sort_specs
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:177,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:179,1
    - Dst: cmp
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:179,1
    - Dst: lookup_all
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:182,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:185,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:188,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:189,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:190,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:191,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:192,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:192,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:193,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:194,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:195,1
    - Dst: strlen
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:195,1
    - Dst: free_lookup_result
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:199,1
    - Dst: fclose
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:201,1
    - Dst: free_spec_node
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:203,1
    - Dst: free
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:204,1
    - Dst: munmap
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:212,1
    - Dst: assert
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:213,1
    - Dst: free
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:216,1
    - Dst: free
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:220,1
    - Dst: free
      Src: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c:221,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 82
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (res->prefix_len <= strlen(res->regex_str))
      pos:
        line_end: 194
        line_start: 194
        source_file: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c
    - condition: (strcmp(res->lr->ctx_raw, "<<none>>") != 0)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c
    - condition: (res->lr->ctx_raw[0] != '\0')
      pos:
        line_end: 190
        line_start: 190
        source_file: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c
    - condition: (!res->lr->ctx_trans)
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c
    - condition: (cmp(&rec, &rec) == SELABEL_EQUAL)
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c
    - condition: (errno != 0)
      pos:
        line_end: 184
        line_start: 184
        source_file: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c
    - condition: (res->regex_str)
      pos:
        line_end: 187
        line_start: 187
        source_file: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c
    - condition: (res->regex_str[0] != '\0')
      pos:
        line_end: 188
        line_start: 188
        source_file: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c
    - condition: (res->lr->validated)
      pos:
        line_end: 193
        line_start: 193
        source_file: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c
    - condition: (errno != 0)
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c
    - condition: (res->lr->ctx_raw)
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c
    - condition: (rc == 0)
      pos:
        line_end: 212
        line_start: 212
        source_file: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c
    constantsTouched: []
    func_position:
      end: 225
      start: 88
    functionDepth: 4
    functionLinenumber: 88
    functionLinenumberEnd: 225
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c
    functionUses: 0
    functionsReached:
    - free_spec_node
    - fclose
    - strlen
    - free_lookup_result
    - cmp
    - lookup_all
    - munmap
    - memmem
    - sort_specs
    - malloc
    - assert
    - strcmp
    - free
    - calloc
    - memcpy
    - process_text_file
    - convert_data
    - selinux_set_callback
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getconlist.c:15,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getconlist.c:17,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/getconlist.c:18,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - name
    - detail
    - rc
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 19
    functionName: usage
    functionSourceFile: /src/selinux/libselinux/utils/getconlist.c
    functionUses: 20
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void usage(const char *name,\n\t\t\t\t\t\tconst char *detail, int
      rc)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/selinux/libselinux/utils/getconlist.c:28,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getconlist.c:31,1
    - Dst: strdup
      Src: /src/selinux/libselinux/utils/getconlist.c:32,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getconlist.c:34,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/getconlist.c:36,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/getconlist.c:41,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/getconlist.c:46,1
    - Dst: is_selinux_enabled
      Src: /src/selinux/libselinux/utils/getconlist.c:49,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getconlist.c:50,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getconlist.c:52,1
    - Dst: getcon
      Src: /src/selinux/libselinux/utils/getconlist.c:60,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getconlist.c:61,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/getconlist.c:62,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getconlist.c:63,1
    - Dst: security_check_context
      Src: /src/selinux/libselinux/utils/getconlist.c:69,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getconlist.c:70,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getconlist.c:72,1
    - Dst: get_ordered_context_list_with_level
      Src: /src/selinux/libselinux/utils/getconlist.c:79,1
    - Dst: get_ordered_context_list
      Src: /src/selinux/libselinux/utils/getconlist.c:82,1
    - Dst: puts
      Src: /src/selinux/libselinux/utils/getconlist.c:85,1
    - Dst: freeconary
      Src: /src/selinux/libselinux/utils/getconlist.c:86,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getconlist.c:88,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/getconlist.c:89,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getconlist.c:90,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getconlist.c:91,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getconlist.c:95,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getconlist.c:96,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 21
    functionDepth: 5
    functionLinenumber: 21
    functionLinenumberEnd: 99
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/getconlist.c
    functionUses: 6
    functionsReached:
    - getopt
    - usage
    - getcon
    - get_ordered_context_list
    - strerror
    - puts
    - freeconary
    - free
    - get_ordered_context_list_with_level
    - security_check_context
    - fprintf
    - is_selinux_enabled
    - strdup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: security_policyvers
      Src: /src/selinux/libselinux/utils/policyvers.c:12,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/policyvers.c:14,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/policyvers.c:15,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/policyvers.c:16,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/policyvers.c:19,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/policyvers.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 21
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/policyvers.c
    functionUses: 6
    functionsReached:
    - strerror
    - exit
    - security_policyvers
    - printf
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc __attribute__((unused)), char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:11,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 31
    functionName: usage
    functionSourceFile: /src/selinux/libselinux/utils/selabel_lookup.c
    functionUses: 21
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:45,1
    - Dst: getopt
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:47,1
    - Dst: strcasecmp
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:50,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:52,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:54,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:56,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:58,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:60,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:63,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:65,1
    - Dst: atoi
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:81,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:84,1
    - Dst: selabel_open
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:91,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:93,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:96,1
    - Dst: selabel_lookup_raw
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:102,1
    - Dst: selabel_lookup
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:105,1
    - Dst: selabel_close
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:107,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:112,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:116,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:121,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:122,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:125,1
    - Dst: freecon
      Src: /src/selinux/libselinux/utils/selabel_lookup.c:126,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 78
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 33
    functionDepth: 4
    functionLinenumber: 33
    functionLinenumberEnd: 130
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/selabel_lookup.c
    functionUses: 6
    functionsReached:
    - getopt
    - freecon
    - usage
    - strcmp
    - strerror
    - atoi
    - selabel_lookup_raw
    - selabel_lookup
    - selabel_close
    - printf
    - strcasecmp
    - fprintf
    - selabel_open
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getseuser.c:15,1
    - Dst: is_selinux_enabled
      Src: /src/selinux/libselinux/utils/getseuser.c:19,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getseuser.c:20,1
    - Dst: getseuserbyname
      Src: /src/selinux/libselinux/utils/getseuser.c:26,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getseuser.c:28,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/getseuser.c:29,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/getseuser.c:32,1
    - Dst: security_check_context
      Src: /src/selinux/libselinux/utils/getseuser.c:34,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getseuser.c:36,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getseuser.c:37,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getseuser.c:38,1
    - Dst: get_ordered_context_list_with_level
      Src: /src/selinux/libselinux/utils/getseuser.c:42,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getseuser.c:45,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/getseuser.c:47,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getseuser.c:48,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getseuser.c:49,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getseuser.c:53,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getseuser.c:54,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/getseuser.c:57,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/getseuser.c:60,1
    - Dst: freeconary
      Src: /src/selinux/libselinux/utils/getseuser.c:62,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 8
    functionDepth: 4
    functionLinenumber: 8
    functionLinenumberEnd: 65
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/getseuser.c
    functionUses: 6
    functionsReached:
    - getseuserbyname
    - freeconary
    - strerror
    - free
    - get_ordered_context_list_with_level
    - security_check_context
    - printf
    - fprintf
    - is_selinux_enabled
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/compute_av.c:16,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/compute_av.c:18,1
    - Dst: security_check_context
      Src: /src/selinux/libselinux/utils/compute_av.c:21,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/compute_av.c:22,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/compute_av.c:24,1
    - Dst: security_check_context
      Src: /src/selinux/libselinux/utils/compute_av.c:27,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/compute_av.c:28,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/compute_av.c:30,1
    - Dst: string_to_security_class
      Src: /src/selinux/libselinux/utils/compute_av.c:33,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/compute_av.c:35,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/compute_av.c:36,1
    - Dst: security_compute_av
      Src: /src/selinux/libselinux/utils/compute_av.c:39,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/compute_av.c:41,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/compute_av.c:42,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/compute_av.c:43,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/compute_av.c:46,1
    - Dst: print_access_vector
      Src: /src/selinux/libselinux/utils/compute_av.c:47,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/compute_av.c:48,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/compute_av.c:51,1
    - Dst: print_access_vector
      Src: /src/selinux/libselinux/utils/compute_av.c:52,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/compute_av.c:53,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/compute_av.c:55,1
    - Dst: print_access_vector
      Src: /src/selinux/libselinux/utils/compute_av.c:56,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/compute_av.c:57,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/compute_av.c:61,1
    - Dst: print_access_vector
      Src: /src/selinux/libselinux/utils/compute_av.c:62,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/compute_av.c:63,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/compute_av.c:67,1
    - Dst: print_access_vector
      Src: /src/selinux/libselinux/utils/compute_av.c:68,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/compute_av.c:69,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/compute_av.c:71,1
    - Dst: print_access_vector
      Src: /src/selinux/libselinux/utils/compute_av.c:72,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/compute_av.c:73,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/compute_av.c:76,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 9
    functionDepth: 4
    functionLinenumber: 9
    functionLinenumberEnd: 77
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/compute_av.c
    functionUses: 6
    functionsReached:
    - security_compute_av
    - print_access_vector
    - string_to_security_class
    - strerror
    - exit
    - printf
    - security_check_context
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/setenforce.c:12,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/setenforce.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 15
    functionName: usage
    functionSourceFile: /src/selinux/libselinux/utils/setenforce.c
    functionUses: 22
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/selinux/libselinux/utils/setenforce.c:21,1
    - Dst: is_selinux_enabled
      Src: /src/selinux/libselinux/utils/setenforce.c:24,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/setenforce.c:25,1
    - Dst: strlen
      Src: /src/selinux/libselinux/utils/setenforce.c:28,1
    - Dst: security_setenforce
      Src: /src/selinux/libselinux/utils/setenforce.c:29,1
    - Dst: atoi
      Src: /src/selinux/libselinux/utils/setenforce.c:29,1
    - Dst: strcasecmp
      Src: /src/selinux/libselinux/utils/setenforce.c:31,1
    - Dst: security_setenforce
      Src: /src/selinux/libselinux/utils/setenforce.c:32,1
    - Dst: strcasecmp
      Src: /src/selinux/libselinux/utils/setenforce.c:33,1
    - Dst: security_setenforce
      Src: /src/selinux/libselinux/utils/setenforce.c:34,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/setenforce.c:36,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/setenforce.c:39,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/setenforce.c:40,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 44
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/setenforce.c
    functionUses: 6
    functionsReached:
    - security_setenforce
    - usage
    - strerror
    - atoi
    - strcasecmp
    - fprintf
    - is_selinux_enabled
    - strlen
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selinux_check_access.c:9,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/selinux_check_access.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 15
    functionName: usage
    functionSourceFile: /src/selinux/libselinux/utils/selinux_check_access.c
    functionUses: 23
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/utils/selinux_check_access.c:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - auditdata
    - class
    - msgbuf
    - msgbufsize
    argTypes:
    - void*
    - security_class_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 22
    functionName: cb_auditinfo
    functionSourceFile: /src/selinux/libselinux/utils/selinux_check_access.c
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: int
    signature: "int cb_auditinfo(void *auditdata,\n\t\t\t__attribute__((unused)) security_class_t
      class,\n\t\t\tchar *msgbuf, size_t msgbufsize)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/selinux/libselinux/utils/selinux_check_access.c:29,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/selinux_check_access.c:35,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/selinux_check_access.c:40,1
    - Dst: selinux_set_callback
      Src: /src/selinux/libselinux/utils/selinux_check_access.c:43,1
    - Dst: selinux_check_access
      Src: /src/selinux/libselinux/utils/selinux_check_access.c:47,1
    - Dst: perror
      Src: /src/selinux/libselinux/utils/selinux_check_access.c:51,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 24
    functionDepth: 6
    functionLinenumber: 24
    functionLinenumberEnd: 54
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/selinux_check_access.c
    functionUses: 6
    functionsReached:
    - selinux_set_callback
    - getopt
    - usage
    - perror
    - selinux_check_access
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: security_set_boolean
      Src: /src/selinux/libselinux/utils/togglesebool.c:18,1
    - Dst: security_get_boolean_active
      Src: /src/selinux/libselinux/utils/togglesebool.c:19,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/togglesebool.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 13
    functionDepth: 7
    functionLinenumber: 13
    functionLinenumberEnd: 21
    functionName: rollback
    functionSourceFile: /src/selinux/libselinux/utils/togglesebool.c
    functionUses: 1
    functionsReached:
    - security_set_boolean
    - security_get_boolean_active
    - exit
    linkageType: ''
    returnType: void
    signature: void rollback(int argc, char **argv)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: is_selinux_enabled
      Src: /src/selinux/libselinux/utils/togglesebool.c:27,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/togglesebool.c:28,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/togglesebool.c:33,1
    - Dst: basename
      Src: /src/selinux/libselinux/utils/togglesebool.c:34,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/togglesebool.c:39,1
    - Dst: security_get_boolean_active
      Src: /src/selinux/libselinux/utils/togglesebool.c:40,1
    - Dst: security_set_boolean
      Src: /src/selinux/libselinux/utils/togglesebool.c:43,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/togglesebool.c:44,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/togglesebool.c:47,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/togglesebool.c:48,1
    - Dst: rollback
      Src: /src/selinux/libselinux/utils/togglesebool.c:49,1
    - Dst: security_set_boolean
      Src: /src/selinux/libselinux/utils/togglesebool.c:53,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/togglesebool.c:54,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/togglesebool.c:57,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/togglesebool.c:58,1
    - Dst: rollback
      Src: /src/selinux/libselinux/utils/togglesebool.c:59,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/togglesebool.c:64,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/togglesebool.c:66,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/togglesebool.c:67,1
    - Dst: rollback
      Src: /src/selinux/libselinux/utils/togglesebool.c:68,1
    - Dst: security_commit_booleans
      Src: /src/selinux/libselinux/utils/togglesebool.c:74,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/togglesebool.c:75,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/togglesebool.c:76,1
    - Dst: getpwuid
      Src: /src/selinux/libselinux/utils/togglesebool.c:79,1
    - Dst: getuid
      Src: /src/selinux/libselinux/utils/togglesebool.c:79,1
    - Dst: syslog
      Src: /src/selinux/libselinux/utils/togglesebool.c:82,1
    - Dst: syslog
      Src: /src/selinux/libselinux/utils/togglesebool.c:86,1
    - Dst: getuid
      Src: /src/selinux/libselinux/utils/togglesebool.c:88,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 23
    functionDepth: 7
    functionLinenumber: 23
    functionLinenumberEnd: 94
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/togglesebool.c
    functionUses: 6
    functionsReached:
    - security_get_boolean_active
    - security_commit_booleans
    - rollback
    - getuid
    - strerror
    - syslog
    - security_set_boolean
    - basename
    - printf
    - fprintf
    - is_selinux_enabled
    - getpwuid
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_selinux_enabled
      Src: /src/selinux/libselinux/utils/getenforce.c:12,1
    - Dst: fputs
      Src: /src/selinux/libselinux/utils/getenforce.c:14,1
    - Dst: security_getenforce
      Src: /src/selinux/libselinux/utils/getenforce.c:18,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getenforce.c:20,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/getenforce.c:22,1
    - Dst: puts
      Src: /src/selinux/libselinux/utils/getenforce.c:27,1
    - Dst: puts
      Src: /src/selinux/libselinux/utils/getenforce.c:29,1
    - Dst: puts
      Src: /src/selinux/libselinux/utils/getenforce.c:31,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 35
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/getenforce.c
    functionUses: 6
    functionsReached:
    - security_getenforce
    - puts
    - strerror
    - fputs
    - fprintf
    - is_selinux_enabled
    linkageType: ''
    returnType: int
    signature: int main(int argc __attribute__((unused)), char **argv __attribute__((unused)))
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/validatetrans.c:15,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/validatetrans.c:18,1
    - Dst: security_check_context
      Src: /src/selinux/libselinux/utils/validatetrans.c:21,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/validatetrans.c:22,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/validatetrans.c:24,1
    - Dst: security_check_context
      Src: /src/selinux/libselinux/utils/validatetrans.c:27,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/validatetrans.c:28,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/validatetrans.c:30,1
    - Dst: string_to_security_class
      Src: /src/selinux/libselinux/utils/validatetrans.c:33,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/validatetrans.c:35,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/validatetrans.c:36,1
    - Dst: security_check_context
      Src: /src/selinux/libselinux/utils/validatetrans.c:39,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/validatetrans.c:40,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/validatetrans.c:42,1
    - Dst: security_validatetrans
      Src: /src/selinux/libselinux/utils/validatetrans.c:45,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/validatetrans.c:46,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/validatetrans.c:47,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 9
    functionDepth: 3
    functionLinenumber: 9
    functionLinenumberEnd: 50
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/validatetrans.c
    functionUses: 6
    functionsReached:
    - security_validatetrans
    - string_to_security_class
    - strerror
    - exit
    - printf
    - security_check_context
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getpidcon.c:15,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/getpidcon.c:16,1
    - Dst: sscanf
      Src: /src/selinux/libselinux/utils/getpidcon.c:19,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getpidcon.c:20,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/getpidcon.c:21,1
    - Dst: getpidcon
      Src: /src/selinux/libselinux/utils/getpidcon.c:24,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getpidcon.c:26,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/getpidcon.c:27,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/getpidcon.c:28,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/getpidcon.c:31,1
    - Dst: freecon
      Src: /src/selinux/libselinux/utils/getpidcon.c:32,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/getpidcon.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 8
    functionDepth: 5
    functionLinenumber: 8
    functionLinenumberEnd: 34
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/getpidcon.c
    functionUses: 6
    functionsReached:
    - freecon
    - strerror
    - sscanf
    - getpidcon
    - printf
    - exit
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/compute_relabel.c:16,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/compute_relabel.c:18,1
    - Dst: security_check_context
      Src: /src/selinux/libselinux/utils/compute_relabel.c:21,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/compute_relabel.c:22,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/compute_relabel.c:24,1
    - Dst: security_check_context
      Src: /src/selinux/libselinux/utils/compute_relabel.c:27,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/compute_relabel.c:28,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/compute_relabel.c:30,1
    - Dst: string_to_security_class
      Src: /src/selinux/libselinux/utils/compute_relabel.c:33,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/compute_relabel.c:35,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/compute_relabel.c:36,1
    - Dst: security_compute_relabel
      Src: /src/selinux/libselinux/utils/compute_relabel.c:39,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/compute_relabel.c:41,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/compute_relabel.c:42,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/compute_relabel.c:43,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/compute_relabel.c:46,1
    - Dst: freecon
      Src: /src/selinux/libselinux/utils/compute_relabel.c:47,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/compute_relabel.c:48,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 9
    functionDepth: 3
    functionLinenumber: 9
    functionLinenumberEnd: 49
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/compute_relabel.c
    functionUses: 6
    functionsReached:
    - freecon
    - string_to_security_class
    - strerror
    - exit
    - printf
    - security_check_context
    - fprintf
    - security_compute_relabel
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/compute_create.c:17,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/compute_create.c:20,1
    - Dst: security_check_context
      Src: /src/selinux/libselinux/utils/compute_create.c:23,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/compute_create.c:24,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/compute_create.c:26,1
    - Dst: security_check_context
      Src: /src/selinux/libselinux/utils/compute_create.c:29,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/compute_create.c:30,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/compute_create.c:32,1
    - Dst: string_to_security_class
      Src: /src/selinux/libselinux/utils/compute_create.c:35,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/compute_create.c:37,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/compute_create.c:38,1
    - Dst: security_compute_create_name
      Src: /src/selinux/libselinux/utils/compute_create.c:43,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/compute_create.c:46,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/compute_create.c:47,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/compute_create.c:48,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/compute_create.c:51,1
    - Dst: freecon
      Src: /src/selinux/libselinux/utils/compute_create.c:52,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/compute_create.c:53,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 9
    functionDepth: 3
    functionLinenumber: 9
    functionLinenumberEnd: 54
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/compute_create.c
    functionUses: 6
    functionsReached:
    - freecon
    - string_to_security_class
    - security_compute_create_name
    - strerror
    - exit
    - printf
    - security_check_context
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/matchpathcon.c:15,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/matchpathcon.c:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 19
    functionName: usage
    functionSourceFile: /src/selinux/libselinux/utils/matchpathcon.c
    functionUses: 24
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: selabel_lookup_raw
      Src: /src/selinux/libselinux/utils/matchpathcon.c:28,1
    - Dst: selabel_lookup
      Src: /src/selinux/libselinux/utils/matchpathcon.c:30,1
    - Dst: strdup
      Src: /src/selinux/libselinux/utils/matchpathcon.c:34,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/matchpathcon.c:36,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/matchpathcon.c:37,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/matchpathcon.c:42,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/matchpathcon.c:44,1
    - Dst: freecon
      Src: /src/selinux/libselinux/utils/matchpathcon.c:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 5
    argNames:
    - hnd
    - path
    - header
    - mode
    - notrans
    argTypes:
    - struct selabel_handle*
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 21
    functionDepth: 4
    functionLinenumber: 21
    functionLinenumberEnd: 48
    functionName: printmatchpathcon
    functionSourceFile: /src/selinux/libselinux/utils/matchpathcon.c
    functionUses: 0
    functionsReached:
    - freecon
    - strerror
    - selabel_lookup
    - selabel_lookup_raw
    - printf
    - fprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: "int printmatchpathcon(struct selabel_handle *hnd, const char *path,\n\t\t\t
      \    int header, int mode, int notrans)"
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 71
    functionName: string_to_mode
    functionSourceFile: /src/selinux/libselinux/utils/matchpathcon.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mode_t
    signature: mode_t string_to_mode(char *s)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/selinux/libselinux/utils/matchpathcon.c:85,1
    - Dst: getopt
      Src: /src/selinux/libselinux/utils/matchpathcon.c:87,1
    - Dst: string_to_mode
      Src: /src/selinux/libselinux/utils/matchpathcon.c:93,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/matchpathcon.c:95,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/matchpathcon.c:97,1
    - Dst: selinux_set_policy_root
      Src: /src/selinux/libselinux/utils/matchpathcon.c:111,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/matchpathcon.c:112,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/matchpathcon.c:115,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/matchpathcon.c:116,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/matchpathcon.c:122,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/matchpathcon.c:131,1
    - Dst: selabel_open
      Src: /src/selinux/libselinux/utils/matchpathcon.c:134,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/matchpathcon.c:136,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/matchpathcon.c:138,1
    - Dst: strlen
      Src: /src/selinux/libselinux/utils/matchpathcon.c:145,1
    - Dst: lstat
      Src: /src/selinux/libselinux/utils/matchpathcon.c:149,1
    - Dst: selinux_file_context_verify
      Src: /src/selinux/libselinux/utils/matchpathcon.c:155,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/matchpathcon.c:161,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/matchpathcon.c:165,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/matchpathcon.c:165,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/matchpathcon.c:166,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/matchpathcon.c:168,1
    - Dst: lgetfilecon_raw
      Src: /src/selinux/libselinux/utils/matchpathcon.c:173,1
    - Dst: lgetfilecon
      Src: /src/selinux/libselinux/utils/matchpathcon.c:175,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/matchpathcon.c:178,1
    - Dst: printmatchpathcon
      Src: /src/selinux/libselinux/utils/matchpathcon.c:180,1
    - Dst: freecon
      Src: /src/selinux/libselinux/utils/matchpathcon.c:182,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/matchpathcon.c:184,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/matchpathcon.c:185,1
    - Dst: printmatchpathcon
      Src: /src/selinux/libselinux/utils/matchpathcon.c:186,1
    - Dst: printmatchpathcon
      Src: /src/selinux/libselinux/utils/matchpathcon.c:191,1
    - Dst: selabel_close
      Src: /src/selinux/libselinux/utils/matchpathcon.c:195,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 88
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 73
    functionDepth: 5
    functionLinenumber: 73
    functionLinenumberEnd: 197
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/matchpathcon.c
    functionUses: 6
    functionsReached:
    - lgetfilecon
    - getopt
    - strlen
    - printmatchpathcon
    - freecon
    - lstat
    - usage
    - selabel_close
    - strerror
    - selinux_set_policy_root
    - lgetfilecon_raw
    - printf
    - exit
    - fprintf
    - selinux_file_context_verify
    - string_to_mode
    - selabel_open
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:12,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 31
    functionName: usage
    functionSourceFile: /src/selinux/libselinux/utils/selabel_lookup_best_match.c
    functionUses: 25
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 52
    functionName: string_to_mode
    functionSourceFile: /src/selinux/libselinux/utils/selabel_lookup_best_match.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: mode_t
    signature: mode_t string_to_mode(const char *s)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:65,1
    - Dst: getopt
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:67,1
    - Dst: string_to_mode
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:82,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:85,1
    - Dst: calloc
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:94,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:97,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:98,1
    - Dst: strdup
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:102,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:104,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:105,1
    - Dst: selabel_open
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:113,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:115,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:118,1
    - Dst: selabel_lookup_best_match_raw
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:124,1
    - Dst: selabel_lookup_best_match
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:127,1
    - Dst: selabel_close
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:130,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:135,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:139,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:145,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:148,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:151,1
    - Dst: freecon
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:152,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:158,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/selabel_lookup_best_match.c:159,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 76
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 54
    functionDepth: 4
    functionLinenumber: 54
    functionLinenumberEnd: 163
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/selabel_lookup_best_match.c
    functionUses: 6
    functionsReached:
    - getopt
    - selabel_lookup_best_match_raw
    - freecon
    - selabel_open
    - usage
    - selabel_lookup_best_match
    - strerror
    - free
    - calloc
    - selabel_close
    - printf
    - exit
    - fprintf
    - string_to_mode
    - strdup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selinux_check_securetty_context.c:13,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/selinux_check_securetty_context.c:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 15
    functionName: usage
    functionSourceFile: /src/selinux/libselinux/utils/selinux_check_securetty_context.c
    functionUses: 26
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/selinux/libselinux/utils/selinux_check_securetty_context.c:21,1
    - Dst: selinux_check_securetty_context
      Src: /src/selinux/libselinux/utils/selinux_check_securetty_context.c:24,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selinux_check_securetty_context.c:26,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selinux_check_securetty_context.c:29,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 17
    functionDepth: 4
    functionLinenumber: 17
    functionLinenumberEnd: 34
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/selinux_check_securetty_context.c
    functionUses: 6
    functionsReached:
    - printf
    - usage
    - selinux_check_securetty_context
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_digest.c:11,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/selabel_digest.c:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 24
    functionName: usage
    functionSourceFile: /src/selinux/libselinux/utils/selabel_digest.c
    functionUses: 27
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: popen
      Src: /src/selinux/libselinux/utils/selabel_digest.c:34,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_digest.c:36,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/selabel_digest.c:37,1
    - Dst: fgets
      Src: /src/selinux/libselinux/utils/selabel_digest.c:43,1
    - Dst: strstr
      Src: /src/selinux/libselinux/utils/selabel_digest.c:46,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_digest.c:48,1
    - Dst: pclose
      Src: /src/selinux/libselinux/utils/selabel_digest.c:50,1
    - Dst: strncmp
      Src: /src/selinux/libselinux/utils/selabel_digest.c:54,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selabel_digest.c:56,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selabel_digest.c:60,1
    - Dst: pclose
      Src: /src/selinux/libselinux/utils/selabel_digest.c:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - cmd
    - selabel_digest
    - digest_len
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 65
    functionName: run_check_digest
    functionSourceFile: /src/selinux/libselinux/utils/selabel_digest.c
    functionUses: 0
    functionsReached:
    - strncmp
    - pclose
    - strerror
    - fgets
    - popen
    - printf
    - fprintf
    - strstr
    linkageType: ''
    returnType: int
    signature: "int run_check_digest(const char *cmd, const char *selabel_digest,\n\t\t\t
      \   size_t digest_len)"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/selinux/libselinux/utils/selabel_digest.c:87,1
    - Dst: getopt
      Src: /src/selinux/libselinux/utils/selabel_digest.c:89,1
    - Dst: strcasecmp
      Src: /src/selinux/libselinux/utils/selabel_digest.c:92,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/utils/selabel_digest.c:94,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/utils/selabel_digest.c:96,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/utils/selabel_digest.c:98,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/utils/selabel_digest.c:100,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/utils/selabel_digest.c:102,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_digest.c:105,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/selabel_digest.c:107,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/selabel_digest.c:123,1
    - Dst: memset
      Src: /src/selinux/libselinux/utils/selabel_digest.c:127,1
    - Dst: selabel_open
      Src: /src/selinux/libselinux/utils/selabel_digest.c:133,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_digest.c:138,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_digest.c:142,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/selabel_digest.c:143,1
    - Dst: selabel_digest
      Src: /src/selinux/libselinux/utils/selabel_digest.c:148,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_digest.c:154,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_digest.c:157,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/selabel_digest.c:158,1
    - Dst: malloc
      Src: /src/selinux/libselinux/utils/selabel_digest.c:163,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_digest.c:165,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/selabel_digest.c:166,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selabel_digest.c:171,1
    - Dst: sprintf
      Src: /src/selinux/libselinux/utils/selabel_digest.c:173,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selabel_digest.c:175,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selabel_digest.c:176,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/utils/selabel_digest.c:184,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_digest.c:186,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/utils/selabel_digest.c:197,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_digest.c:200,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selabel_digest.c:209,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/utils/selabel_digest.c:213,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_digest.c:216,1
    - Dst: run_check_digest
      Src: /src/selinux/libselinux/utils/selabel_digest.c:222,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/selabel_digest.c:227,1
    - Dst: selabel_close
      Src: /src/selinux/libselinux/utils/selabel_digest.c:228,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 126
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 230
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/selabel_digest.c
    functionUses: 6
    functionsReached:
    - getopt
    - snprintf
    - run_check_digest
    - usage
    - malloc
    - strcmp
    - strerror
    - selabel_digest
    - sprintf
    - free
    - memset
    - selabel_close
    - printf
    - strcasecmp
    - fprintf
    - selabel_open
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_compare.c:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 8
    functionDepth: 0
    functionLinenumber: 8
    functionLinenumberEnd: 17
    functionName: usage
    functionSourceFile: /src/selinux/libselinux/utils/selabel_compare.c
    functionUses: 28
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: selabel_open
      Src: /src/selinux/libselinux/utils/selabel_compare.c:31,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_compare.c:33,1
    - Dst: selabel_open
      Src: /src/selinux/libselinux/utils/selabel_compare.c:39,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_compare.c:41,1
    - Dst: selabel_close
      Src: /src/selinux/libselinux/utils/selabel_compare.c:44,1
    - Dst: selabel_cmp
      Src: /src/selinux/libselinux/utils/selabel_compare.c:48,1
    - Dst: selabel_close
      Src: /src/selinux/libselinux/utils/selabel_compare.c:50,1
    - Dst: selabel_close
      Src: /src/selinux/libselinux/utils/selabel_compare.c:51,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selabel_compare.c:55,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selabel_compare.c:58,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selabel_compare.c:61,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selabel_compare.c:64,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_compare.c:67,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 4
    argNames:
    - file1
    - file2
    - validate
    - backend
    argTypes:
    - char*
    - char*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 73
    functionName: compare
    functionSourceFile: /src/selinux/libselinux/utils/selabel_compare.c
    functionUses: 73
    functionsReached:
    - selabel_cmp
    - selabel_close
    - printf
    - fprintf
    - selabel_open
    linkageType: ''
    returnType: int
    signature: "int compare(const char *file1, const char *file2, const char *validate,\n\t\t
      \  unsigned int backend)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/selinux/libselinux/utils/selabel_compare.c:82,1
    - Dst: getopt
      Src: /src/selinux/libselinux/utils/selabel_compare.c:86,1
    - Dst: strcasecmp
      Src: /src/selinux/libselinux/utils/selabel_compare.c:89,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/utils/selabel_compare.c:91,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/utils/selabel_compare.c:93,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/utils/selabel_compare.c:95,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/utils/selabel_compare.c:97,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/utils/selabel_compare.c:99,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_compare.c:102,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/selabel_compare.c:104,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/selabel_compare.c:112,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/selabel_compare.c:118,1
    - Dst: compare
      Src: /src/selinux/libselinux/utils/selabel_compare.c:125,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 126
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/selabel_compare.c
    functionUses: 6
    functionsReached:
    - compare
    - getopt
    - usage
    - strcmp
    - strcasecmp
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: selinux_status_open
      Src: /src/selinux/libselinux/utils/getpolicyload.c:14,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getpolicyload.c:16,1
    - Dst: selinux_status_policyload
      Src: /src/selinux/libselinux/utils/getpolicyload.c:21,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getpolicyload.c:23,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/getpolicyload.c:27,1
    - Dst: selinux_status_close
      Src: /src/selinux/libselinux/utils/getpolicyload.c:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 6
    functionDepth: 2
    functionLinenumber: 6
    functionLinenumberEnd: 32
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/getpolicyload.c
    functionUses: 6
    functionsReached:
    - selinux_status_policyload
    - selinux_status_open
    - selinux_status_close
    - printf
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc __attribute__((unused)), char *argv[] __attribute__((unused)))
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selinuxexeccon.c:14,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selinuxexeccon.c:16,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/selinuxexeccon.c:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - name
    - detail
    - rc
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 18
    functionName: usage
    functionSourceFile: /src/selinux/libselinux/utils/selinuxexeccon.c
    functionUses: 29
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void usage(const char *name,\n\t\t\t\t\t\tconst char *detail, int
      rc)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getfilecon
      Src: /src/selinux/libselinux/utils/selinuxexeccon.c:24,1
    - Dst: security_compute_create
      Src: /src/selinux/libselinux/utils/selinuxexeccon.c:27,1
    - Dst: string_to_security_class
      Src: /src/selinux/libselinux/utils/selinuxexeccon.c:28,1
    - Dst: freecon
      Src: /src/selinux/libselinux/utils/selinuxexeccon.c:33,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - command
    - execcon
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 20
    functionDepth: 5
    functionLinenumber: 20
    functionLinenumberEnd: 35
    functionName: get_selinux_proc_context
    functionSourceFile: /src/selinux/libselinux/utils/selinuxexeccon.c
    functionUses: 0
    functionsReached:
    - string_to_security_class
    - getfilecon
    - security_compute_create
    - freecon
    linkageType: ''
    returnType: char
    signature: char *get_selinux_proc_context(const char *command, const char *execcon)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/selinux/libselinux/utils/selinuxexeccon.c:42,1
    - Dst: getcon
      Src: /src/selinux/libselinux/utils/selinuxexeccon.c:45,1
    - Dst: perror
      Src: /src/selinux/libselinux/utils/selinuxexeccon.c:46,1
    - Dst: strdup
      Src: /src/selinux/libselinux/utils/selinuxexeccon.c:50,1
    - Dst: security_check_context
      Src: /src/selinux/libselinux/utils/selinuxexeccon.c:51,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selinuxexeccon.c:52,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/selinuxexeccon.c:54,1
    - Dst: get_selinux_proc_context
      Src: /src/selinux/libselinux/utils/selinuxexeccon.c:59,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selinuxexeccon.c:61,1
    - Dst: perror
      Src: /src/selinux/libselinux/utils/selinuxexeccon.c:64,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/selinuxexeccon.c:67,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/selinuxexeccon.c:68,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 37
    functionDepth: 6
    functionLinenumber: 37
    functionLinenumberEnd: 70
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/selinuxexeccon.c
    functionUses: 6
    functionsReached:
    - get_selinux_proc_context
    - usage
    - getcon
    - perror
    - free
    - printf
    - security_check_context
    - fprintf
    - strdup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_check_context
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:23,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ctxp
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 29
    functionName: validate_context
    functionSourceFile: /src/selinux/libselinux/utils/sefcontext_compile.c
    functionUses: 3
    functionsReached:
    - sepol_check_context
    linkageType: ''
    returnType: int
    signature: int validate_context(char **ctxp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:41,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:43,1
    - Dst: getline
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:49,1
    - Dst: process_line
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:50,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:63,1
    - Dst: fclose
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:64,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - rec
    - filename
    argTypes:
    - struct selabel_handle*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 66
    functionName: process_file
    functionSourceFile: /src/selinux/libselinux/utils/sefcontext_compile.c
    functionUses: 1
    functionsReached:
    - fclose
    - free
    - fopen
    - process_line
    - fprintf
    - getline
    linkageType: ''
    returnType: int
    signature: int process_file(struct selabel_handle *rec, const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sidtab_context_to_sid
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lspec
    - stab
    argTypes:
    - struct literal_spec*
    - struct sidtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: literal_spec_to_sidtab
    functionSourceFile: /src/selinux/libselinux/utils/sefcontext_compile.c
    functionUses: 0
    functionsReached:
    - sidtab_context_to_sid
    linkageType: ''
    returnType: int
    signature: "int literal_spec_to_sidtab(const struct literal_spec *lspec,\n\t\t\t\t
      \ struct sidtab *stab)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sidtab_context_to_sid
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rspec
    - stab
    argTypes:
    - struct regex_spec*
    - struct sidtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: regex_spec_to_sidtab
    functionSourceFile: /src/selinux/libselinux/utils/sefcontext_compile.c
    functionUses: 0
    functionsReached:
    - sidtab_context_to_sid
    linkageType: ''
    returnType: int
    signature: "int regex_spec_to_sidtab(const struct regex_spec *rspec,\n\t\t\t\tstruct
      sidtab *stab)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: literal_spec_to_sidtab
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:90,1
    - Dst: regex_spec_to_sidtab
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:96,1
    - Dst: spec_node_to_sidtab
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - node
    - stab
    argTypes:
    - struct spec_node*
    - struct sidtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 84
    functionDepth: 4
    functionLinenumber: 84
    functionLinenumberEnd: 108
    functionName: spec_node_to_sidtab
    functionSourceFile: /src/selinux/libselinux/utils/sefcontext_compile.c
    functionUses: 1
    functionsReached:
    - regex_spec_to_sidtab
    - literal_spec_to_sidtab
    - spec_node_to_sidtab
    linkageType: ''
    returnType: int
    signature: "int spec_node_to_sidtab(const struct spec_node *node,\n\t\t\t       struct
      sidtab *stab)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sidtab_init
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:114,1
    - Dst: spec_node_to_sidtab
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - stab
    argTypes:
    - struct saved_data*
    - struct sidtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 5
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: create_sidtab
    functionSourceFile: /src/selinux/libselinux/utils/sefcontext_compile.c
    functionUses: 0
    functionsReached:
    - sidtab_init
    - spec_node_to_sidtab
    linkageType: ''
    returnType: int
    signature: int create_sidtab(const struct saved_data *data, struct sidtab *stab)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: security_id_compare
    functionSourceFile: /src/selinux/libselinux/utils/sefcontext_compile.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int security_id_compare(const void *a, const void *b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: htobe32
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:188,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:189,1
    - Dst: calloc
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:197,1
    - Dst: assert
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:209,1
    - Dst: qsort
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:210,1
    - Dst: strlen
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:215,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:218,1
    - Dst: htobe16
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:221,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:222,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:224,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:227,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:229,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:234,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 2
    argNames:
    - bin_file
    - stab
    argTypes:
    - FILE*
    - struct sidtab*
    assertStmts:
    - condition: (index == stab->nel)
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/selinux/libselinux/utils/sefcontext_compile.c
    constantsTouched: []
    func_position:
      end: 236
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 236
    functionName: write_sidtab
    functionSourceFile: /src/selinux/libselinux/utils/sefcontext_compile.c
    functionUses: 0
    functionsReached:
    - htobe32
    - htobe16
    - fwrite
    - assert
    - qsort
    - free
    - calloc
    - strlen
    linkageType: ''
    returnType: int
    signature: int write_sidtab(FILE *bin_file, const struct sidtab *stab)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sidtab_context_lookup
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:250,1
    - Dst: assert
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:251,1
    - Dst: htobe32
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:252,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:253,1
    - Dst: strlen
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:259,1
    - Dst: htobe16
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:263,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:264,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:267,1
    - Dst: strlen
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:273,1
    - Dst: htobe16
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:277,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:278,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:281,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:287,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - bin_file
    - lspec
    - stab
    argTypes:
    - FILE*
    - struct literal_spec*
    - struct sidtab*
    assertStmts:
    - condition: (sid)
      pos:
        line_end: 250
        line_start: 250
        source_file: /src/selinux/libselinux/utils/sefcontext_compile.c
    constantsTouched: []
    func_position:
      end: 292
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 292
    functionName: write_literal_spec
    functionSourceFile: /src/selinux/libselinux/utils/sefcontext_compile.c
    functionUses: 0
    functionsReached:
    - htobe32
    - htobe16
    - fwrite
    - assert
    - sidtab_context_lookup
    - strlen
    linkageType: ''
    returnType: int
    signature: "int write_literal_spec(FILE *bin_file, const struct literal_spec *lspec,\n\t\t\t
      \     const struct sidtab *stab)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sidtab_context_lookup
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:308,1
    - Dst: assert
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:309,1
    - Dst: htobe32
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:310,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:311,1
    - Dst: htobe32
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:316,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:317,1
    - Dst: strlen
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:323,1
    - Dst: htobe16
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:327,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:328,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:331,1
    - Dst: htobe16
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:336,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:337,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:343,1
    - Dst: regex_writef
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:348,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 4
    argNames:
    - bin_file
    - do_write_precompregex
    - rspec
    - stab
    argTypes:
    - FILE*
    - bool
    - struct regex_spec*
    - struct sidtab*
    assertStmts:
    - condition: (sid)
      pos:
        line_end: 308
        line_start: 308
        source_file: /src/selinux/libselinux/utils/sefcontext_compile.c
    constantsTouched: []
    func_position:
      end: 353
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 353
    functionName: write_regex_spec
    functionSourceFile: /src/selinux/libselinux/utils/sefcontext_compile.c
    functionUses: 0
    functionsReached:
    - htobe32
    - htobe16
    - fwrite
    - assert
    - sidtab_context_lookup
    - regex_writef
    - strlen
    linkageType: ''
    returnType: int
    signature: "int write_regex_spec(FILE *bin_file, bool do_write_precompregex,\n\t\t\t
      \   const struct regex_spec *rspec,\n\t\t\t    const struct sidtab *stab)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: htobe16
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:369,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:370,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:373,1
    - Dst: htobe32
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:378,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:379,1
    - Dst: write_literal_spec
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:385,1
    - Dst: htobe32
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:392,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:393,1
    - Dst: write_regex_spec
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:399,1
    - Dst: htobe32
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:406,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:407,1
    - Dst: write_spec_node
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:413,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 4
    argNames:
    - bin_file
    - do_write_precompregex
    - node
    - stab
    argTypes:
    - FILE*
    - bool
    - struct spec_node*
    - struct sidtab*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 420
    functionName: write_spec_node
    functionSourceFile: /src/selinux/libselinux/utils/sefcontext_compile.c
    functionUses: 1
    functionsReached:
    - htobe32
    - htobe16
    - write_literal_spec
    - write_regex_spec
    - fwrite
    - write_spec_node
    linkageType: ''
    returnType: int
    signature: "int write_spec_node(FILE *bin_file, bool do_write_precompregex,\n\t\t\t
      \  const struct spec_node *node,\n\t\t\t   const struct sidtab *stab)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fdopen
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:434,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:436,1
    - Dst: close
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:437,1
    - Dst: htobe32
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:442,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:443,1
    - Dst: htobe32
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:448,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:449,1
    - Dst: regex_version
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:454,1
    - Dst: strlen
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:457,1
    - Dst: htobe32
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:460,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:461,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:464,1
    - Dst: regex_arch_string
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:469,1
    - Dst: strlen
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:472,1
    - Dst: htobe32
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:475,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:476,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:479,1
    - Dst: htobe64
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:484,1
    - Dst: fwrite
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:485,1
    - Dst: write_sidtab
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:490,1
    - Dst: write_spec_node
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:494,1
    - Dst: fclose
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:499,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:500,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:514,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 86
    argCount: 6
    argNames:
    - data
    - stab
    - fd
    - path
    - do_write_precompregex
    - progname
    argTypes:
    - struct saved_data*
    - struct sidtab*
    - int
    - char*
    - bool
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 422
    functionDepth: 4
    functionLinenumber: 422
    functionLinenumberEnd: 521
    functionName: write_binary_file
    functionSourceFile: /src/selinux/libselinux/utils/sefcontext_compile.c
    functionUses: 0
    functionsReached:
    - htobe32
    - regex_version
    - fclose
    - close
    - regex_arch_string
    - fwrite
    - write_spec_node
    - htobe64
    - write_sidtab
    - fdopen
    - fprintf
    - strlen
    linkageType: ''
    returnType: int
    signature: "int write_binary_file(const struct saved_data *data,\n\t\t\t     const
      struct sidtab *stab, int fd,\n\t\t\t     const char *path, bool do_write_precompregex,\n\t\t\t
      \    const char *progname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:525,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 548
    functionName: usage
    functionSourceFile: /src/selinux/libselinux/utils/sefcontext_compile.c
    functionUses: 30
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:567,1
    - Dst: getopt
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:569,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:581,1
    - Dst: regex_version
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:581,1
    - Dst: regex_arch_string
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:582,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:585,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:589,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:594,1
    - Dst: stat
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:597,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:598,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:599,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:600,1
    - Dst: fopen
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:605,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:608,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:609,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:610,1
    - Dst: sepol_set_policydb_from_file
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:613,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:614,1
    - Dst: fclose
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:616,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:617,1
    - Dst: calloc
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:622,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:624,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:625,1
    - Dst: fclose
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:627,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:628,1
    - Dst: selinux_set_callback
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:639,1
    - Dst: calloc
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:643,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:645,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:646,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:647,1
    - Dst: fclose
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:649,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:650,1
    - Dst: calloc
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:653,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:655,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:656,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:657,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:658,1
    - Dst: fclose
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:660,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:661,1
    - Dst: process_file
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:667,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:669,1
    - Dst: sort_specs
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:673,1
    - Dst: create_sidtab
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:675,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:677,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:678,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:683,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:685,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:688,1
    - Dst: malloc
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:693,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:695,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:696,1
    - Dst: snprintf
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:700,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:702,1
    - Dst: mkstemp
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:706,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:708,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:709,1
    - Dst: fchmod
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:713,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:715,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:716,1
    - Dst: close
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:717,1
    - Dst: write_binary_file
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:721,1
    - Dst: rename
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:726,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:728,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:729,1
    - Dst: fclose
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:736,1
    - Dst: sidtab_destroy
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:738,1
    - Dst: free_spec_node
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:739,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:740,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:741,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:742,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:743,1
    - Dst: unlink
      Src: /src/selinux/libselinux/utils/sefcontext_compile.c:747,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 149
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 550
    functionDepth: 6
    functionLinenumber: 550
    functionLinenumberEnd: 751
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/sefcontext_compile.c
    functionUses: 6
    functionsReached:
    - regex_version
    - stat
    - regex_arch_string
    - strerror
    - fopen
    - exit
    - fprintf
    - malloc
    - free
    - sepol_set_policydb_from_file
    - printf
    - fchmod
    - process_file
    - calloc
    - write_binary_file
    - selinux_set_callback
    - sidtab_destroy
    - fclose
    - getopt
    - create_sidtab
    - snprintf
    - close
    - free_spec_node
    - sort_specs
    - unlink
    - usage
    - mkstemp
    - rename
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getsebool.c:11,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/getsebool.c:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 13
    functionName: usage
    functionSourceFile: /src/selinux/libselinux/utils/getsebool.c
    functionUses: 31
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/selinux/libselinux/utils/getsebool.c:20,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/getsebool.c:24,1
    - Dst: is_selinux_enabled
      Src: /src/selinux/libselinux/utils/getsebool.c:25,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getsebool.c:26,1
    - Dst: security_get_boolean_names
      Src: /src/selinux/libselinux/utils/getsebool.c:31,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getsebool.c:33,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/getsebool.c:35,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/getsebool.c:39,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/getsebool.c:45,1
    - Dst: is_selinux_enabled
      Src: /src/selinux/libselinux/utils/getsebool.c:49,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getsebool.c:50,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/getsebool.c:56,1
    - Dst: calloc
      Src: /src/selinux/libselinux/utils/getsebool.c:58,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getsebool.c:60,1
    - Dst: strdup
      Src: /src/selinux/libselinux/utils/getsebool.c:64,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getsebool.c:66,1
    - Dst: security_get_boolean_active
      Src: /src/selinux/libselinux/utils/getsebool.c:75,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getsebool.c:79,1
    - Dst: security_get_boolean_pending
      Src: /src/selinux/libselinux/utils/getsebool.c:84,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getsebool.c:86,1
    - Dst: selinux_boolean_sub
      Src: /src/selinux/libselinux/utils/getsebool.c:91,1
    - Dst: perror
      Src: /src/selinux/libselinux/utils/getsebool.c:93,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/getsebool.c:99,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/getsebool.c:103,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getsebool.c:106,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getsebool.c:111,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getsebool.c:112,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 85
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 15
    functionDepth: 7
    functionLinenumber: 15
    functionLinenumberEnd: 114
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/getsebool.c
    functionUses: 6
    functionsReached:
    - security_get_boolean_active
    - security_get_boolean_pending
    - security_get_boolean_names
    - getopt
    - selinux_boolean_sub
    - usage
    - strerror
    - perror
    - free
    - calloc
    - printf
    - fprintf
    - is_selinux_enabled
    - strdup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_selinux_enabled
      Src: /src/selinux/libselinux/utils/selinuxenabled.c:8,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 9
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/selinuxenabled.c
    functionUses: 6
    functionsReached:
    - is_selinux_enabled
    linkageType: ''
    returnType: int
    signature: int main(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __format__
      Src: /src/selinux/libselinux/utils/avcstat.c:46,1
    - Dst: fputs
      Src: /src/selinux/libselinux/utils/avcstat.c:51,1
    - Dst: va_start
      Src: /src/selinux/libselinux/utils/avcstat.c:53,1
    - Dst: vfprintf
      Src: /src/selinux/libselinux/utils/avcstat.c:54,1
    - Dst: va_end
      Src: /src/selinux/libselinux/utils/avcstat.c:55,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/avcstat.c:58,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/avcstat.c:58,1
    - Dst: fputc
      Src: /src/selinux/libselinux/utils/avcstat.c:60,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/avcstat.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: die
    functionSourceFile: /src/selinux/libselinux/utils/avcstat.c
    functionUses: 0
    functionsReached:
    - va_end
    - vfprintf
    - strerror
    - fputc
    - exit
    - __format__
    - va_start
    - fputs
    - fprintf
    linkageType: ''
    returnType: void
    signature: void die(const char *msg, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/libselinux/utils/avcstat.c:66,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/avcstat.c:67,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/avcstat.c:68,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/avcstat.c:69,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/avcstat.c:70,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/avcstat.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 73
    functionName: usage
    functionSourceFile: /src/selinux/libselinux/utils/avcstat.c
    functionUses: 32
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ioctl
      Src: /src/selinux/libselinux/utils/avcstat.c:80,1
    - Dst: fileno
      Src: /src/selinux/libselinux/utils/avcstat.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: set_window_rows
    functionSourceFile: /src/selinux/libselinux/utils/avcstat.c
    functionUses: 0
    functionsReached:
    - ioctl
    - fileno
    linkageType: ''
    returnType: void
    signature: void set_window_rows(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: set_window_rows
      Src: /src/selinux/libselinux/utils/avcstat.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: sighandler
    functionSourceFile: /src/selinux/libselinux/utils/avcstat.c
    functionUses: 0
    functionsReached:
    - set_window_rows
    linkageType: ''
    returnType: void
    signature: void sighandler(int num)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/libselinux/utils/avcstat.c:98,1
    - Dst: basename
      Src: /src/selinux/libselinux/utils/avcstat.c:100,1
    - Dst: memset
      Src: /src/selinux/libselinux/utils/avcstat.c:102,1
    - Dst: getopt
      Src: /src/selinux/libselinux/utils/avcstat.c:104,1
    - Dst: strncpy
      Src: /src/selinux/libselinux/utils/avcstat.c:110,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/avcstat.c:115,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/avcstat.c:116,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/avcstat.c:118,1
    - Dst: die
      Src: /src/selinux/libselinux/utils/avcstat.c:119,1
    - Dst: strtoul
      Src: /src/selinux/libselinux/utils/avcstat.c:125,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/avcstat.c:128,1
    - Dst: die
      Src: /src/selinux/libselinux/utils/avcstat.c:129,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/avcstat.c:132,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/avcstat.c:133,1
    - Dst: sigemptyset
      Src: /src/selinux/libselinux/utils/avcstat.c:140,1
    - Dst: sigaction
      Src: /src/selinux/libselinux/utils/avcstat.c:142,1
    - Dst: die
      Src: /src/selinux/libselinux/utils/avcstat.c:144,1
    - Dst: set_window_rows
      Src: /src/selinux/libselinux/utils/avcstat.c:146,1
    - Dst: open
      Src: /src/selinux/libselinux/utils/avcstat.c:147,1
    - Dst: die
      Src: /src/selinux/libselinux/utils/avcstat.c:149,1
    - Dst: memset
      Src: /src/selinux/libselinux/utils/avcstat.c:155,1
    - Dst: read
      Src: /src/selinux/libselinux/utils/avcstat.c:156,1
    - Dst: die
      Src: /src/selinux/libselinux/utils/avcstat.c:158,1
    - Dst: die
      Src: /src/selinux/libselinux/utils/avcstat.c:161,1
    - Dst: strtok
      Src: /src/selinux/libselinux/utils/avcstat.c:164,1
    - Dst: die
      Src: /src/selinux/libselinux/utils/avcstat.c:166,1
    - Dst: strcmp
      Src: /src/selinux/libselinux/utils/avcstat.c:169,1
    - Dst: die
      Src: /src/selinux/libselinux/utils/avcstat.c:170,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/avcstat.c:174,1
    - Dst: memset
      Src: /src/selinux/libselinux/utils/avcstat.c:177,1
    - Dst: strtok
      Src: /src/selinux/libselinux/utils/avcstat.c:179,1
    - Dst: sscanf
      Src: /src/selinux/libselinux/utils/avcstat.c:182,1
    - Dst: die
      Src: /src/selinux/libselinux/utils/avcstat.c:187,1
    - Dst: die
      Src: /src/selinux/libselinux/utils/avcstat.c:200,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/avcstat.c:203,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/avcstat.c:213,1
    - Dst: memcpy
      Src: /src/selinux/libselinux/utils/avcstat.c:221,1
    - Dst: sleep
      Src: /src/selinux/libselinux/utils/avcstat.c:222,1
    - Dst: lseek
      Src: /src/selinux/libselinux/utils/avcstat.c:224,1
    - Dst: die
      Src: /src/selinux/libselinux/utils/avcstat.c:226,1
    - Dst: close
      Src: /src/selinux/libselinux/utils/avcstat.c:229,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 92
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 231
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/avcstat.c
    functionUses: 6
    functionsReached:
    - strtoul
    - sigemptyset
    - strcmp
    - set_window_rows
    - strncpy
    - exit
    - sigaction
    - die
    - strtok
    - printf
    - sscanf
    - read
    - memset
    - basename
    - sleep
    - getopt
    - close
    - snprintf
    - lseek
    - usage
    - open
    - memcpy
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getpidprevcon.c:15,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/getpidprevcon.c:16,1
    - Dst: sscanf
      Src: /src/selinux/libselinux/utils/getpidprevcon.c:19,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getpidprevcon.c:20,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/getpidprevcon.c:21,1
    - Dst: getpidprevcon
      Src: /src/selinux/libselinux/utils/getpidprevcon.c:24,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getpidprevcon.c:26,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/getpidprevcon.c:27,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/getpidprevcon.c:28,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/getpidprevcon.c:31,1
    - Dst: freecon
      Src: /src/selinux/libselinux/utils/getpidprevcon.c:32,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/getpidprevcon.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 8
    functionDepth: 5
    functionLinenumber: 8
    functionLinenumberEnd: 34
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/getpidprevcon.c
    functionUses: 6
    functionsReached:
    - freecon
    - sscanf
    - strerror
    - getpidprevcon
    - printf
    - exit
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/setfilecon.c:13,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/setfilecon.c:14,1
    - Dst: setfilecon
      Src: /src/selinux/libselinux/utils/setfilecon.c:18,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/setfilecon.c:20,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/setfilecon.c:21,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/setfilecon.c:22,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/setfilecon.c:25,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 8
    functionDepth: 5
    functionLinenumber: 8
    functionLinenumberEnd: 26
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/setfilecon.c
    functionUses: 6
    functionsReached:
    - setfilecon
    - exit
    - fprintf
    - strerror
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getfilecon.c:14,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/getfilecon.c:15,1
    - Dst: getfilecon
      Src: /src/selinux/libselinux/utils/getfilecon.c:19,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getfilecon.c:21,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/getfilecon.c:22,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/getfilecon.c:23,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/getfilecon.c:25,1
    - Dst: freecon
      Src: /src/selinux/libselinux/utils/getfilecon.c:26,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/getfilecon.c:28,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 8
    functionDepth: 5
    functionLinenumber: 8
    functionLinenumberEnd: 29
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/getfilecon.c
    functionUses: 6
    functionsReached:
    - freecon
    - getfilecon
    - strerror
    - exit
    - printf
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:13,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 26
    functionName: usage
    functionSourceFile: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c
    functionUses: 33
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:47,1
    - Dst: getopt
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:49,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:61,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:66,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:67,1
    - Dst: selabel_open
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:75,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:77,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:80,1
    - Dst: fts_open
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:85,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:87,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:87,1
    - Dst: fts_read
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:91,1
    - Dst: selabel_get_digests_all_partial_matches
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:100,1
    - Dst: calloc
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:104,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:106,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:108,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:113,1
    - Dst: sprintf
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:118,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:121,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:125,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:127,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:131,1
    - Dst: sprintf
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:135,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:137,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:140,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:142,1
    - Dst: sprintf
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:144,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:147,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:151,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:152,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:153,1
    - Dst: fts_close
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:164,1
    - Dst: selabel_close
      Src: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c:165,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 93
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 167
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c
    functionUses: 6
    functionsReached:
    - selabel_get_digests_all_partial_matches
    - getopt
    - usage
    - printf
    - strerror
    - sprintf
    - fts_close
    - free
    - calloc
    - selabel_close
    - fts_open
    - exit
    - fprintf
    - fts_read
    - selabel_open
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_partial_match.c:12,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/selabel_partial_match.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 26
    functionName: usage
    functionSourceFile: /src/selinux/libselinux/utils/selabel_partial_match.c
    functionUses: 34
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/selinux/libselinux/utils/selabel_partial_match.c:40,1
    - Dst: getopt
      Src: /src/selinux/libselinux/utils/selabel_partial_match.c:42,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/selabel_partial_match.c:54,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/selabel_partial_match.c:59,1
    - Dst: selabel_open
      Src: /src/selinux/libselinux/utils/selabel_partial_match.c:64,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/selabel_partial_match.c:66,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/selabel_partial_match.c:69,1
    - Dst: selabel_partial_match
      Src: /src/selinux/libselinux/utils/selabel_partial_match.c:73,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/selabel_partial_match.c:75,1
    - Dst: selabel_close
      Src: /src/selinux/libselinux/utils/selabel_partial_match.c:78,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 80
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/selabel_partial_match.c
    functionUses: 6
    functionsReached:
    - getopt
    - selabel_partial_match
    - usage
    - strerror
    - selabel_close
    - printf
    - fprintf
    - selabel_open
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/compute_member.c:16,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/compute_member.c:18,1
    - Dst: security_check_context
      Src: /src/selinux/libselinux/utils/compute_member.c:21,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/compute_member.c:22,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/compute_member.c:24,1
    - Dst: security_check_context
      Src: /src/selinux/libselinux/utils/compute_member.c:27,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/compute_member.c:28,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/compute_member.c:30,1
    - Dst: string_to_security_class
      Src: /src/selinux/libselinux/utils/compute_member.c:33,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/compute_member.c:35,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/compute_member.c:36,1
    - Dst: security_compute_member
      Src: /src/selinux/libselinux/utils/compute_member.c:39,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/compute_member.c:41,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/compute_member.c:42,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/compute_member.c:43,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/compute_member.c:46,1
    - Dst: freecon
      Src: /src/selinux/libselinux/utils/compute_member.c:47,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/compute_member.c:48,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 9
    functionDepth: 5
    functionLinenumber: 9
    functionLinenumberEnd: 49
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/compute_member.c
    functionUses: 6
    functionsReached:
    - freecon
    - string_to_security_class
    - security_compute_member
    - strerror
    - exit
    - printf
    - security_check_context
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:15,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:19,1
    - Dst: exit
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - name
    - detail
    - rc
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 21
    functionName: usage
    functionSourceFile: /src/selinux/libselinux/utils/getdefaultcon.c
    functionUses: 35
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void usage(const char *name,\n\t\t\t\t\t\tconst char *detail, int
      rc)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:32,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:35,1
    - Dst: strdup
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:36,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:39,1
    - Dst: strdup
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:40,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:43,1
    - Dst: strdup
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:44,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:50,1
    - Dst: usage
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:55,1
    - Dst: is_selinux_enabled
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:58,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:59,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:61,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:62,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:63,1
    - Dst: getcon
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:71,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:72,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:74,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:75,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:76,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:77,1
    - Dst: security_check_context
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:84,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:85,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:87,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:88,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:89,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:90,1
    - Dst: getseuser
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:94,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:96,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:97,1
    - Dst: get_default_context_with_rolelevel
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:104,1
    - Dst: get_default_context_with_level
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:107,1
    - Dst: fprintf
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:110,1
    - Dst: strerror
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:111,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:116,1
    - Dst: printf
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:120,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:124,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:125,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:127,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:128,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:129,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:130,1
    - Dst: free
      Src: /src/selinux/libselinux/utils/getdefaultcon.c:131,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 83
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 23
    functionDepth: 5
    functionLinenumber: 23
    functionLinenumberEnd: 134
    functionName: main
    functionSourceFile: /src/selinux/libselinux/utils/getdefaultcon.c
    functionUses: 6
    functionsReached:
    - get_default_context_with_level
    - get_default_context_with_rolelevel
    - getopt
    - usage
    - getcon
    - strerror
    - getseuser
    - free
    - printf
    - security_check_context
    - fprintf
    - is_selinux_enabled
    - strdup
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - program_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: usage
    functionSourceFile: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c
    functionUses: 36
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(const char *program_name)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:43,1
    - Dst: usage
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:52,1
    - Dst: strtol
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:58,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:60,1
    - Dst: usage
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:63,1
    - Dst: sepol_policy_kern_vers_min
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:66,1
    - Dst: sepol_policy_kern_vers_max
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:67,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:68,1
    - Dst: sepol_policy_kern_vers_min
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:71,1
    - Dst: sepol_policy_kern_vers_max
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:72,1
    - Dst: usage
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:73,1
    - Dst: usage
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:84,1
    - Dst: printf
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:91,1
    - Dst: printf
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:95,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:101,1
    - Dst: usage
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:104,1
    - Dst: sepol_handle_create
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:111,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:113,1
    - Dst: sepol_policy_file_create
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:117,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:118,1
    - Dst: sepol_module_package_create
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:123,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:124,1
    - Dst: fopen
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:128,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:130,1
    - Dst: strerror
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:131,1
    - Dst: sepol_policy_file_set_fp
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:135,1
    - Dst: sepol_module_package_read
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:136,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:138,1
    - Dst: fclose
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:143,1
    - Dst: sepol_module_package_get_policy
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:147,1
    - Dst: sepol_link_modules
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:148,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:149,1
    - Dst: sepol_policydb_create
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:155,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:156,1
    - Dst: sepol_set_expand_consume_base
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:160,1
    - Dst: sepol_expand_module
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:162,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:163,1
    - Dst: sepol_policydb_set_vers
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:168,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:169,1
    - Dst: fopen
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:175,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:177,1
    - Dst: strerror
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:178,1
    - Dst: sepol_policy_file_set_fp
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:182,1
    - Dst: sepol_policydb_write
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:183,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:185,1
    - Dst: fclose
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:191,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:194,1
    - Dst: strerror
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:195,1
    - Dst: fclose
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:207,1
    - Dst: sepol_policydb_free
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:208,1
    - Dst: fclose
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:210,1
    - Dst: sepol_module_package_free
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:211,1
    - Dst: sepol_policy_file_free
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:212,1
    - Dst: sepol_handle_destroy
      Src: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c:213,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 144
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 32
    functionDepth: 11
    functionLinenumber: 32
    functionLinenumberEnd: 216
    functionName: main
    functionSourceFile: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c
    functionUses: 6
    functionsReached:
    - sepol_policydb_write
    - sepol_policydb_free
    - sepol_expand_module
    - strerror
    - sepol_module_package_get_policy
    - fopen
    - fprintf
    - sepol_policy_file_create
    - sepol_policydb_set_vers
    - sepol_link_modules
    - sepol_handle_create
    - strtol
    - sepol_module_package_free
    - sepol_module_package_read
    - printf
    - sepol_policydb_create
    - sepol_set_expand_consume_base
    - sepol_policy_file_free
    - fclose
    - getopt
    - sepol_policy_file_set_fp
    - usage
    - sepol_module_package_create
    - sepol_handle_destroy
    - sepol_policy_kern_vers_min
    - sepol_policy_kern_vers_max
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - program_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: usage
    functionSourceFile: /src/selinux/semodule-utils/semodule_link/semodule_link.c
    functionUses: 37
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(const char *program_name)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sepol_module_package_create
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:38,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:39,1
    - Dst: sepol_policy_file_create
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:42,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:43,1
    - Dst: fopen
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:46,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:48,1
    - Dst: strerror
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:49,1
    - Dst: sepol_policy_file_set_fp
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:52,1
    - Dst: printf
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:54,1
    - Dst: sepol_module_package_read
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:56,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:58,1
    - Dst: fclose
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:62,1
    - Dst: sepol_policy_file_free
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:63,1
    - Dst: sepol_module_package_free
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:66,1
    - Dst: sepol_policy_file_free
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:67,1
    - Dst: fclose
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:69,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - filename
    - progname
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 30
    functionDepth: 9
    functionLinenumber: 30
    functionLinenumberEnd: 71
    functionName: load_module
    functionSourceFile: /src/selinux/semodule-utils/semodule_link/semodule_link.c
    functionUses: 0
    functionsReached:
    - sepol_policy_file_create
    - sepol_policy_file_free
    - fclose
    - sepol_module_package_free
    - sepol_policy_file_set_fp
    - strerror
    - sepol_module_package_create
    - fopen
    - sepol_module_package_read
    - printf
    - fprintf
    linkageType: ''
    returnType: sepol_module_package_t
    signature: "sepol_module_package_t *load_module(const char *filename,\n\t\t\t\t\t
      \  const char *progname)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:80,1
    - Dst: usage
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:83,1
    - Dst: usage
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:95,1
    - Dst: printf
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:101,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:107,1
    - Dst: usage
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:110,1
    - Dst: load_module
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:115,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:117,1
    - Dst: calloc
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:124,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:126,1
    - Dst: load_module
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:131,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:133,1
    - Dst: sepol_link_packages
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:140,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:141,1
    - Dst: fopen
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:146,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:148,1
    - Dst: strerror
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:150,1
    - Dst: sepol_policy_file_create
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:154,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:155,1
    - Dst: fclose
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:156,1
    - Dst: sepol_policy_file_set_fp
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:159,1
    - Dst: sepol_module_package_write
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:160,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:161,1
    - Dst: sepol_policy_file_free
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:163,1
    - Dst: fclose
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:164,1
    - Dst: sepol_policy_file_free
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:167,1
    - Dst: fclose
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:169,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:170,1
    - Dst: strerror
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:172,1
    - Dst: sepol_module_package_free
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:186,1
    - Dst: free
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:187,1
    - Dst: sepol_module_package_free
      Src: /src/selinux/semodule-utils/semodule_link/semodule_link.c:189,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 98
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 73
    functionDepth: 11
    functionLinenumber: 73
    functionLinenumberEnd: 192
    functionName: main
    functionSourceFile: /src/selinux/semodule-utils/semodule_link/semodule_link.c
    functionUses: 6
    functionsReached:
    - sepol_policy_file_create
    - sepol_policy_file_free
    - fclose
    - getopt
    - sepol_module_package_free
    - sepol_policy_file_set_fp
    - usage
    - sepol_link_packages
    - strerror
    - sepol_module_package_write
    - free
    - calloc
    - fopen
    - printf
    - fprintf
    - load_module
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: usage
    functionSourceFile: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c
    functionUses: 38
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:29,1
    - Dst: sepol_module_package_create
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:38,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:39,1
    - Dst: sepol_policy_file_create
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:43,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:44,1
    - Dst: fopen
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:48,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:50,1
    - Dst: strerror
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:51,1
    - Dst: sepol_policy_file_set_fp
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:54,1
    - Dst: sepol_module_package_read
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:56,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:57,1
    - Dst: sepol_policy_file_free
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:63,1
    - Dst: fclose
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:65,1
    - Dst: sepol_policy_file_create
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:68,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:69,1
    - Dst: fopen
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:73,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:75,1
    - Dst: strerror
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:76,1
    - Dst: sepol_policy_file_set_fp
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:79,1
    - Dst: sepol_policydb_write
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:81,1
    - Dst: sepol_module_package_get_policy
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:81,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:82,1
    - Dst: fclose
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:87,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:90,1
    - Dst: strerror
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:91,1
    - Dst: sepol_policy_file_free
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:95,1
    - Dst: sepol_module_package_get_file_contexts_len
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:98,1
    - Dst: fopen
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:100,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:102,1
    - Dst: strerror
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:103,1
    - Dst: sepol_module_package_get_file_contexts
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:106,1
    - Dst: fwrite
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:107,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:108,1
    - Dst: strerror
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:109,1
    - Dst: fclose
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:113,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:116,1
    - Dst: strerror
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:117,1
    - Dst: fclose
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:130,1
    - Dst: sepol_policy_file_free
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:131,1
    - Dst: sepol_module_package_free
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:132,1
    - Dst: sepol_policy_file_free
      Src: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c:133,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 97
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 19
    functionDepth: 9
    functionLinenumber: 19
    functionLinenumberEnd: 136
    functionName: main
    functionSourceFile: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c
    functionUses: 6
    functionsReached:
    - sepol_policy_file_create
    - sepol_policy_file_free
    - sepol_policydb_write
    - fclose
    - sepol_module_package_free
    - sepol_policy_file_set_fp
    - fwrite
    - sepol_module_package_get_file_contexts_len
    - usage
    - strerror
    - sepol_module_package_get_policy
    - sepol_module_package_get_file_contexts
    - sepol_module_package_create
    - fopen
    - sepol_module_package_read
    - fprintf
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:24,1
    - Dst: printf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:26,1
    - Dst: printf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:27,1
    - Dst: printf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:28,1
    - Dst: printf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:29,1
    - Dst: printf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:30,1
    - Dst: printf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:31,1
    - Dst: printf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:32,1
    - Dst: printf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - prog
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 34
    functionName: usage
    functionSourceFile: /src/selinux/semodule-utils/semodule_package/semodule_package.c
    functionUses: 39
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(const char *prog)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:41,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:43,1
    - Dst: strerror
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:44,1
    - Dst: fstat
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:47,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:48,1
    - Dst: strerror
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:49,1
    - Dst: close
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:53,1
    - Dst: mmap
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:58,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:60,1
    - Dst: strerror
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:61,1
    - Dst: close
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:65,1
    - Dst: close
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:68,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 4
    argNames:
    - path
    - data
    - len
    - progname
    argTypes:
    - char*
    - char**
    - size_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 70
    functionName: file_to_data
    functionSourceFile: /src/selinux/semodule-utils/semodule_package/semodule_package.c
    functionUses: 0
    functionsReached:
    - close
    - mmap
    - strerror
    - fstat
    - open
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int file_to_data(const char *path, char **data, size_t *len,\n\t\t\tconst
      char *progname)"
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:96,1
    - Dst: usage
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:100,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:104,1
    - Dst: strdup
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:108,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:110,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:117,1
    - Dst: strdup
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:121,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:123,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:130,1
    - Dst: strdup
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:134,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:136,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:143,1
    - Dst: strdup
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:147,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:149,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:156,1
    - Dst: strdup
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:160,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:162,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:169,1
    - Dst: strdup
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:173,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:175,1
    - Dst: usage
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:181,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:187,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:190,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:191,1
    - Dst: usage
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:192,1
    - Dst: usage
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:197,1
    - Dst: file_to_data
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:202,1
    - Dst: file_to_data
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:206,1
    - Dst: file_to_data
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:210,1
    - Dst: file_to_data
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:214,1
    - Dst: sepol_policy_file_create
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:217,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:218,1
    - Dst: fopen
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:222,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:224,1
    - Dst: strerror
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:225,1
    - Dst: sepol_policy_file_set_fp
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:228,1
    - Dst: sepol_module_package_create
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:230,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:231,1
    - Dst: sepol_policydb_read
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:235,1
    - Dst: sepol_module_package_get_policy
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:235,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:236,1
    - Dst: fclose
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:242,1
    - Dst: sepol_module_package_set_file_contexts
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:246,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:247,1
    - Dst: sepol_module_package_set_seusers
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:253,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:254,1
    - Dst: sepol_module_package_set_user_extra
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:258,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:260,1
    - Dst: sepol_module_package_set_netfilter_contexts
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:266,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:267,1
    - Dst: sepol_policy_file_create
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:272,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:273,1
    - Dst: fopen
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:277,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:279,1
    - Dst: strerror
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:280,1
    - Dst: sepol_policy_file_set_fp
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:283,1
    - Dst: sepol_module_package_write
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:285,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:286,1
    - Dst: fclose
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:292,1
    - Dst: fprintf
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:295,1
    - Dst: strerror
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:296,1
    - Dst: fclose
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:308,1
    - Dst: sepol_policy_file_free
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:309,1
    - Dst: munmap
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:311,1
    - Dst: munmap
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:313,1
    - Dst: munmap
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:315,1
    - Dst: munmap
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:317,1
    - Dst: sepol_module_package_free
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:318,1
    - Dst: sepol_policy_file_free
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:319,1
    - Dst: free
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:320,1
    - Dst: free
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:321,1
    - Dst: free
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:322,1
    - Dst: free
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:323,1
    - Dst: free
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:324,1
    - Dst: free
      Src: /src/selinux/semodule-utils/semodule_package/semodule_package.c:325,1
    CyclomaticComplexity: 70
    EdgeCount: 70
    ICount: 197
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 72
    functionDepth: 9
    functionLinenumber: 72
    functionLinenumberEnd: 328
    functionName: main
    functionSourceFile: /src/selinux/semodule-utils/semodule_package/semodule_package.c
    functionUses: 6
    functionsReached:
    - sepol_module_package_set_user_extra
    - strerror
    - sepol_module_package_get_policy
    - fopen
    - fprintf
    - sepol_policy_file_create
    - sepol_policydb_read
    - free
    - sepol_module_package_free
    - sepol_module_package_set_seusers
    - sepol_module_package_set_file_contexts
    - sepol_module_package_set_netfilter_contexts
    - file_to_data
    - strdup
    - sepol_policy_file_free
    - munmap
    - fclose
    - getopt_long
    - sepol_policy_file_set_fp
    - usage
    - sepol_module_package_write
    - sepol_module_package_create
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/checkpolicy/queue.c:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 24
    functionName: queue_create
    functionSourceFile: /src/selinux/checkpolicy/queue.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: queue_t
    signature: queue_t queue_create(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/checkpolicy/queue.c:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - q
    - e
    argTypes:
    - queue_t
    - queue_element_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 48
    functionName: queue_insert
    functionSourceFile: /src/selinux/checkpolicy/queue.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: int
    signature: int queue_insert(queue_t q, queue_element_t e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/checkpolicy/queue.c:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - q
    - e
    argTypes:
    - queue_t
    - queue_element_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 72
    functionName: queue_push
    functionSourceFile: /src/selinux/checkpolicy/queue.c
    functionUses: 0
    functionsReached:
    - malloc
    linkageType: ''
    returnType: int
    signature: int queue_push(queue_t q, queue_element_t e)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/checkpolicy/queue.c:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - q
    argTypes:
    - queue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 94
    functionName: queue_remove
    functionSourceFile: /src/selinux/checkpolicy/queue.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: queue_element_t
    signature: queue_element_t queue_remove(queue_t q)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - q
    argTypes:
    - queue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: queue_head
    functionSourceFile: /src/selinux/checkpolicy/queue.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: queue_element_t
    signature: queue_element_t queue_head(queue_t q)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/checkpolicy/queue.c:116,1
    - Dst: free
      Src: /src/selinux/checkpolicy/queue.c:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - q
    argTypes:
    - queue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 123
    functionName: queue_clear
    functionSourceFile: /src/selinux/checkpolicy/queue.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void queue_clear(queue_t q)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/checkpolicy/queue.c:134,1
    - Dst: free
      Src: /src/selinux/checkpolicy/queue.c:137,1
    - Dst: free
      Src: /src/selinux/checkpolicy/queue.c:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - q
    argTypes:
    - queue_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 141
    functionName: queue_destroy
    functionSourceFile: /src/selinux/checkpolicy/queue.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void queue_destroy(queue_t q)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/selinux/checkpolicy/queue.c:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - q
    - vp
    argTypes:
    - queue_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 159
    functionName: queue_map
    functionSourceFile: /src/selinux/checkpolicy/queue.c
    functionUses: 0
    functionsReached:
    - f
    linkageType: ''
    returnType: int
    signature: int queue_map(queue_t q, int (*f)(queue_element_t, void *), void *vp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: f
      Src: /src/selinux/checkpolicy/queue.c:173,1
    - Dst: g
      Src: /src/selinux/checkpolicy/queue.c:187,1
    - Dst: free
      Src: /src/selinux/checkpolicy/queue.c:188,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - q
    - vp
    argTypes:
    - queue_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 196
    functionName: queue_map_remove_on_error
    functionSourceFile: /src/selinux/checkpolicy/queue.c
    functionUses: 0
    functionsReached:
    - free
    - g
    - f
    linkageType: ''
    returnType: void
    signature: "void queue_map_remove_on_error(queue_t q, int (*f)(queue_element_t,
      void *),\n\t\t\t       void (*g)(queue_element_t, void *), void *vp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:107,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: usage
    functionSourceFile: /src/selinux/checkpolicy/checkpolicy.c
    functionUses: 40
    functionsReached:
    - printf
    - exit
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - out
    - ','
    - size
    - ','
    - in
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 122
    functionName: FGETS
    functionSourceFile: /src/selinux/checkpolicy/checkpolicy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FGETS(out, size, in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sepol_sid_to_context
      Src: /src/selinux/checkpolicy/checkpolicy.c:131,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:133,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:135,1
    - Dst: free
      Src: /src/selinux/checkpolicy/checkpolicy.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - sid
    - context
    - data
    argTypes:
    - sepol_security_id_t
    - context_struct_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 139
    functionName: print_sid
    functionSourceFile: /src/selinux/checkpolicy/checkpolicy.c
    functionUses: 0
    functionsReached:
    - sepol_sid_to_context
    - printf
    - free
    linkageType: ''
    returnType: int
    signature: "int print_sid(sepol_security_id_t sid,\n\t\t     context_struct_t
      *context __attribute__((unused)),\n\t\t     void *data __attribute__((unused)))"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 159
    functionName: find_perm
    functionSourceFile: /src/selinux/checkpolicy/checkpolicy.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int find_perm(hashtab_key_t key, hashtab_datum_t datum, void *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/checkpolicy/checkpolicy.c:185,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:187,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:188,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 3
    argNames:
    - k
    - d
    - type_rules
    argTypes:
    - avtab_key_t*
    - avtab_datum_t*
    - struct avtab_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 196
    functionName: insert_type_rule
    functionSourceFile: /src/selinux/checkpolicy/checkpolicy.c
    functionUses: 2
    functionsReached:
    - exit
    - fprintf
    - malloc
    linkageType: ''
    returnType: int
    signature: "int insert_type_rule(avtab_key_t *k, avtab_datum_t *d,\n\t\t\t    struct
      avtab_node *type_rules)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: insert_type_rule
      Src: /src/selinux/checkpolicy/checkpolicy.c:207,1
    - Dst: insert_type_rule
      Src: /src/selinux/checkpolicy/checkpolicy.c:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - k
    - d
    - args
    argTypes:
    - avtab_key_t*
    - avtab_datum_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 214
    functionName: create_type_rules
    functionSourceFile: /src/selinux/checkpolicy/checkpolicy.c
    functionUses: 0
    functionsReached:
    - insert_type_rule
    linkageType: ''
    returnType: int
    signature: int create_type_rules(avtab_key_t *k, avtab_datum_t *d, void *args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/checkpolicy/checkpolicy.c:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct avtab_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 225
    functionName: free_type_rules
    functionSourceFile: /src/selinux/checkpolicy/checkpolicy.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_type_rules(struct avtab_node *l)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/checkpolicy/checkpolicy.c:236,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:238,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:239,1
    - Dst: avtab_map
      Src: /src/selinux/checkpolicy/checkpolicy.c:241,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:242,1
    - Dst: free_type_rules
      Src: /src/selinux/checkpolicy/checkpolicy.c:276,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:278,1
    - Dst: free_type_rules
      Src: /src/selinux/checkpolicy/checkpolicy.c:282,1
    - Dst: free
      Src: /src/selinux/checkpolicy/checkpolicy.c:286,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 288
    functionName: identify_equiv_types
    functionSourceFile: /src/selinux/checkpolicy/checkpolicy.c
    functionUses: 0
    functionsReached:
    - free_type_rules
    - avtab_map
    - free
    - calloc
    - printf
    - exit
    - fprintf
    linkageType: ''
    returnType: int
    signature: int identify_equiv_types(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 300
    functionName: display_bools
    functionSourceFile: /src/selinux/checkpolicy/checkpolicy.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int display_bools(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:308,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:312,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:315,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:318,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:321,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:324,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:327,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:330,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - exp
    argTypes:
    - cond_expr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 334
    functionName: display_expr
    functionSourceFile: /src/selinux/checkpolicy/checkpolicy.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void display_expr(const cond_expr_t *exp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:341,1
    - Dst: display_expr
      Src: /src/selinux/checkpolicy/checkpolicy.c:342,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 346
    functionName: display_cond_expressions
    functionSourceFile: /src/selinux/checkpolicy/checkpolicy.c
    functionUses: 0
    functionsReached:
    - display_expr
    - printf
    linkageType: ''
    returnType: int
    signature: int display_cond_expressions(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/checkpolicy.c:352,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:354,1
    - Dst: evaluate_conds
      Src: /src/selinux/checkpolicy/checkpolicy.c:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - name
    - state
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 348
    functionDepth: 3
    functionLinenumber: 348
    functionLinenumberEnd: 360
    functionName: change_bool
    functionSourceFile: /src/selinux/checkpolicy/checkpolicy.c
    functionUses: 0
    functionsReached:
    - evaluate_conds
    - printf
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: int change_bool(const char *name, int state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - key
    - datum
    - arg
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 374
    functionName: check_level
    functionSourceFile: /src/selinux/checkpolicy/checkpolicy.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int check_level(hashtab_key_t key, hashtab_datum_t datum,\n\t\t       void
      *arg __attribute__((unused)))"
  - BBCount: 162
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/selinux/checkpolicy/checkpolicy.c:426,1
    - Dst: strcasecmp
      Src: /src/selinux/checkpolicy/checkpolicy.c:433,1
    - Dst: strcasecmp
      Src: /src/selinux/checkpolicy/checkpolicy.c:435,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:438,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:442,1
    - Dst: strcasecmp
      Src: /src/selinux/checkpolicy/checkpolicy.c:456,1
    - Dst: strcasecmp
      Src: /src/selinux/checkpolicy/checkpolicy.c:460,1
    - Dst: strcasecmp
      Src: /src/selinux/checkpolicy/checkpolicy.c:464,1
    - Dst: usage
      Src: /src/selinux/checkpolicy/checkpolicy.c:468,1
    - Dst: strtol
      Src: /src/selinux/checkpolicy/checkpolicy.c:490,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:492,1
    - Dst: usage
      Src: /src/selinux/checkpolicy/checkpolicy.c:495,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:496,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:500,1
    - Dst: usage
      Src: /src/selinux/checkpolicy/checkpolicy.c:504,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:505,1
    - Dst: usage
      Src: /src/selinux/checkpolicy/checkpolicy.c:518,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:523,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:526,1
    - Dst: usage
      Src: /src/selinux/checkpolicy/checkpolicy.c:532,1
    - Dst: sepol_set_policydb
      Src: /src/selinux/checkpolicy/checkpolicy.c:537,1
    - Dst: sepol_set_sidtab
      Src: /src/selinux/checkpolicy/checkpolicy.c:538,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:541,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:543,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:547,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:549,1
    - Dst: open
      Src: /src/selinux/checkpolicy/checkpolicy.c:553,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:555,1
    - Dst: strerror
      Src: /src/selinux/checkpolicy/checkpolicy.c:556,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:557,1
    - Dst: fstat
      Src: /src/selinux/checkpolicy/checkpolicy.c:559,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:560,1
    - Dst: strerror
      Src: /src/selinux/checkpolicy/checkpolicy.c:561,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:562,1
    - Dst: mmap
      Src: /src/selinux/checkpolicy/checkpolicy.c:564,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:567,1
    - Dst: strerror
      Src: /src/selinux/checkpolicy/checkpolicy.c:568,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:569,1
    - Dst: policy_file_init
      Src: /src/selinux/checkpolicy/checkpolicy.c:571,1
    - Dst: policydb_init
      Src: /src/selinux/checkpolicy/checkpolicy.c:575,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:576,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:578,1
    - Dst: policydb_read
      Src: /src/selinux/checkpolicy/checkpolicy.c:580,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:582,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:585,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:592,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:596,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:600,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:604,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:612,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:614,1
    - Dst: policydb_init
      Src: /src/selinux/checkpolicy/checkpolicy.c:616,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:617,1
    - Dst: policydb_set_target_platform
      Src: /src/selinux/checkpolicy/checkpolicy.c:620,1
    - Dst: read_source_policy
      Src: /src/selinux/checkpolicy/checkpolicy.c:630,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:631,1
    - Dst: hashtab_map
      Src: /src/selinux/checkpolicy/checkpolicy.c:633,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:634,1
    - Dst: link_modules
      Src: /src/selinux/checkpolicy/checkpolicy.c:637,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:638,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:639,1
    - Dst: policydb_init
      Src: /src/selinux/checkpolicy/checkpolicy.c:643,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:644,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:646,1
    - Dst: expand_module
      Src: /src/selinux/checkpolicy/checkpolicy.c:648,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:650,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:652,1
    - Dst: policydb_destroy
      Src: /src/selinux/checkpolicy/checkpolicy.c:656,1
    - Dst: policydb_load_isids
      Src: /src/selinux/checkpolicy/checkpolicy.c:661,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:662,1
    - Dst: policydb_optimize
      Src: /src/selinux/checkpolicy/checkpolicy.c:665,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:667,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:669,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/checkpolicy.c:674,1
    - Dst: fopen
      Src: /src/selinux/checkpolicy/checkpolicy.c:678,1
    - Dst: perror
      Src: /src/selinux/checkpolicy/checkpolicy.c:680,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:681,1
    - Dst: policy_file_init
      Src: /src/selinux/checkpolicy/checkpolicy.c:689,1
    - Dst: policydb_sort_ocontexts
      Src: /src/selinux/checkpolicy/checkpolicy.c:693,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:696,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:699,1
    - Dst: policydb_write
      Src: /src/selinux/checkpolicy/checkpolicy.c:702,1
    - Dst: sepol_kernel_policydb_to_conf
      Src: /src/selinux/checkpolicy/checkpolicy.c:704,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:708,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:710,1
    - Dst: sepol_kernel_policydb_to_cil
      Src: /src/selinux/checkpolicy/checkpolicy.c:718,1
    - Dst: sepol_module_policydb_to_cil
      Src: /src/selinux/checkpolicy/checkpolicy.c:721,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:725,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:727,1
    - Dst: fclose
      Src: /src/selinux/checkpolicy/checkpolicy.c:732,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:733,1
    - Dst: strerror
      Src: /src/selinux/checkpolicy/checkpolicy.c:734,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:735,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:739,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:741,1
    - Dst: policydb_destroy
      Src: /src/selinux/checkpolicy/checkpolicy.c:745,1
    - Dst: sepol_sidtab_destroy
      Src: /src/selinux/checkpolicy/checkpolicy.c:746,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:747,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:751,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:752,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:753,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:754,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:755,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:756,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:757,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:758,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:759,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:760,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:761,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:762,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:763,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:764,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:765,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:766,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:767,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:768,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:769,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:770,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:771,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:772,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:773,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:775,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:777,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:778,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:780,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:781,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:784,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:785,1
    - Dst: atoi
      Src: /src/selinux/checkpolicy/checkpolicy.c:786,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:788,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:789,1
    - Dst: atoi
      Src: /src/selinux/checkpolicy/checkpolicy.c:790,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:792,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:793,1
    - Dst: isdigit
      Src: /src/selinux/checkpolicy/checkpolicy.c:794,1
    - Dst: atoi
      Src: /src/selinux/checkpolicy/checkpolicy.c:795,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:798,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/checkpolicy.c:804,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/checkpolicy.c:805,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:808,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:816,1
    - Dst: sepol_compute_av
      Src: /src/selinux/checkpolicy/checkpolicy.c:819,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:822,1
    - Dst: UINT32_C
      Src: /src/selinux/checkpolicy/checkpolicy.c:825,1
    - Dst: hashtab_map
      Src: /src/selinux/checkpolicy/checkpolicy.c:827,1
    - Dst: hashtab_map
      Src: /src/selinux/checkpolicy/checkpolicy.c:833,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:840,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:843,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:846,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:849,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:853,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:854,1
    - Dst: atoi
      Src: /src/selinux/checkpolicy/checkpolicy.c:855,1
    - Dst: sepol_sid_to_context
      Src: /src/selinux/checkpolicy/checkpolicy.c:856,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:860,1
    - Dst: free
      Src: /src/selinux/checkpolicy/checkpolicy.c:861,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:864,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:867,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:870,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:874,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:875,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/checkpolicy.c:876,1
    - Dst: sepol_context_to_sid
      Src: /src/selinux/checkpolicy/checkpolicy.c:878,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:881,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:884,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:887,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:890,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:898,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:899,1
    - Dst: atoi
      Src: /src/selinux/checkpolicy/checkpolicy.c:900,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:901,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:902,1
    - Dst: atoi
      Src: /src/selinux/checkpolicy/checkpolicy.c:903,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:905,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:906,1
    - Dst: isdigit
      Src: /src/selinux/checkpolicy/checkpolicy.c:907,1
    - Dst: atoi
      Src: /src/selinux/checkpolicy/checkpolicy.c:908,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:911,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/checkpolicy.c:915,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/checkpolicy.c:916,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:919,1
    - Dst: sepol_transition_sid
      Src: /src/selinux/checkpolicy/checkpolicy.c:926,1
    - Dst: sepol_member_sid
      Src: /src/selinux/checkpolicy/checkpolicy.c:929,1
    - Dst: sepol_change_sid
      Src: /src/selinux/checkpolicy/checkpolicy.c:932,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:936,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:939,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:942,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:945,1
    - Dst: sepol_sidtab_map
      Src: /src/selinux/checkpolicy/checkpolicy.c:949,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:952,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:953,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/checkpolicy.c:954,1
    - Dst: open
      Src: /src/selinux/checkpolicy/checkpolicy.c:956,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:958,1
    - Dst: strerror
      Src: /src/selinux/checkpolicy/checkpolicy.c:959,1
    - Dst: fstat
      Src: /src/selinux/checkpolicy/checkpolicy.c:962,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:963,1
    - Dst: strerror
      Src: /src/selinux/checkpolicy/checkpolicy.c:964,1
    - Dst: mmap
      Src: /src/selinux/checkpolicy/checkpolicy.c:967,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:970,1
    - Dst: strerror
      Src: /src/selinux/checkpolicy/checkpolicy.c:971,1
    - Dst: sepol_load_policy
      Src: /src/selinux/checkpolicy/checkpolicy.c:974,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:977,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:980,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:983,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:986,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:990,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:991,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/checkpolicy.c:992,1
    - Dst: sepol_fs_sid
      Src: /src/selinux/checkpolicy/checkpolicy.c:993,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:995,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:997,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1002,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:1003,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/checkpolicy.c:1004,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/checkpolicy.c:1005,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/checkpolicy.c:1005,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/checkpolicy.c:1007,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/checkpolicy.c:1007,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/checkpolicy.c:1009,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/checkpolicy.c:1009,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/checkpolicy.c:1011,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/checkpolicy.c:1011,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1014,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1017,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:1018,1
    - Dst: atoi
      Src: /src/selinux/checkpolicy/checkpolicy.c:1019,1
    - Dst: sepol_port_sid
      Src: /src/selinux/checkpolicy/checkpolicy.c:1020,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1021,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1024,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:1025,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/checkpolicy.c:1026,1
    - Dst: sepol_netif_sid
      Src: /src/selinux/checkpolicy/checkpolicy.c:1027,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1029,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1031,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1041,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:1042,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/checkpolicy.c:1043,1
    - Dst: strcasecmp
      Src: /src/selinux/checkpolicy/checkpolicy.c:1044,1
    - Dst: strcasecmp
      Src: /src/selinux/checkpolicy/checkpolicy.c:1046,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1049,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1053,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:1054,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/checkpolicy.c:1055,1
    - Dst: inet_pton
      Src: /src/selinux/checkpolicy/checkpolicy.c:1065,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1066,1
    - Dst: sepol_node_sid
      Src: /src/selinux/checkpolicy/checkpolicy.c:1070,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1071,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1075,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:1076,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/checkpolicy.c:1077,1
    - Dst: sepol_fs_use
      Src: /src/selinux/checkpolicy/checkpolicy.c:1078,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1081,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1084,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1087,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1090,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1093,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1096,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1099,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:1100,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/checkpolicy.c:1101,1
    - Dst: strdup
      Src: /src/selinux/checkpolicy/checkpolicy.c:1102,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1103,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:1104,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/checkpolicy.c:1105,1
    - Dst: strdup
      Src: /src/selinux/checkpolicy/checkpolicy.c:1106,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1107,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:1108,1
    - Dst: isdigit
      Src: /src/selinux/checkpolicy/checkpolicy.c:1109,1
    - Dst: atoi
      Src: /src/selinux/checkpolicy/checkpolicy.c:1110,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1113,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/checkpolicy.c:1117,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/checkpolicy.c:1118,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1121,1
    - Dst: sepol_genfs_sid
      Src: /src/selinux/checkpolicy/checkpolicy.c:1126,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1127,1
    - Dst: free
      Src: /src/selinux/checkpolicy/checkpolicy.c:1128,1
    - Dst: free
      Src: /src/selinux/checkpolicy/checkpolicy.c:1129,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1132,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:1133,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/checkpolicy.c:1134,1
    - Dst: atoi
      Src: /src/selinux/checkpolicy/checkpolicy.c:1135,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1137,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:1138,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/checkpolicy.c:1139,1
    - Dst: sepol_get_user_sids
      Src: /src/selinux/checkpolicy/checkpolicy.c:1141,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1145,1
    - Dst: print_sid
      Src: /src/selinux/checkpolicy/checkpolicy.c:1147,1
    - Dst: free
      Src: /src/selinux/checkpolicy/checkpolicy.c:1148,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1151,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1154,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1157,1
    - Dst: display_bools
      Src: /src/selinux/checkpolicy/checkpolicy.c:1162,1
    - Dst: display_cond_expressions
      Src: /src/selinux/checkpolicy/checkpolicy.c:1165,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1168,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:1169,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/checkpolicy.c:1170,1
    - Dst: strdup
      Src: /src/selinux/checkpolicy/checkpolicy.c:1172,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1174,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1178,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:1179,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/checkpolicy.c:1180,1
    - Dst: atoi
      Src: /src/selinux/checkpolicy/checkpolicy.c:1182,1
    - Dst: change_bool
      Src: /src/selinux/checkpolicy/checkpolicy.c:1187,1
    - Dst: free
      Src: /src/selinux/checkpolicy/checkpolicy.c:1188,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1191,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:1192,1
    - Dst: atoi
      Src: /src/selinux/checkpolicy/checkpolicy.c:1193,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1195,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:1196,1
    - Dst: atoi
      Src: /src/selinux/checkpolicy/checkpolicy.c:1197,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1199,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:1200,1
    - Dst: isdigit
      Src: /src/selinux/checkpolicy/checkpolicy.c:1201,1
    - Dst: atoi
      Src: /src/selinux/checkpolicy/checkpolicy.c:1202,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1205,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/checkpolicy.c:1209,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/checkpolicy.c:1210,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1213,1
    - Dst: sepol_compute_av_reason_buffer
      Src: /src/selinux/checkpolicy/checkpolicy.c:1220,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1223,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1227,1
    - Dst: free
      Src: /src/selinux/checkpolicy/checkpolicy.c:1229,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1231,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1235,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:1236,1
    - Dst: atoi
      Src: /src/selinux/checkpolicy/checkpolicy.c:1237,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1239,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:1240,1
    - Dst: atoi
      Src: /src/selinux/checkpolicy/checkpolicy.c:1241,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1243,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:1244,1
    - Dst: atoi
      Src: /src/selinux/checkpolicy/checkpolicy.c:1245,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1247,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:1248,1
    - Dst: isdigit
      Src: /src/selinux/checkpolicy/checkpolicy.c:1249,1
    - Dst: atoi
      Src: /src/selinux/checkpolicy/checkpolicy.c:1250,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1253,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/checkpolicy.c:1257,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/checkpolicy.c:1258,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1261,1
    - Dst: sepol_validate_transition_reason_buffer
      Src: /src/selinux/checkpolicy/checkpolicy.c:1268,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1271,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1275,1
    - Dst: free
      Src: /src/selinux/checkpolicy/checkpolicy.c:1277,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1279,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1288,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:1289,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/checkpolicy.c:1290,1
    - Dst: inet_pton
      Src: /src/selinux/checkpolicy/checkpolicy.c:1293,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1294,1
    - Dst: memcpy
      Src: /src/selinux/checkpolicy/checkpolicy.c:1298,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1299,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:1300,1
    - Dst: atoi
      Src: /src/selinux/checkpolicy/checkpolicy.c:1301,1
    - Dst: sepol_ibpkey_sid
      Src: /src/selinux/checkpolicy/checkpolicy.c:1302,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1303,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1306,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:1307,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/checkpolicy.c:1308,1
    - Dst: strdup
      Src: /src/selinux/checkpolicy/checkpolicy.c:1310,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1312,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1316,1
    - Dst: FGETS
      Src: /src/selinux/checkpolicy/checkpolicy.c:1317,1
    - Dst: atoi
      Src: /src/selinux/checkpolicy/checkpolicy.c:1318,1
    - Dst: sepol_ibendport_sid
      Src: /src/selinux/checkpolicy/checkpolicy.c:1319,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1320,1
    - Dst: free
      Src: /src/selinux/checkpolicy/checkpolicy.c:1321,1
    - Dst: identify_equiv_types
      Src: /src/selinux/checkpolicy/checkpolicy.c:1325,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkpolicy.c:1331,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkpolicy.c:1334,1
    CyclomaticComplexity: 203
    EdgeCount: 203
    ICount: 759
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 376
    functionDepth: 10
    functionLinenumber: 376
    functionLinenumberEnd: 1339
    functionName: main
    functionSourceFile: /src/selinux/checkpolicy/checkpolicy.c
    functionUses: 6
    functionsReached:
    - sepol_set_sidtab
    - read_source_policy
    - hashtab_map
    - sepol_load_policy
    - policydb_load_isids
    - strerror
    - strcmp
    - display_cond_expressions
    - sepol_node_sid
    - sepol_validate_transition_reason_buffer
    - fopen
    - change_bool
    - sepol_compute_av_reason_buffer
    - exit
    - fprintf
    - link_modules
    - sepol_port_sid
    - policydb_read
    - identify_equiv_types
    - sepol_kernel_policydb_to_cil
    - mmap
    - expand_module
    - UINT32_C
    - atoi
    - policydb_optimize
    - fstat
    - policydb_set_target_platform
    - strtol
    - policydb_sort_ocontexts
    - policydb_write
    - free
    - printf
    - strcasecmp
    - sepol_transition_sid
    - strlen
    - print_sid
    - policy_file_init
    - sepol_compute_av
    - sepol_change_sid
    - sepol_context_to_sid
    - sepol_netif_sid
    - hashtab_search
    - sepol_ibpkey_sid
    - sepol_fs_use
    - display_bools
    - sepol_fs_sid
    - sepol_sidtab_map
    - policydb_destroy
    - isdigit
    - strdup
    - sepol_module_policydb_to_cil
    - fclose
    - getopt_long
    - FGETS
    - sepol_genfs_sid
    - sepol_set_policydb
    - inet_pton
    - usage
    - sepol_ibendport_sid
    - sepol_sid_to_context
    - sepol_get_user_sids
    - policydb_init
    - perror
    - sepol_kernel_policydb_to_conf
    - open
    - memcpy
    - sepol_sidtab_destroy
    - sepol_member_sid
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_source_file
      Src: /src/selinux/checkpolicy/policy_define.c:86,1
    - Dst: queue_clear
      Src: /src/selinux/checkpolicy/policy_define.c:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - pass_number
    - input_name
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: init_parser
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - queue_clear
    - set_source_file
    linkageType: ''
    returnType: void
    signature: void init_parser(int pass_number, const char *input_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/selinux/checkpolicy/policy_define.c:94,1
    - Dst: vsnprintf
      Src: /src/selinux/checkpolicy/policy_define.c:95,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:96,1
    - Dst: va_end
      Src: /src/selinux/checkpolicy/policy_define.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: yyerror2
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - yyerror
    - va_start
    - vsnprintf
    - va_end
    linkageType: ''
    returnType: void
    signature: void yyerror2(const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: format
      Src: /src/selinux/checkpolicy/policy_define.c:100,1
    - Dst: va_start
      Src: /src/selinux/checkpolicy/policy_define.c:104,1
    - Dst: vsnprintf
      Src: /src/selinux/checkpolicy/policy_define.c:105,1
    - Dst: yywarn
      Src: /src/selinux/checkpolicy/policy_define.c:106,1
    - Dst: va_end
      Src: /src/selinux/checkpolicy/policy_define.c:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 108
    functionName: yywarn2
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - yywarn
    - va_end
    - format
    - va_start
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: void yywarn2(const char *fmt, ...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: queue_push
      Src: /src/selinux/checkpolicy/policy_define.c:115,1
    - Dst: queue_insert
      Src: /src/selinux/checkpolicy/policy_define.c:117,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - push
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 124
    functionName: insert_separator
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - queue_insert
    - yyerror
    - queue_push
    linkageType: ''
    returnType: int
    signature: int insert_separator(int push)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/checkpolicy/policy_define.c:131,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:133,1
    - Dst: queue_push
      Src: /src/selinux/checkpolicy/policy_define.c:137,1
    - Dst: queue_insert
      Src: /src/selinux/checkpolicy/policy_define.c:139,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:142,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:143,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - id
    - push
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 147
    functionName: insert_id
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - queue_push
    - yyerror
    - queue_insert
    - free
    - strdup
    linkageType: ''
    returnType: int
    signature: int insert_id(const char *id, int push)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/selinux/checkpolicy/policy_define.c:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: id_has_dot
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - strchr
    linkageType: ''
    returnType: int
    signature: int id_has_dot(const char *id)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:167,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:168,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:172,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:174,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:177,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:179,1
    - Dst: declare_symbol
      Src: /src/selinux/checkpolicy/policy_define.c:182,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:185,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:189,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:193,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/policy_define.c:203,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:210,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:211,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0)
      pos:
        line_end: 202
        line_start: 202
        source_file: /src/selinux/checkpolicy/policy_define.c
    constantsTouched: []
    func_position:
      end: 213
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 213
    functionName: define_class
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - yyerror
    - yyerror2
    - assert
    - declare_symbol
    - free
    - calloc
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_class(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:221,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:224,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:232,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:233,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:238,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:240,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:246,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:254,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 256
    functionName: define_permissive
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - yyerror2
    - is_id_in_scope
    - free
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_permissive(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:264,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:267,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:275,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:276,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:281,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:283,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:289,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:297,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 299
    functionName: define_neveraudit
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - yyerror2
    - is_id_in_scope
    - free
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_neveraudit(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:307,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:308,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:312,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:314,1
    - Dst: sepol_polcap_getnum
      Src: /src/selinux/checkpolicy/policy_define.c:319,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:321,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/checkpolicy/policy_define.c:326,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:327,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:331,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:335,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 337
    functionName: define_polcap
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - yyerror
    - yyerror2
    - sepol_polcap_getnum
    - ebitmap_set_bit
    - free
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_polcap(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:345,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:346,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:350,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:352,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:355,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:357,1
    - Dst: context_init
      Src: /src/selinux/checkpolicy/policy_define.c:361,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:365,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:366,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:382,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:383,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 385
    functionName: define_initial_sid
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - context_init
    - yyerror
    - yyerror2
    - strcmp
    - free
    - calloc
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_initial_sid(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:392,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:393,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:394,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:395,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:398,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:400,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:401,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:404,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/checkpolicy/policy_define.c:405,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:406,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - e_classes
    argTypes:
    - ebitmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 411
    functionName: read_classes
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - yyerror
    - yyerror2
    - is_id_in_scope
    - ebitmap_set_bit
    - free
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int read_classes(ebitmap_t *e_classes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:419,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:420,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:424,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:425,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:426,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:427,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:430,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:432,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:433,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:437,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:440,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:444,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - which
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 448
    functionName: define_default_user
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - yyerror2
    - is_id_in_scope
    - free
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_default_user(int which)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:456,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:457,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:461,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:462,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:463,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:464,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:467,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:469,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:470,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:474,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:477,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:481,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - which
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 485
    functionName: define_default_role
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - yyerror2
    - is_id_in_scope
    - free
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_default_role(int which)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:493,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:494,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:498,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:499,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:500,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:501,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:504,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:506,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:507,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:511,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:514,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:518,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - which
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 522
    functionName: define_default_type
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - yyerror2
    - is_id_in_scope
    - free
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_default_type(int which)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:530,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:531,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:535,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:536,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:537,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:538,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:541,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:543,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:544,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:549,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:552,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:556,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - which
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 560
    functionName: define_default_range
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - yyerror2
    - is_id_in_scope
    - free
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_default_range(int which)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:570,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:571,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:575,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:577,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:580,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:582,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:583,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:586,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:588,1
    - Dst: hashtab_insert
      Src: /src/selinux/checkpolicy/policy_define.c:591,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:595,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:599,1
    - Dst: symtab_init
      Src: /src/selinux/checkpolicy/policy_define.c:603,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:604,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:608,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:609,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:611,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:617,1
    - Dst: hashtab_insert
      Src: /src/selinux/checkpolicy/policy_define.c:622,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:627,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:632,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:641,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:642,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:646,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:647,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 649
    functionName: define_common_perms
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - symtab_init
    - yyerror
    - yyerror2
    - hashtab_insert
    - free
    - calloc
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_common_perms(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:660,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:661,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:665,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:667,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:670,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:673,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:678,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:682,1
    - Dst: symtab_init
      Src: /src/selinux/checkpolicy/policy_define.c:685,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:686,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:690,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:692,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:695,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:699,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:711,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:712,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:714,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:720,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:731,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:735,1
    - Dst: hashtab_insert
      Src: /src/selinux/checkpolicy/policy_define.c:741,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:746,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:750,1
    - Dst: add_perm_to_class
      Src: /src/selinux/checkpolicy/policy_define.c:753,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:754,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:762,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:763,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 88
    argCount: 1
    argNames:
    - inherits
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 765
    functionName: define_av_perms
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - symtab_init
    - yyerror
    - yyerror2
    - add_perm_to_class
    - hashtab_insert
    - free
    - calloc
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_av_perms(int inherits)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:776,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:781,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:782,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:786,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:788,1
    - Dst: id_has_dot
      Src: /src/selinux/checkpolicy/policy_define.c:791,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:792,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/policy_define.c:796,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:798,1
    - Dst: mls_level_init
      Src: /src/selinux/checkpolicy/policy_define.c:801,1
    - Dst: ebitmap_init
      Src: /src/selinux/checkpolicy/policy_define.c:803,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/policy_define.c:805,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:807,1
    - Dst: level_datum_init
      Src: /src/selinux/checkpolicy/policy_define.c:810,1
    - Dst: declare_symbol
      Src: /src/selinux/checkpolicy/policy_define.c:815,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:818,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:822,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:826,1
    - Dst: level_datum_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:833,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:834,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:835,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/policy_define.c:839,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:843,1
    - Dst: id_has_dot
      Src: /src/selinux/checkpolicy/policy_define.c:844,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:845,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:847,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/policy_define.c:850,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:852,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:853,1
    - Dst: level_datum_init
      Src: /src/selinux/checkpolicy/policy_define.c:856,1
    - Dst: declare_symbol
      Src: /src/selinux/checkpolicy/policy_define.c:861,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:864,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:868,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:874,1
    - Dst: level_datum_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:882,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:883,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:884,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/policy_define.c:888,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:896,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:897,1
    - Dst: level_datum_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:899,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:900,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:905,1
    - Dst: level_datum_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:907,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:908,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 134
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0)
      pos:
        line_end: 887
        line_start: 887
        source_file: /src/selinux/checkpolicy/policy_define.c
    - condition: (0)
      pos:
        line_end: 838
        line_start: 838
        source_file: /src/selinux/checkpolicy/policy_define.c
    constantsTouched: []
    func_position:
      end: 911
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 911
    functionName: define_sens
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - level_datum_destroy
    - level_datum_init
    - yyerror
    - yyerror2
    - malloc
    - assert
    - declare_symbol
    - free
    - id_has_dot
    - mls_level_init
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_sens(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:920,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:925,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:926,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:931,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:932,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:935,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:938,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:942,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:945,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:951,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:955,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 913
    functionDepth: 1
    functionLinenumber: 913
    functionLinenumberEnd: 959
    functionName: define_dominance
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - yyerror
    - yyerror2
    - free
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_dominance(void)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:969,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:974,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:975,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:979,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:981,1
    - Dst: id_has_dot
      Src: /src/selinux/checkpolicy/policy_define.c:984,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:985,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/policy_define.c:988,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:990,1
    - Dst: cat_datum_init
      Src: /src/selinux/checkpolicy/policy_define.c:993,1
    - Dst: declare_symbol
      Src: /src/selinux/checkpolicy/policy_define.c:996,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:999,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1003,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1007,1
    - Dst: cat_datum_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:1015,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1016,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1017,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/policy_define.c:1021,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1025,1
    - Dst: id_has_dot
      Src: /src/selinux/checkpolicy/policy_define.c:1026,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1027,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1029,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/policy_define.c:1032,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1034,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1035,1
    - Dst: cat_datum_init
      Src: /src/selinux/checkpolicy/policy_define.c:1038,1
    - Dst: declare_symbol
      Src: /src/selinux/checkpolicy/policy_define.c:1042,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1045,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1049,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1054,1
    - Dst: cat_datum_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:1062,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1063,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1064,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/policy_define.c:1068,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1076,1
    - Dst: cat_datum_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:1078,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1079,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1084,1
    - Dst: cat_datum_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:1086,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1087,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 122
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (0)
      pos:
        line_end: 1020
        line_start: 1020
        source_file: /src/selinux/checkpolicy/policy_define.c
    - condition: (0)
      pos:
        line_end: 1067
        line_start: 1067
        source_file: /src/selinux/checkpolicy/policy_define.c
    constantsTouched: []
    func_position:
      end: 1090
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 1090
    functionName: define_category
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - cat_datum_destroy
    - yyerror
    - yyerror2
    - cat_datum_init
    - malloc
    - assert
    - declare_symbol
    - free
    - id_has_dot
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_category(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/checkpolicy/policy_define.c:1103,1
    - Dst: mls_level_cpy
      Src: /src/selinux/checkpolicy/policy_define.c:1106,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - key
    - datum
    - arg
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1092
    functionDepth: 3
    functionLinenumber: 1092
    functionLinenumberEnd: 1114
    functionName: clone_level
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - free
    - mls_level_cpy
    - malloc
    linkageType: ''
    returnType: int
    signature: "int clone_level(hashtab_key_t key __attribute__((unused)),\n\t\t       hashtab_datum_t
      datum, void *arg)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1122,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1127,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1128,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1132,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1134,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:1137,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1140,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1141,1
    - Dst: ebitmap_length
      Src: /src/selinux/checkpolicy/policy_define.c:1144,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1145,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1147,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1150,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1152,1
    - Dst: id_has_dot
      Src: /src/selinux/checkpolicy/policy_define.c:1156,1
    - Dst: strchr
      Src: /src/selinux/checkpolicy/policy_define.c:1158,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:1162,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1166,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1167,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:1171,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1174,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1175,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1181,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1183,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:1187,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1190,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1191,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/checkpolicy/policy_define.c:1198,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1199,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1200,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1205,1
    - Dst: hashtab_map
      Src: /src/selinux/checkpolicy/policy_define.c:1208,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1210,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1116
    functionDepth: 1
    functionLinenumber: 1116
    functionLinenumberEnd: 1215
    functionName: define_level
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - hashtab_map
    - strchr
    - ebitmap_length
    - hashtab_search
    - yyerror
    - yyerror2
    - ebitmap_set_bit
    - free
    - id_has_dot
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_level(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1220,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1220,1
    - Dst: declare_type
      Src: /src/selinux/checkpolicy/policy_define.c:1224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1217
    functionDepth: 1
    functionLinenumber: 1217
    functionLinenumberEnd: 1228
    functionName: define_attrib
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - free
    - queue_remove
    - declare_type
    linkageType: ''
    returnType: int
    signature: int define_attrib(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1243,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1244,1
    - Dst: ebitmap_init
      Src: /src/selinux/checkpolicy/policy_define.c:1250,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1251,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:1252,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1253,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:1257,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1259,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1264,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/checkpolicy/policy_define.c:1268,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1269,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1273,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1276,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1278,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:1282,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/checkpolicy/policy_define.c:1288,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:1290,1
    - Dst: yywarn2
      Src: /src/selinux/checkpolicy/policy_define.c:1294,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:1303,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1304,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1230
    functionDepth: 1
    functionLinenumber: 1230
    functionLinenumberEnd: 1306
    functionName: expand_attrib
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - hashtab_search
    - ebitmap_for_each_positive_bit
    - yyerror
    - yyerror2
    - is_id_in_scope
    - strcmp
    - ebitmap_set_bit
    - free
    - queue_remove
    - yywarn2
    linkageType: ''
    returnType: int
    signature: int expand_attrib(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1313,1
    - Dst: id_has_dot
      Src: /src/selinux/checkpolicy/policy_define.c:1314,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1315,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1318,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:1321,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1323,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1324,1
    - Dst: declare_symbol
      Src: /src/selinux/checkpolicy/policy_define.c:1329,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1333,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1337,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1341,1
    - Dst: type_datum_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:1349,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1350,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:1352,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/policy_define.c:1354,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1359,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/policy_define.c:1363,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1369,1
    - Dst: type_datum_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:1370,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1371,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 55
    argCount: 1
    argNames:
    - type
    argTypes:
    - type_datum_t*
    assertStmts:
    - condition: (aliasdatum)
      pos:
        line_end: 1353
        line_start: 1353
        source_file: /src/selinux/checkpolicy/policy_define.c
    - condition: (0)
      pos:
        line_end: 1362
        line_start: 1362
        source_file: /src/selinux/checkpolicy/policy_define.c
    constantsTouched: []
    func_position:
      end: 1373
      start: 1308
    functionDepth: 2
    functionLinenumber: 1308
    functionLinenumberEnd: 1373
    functionName: add_aliases_to_type
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - yyerror
    - yyerror2
    - assert
    - declare_symbol
    - free
    - calloc
    - type_datum_destroy
    - id_has_dot
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int add_aliases_to_type(type_datum_t *type)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1381,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1382,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1386,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1388,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:1392,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1393,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1394,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:1397,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1399,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1402,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1405,1
    - Dst: add_aliases_to_type
      Src: /src/selinux/checkpolicy/policy_define.c:1406,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1375
    functionDepth: 3
    functionLinenumber: 1375
    functionLinenumberEnd: 1407
    functionName: define_typealias
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - yyerror
    - yyerror2
    - is_id_in_scope
    - add_aliases_to_type
    - free
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_typealias(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1415,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1416,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1420,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1422,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:1426,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1427,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1428,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:1431,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1433,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1434,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1440,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1443,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1448,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1450,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:1451,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1452,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1453,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:1456,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1459,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1460,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1465,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1466,1
    - Dst: get_local_type
      Src: /src/selinux/checkpolicy/policy_define.c:1470,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1471,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/checkpolicy/policy_define.c:1475,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1476,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1409
    functionDepth: 1
    functionLinenumber: 1409
    functionLinenumberEnd: 1482
    functionName: define_typeattribute
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - yyerror
    - yyerror2
    - is_id_in_scope
    - ebitmap_set_bit
    - free
    - get_local_type
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_typeattribute(void)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:1490,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1491,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:1495,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1497,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:1501,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1502,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:1506,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1508,1
    - Dst: strdup
      Src: /src/selinux/checkpolicy/policy_define.c:1512,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1514,1
    - Dst: get_local_type
      Src: /src/selinux/checkpolicy/policy_define.c:1518,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1520,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1527,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 2
    argNames:
    - bounds_id
    - type_id
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1484
    functionDepth: 1
    functionLinenumber: 1484
    functionLinenumberEnd: 1534
    functionName: define_typebounds_helper
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - yyerror
    - yyerror2
    - is_id_in_scope
    - get_local_type
    - strdup
    linkageType: ''
    returnType: int
    signature: int define_typebounds_helper(const char *bounds_id, const char *type_id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1541,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1542,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1546,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1548,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1552,1
    - Dst: define_typebounds_helper
      Src: /src/selinux/checkpolicy/policy_define.c:1553,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1554,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1555,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1559,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1561,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1564
      start: 1536
    functionDepth: 2
    functionLinenumber: 1536
    functionLinenumberEnd: 1564
    functionName: define_typebounds
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - define_typebounds_helper
    - yyerror
    - free
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_typebounds(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1577,1
    - Dst: strrchr
      Src: /src/selinux/checkpolicy/policy_define.c:1580,1
    - Dst: strdup
      Src: /src/selinux/checkpolicy/policy_define.c:1582,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1584,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1585,1
    - Dst: define_typebounds_helper
      Src: /src/selinux/checkpolicy/policy_define.c:1591,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1592,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1594,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1598,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1602,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1603,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1606,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1607,1
    - Dst: declare_type
      Src: /src/selinux/checkpolicy/policy_define.c:1611,1
    - Dst: add_aliases_to_type
      Src: /src/selinux/checkpolicy/policy_define.c:1616,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1621,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:1622,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1623,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1624,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:1627,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1630,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1631,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1636,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1637,1
    - Dst: get_local_type
      Src: /src/selinux/checkpolicy/policy_define.c:1641,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1642,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/checkpolicy/policy_define.c:1646,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1647,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 62
    argCount: 1
    argNames:
    - alias
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1566
    functionDepth: 3
    functionLinenumber: 1566
    functionLinenumberEnd: 1653
    functionName: define_type
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - declare_type
    - hashtab_search
    - yyerror
    - yyerror2
    - define_typebounds_helper
    - is_id_in_scope
    - add_aliases_to_type
    - ebitmap_set_bit
    - free
    - get_local_type
    - strrchr
    - queue_remove
    - strdup
    linkageType: ''
    returnType: int
    signature: int define_type(int alias)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:1668,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1669,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1671,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:1680,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1681,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1683,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:1692,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1694,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:1698,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1699,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1700,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:1703,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1705,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1706,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/checkpolicy/policy_define.c:1711,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/checkpolicy/policy_define.c:1714,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1717,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1721,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1722,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 4
    argNames:
    - set
    - id
    - add
    - starallowed
    argTypes:
    - type_set_t*
    - char*
    - int*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1724
      start: 1664
    functionDepth: 1
    functionLinenumber: 1664
    functionLinenumberEnd: 1724
    functionName: set_types
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - yyerror
    - yyerror2
    - is_id_in_scope
    - strcmp
    - ebitmap_set_bit
    - free
    linkageType: ''
    returnType: int
    signature: int set_types(type_set_t *set, char *id, int *add, char starallowed)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/checkpolicy/policy_define.c:1737,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1739,1
    - Dst: avrule_init
      Src: /src/selinux/checkpolicy/policy_define.c:1742,1
    - Dst: strdup
      Src: /src/selinux/checkpolicy/policy_define.c:1746,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1748,1
    - Dst: ebitmap_init
      Src: /src/selinux/checkpolicy/policy_define.c:1752,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1754,1
    - Dst: set_types
      Src: /src/selinux/checkpolicy/policy_define.c:1755,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1759,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:1760,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1761,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1763,1
    - Dst: set_types
      Src: /src/selinux/checkpolicy/policy_define.c:1769,1
    - Dst: read_classes
      Src: /src/selinux/checkpolicy/policy_define.c:1773,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1776,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1778,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:1781,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1782,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1783,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:1786,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1789,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1790,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1793,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/checkpolicy/policy_define.c:1795,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/policy_define.c:1796,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1798,1
    - Dst: class_perm_node_init
      Src: /src/selinux/checkpolicy/policy_define.c:1801,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:1807,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:1813,1
    - Dst: avrule_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:1814,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1815,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 82
    argCount: 2
    argNames:
    - which
    - rule
    argTypes:
    - int
    - avrule_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1726
    functionDepth: 3
    functionLinenumber: 1726
    functionLinenumberEnd: 1817
    functionName: define_compute_type_helper
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - ebitmap_init
    - ebitmap_destroy
    - hashtab_search
    - ebitmap_for_each_positive_bit
    - yyerror
    - set_types
    - yyerror2
    - malloc
    - strcmp
    - read_classes
    - is_id_in_scope
    - avrule_init
    - free
    - avrule_destroy
    - class_perm_node_init
    - queue_remove
    - strdup
    linkageType: ''
    returnType: int
    signature: int define_compute_type_helper(int which, avrule_t **rule)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1825,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1826,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1827,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1828,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1829,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1830,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1831,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1832,1
    - Dst: define_compute_type_helper
      Src: /src/selinux/checkpolicy/policy_define.c:1836,1
    - Dst: append_avrule
      Src: /src/selinux/checkpolicy/policy_define.c:1839,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - which
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1841
      start: 1819
    functionDepth: 4
    functionLinenumber: 1819
    functionLinenumberEnd: 1841
    functionName: define_compute_type
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - define_compute_type_helper
    - free
    - queue_remove
    - append_avrule
    linkageType: ''
    returnType: int
    signature: int define_compute_type(int which)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1849,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1850,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1851,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1852,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1853,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1854,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1855,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1856,1
    - Dst: define_compute_type_helper
      Src: /src/selinux/checkpolicy/policy_define.c:1860,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - which
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1864
      start: 1843
    functionDepth: 4
    functionLinenumber: 1843
    functionLinenumberEnd: 1864
    functionName: define_cond_compute_type
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - define_compute_type_helper
    - free
    - queue_remove
    linkageType: ''
    returnType: avrule_t
    signature: avrule_t *define_cond_compute_type(int which)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1874,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1875,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1879,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1881,1
    - Dst: id_has_dot
      Src: /src/selinux/checkpolicy/policy_define.c:1884,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1885,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1886,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:1889,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1891,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1892,1
    - Dst: declare_symbol
      Src: /src/selinux/checkpolicy/policy_define.c:1897,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1900,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1904,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:1908,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/policy_define.c:1918,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:1923,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:1925,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:1930,1
    - Dst: cond_destroy_bool
      Src: /src/selinux/checkpolicy/policy_define.c:1933,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 65
    argCount: 1
    argNames:
    - is_tunable
    argTypes:
    - int
    assertStmts:
    - condition: (0)
      pos:
        line_end: 1917
        line_start: 1917
        source_file: /src/selinux/checkpolicy/policy_define.c
    constantsTouched: []
    func_position:
      end: 1935
      start: 1866
    functionDepth: 1
    functionLinenumber: 1866
    functionLinenumberEnd: 1935
    functionName: define_bool_tunable
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - yyerror
    - yyerror2
    - assert
    - declare_symbol
    - cond_destroy_bool
    - free
    - calloc
    - id_has_dot
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_bool_tunable(int is_tunable)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - avlist
    - sl
    argTypes:
    - avrule_t*
    - avrule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1937
    functionDepth: 0
    functionLinenumber: 1937
    functionLinenumberEnd: 1958
    functionName: define_cond_pol_list
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: avrule_t
    signature: avrule_t *define_cond_pol_list(avrule_t *avlist, avrule_t *sl)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/checkpolicy/policy_define.c:1977,1
    - Dst: memcpy
      Src: /src/selinux/checkpolicy/policy_define.c:1980,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2010,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2015,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 1
    argNames:
    - rangehead
    argTypes:
    - struct av_xperm_range_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1971
    functionDepth: 0
    functionLinenumber: 1971
    functionLinenumberEnd: 2017
    functionName: avrule_sort_xperms
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - yyerror
    - free
    - malloc
    - memcpy
    linkageType: ''
    returnType: int
    signature: int avrule_sort_xperms(struct av_xperm_range_list **rangehead)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2031,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - rangehead
    argTypes:
    - struct av_xperm_range_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2036
      start: 2019
    functionDepth: 0
    functionLinenumber: 2019
    functionLinenumberEnd: 2036
    functionName: avrule_merge_xperms
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void avrule_merge_xperms(struct av_xperm_range_list **rangehead)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strtoul
      Src: /src/selinux/checkpolicy/policy_define.c:2040,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:2043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - id
    - value
    argTypes:
    - char*
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2050
      start: 2038
    functionDepth: 1
    functionLinenumber: 2038
    functionLinenumberEnd: 2050
    functionName: avrule_read_xperm_value
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - yyerror2
    - strtoul
    linkageType: ''
    returnType: int
    signature: int avrule_read_xperm_value(const char *id, uint16_t *value)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:2061,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:2062,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2064,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:2066,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2068,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:2069,1
    - Dst: avrule_read_xperm_value
      Src: /src/selinux/checkpolicy/policy_define.c:2070,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2071,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:2075,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2080,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/policy_define.c:2083,1
    - Dst: avrule_read_xperm_value
      Src: /src/selinux/checkpolicy/policy_define.c:2094,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2095,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2099,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2108,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 1
    argNames:
    - rangehead
    argTypes:
    - struct av_xperm_range_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2052
    functionDepth: 2
    functionLinenumber: 2052
    functionLinenumberEnd: 2110
    functionName: avrule_read_xperm_ranges
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - yyerror
    - yyerror2
    - malloc
    - strcmp
    - free
    - queue_remove
    - avrule_read_xperm_value
    linkageType: ''
    returnType: int
    signature: int avrule_read_xperm_ranges(struct av_xperm_range_list **rangehead)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:2126,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:2141,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2157,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2166,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2168,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - rangehead
    argTypes:
    - struct av_xperm_range_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2170
      start: 2113
    functionDepth: 0
    functionLinenumber: 2113
    functionLinenumberEnd: 2170
    functionName: avrule_omit_xperms
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - yyerror
    - free
    - calloc
    linkageType: ''
    returnType: int
    signature: int avrule_omit_xperms(struct av_xperm_range_list **rangehead)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: avrule_read_xperm_ranges
      Src: /src/selinux/checkpolicy/policy_define.c:2178,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2181,1
    - Dst: avrule_sort_xperms
      Src: /src/selinux/checkpolicy/policy_define.c:2186,1
    - Dst: avrule_merge_xperms
      Src: /src/selinux/checkpolicy/policy_define.c:2188,1
    - Dst: avrule_omit_xperms
      Src: /src/selinux/checkpolicy/policy_define.c:2191,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - rangelist
    argTypes:
    - struct av_xperm_range_list**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2197
      start: 2172
    functionDepth: 3
    functionLinenumber: 2172
    functionLinenumberEnd: 2197
    functionName: avrule_xperm_ranges
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - avrule_omit_xperms
    - yyerror
    - avrule_sort_xperms
    - avrule_read_xperm_ranges
    - avrule_merge_xperms
    linkageType: ''
    returnType: int
    signature: int avrule_xperm_ranges(struct av_xperm_range_list **rangelist)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/checkpolicy/policy_define.c:2211,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2213,1
    - Dst: avrule_init
      Src: /src/selinux/checkpolicy/policy_define.c:2216,1
    - Dst: strdup
      Src: /src/selinux/checkpolicy/policy_define.c:2220,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2223,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:2227,1
    - Dst: set_types
      Src: /src/selinux/checkpolicy/policy_define.c:2228,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:2234,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:2235,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2236,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2238,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2244,1
    - Dst: set_types
      Src: /src/selinux/checkpolicy/policy_define.c:2249,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2257,1
    - Dst: ebitmap_init
      Src: /src/selinux/checkpolicy/policy_define.c:2266,1
    - Dst: read_classes
      Src: /src/selinux/checkpolicy/policy_define.c:2267,1
    - Dst: queue_head
      Src: /src/selinux/checkpolicy/policy_define.c:2272,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/checkpolicy/policy_define.c:2273,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/policy_define.c:2274,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2276,1
    - Dst: class_perm_node_init
      Src: /src/selinux/checkpolicy/policy_define.c:2279,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:2288,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:2291,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:2297,1
    - Dst: is_perm_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:2301,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:2303,1
    - Dst: UINT32_C
      Src: /src/selinux/checkpolicy/policy_define.c:2308,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:2313,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:2320,1
    - Dst: avrule_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:2322,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2323,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 108
    argCount: 2
    argNames:
    - which
    - rule
    argTypes:
    - int
    - avrule_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2325
      start: 2199
    functionDepth: 3
    functionLinenumber: 2199
    functionLinenumberEnd: 2325
    functionName: define_te_avtab_xperms_helper
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - ebitmap_destroy
    - ebitmap_for_each_positive_bit
    - strcmp
    - queue_remove
    - avrule_destroy
    - yyerror
    - set_types
    - is_perm_in_scope
    - malloc
    - UINT32_C
    - avrule_init
    - free
    - ebitmap_init
    - hashtab_search
    - yyerror2
    - strdup
    - queue_head
    - class_perm_node_init
    - read_classes
    linkageType: ''
    returnType: int
    signature: int define_te_avtab_xperms_helper(int which, avrule_t **rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2329
      start: 2328
    functionDepth: 0
    functionLinenumber: 2328
    functionLinenumberEnd: 2329
    functionName: XPERM_IDX
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XPERM_IDX(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2331
      start: 2330
    functionDepth: 0
    functionLinenumber: 2330
    functionLinenumberEnd: 2331
    functionName: XPERM_SETBITS
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XPERM_SETBITS(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2333
      start: 2332
    functionDepth: 0
    functionLinenumber: 2332
    functionLinenumberEnd: 2333
    functionName: XPERM_LOW
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XPERM_LOW(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2335
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2335
    functionName: XPERM_HIGH
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: XPERM_HIGH(x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: XPERM_IDX
      Src: /src/selinux/checkpolicy/policy_define.c:2341,1
    - Dst: XPERM_IDX
      Src: /src/selinux/checkpolicy/policy_define.c:2341,1
    - Dst: XPERM_LOW
      Src: /src/selinux/checkpolicy/policy_define.c:2343,1
    - Dst: XPERM_HIGH
      Src: /src/selinux/checkpolicy/policy_define.c:2343,1
    - Dst: XPERM_LOW
      Src: /src/selinux/checkpolicy/policy_define.c:2346,1
    - Dst: XPERM_HIGH
      Src: /src/selinux/checkpolicy/policy_define.c:2346,1
    - Dst: XPERM_SETBITS
      Src: /src/selinux/checkpolicy/policy_define.c:2347,1
    - Dst: XPERM_LOW
      Src: /src/selinux/checkpolicy/policy_define.c:2349,1
    - Dst: XPERM_HIGH
      Src: /src/selinux/checkpolicy/policy_define.c:2349,1
    - Dst: XPERM_SETBITS
      Src: /src/selinux/checkpolicy/policy_define.c:2350,1
    - Dst: XPERM_LOW
      Src: /src/selinux/checkpolicy/policy_define.c:2352,1
    - Dst: XPERM_HIGH
      Src: /src/selinux/checkpolicy/policy_define.c:2352,1
    - Dst: XPERM_SETBITS
      Src: /src/selinux/checkpolicy/policy_define.c:2354,1
    - Dst: XPERM_SETBITS
      Src: /src/selinux/checkpolicy/policy_define.c:2354,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 3
    argNames:
    - low
    - high
    - xperms
    argTypes:
    - uint16_t
    - uint16_t
    - av_extended_perms_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2356
      start: 2335
    functionDepth: 0
    functionLinenumber: 2335
    functionLinenumberEnd: 2356
    functionName: avrule_xperm_setrangebits
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 2
    functionsReached:
    - XPERM_SETBITS
    - XPERM_IDX
    - XPERM_HIGH
    - XPERM_LOW
    linkageType: ''
    returnType: void
    signature: "void avrule_xperm_setrangebits(uint16_t low, uint16_t high,\n\t\t\t\t
      \     av_extended_perms_t *xperms)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - xperms
    argTypes:
    - av_extended_perms_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2367
      start: 2358
    functionDepth: 0
    functionLinenumber: 2358
    functionLinenumberEnd: 2367
    functionName: avrule_xperms_used
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int avrule_xperms_used(const av_extended_perms_t *xperms)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2375
    functionDepth: 0
    functionLinenumber: 2375
    functionLinenumberEnd: 2376
    functionName: IOC_DRIV
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IOC_DRIV(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2377
      start: 2376
    functionDepth: 0
    functionLinenumber: 2376
    functionLinenumberEnd: 2377
    functionName: IOC_FUNC
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IOC_FUNC(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - driver
    - ','
    - func
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2378
      start: 2377
    functionDepth: 0
    functionLinenumber: 2377
    functionLinenumberEnd: 2378
    functionName: IOC_CMD
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IOC_CMD(driver, func)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:2386,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2388,1
    - Dst: IOC_DRIV
      Src: /src/selinux/checkpolicy/policy_define.c:2394,1
    - Dst: IOC_DRIV
      Src: /src/selinux/checkpolicy/policy_define.c:2395,1
    - Dst: xperm_test
      Src: /src/selinux/checkpolicy/policy_define.c:2397,1
    - Dst: xperm_set
      Src: /src/selinux/checkpolicy/policy_define.c:2398,1
    - Dst: xperm_test
      Src: /src/selinux/checkpolicy/policy_define.c:2399,1
    - Dst: xperm_set
      Src: /src/selinux/checkpolicy/policy_define.c:2400,1
    - Dst: xperm_set
      Src: /src/selinux/checkpolicy/policy_define.c:2402,1
    - Dst: xperm_set
      Src: /src/selinux/checkpolicy/policy_define.c:2403,1
    - Dst: avrule_xperms_used
      Src: /src/selinux/checkpolicy/policy_define.c:2407,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2410,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 3
    argNames:
    - rangelist
    - complete_driver
    - extended_perms
    argTypes:
    - struct av_xperm_range_list*
    - av_extended_perms_t*
    - av_extended_perms_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2414
      start: 2378
    functionDepth: 1
    functionLinenumber: 2378
    functionLinenumberEnd: 2414
    functionName: avrule_xperm_partialdriver
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - IOC_DRIV
    - xperm_set
    - yyerror
    - avrule_xperms_used
    - calloc
    - free
    - xperm_test
    linkageType: ''
    returnType: int
    signature: "int avrule_xperm_partialdriver(struct av_xperm_range_list *rangelist,\n\t\t\t\t
      \     av_extended_perms_t *complete_driver,\n\t\t\t\t      av_extended_perms_t
      **extended_perms)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:2422,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2424,1
    - Dst: IOC_DRIV
      Src: /src/selinux/checkpolicy/policy_define.c:2438,1
    - Dst: IOC_DRIV
      Src: /src/selinux/checkpolicy/policy_define.c:2440,1
    - Dst: IOC_FUNC
      Src: /src/selinux/checkpolicy/policy_define.c:2441,1
    - Dst: avrule_xperm_setrangebits
      Src: /src/selinux/checkpolicy/policy_define.c:2444,1
    - Dst: avrule_xperms_used
      Src: /src/selinux/checkpolicy/policy_define.c:2447,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2452,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - rangelist
    - extended_perms
    argTypes:
    - struct av_xperm_range_list*
    - av_extended_perms_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2456
      start: 2416
    functionDepth: 1
    functionLinenumber: 2416
    functionLinenumberEnd: 2456
    functionName: avrule_ioctl_completedriver
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - IOC_DRIV
    - IOC_FUNC
    - yyerror
    - avrule_xperms_used
    - calloc
    - free
    - avrule_xperm_setrangebits
    linkageType: ''
    returnType: int
    signature: "int avrule_ioctl_completedriver(struct av_xperm_range_list *rangelist,\n\t\t\t\t
      \      av_extended_perms_t **extended_perms)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:2467,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2469,1
    - Dst: IOC_DRIV
      Src: /src/selinux/checkpolicy/policy_define.c:2478,1
    - Dst: IOC_DRIV
      Src: /src/selinux/checkpolicy/policy_define.c:2478,1
    - Dst: IOC_DRIV
      Src: /src/selinux/checkpolicy/policy_define.c:2483,1
    - Dst: IOC_CMD
      Src: /src/selinux/checkpolicy/policy_define.c:2484,1
    - Dst: IOC_CMD
      Src: /src/selinux/checkpolicy/policy_define.c:2485,1
    - Dst: IOC_CMD
      Src: /src/selinux/checkpolicy/policy_define.c:2488,1
    - Dst: IOC_CMD
      Src: /src/selinux/checkpolicy/policy_define.c:2489,1
    - Dst: IOC_FUNC
      Src: /src/selinux/checkpolicy/policy_define.c:2492,1
    - Dst: IOC_FUNC
      Src: /src/selinux/checkpolicy/policy_define.c:2493,1
    - Dst: avrule_xperm_setrangebits
      Src: /src/selinux/checkpolicy/policy_define.c:2494,1
    - Dst: avrule_xperms_used
      Src: /src/selinux/checkpolicy/policy_define.c:2500,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2503,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 4
    argNames:
    - rangelist
    - extended_perms
    - driver
    - specified
    argTypes:
    - struct av_xperm_range_list*
    - av_extended_perms_t**
    - unsigned int
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2507
      start: 2458
    functionDepth: 1
    functionLinenumber: 2458
    functionLinenumberEnd: 2507
    functionName: avrule_xperm_func
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - IOC_DRIV
    - IOC_FUNC
    - yyerror
    - avrule_xperms_used
    - calloc
    - free
    - IOC_CMD
    - avrule_xperm_setrangebits
    linkageType: ''
    returnType: int
    signature: "int avrule_xperm_func(struct av_xperm_range_list *rangelist,\n\t\t\t
      \    av_extended_perms_t **extended_perms,\n\t\t\t     unsigned int driver,
      uint8_t specified)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: xperm_test
      Src: /src/selinux/checkpolicy/policy_define.c:2514,1
    - Dst: xperm_clear
      Src: /src/selinux/checkpolicy/policy_define.c:2515,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - bit
    - xperms
    argTypes:
    - unsigned int*
    - av_extended_perms_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2521
      start: 2509
    functionDepth: 1
    functionLinenumber: 2509
    functionLinenumberEnd: 2521
    functionName: xperms_for_each_bit
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - xperm_clear
    - xperm_test
    linkageType: ''
    returnType: unsigned int
    signature: "unsigned int xperms_for_each_bit(unsigned int *bit,\n\t\t\t\t\tav_extended_perms_t
      *xperms)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: avrule_init
      Src: /src/selinux/checkpolicy/policy_define.c:2529,1
    - Dst: type_set_cpy
      Src: /src/selinux/checkpolicy/policy_define.c:2532,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2533,1
    - Dst: type_set_cpy
      Src: /src/selinux/checkpolicy/policy_define.c:2536,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2537,1
    - Dst: strdup
      Src: /src/selinux/checkpolicy/policy_define.c:2541,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2543,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:2551,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2553,1
    - Dst: class_perm_node_init
      Src: /src/selinux/checkpolicy/policy_define.c:2556,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - avrule_t*
    - avrule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2570
      start: 2523
    functionDepth: 3
    functionLinenumber: 2523
    functionLinenumberEnd: 2570
    functionName: avrule_cpy
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - yyerror
    - type_set_cpy
    - avrule_init
    - calloc
    - class_perm_node_init
    - strdup
    linkageType: ''
    returnType: int
    signature: int avrule_cpy(avrule_t *dest, const avrule_t *src)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: avrule_xperm_ranges
      Src: /src/selinux/checkpolicy/policy_define.c:2581,1
    - Dst: avrule_ioctl_completedriver
      Src: /src/selinux/checkpolicy/policy_define.c:2585,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:2588,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2590,1
    - Dst: avrule_cpy
      Src: /src/selinux/checkpolicy/policy_define.c:2593,1
    - Dst: append_avrule
      Src: /src/selinux/checkpolicy/policy_define.c:2601,1
    - Dst: avrule_xperm_partialdriver
      Src: /src/selinux/checkpolicy/policy_define.c:2606,1
    - Dst: avrule_xperms_used
      Src: /src/selinux/checkpolicy/policy_define.c:2610,1
    - Dst: xperms_for_each_bit
      Src: /src/selinux/checkpolicy/policy_define.c:2619,1
    - Dst: avrule_xperm_func
      Src: /src/selinux/checkpolicy/policy_define.c:2620,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:2625,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2627,1
    - Dst: avrule_cpy
      Src: /src/selinux/checkpolicy/policy_define.c:2630,1
    - Dst: append_avrule
      Src: /src/selinux/checkpolicy/policy_define.c:2638,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2645,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2650,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 2
    argNames:
    - avrule_template
    - ret_avrules
    argTypes:
    - avrule_t*
    - avrule_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2657
      start: 2572
    functionDepth: 4
    functionLinenumber: 2572
    functionLinenumberEnd: 2657
    functionName: define_te_avtab_ioctl
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - append_avrule
    - avrule_xperm_partialdriver
    - yyerror
    - avrule_xperm_func
    - avrule_xperms_used
    - calloc
    - xperms_for_each_bit
    - avrule_ioctl_completedriver
    - free
    - avrule_xperm_ranges
    - avrule_cpy
    linkageType: ''
    returnType: int
    signature: "int define_te_avtab_ioctl(const avrule_t *avrule_template,\n\t\t\t\t
      avrule_t **ret_avrules)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: avrule_xperm_ranges
      Src: /src/selinux/checkpolicy/policy_define.c:2668,1
    - Dst: avrule_xperm_partialdriver
      Src: /src/selinux/checkpolicy/policy_define.c:2672,1
    - Dst: avrule_xperms_used
      Src: /src/selinux/checkpolicy/policy_define.c:2675,1
    - Dst: xperms_for_each_bit
      Src: /src/selinux/checkpolicy/policy_define.c:2684,1
    - Dst: avrule_xperm_func
      Src: /src/selinux/checkpolicy/policy_define.c:2685,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:2690,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2692,1
    - Dst: avrule_cpy
      Src: /src/selinux/checkpolicy/policy_define.c:2695,1
    - Dst: append_avrule
      Src: /src/selinux/checkpolicy/policy_define.c:2703,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2710,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2715,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 2
    argNames:
    - avrule_template
    - ret_avrules
    argTypes:
    - avrule_t*
    - avrule_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2722
      start: 2659
    functionDepth: 4
    functionLinenumber: 2659
    functionLinenumberEnd: 2722
    functionName: define_te_avtab_netlink
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - append_avrule
    - avrule_xperm_ranges
    - yyerror
    - avrule_xperm_func
    - avrule_xperms_used
    - xperms_for_each_bit
    - calloc
    - free
    - avrule_xperm_partialdriver
    - avrule_cpy
    linkageType: ''
    returnType: int
    signature: "int define_te_avtab_netlink(const avrule_t *avrule_template,\n\t\t\t\t
      \  avrule_t **ret_avrules)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:2733,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:2740,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:2749,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2750,1
    - Dst: define_te_avtab_xperms_helper
      Src: /src/selinux/checkpolicy/policy_define.c:2756,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:2759,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:2760,1
    - Dst: define_te_avtab_ioctl
      Src: /src/selinux/checkpolicy/policy_define.c:2761,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:2762,1
    - Dst: define_te_avtab_netlink
      Src: /src/selinux/checkpolicy/policy_define.c:2763,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:2765,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2771,1
    - Dst: avrule_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:2772,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2773,1
    - Dst: avrule_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:2776,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 1
    argNames:
    - which
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2781
      start: 2724
    functionDepth: 5
    functionLinenumber: 2724
    functionLinenumberEnd: 2781
    functionName: define_cond_te_avtab_extended_perms
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - define_te_avtab_ioctl
    - yyerror2
    - strcmp
    - free
    - define_te_avtab_xperms_helper
    - define_te_avtab_netlink
    - queue_remove
    - avrule_destroy
    linkageType: ''
    returnType: avrule_t
    signature: avrule_t *define_cond_te_avtab_extended_perms(int which)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:2792,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2793,1
    - Dst: define_te_avtab_xperms_helper
      Src: /src/selinux/checkpolicy/policy_define.c:2799,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:2802,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:2803,1
    - Dst: define_te_avtab_ioctl
      Src: /src/selinux/checkpolicy/policy_define.c:2804,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:2805,1
    - Dst: define_te_avtab_netlink
      Src: /src/selinux/checkpolicy/policy_define.c:2806,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:2808,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2814,1
    - Dst: avrule_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:2815,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2816,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - which
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2819
      start: 2783
    functionDepth: 5
    functionLinenumber: 2783
    functionLinenumberEnd: 2819
    functionName: define_te_avtab_extended_perms
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - define_te_avtab_ioctl
    - yyerror2
    - strcmp
    - free
    - define_te_avtab_xperms_helper
    - define_te_avtab_netlink
    - queue_remove
    - avrule_destroy
    linkageType: ''
    returnType: int
    signature: int define_te_avtab_extended_perms(int which)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - nprim
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2824
      start: 2821
    functionDepth: 0
    functionLinenumber: 2821
    functionLinenumberEnd: 2824
    functionName: PERMISSION_MASK
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PERMISSION_MASK(nprim)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_init
      Src: /src/selinux/checkpolicy/policy_define.c:2838,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/policy_define.c:2840,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2842,1
    - Dst: avrule_init
      Src: /src/selinux/checkpolicy/policy_define.c:2846,1
    - Dst: strdup
      Src: /src/selinux/checkpolicy/policy_define.c:2850,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2853,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:2857,1
    - Dst: set_types
      Src: /src/selinux/checkpolicy/policy_define.c:2858,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:2865,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:2866,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2867,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2869,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2876,1
    - Dst: set_types
      Src: /src/selinux/checkpolicy/policy_define.c:2882,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2891,1
    - Dst: read_classes
      Src: /src/selinux/checkpolicy/policy_define.c:2901,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/checkpolicy/policy_define.c:2906,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/policy_define.c:2907,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:2909,1
    - Dst: class_perm_node_init
      Src: /src/selinux/checkpolicy/policy_define.c:2913,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:2922,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/checkpolicy/policy_define.c:2924,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:2927,1
    - Dst: PERMISSION_MASK
      Src: /src/selinux/checkpolicy/policy_define.c:2929,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:2934,1
    - Dst: yywarn
      Src: /src/selinux/checkpolicy/policy_define.c:2937,1
    - Dst: PERMISSION_MASK
      Src: /src/selinux/checkpolicy/policy_define.c:2940,1
    - Dst: yywarn
      Src: /src/selinux/checkpolicy/policy_define.c:2944,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2948,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:2955,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:2958,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:2966,1
    - Dst: is_perm_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:2972,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:2976,1
    - Dst: UINT32_C
      Src: /src/selinux/checkpolicy/policy_define.c:2984,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:2991,1
    - Dst: avrule_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:2999,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3000,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3003,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 143
    argCount: 2
    argNames:
    - which
    - rule
    argTypes:
    - int
    - avrule_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3006
      start: 2825
    functionDepth: 3
    functionLinenumber: 2825
    functionLinenumberEnd: 3006
    functionName: define_te_avtab_helper
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - ebitmap_destroy
    - PERMISSION_MASK
    - ebitmap_for_each_positive_bit
    - strcmp
    - queue_remove
    - avrule_destroy
    - yywarn
    - yyerror
    - set_types
    - is_perm_in_scope
    - malloc
    - UINT32_C
    - avrule_init
    - free
    - ebitmap_init
    - hashtab_search
    - yyerror2
    - strdup
    - class_perm_node_init
    - read_classes
    linkageType: ''
    returnType: int
    signature: int define_te_avtab_helper(int which, avrule_t **rule)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3016,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3017,1
    - Dst: define_te_avtab_helper
      Src: /src/selinux/checkpolicy/policy_define.c:3022,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - which
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3026
      start: 3008
    functionDepth: 4
    functionLinenumber: 3008
    functionLinenumberEnd: 3026
    functionName: define_cond_te_avtab
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - define_te_avtab_helper
    - free
    - queue_remove
    linkageType: ''
    returnType: avrule_t
    signature: avrule_t *define_cond_te_avtab(int which)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3036,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3037,1
    - Dst: define_te_avtab_helper
      Src: /src/selinux/checkpolicy/policy_define.c:3042,1
    - Dst: append_avrule
      Src: /src/selinux/checkpolicy/policy_define.c:3046,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - which
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3048
      start: 3028
    functionDepth: 4
    functionLinenumber: 3028
    functionLinenumberEnd: 3048
    functionName: define_te_avtab
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - define_te_avtab_helper
    - append_avrule
    - free
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_te_avtab(int which)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3060,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3061,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3065,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3067,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:3071,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3072,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3073,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:3077,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3079,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3080,1
    - Dst: get_local_role
      Src: /src/selinux/checkpolicy/policy_define.c:3083,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3085,1
    - Dst: set_types
      Src: /src/selinux/checkpolicy/policy_define.c:3086,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3091
      start: 3053
    functionDepth: 2
    functionLinenumber: 3053
    functionLinenumberEnd: 3091
    functionName: define_role_types
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - get_local_role
    - yyerror
    - yyerror2
    - set_types
    - is_id_in_scope
    - free
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_role_types(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3096,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3096,1
    - Dst: declare_role
      Src: /src/selinux/checkpolicy/policy_define.c:3101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3105
      start: 3093
    functionDepth: 1
    functionLinenumber: 3093
    functionLinenumberEnd: 3105
    functionName: define_attrib_role
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - free
    - queue_remove
    - declare_role
    linkageType: ''
    returnType: int
    signature: int define_attrib_role(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3113,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3114,1
    - Dst: declare_role
      Src: /src/selinux/checkpolicy/policy_define.c:3119,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3122,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:3123,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3124,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3125,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:3128,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3131,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3132,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3137,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3138,1
    - Dst: get_local_role
      Src: /src/selinux/checkpolicy/policy_define.c:3142,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3143,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/checkpolicy/policy_define.c:3147,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3148,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3154
      start: 3107
    functionDepth: 1
    functionLinenumber: 3107
    functionLinenumberEnd: 3154
    functionName: define_role_attr
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - get_local_role
    - yyerror
    - yyerror2
    - is_id_in_scope
    - declare_role
    - ebitmap_set_bit
    - free
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_role_attr(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3162,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3163,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3167,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3169,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:3173,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3174,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3175,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:3178,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3181,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3182,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3185,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3187,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:3188,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3189,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3190,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:3193,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3196,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3197,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3202,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3203,1
    - Dst: get_local_role
      Src: /src/selinux/checkpolicy/policy_define.c:3207,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3208,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/checkpolicy/policy_define.c:3212,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3213,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3219
      start: 3156
    functionDepth: 1
    functionLinenumber: 3156
    functionLinenumberEnd: 3219
    functionName: define_roleattribute
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - get_local_role
    - yyerror
    - yyerror2
    - is_id_in_scope
    - ebitmap_set_bit
    - free
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_roleattribute(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3235
      start: 3221
    functionDepth: 0
    functionLinenumber: 3221
    functionLinenumberEnd: 3235
    functionName: role_val_to_name_helper
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int role_val_to_name_helper(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t\t
      \  void *p)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_map
      Src: /src/selinux/checkpolicy/policy_define.c:3243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - val
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3247
      start: 3237
    functionDepth: 0
    functionLinenumber: 3237
    functionLinenumberEnd: 3247
    functionName: role_val_to_name
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - hashtab_map
    linkageType: ''
    returnType: char
    signature: char *role_val_to_name(unsigned int val)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:3253,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3254,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3255,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:3259,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3260,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3261,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:3264,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3265,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3266,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:3269,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3271,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3272,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/checkpolicy/policy_define.c:3276,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3277,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3278,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3281,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - set
    - id
    argTypes:
    - role_set_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3283
      start: 3249
    functionDepth: 1
    functionLinenumber: 3249
    functionLinenumberEnd: 3283
    functionName: set_roles
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 3
    functionsReached:
    - hashtab_search
    - yyerror
    - yyerror2
    - is_id_in_scope
    - strcmp
    - ebitmap_set_bit
    - free
    linkageType: ''
    returnType: int
    signature: int set_roles(role_set_t *set, char *id)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3300,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3301,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3302,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3303,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3305,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3306,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3307,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3308,1
    - Dst: role_set_init
      Src: /src/selinux/checkpolicy/policy_define.c:3312,1
    - Dst: ebitmap_init
      Src: /src/selinux/checkpolicy/policy_define.c:3313,1
    - Dst: type_set_init
      Src: /src/selinux/checkpolicy/policy_define.c:3314,1
    - Dst: ebitmap_init
      Src: /src/selinux/checkpolicy/policy_define.c:3315,1
    - Dst: ebitmap_init
      Src: /src/selinux/checkpolicy/policy_define.c:3316,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3318,1
    - Dst: set_roles
      Src: /src/selinux/checkpolicy/policy_define.c:3319,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3323,1
    - Dst: set_types
      Src: /src/selinux/checkpolicy/policy_define.c:3324,1
    - Dst: read_classes
      Src: /src/selinux/checkpolicy/policy_define.c:3329,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:3333,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3335,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/checkpolicy/policy_define.c:3340,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3341,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3346,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3348,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:3351,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3352,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3353,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:3356,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3358,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3359,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3364,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3365,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3368,1
    - Dst: role_set_expand
      Src: /src/selinux/checkpolicy/policy_define.c:3371,1
    - Dst: type_set_expand
      Src: /src/selinux/checkpolicy/policy_define.c:3374,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/checkpolicy/policy_define.c:3377,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/checkpolicy/policy_define.c:3378,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/checkpolicy/policy_define.c:3379,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3385,1
    - Dst: role_val_to_name
      Src: /src/selinux/checkpolicy/policy_define.c:3389,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:3398,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3400,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:3413,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3415,1
    - Dst: append_role_trans
      Src: /src/selinux/checkpolicy/policy_define.c:3423,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3425,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3426,1
    - Dst: role_set_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3431,1
    - Dst: type_set_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3432,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3433,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3434,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3435,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 125
    argCount: 1
    argNames:
    - class_specified
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3437
      start: 3285
    functionDepth: 4
    functionLinenumber: 3285
    functionLinenumberEnd: 3437
    functionName: define_role_trans
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - ebitmap_destroy
    - ebitmap_for_each_positive_bit
    - role_set_destroy
    - role_set_init
    - role_set_expand
    - type_set_expand
    - queue_remove
    - yyerror
    - set_types
    - role_val_to_name
    - free
    - ebitmap_init
    - type_set_destroy
    - hashtab_search
    - yyerror2
    - is_id_in_scope
    - calloc
    - type_set_init
    - ebitmap_set_bit
    - append_role_trans
    - set_roles
    - read_classes
    linkageType: ''
    returnType: int
    signature: int define_role_trans(int class_specified)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3445,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3446,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3447,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3448,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/policy_define.c:3452,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3454,1
    - Dst: role_allow_rule_init
      Src: /src/selinux/checkpolicy/policy_define.c:3457,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3459,1
    - Dst: set_roles
      Src: /src/selinux/checkpolicy/policy_define.c:3460,1
    - Dst: role_allow_rule_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3461,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3462,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3467,1
    - Dst: set_roles
      Src: /src/selinux/checkpolicy/policy_define.c:3468,1
    - Dst: role_allow_rule_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3469,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3470,1
    - Dst: append_role_allow
      Src: /src/selinux/checkpolicy/policy_define.c:3475,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3477
      start: 3439
    functionDepth: 3
    functionLinenumber: 3439
    functionLinenumberEnd: 3477
    functionName: define_role_allow
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - yyerror
    - malloc
    - append_role_allow
    - free
    - role_allow_rule_destroy
    - set_roles
    - role_allow_rule_init
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_role_allow(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3484
      start: 3479
    functionDepth: 0
    functionLinenumber: 3479
    functionLinenumberEnd: 3484
    functionName: define_cond_filename_trans
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - yyerror
    linkageType: ''
    returnType: avrule_t
    signature: avrule_t *define_cond_filename_trans(void)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3501,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3502,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3504,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3505,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3507,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3508,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3510,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3511,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3513,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3514,1
    - Dst: type_set_init
      Src: /src/selinux/checkpolicy/policy_define.c:3518,1
    - Dst: type_set_init
      Src: /src/selinux/checkpolicy/policy_define.c:3519,1
    - Dst: ebitmap_init
      Src: /src/selinux/checkpolicy/policy_define.c:3520,1
    - Dst: ebitmap_init
      Src: /src/selinux/checkpolicy/policy_define.c:3521,1
    - Dst: ebitmap_init
      Src: /src/selinux/checkpolicy/policy_define.c:3522,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3525,1
    - Dst: set_types
      Src: /src/selinux/checkpolicy/policy_define.c:3526,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3532,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:3533,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3534,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3536,1
    - Dst: set_types
      Src: /src/selinux/checkpolicy/policy_define.c:3542,1
    - Dst: read_classes
      Src: /src/selinux/checkpolicy/policy_define.c:3546,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3549,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3551,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:3554,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3555,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3556,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:3559,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3561,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3562,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3565,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3568,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3570,1
    - Dst: type_set_expand
      Src: /src/selinux/checkpolicy/policy_define.c:3577,1
    - Dst: type_set_expand
      Src: /src/selinux/checkpolicy/policy_define.c:3580,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/checkpolicy/policy_define.c:3583,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/checkpolicy/policy_define.c:3584,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/checkpolicy/policy_define.c:3585,1
    - Dst: policydb_filetrans_insert
      Src: /src/selinux/checkpolicy/policy_define.c:3586,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3592,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3603,1
    - Dst: policydb_filetrans_insert
      Src: /src/selinux/checkpolicy/policy_define.c:3608,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3614,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3625,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/policy_define.c:3632,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3634,1
    - Dst: filename_trans_rule_init
      Src: /src/selinux/checkpolicy/policy_define.c:3637,1
    - Dst: append_filename_trans
      Src: /src/selinux/checkpolicy/policy_define.c:3638,1
    - Dst: strdup
      Src: /src/selinux/checkpolicy/policy_define.c:3640,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3642,1
    - Dst: type_set_cpy
      Src: /src/selinux/checkpolicy/policy_define.c:3645,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3646,1
    - Dst: type_set_cpy
      Src: /src/selinux/checkpolicy/policy_define.c:3649,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3650,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3658,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3659,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3660,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3661,1
    - Dst: type_set_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3662,1
    - Dst: type_set_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3663,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3668,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3669,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3670,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3671,1
    - Dst: type_set_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3672,1
    - Dst: type_set_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3673,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 151
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3675
      start: 3486
    functionDepth: 4
    functionLinenumber: 3486
    functionLinenumberEnd: 3675
    functionName: define_filename_trans
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - append_filename_trans
    - ebitmap_destroy
    - ebitmap_for_each_positive_bit
    - strcmp
    - type_set_cpy
    - type_set_expand
    - queue_remove
    - yyerror
    - set_types
    - malloc
    - policydb_filetrans_insert
    - free
    - ebitmap_init
    - type_set_destroy
    - hashtab_search
    - yyerror2
    - is_id_in_scope
    - filename_trans_rule_init
    - type_set_init
    - strdup
    - read_classes
    linkageType: ''
    returnType: int
    signature: int define_filename_trans(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/selinux/checkpolicy/policy_define.c:3682,1
    - Dst: constraint_expr_init
      Src: /src/selinux/checkpolicy/policy_define.c:3685,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3686,1
    - Dst: type_set_cpy
      Src: /src/selinux/checkpolicy/policy_define.c:3699,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/checkpolicy/policy_define.c:3703,1
    - Dst: constraint_expr_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3711,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - expr
    argTypes:
    - constraint_expr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3713
      start: 3677
    functionDepth: 3
    functionLinenumber: 3677
    functionLinenumberEnd: 3713
    functionName: constraint_expr_clone
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - constraint_expr_init
    - malloc
    - type_set_cpy
    - free
    - ebitmap_cpy
    - constraint_expr_destroy
    linkageType: ''
    returnType: constraint_expr_t
    signature: constraint_expr_t *constraint_expr_clone(const constraint_expr_t *expr)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3729,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3730,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3731,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3732,1
    - Dst: ebitmap_init
      Src: /src/selinux/checkpolicy/policy_define.c:3736,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3743,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3750,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3758,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3762,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3768,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3773,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3777,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:3778,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3779,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3780,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:3783,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3786,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3787,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/checkpolicy/policy_define.c:3790,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3791,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3792,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:3795,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3797,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3798,1
    - Dst: constraint_expr_clone
      Src: /src/selinux/checkpolicy/policy_define.c:3805,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3808,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3809,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3817,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3820,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/checkpolicy/policy_define.c:3821,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:3825,1
    - Dst: PERMISSION_MASK
      Src: /src/selinux/checkpolicy/policy_define.c:3826,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:3831,1
    - Dst: PERMISSION_MASK
      Src: /src/selinux/checkpolicy/policy_define.c:3834,1
    - Dst: yywarn
      Src: /src/selinux/checkpolicy/policy_define.c:3837,1
    - Dst: constraint_expr_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3839,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3840,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:3845,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:3850,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3857,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3862,1
    - Dst: UINT32_C
      Src: /src/selinux/checkpolicy/policy_define.c:3867,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3869,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3872,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3877,1
    - Dst: constraint_expr_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3879,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 139
    argCount: 1
    argNames:
    - expr
    argTypes:
    - constraint_expr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3882
      start: 3715
    functionDepth: 4
    functionLinenumber: 3715
    functionLinenumberEnd: 3882
    functionName: define_constraint
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - yywarn
    - ebitmap_init
    - constraint_expr_destroy
    - constraint_expr_clone
    - ebitmap_destroy
    - hashtab_search
    - ebitmap_for_each_positive_bit
    - PERMISSION_MASK
    - yyerror
    - yyerror2
    - is_id_in_scope
    - strcmp
    - UINT32_C
    - ebitmap_set_bit
    - free
    - calloc
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_constraint(constraint_expr_t *expr)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3895,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3896,1
    - Dst: ebitmap_init
      Src: /src/selinux/checkpolicy/policy_define.c:3900,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3907,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3914,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3922,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3928,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3933,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:3937,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:3938,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3939,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3940,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:3943,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:3946,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3947,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/checkpolicy/policy_define.c:3950,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3951,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3952,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:3956,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:3958,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3959,1
    - Dst: constraint_expr_clone
      Src: /src/selinux/checkpolicy/policy_define.c:3966,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:3973,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3976,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3981,1
    - Dst: constraint_expr_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:3983,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 92
    argCount: 1
    argNames:
    - expr
    argTypes:
    - constraint_expr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3986
      start: 3884
    functionDepth: 4
    functionLinenumber: 3884
    functionLinenumberEnd: 3986
    functionName: define_validatetrans
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - constraint_expr_destroy
    - ebitmap_init
    - constraint_expr_clone
    - ebitmap_destroy
    - hashtab_search
    - yyerror
    - yyerror2
    - is_id_in_scope
    - ebitmap_set_bit
    - free
    - calloc
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_validatetrans(constraint_expr_t *expr)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4000,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4001,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/policy_define.c:4006,1
    - Dst: constraint_expr_init
      Src: /src/selinux/checkpolicy/policy_define.c:4007,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4008,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4009,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4023,1
    - Dst: constraint_expr_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:4024,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4038,1
    - Dst: constraint_expr_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:4039,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4051,1
    - Dst: constraint_expr_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:4052,1
    - Dst: ebitmap_init
      Src: /src/selinux/checkpolicy/policy_define.c:4065,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4066,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:4068,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4069,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4071,1
    - Dst: constraint_expr_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:4072,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:4075,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4079,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4080,1
    - Dst: constraint_expr_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:4081,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:4086,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4087,1
    - Dst: constraint_expr_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:4089,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4090,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:4093,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4097,1
    - Dst: constraint_expr_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:4098,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4099,1
    - Dst: set_types
      Src: /src/selinux/checkpolicy/policy_define.c:4104,1
    - Dst: constraint_expr_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:4105,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4110,1
    - Dst: constraint_expr_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:4111,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4112,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/checkpolicy/policy_define.c:4115,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4116,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:4117,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4118,1
    - Dst: constraint_expr_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:4119,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4122,1
    - Dst: ebitmap_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:4124,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4130,1
    - Dst: constraint_expr_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:4131,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 127
    argCount: 3
    argNames:
    - expr_type
    - arg1
    - arg2
    argTypes:
    - uint32_t
    - uintptr_t
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4133
      start: 3988
    functionDepth: 3
    functionLinenumber: 3988
    functionLinenumberEnd: 4133
    functionName: define_cexpr
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - constraint_expr_init
    - constraint_expr_destroy
    - ebitmap_init
    - ebitmap_destroy
    - hashtab_search
    - yyerror
    - yyerror2
    - set_types
    - malloc
    - is_id_in_scope
    - ebitmap_set_bit
    - free
    - queue_remove
    linkageType: ''
    returnType: uintptr_t
    signature: uintptr_t define_cexpr(uint32_t expr_type, uintptr_t arg1, uintptr_t
      arg2)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4144,1
    - Dst: cond_expr_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:4150,1
    - Dst: define_cond_expr
      Src: /src/selinux/checkpolicy/policy_define.c:4156,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4158,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4171,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4181,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4188,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4203,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4208,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4212,1
    - Dst: memset
      Src: /src/selinux/checkpolicy/policy_define.c:4217,1
    - Dst: cond_normalize_expr
      Src: /src/selinux/checkpolicy/policy_define.c:4223,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4224,1
    - Dst: get_current_cond_list
      Src: /src/selinux/checkpolicy/policy_define.c:4229,1
    - Dst: append_cond_list
      Src: /src/selinux/checkpolicy/policy_define.c:4234,1
    - Dst: cond_node_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:4242,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 83
    argCount: 3
    argNames:
    - expr
    - t_list
    - f_list
    argTypes:
    - cond_expr_t*
    - avrule_t*
    - avrule_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4245
      start: 4135
    functionDepth: 5
    functionLinenumber: 4135
    functionLinenumberEnd: 4245
    functionName: define_conditional
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - define_cond_expr
    - cond_node_destroy
    - yyerror
    - cond_normalize_expr
    - get_current_cond_list
    - append_cond_list
    - memset
    - cond_expr_destroy
    linkageType: ''
    returnType: int
    signature: int define_conditional(cond_expr_t *expr, avrule_t *t_list, avrule_t
      *f_list)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4256,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4257,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:4264,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4266,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4281,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4282,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4299,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4300,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4312,1
    - Dst: cond_expr_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:4313,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4314,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4320,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4322,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4323,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4324,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:4327,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4328,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4329,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4330,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:4333,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4336,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4338,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4339,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4343,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4346,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4347,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 90
    argCount: 3
    argNames:
    - expr_type
    - arg1
    - arg2
    argTypes:
    - uint32_t
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4350
      start: 4247
    functionDepth: 1
    functionLinenumber: 4247
    functionLinenumberEnd: 4350
    functionName: define_cond_expr
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 1
    functionsReached:
    - hashtab_search
    - yyerror
    - yyerror2
    - is_id_in_scope
    - free
    - calloc
    - cond_expr_destroy
    - queue_remove
    linkageType: ''
    returnType: cond_expr_t
    signature: cond_expr_t *define_cond_expr(uint32_t expr_type, void *arg1, void
      *arg2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:4356,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4357,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4358,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:4362,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4363,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4364,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:4368,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4369,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4370,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:4373,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4375,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4376,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4380,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/checkpolicy/policy_define.c:4381,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4385,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 2
    argNames:
    - set
    - id
    argTypes:
    - role_set_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4387
      start: 4352
    functionDepth: 1
    functionLinenumber: 4352
    functionLinenumberEnd: 4387
    functionName: set_user_roles
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - yyerror
    - yyerror2
    - is_id_in_scope
    - strcmp
    - ebitmap_set_bit
    - free
    linkageType: ''
    returnType: int
    signature: int set_user_roles(role_set_t *set, char *id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: id_has_dot
      Src: /src/selinux/checkpolicy/policy_define.c:4394,1
    - Dst: strchr
      Src: /src/selinux/checkpolicy/policy_define.c:4396,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:4400,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4403,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:4407,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4410,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4416,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:4421,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4424,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/checkpolicy/policy_define.c:4431,1
    - Dst: policydb_index_others
      Src: /src/selinux/checkpolicy/policy_define.c:4433,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4434,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/checkpolicy/policy_define.c:4440,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4441,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 3
    argNames:
    - id
    - levdatum
    - cats
    argTypes:
    - char*
    - level_datum_t*
    - ebitmap_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4447
      start: 4389
    functionDepth: 2
    functionLinenumber: 4389
    functionLinenumberEnd: 4447
    functionName: parse_categories
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - strchr
    - hashtab_search
    - yyerror
    - yyerror2
    - policydb_index_others
    - ebitmap_set_bit
    - ebitmap_get_bit
    - id_has_dot
    linkageType: ''
    returnType: int
    signature: int parse_categories(char *id, level_datum_t *levdatum, ebitmap_t *cats)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc::malloc
      Src: /src/selinux/checkpolicy/policy_define.c:4455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - mls_semantic_cat_t**
    - mls_semantic_cat_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4469
      start: 4449
    functionDepth: 0
    functionLinenumber: 4449
    functionLinenumberEnd: 4469
    functionName: mls_semantic_cats_merge
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - malloc::malloc
    linkageType: ''
    returnType: int
    signature: "int mls_semantic_cats_merge(mls_semantic_cat_t **dst,\n\t\t\t\t   const
      mls_semantic_cat_t *src)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mls_semantic_level_cpy
      Src: /src/selinux/checkpolicy/policy_define.c:4475,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4476,1
    - Dst: mls_semantic_cats_merge
      Src: /src/selinux/checkpolicy/policy_define.c:4485,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4486,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - mls_semantic_level_t*
    - mls_semantic_level_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4492
      start: 4471
    functionDepth: 3
    functionLinenumber: 4471
    functionLinenumberEnd: 4492
    functionName: mls_add_or_check_level
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - yyerror
    - mls_semantic_level_cpy
    - mls_semantic_cats_merge
    linkageType: ''
    returnType: int
    signature: "int mls_add_or_check_level(mls_semantic_level_t *dst,\n\t\t\t\t  const
      mls_semantic_level_t *src)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: id_has_dot
      Src: /src/selinux/checkpolicy/policy_define.c:4503,1
    - Dst: strchr
      Src: /src/selinux/checkpolicy/policy_define.c:4505,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:4509,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4512,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:4517,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4520,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:4525,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4528,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/policy_define.c:4534,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4536,1
    - Dst: mls_semantic_cat_init
      Src: /src/selinux/checkpolicy/policy_define.c:4540,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 3
    argNames:
    - id
    - levdatum
    - cats
    argTypes:
    - char*
    - level_datum_t*
    - mls_semantic_cat_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4548
      start: 4494
    functionDepth: 1
    functionLinenumber: 4494
    functionLinenumberEnd: 4548
    functionName: parse_semantic_categories
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - strchr
    - hashtab_search
    - yyerror
    - yyerror2
    - malloc
    - mls_semantic_cat_init
    - id_has_dot
    linkageType: ''
    returnType: int
    signature: "int parse_semantic_categories(char *id,\n\t\t\t\t     level_datum_t
      *levdatum\n\t\t\t\t     __attribute__((unused)),\n\t\t\t\t     mls_semantic_cat_t
      **cats)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4559,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4560,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4562,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4563,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4564,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4565,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4567,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4568,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4570,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4573,1
    - Dst: queue_head
      Src: /src/selinux/checkpolicy/policy_define.c:4579,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4581,1
    - Dst: strdup
      Src: /src/selinux/checkpolicy/policy_define.c:4585,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4587,1
    - Dst: declare_user
      Src: /src/selinux/checkpolicy/policy_define.c:4591,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4592,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:4597,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4598,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4600,1
    - Dst: set_user_roles
      Src: /src/selinux/checkpolicy/policy_define.c:4601,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4606,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4608,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:4612,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4615,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4618,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4621,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4625,1
    - Dst: parse_semantic_categories
      Src: /src/selinux/checkpolicy/policy_define.c:4627,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4629,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4632,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4635,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:4638,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4641,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4644,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4647,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4651,1
    - Dst: parse_semantic_categories
      Src: /src/selinux/checkpolicy/policy_define.c:4653,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4656,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4659,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4662,1
    - Dst: mls_semantic_level_cpy
      Src: /src/selinux/checkpolicy/policy_define.c:4668,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4670,1
    - Dst: mls_add_or_check_level
      Src: /src/selinux/checkpolicy/policy_define.c:4676,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4678,1
    - Dst: mls_add_or_check_level
      Src: /src/selinux/checkpolicy/policy_define.c:4681,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4683,1
    - Dst: mls_add_or_check_level
      Src: /src/selinux/checkpolicy/policy_define.c:4686,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4688,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 105
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4694
      start: 4550
    functionDepth: 4
    functionLinenumber: 4550
    functionLinenumberEnd: 4694
    functionName: define_user
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - declare_user
    - hashtab_search
    - mls_add_or_check_level
    - yyerror
    - queue_head
    - set_user_roles
    - yyerror2
    - mls_semantic_level_cpy
    - free
    - parse_semantic_categories
    - queue_remove
    - strdup
    linkageType: ''
    returnType: int
    signature: int define_user(void)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4706,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4707,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4708,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4709,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4710,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4711,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4713,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4714,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4716,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4717,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4719,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4722,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4730,1
    - Dst: context_init
      Src: /src/selinux/checkpolicy/policy_define.c:4734,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4737,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4739,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:4742,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4743,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4744,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:4747,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4750,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4751,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4757,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4760,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4762,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:4765,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4766,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4767,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:4770,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4773,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4774,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4780,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4783,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4785,1
    - Dst: is_id_in_scope
      Src: /src/selinux/checkpolicy/policy_define.c:4788,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4789,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4790,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:4793,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4796,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4797,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4803,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4807,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4809,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:4815,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4818,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4819,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4822,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4826,1
    - Dst: parse_categories
      Src: /src/selinux/checkpolicy/policy_define.c:4827,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4829,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4832,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4836,1
    - Dst: ebitmap_cpy
      Src: /src/selinux/checkpolicy/policy_define.c:4843,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4845,1
    - Dst: policydb_context_isvalid
      Src: /src/selinux/checkpolicy/policy_define.c:4851,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4852,1
    - Dst: context_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:4858,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 130
    argCount: 1
    argNames:
    - c
    argTypes:
    - context_struct_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4861
      start: 4696
    functionDepth: 5
    functionLinenumber: 4696
    functionLinenumberEnd: 4861
    functionName: parse_security_context
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - context_init
    - policydb_context_isvalid
    - parse_categories
    - hashtab_search
    - context_destroy
    - yyerror
    - yyerror2
    - is_id_in_scope
    - free
    - ebitmap_cpy
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int parse_security_context(context_struct_t *c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4869,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4870,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:4871,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:4875,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4877,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:4882,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4887,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4888,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4892,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4893,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4897,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:4899,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4903
      start: 4863
    functionDepth: 6
    functionLinenumber: 4863
    functionLinenumberEnd: 4903
    functionName: define_initial_sid_context
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - parse_security_context
    - yyerror
    - yyerror2
    - strcmp
    - free
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_initial_sid_context(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4910,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:4915,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:4919,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4921,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:4927,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4928,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4938,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4951,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 1
    argNames:
    - pirq
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4953
      start: 4905
    functionDepth: 6
    functionLinenumber: 4905
    functionLinenumberEnd: 4953
    functionName: define_pirq_context
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - parse_security_context
    - yyerror
    - yyerror2
    - free
    - calloc
    linkageType: ''
    returnType: int
    signature: int define_pirq_context(unsigned int pirq)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4960,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:4965,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:4969,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:4971,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4979,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4982,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:4986,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:4987,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:4998,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5014,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 2
    argNames:
    - low
    - high
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5016
      start: 4955
    functionDepth: 6
    functionLinenumber: 4955
    functionLinenumberEnd: 5016
    functionName: define_iomem_context
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - parse_security_context
    - yyerror
    - yyerror2
    - free
    - calloc
    linkageType: ''
    returnType: int
    signature: int define_iomem_context(uint64_t low, uint64_t high)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5023,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5028,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:5032,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5034,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5042,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5044,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5048,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5049,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5060,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5075,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 2
    argNames:
    - low
    - high
    argTypes:
    - unsigned long
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5077
      start: 5018
    functionDepth: 6
    functionLinenumber: 5018
    functionLinenumberEnd: 5077
    functionName: define_ioport_context
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - parse_security_context
    - yyerror
    - yyerror2
    - free
    - calloc
    linkageType: ''
    returnType: int
    signature: int define_ioport_context(unsigned long low, unsigned long high)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5084,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5089,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:5093,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5095,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5101,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5102,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5112,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5126,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 1
    argNames:
    - device
    argTypes:
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5128
      start: 5079
    functionDepth: 6
    functionLinenumber: 5079
    functionLinenumberEnd: 5128
    functionName: define_pcidevice_context
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - parse_security_context
    - yyerror
    - yyerror2
    - free
    - calloc
    linkageType: ''
    returnType: int
    signature: int define_pcidevice_context(unsigned long device)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5135,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5140,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:5140,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5141,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:5145,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5147,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:5151,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5153,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5157,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5158,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5159,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:5165,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5166,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5180,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5181,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5183
      start: 5130
    functionDepth: 6
    functionLinenumber: 5130
    functionLinenumberEnd: 5183
    functionName: define_devicetree_context
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - parse_security_context
    - yyerror
    - yyerror2
    - strcmp
    - free
    - calloc
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_devicetree_context(void)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5192,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:5197,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5198,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5199,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:5203,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5205,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:5209,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5211,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:5214,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:5214,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:5216,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:5216,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:5218,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:5218,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:5220,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:5220,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5223,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5232,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5236,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5251,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5256,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5268,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5272,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5273,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 77
    argCount: 2
    argNames:
    - low
    - high
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5275
      start: 5185
    functionDepth: 6
    functionLinenumber: 5185
    functionLinenumberEnd: 5275
    functionName: define_port_context
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - parse_security_context
    - yyerror
    - yyerror2
    - strcmp
    - free
    - calloc
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_port_context(unsigned int low, unsigned int high)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5285,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:5290,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5291,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5292,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:5296,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5298,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:5302,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5304,1
    - Dst: inet_pton
      Src: /src/selinux/checkpolicy/policy_define.c:5309,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5310,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5312,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5319,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5325,1
    - Dst: memcpy
      Src: /src/selinux/checkpolicy/policy_define.c:5330,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5337,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5342,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5356,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5363,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5379,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 82
    argCount: 2
    argNames:
    - low
    - high
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5381
      start: 5277
    functionDepth: 6
    functionLinenumber: 5277
    functionLinenumberEnd: 5381
    functionName: define_ibpkey_context
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - parse_security_context
    - inet_pton
    - yyerror
    - yyerror2
    - free
    - calloc
    - memcpy
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_ibpkey_context(unsigned int low, unsigned int high)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5390,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:5395,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5396,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5397,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5402,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:5408,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5410,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:5414,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5416,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/policy_define.c:5421,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5422,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5430,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5431,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:5442,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5444,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5459,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5460,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 1
    argNames:
    - port
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5462
      start: 5383
    functionDepth: 6
    functionLinenumber: 5383
    functionLinenumberEnd: 5462
    functionName: define_ibendport_context
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - strlen
    - parse_security_context
    - yyerror
    - yyerror2
    - strcmp
    - free
    - calloc
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_ibendport_context(unsigned int port)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5469,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5474,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:5474,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5475,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5476,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:5480,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5482,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:5486,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5488,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5491,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5492,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5493,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5496,1
    - Dst: context_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:5497,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5498,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5499,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:5505,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5506,1
    - Dst: context_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:5508,1
    - Dst: context_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:5509,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5510,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5511,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5519
      start: 5464
    functionDepth: 6
    functionLinenumber: 5464
    functionLinenumberEnd: 5519
    functionName: define_netif_context
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - context_destroy
    - parse_security_context
    - yyerror
    - yyerror2
    - strcmp
    - free
    - calloc
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_netif_context(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5533,1
    - Dst: inet_ntop
      Src: /src/selinux/checkpolicy/policy_define.c:5535,1
    - Dst: inet_ntop
      Src: /src/selinux/checkpolicy/policy_define.c:5537,1
    - Dst: context_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:5539,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5540,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - newc
    argTypes:
    - ocontext_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5556
      start: 5521
    functionDepth: 5
    functionLinenumber: 5521
    functionLinenumberEnd: 5556
    functionName: insert_ipv4_node
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - inet_ntop
    - yyerror2
    - free
    - context_destroy
    linkageType: ''
    returnType: int
    signature: int insert_ipv4_node(ocontext_t *newc)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5566,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5571,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:5571,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5572,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:5572,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5573,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:5577,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5579,1
    - Dst: inet_pton
      Src: /src/selinux/checkpolicy/policy_define.c:5583,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5585,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5586,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5589,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:5591,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5593,1
    - Dst: inet_pton
      Src: /src/selinux/checkpolicy/policy_define.c:5597,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5599,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5600,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5604,1
    - Dst: be32toh
      Src: /src/selinux/checkpolicy/policy_define.c:5607,1
    - Dst: be32toh
      Src: /src/selinux/checkpolicy/policy_define.c:5607,1
    - Dst: yywarn
      Src: /src/selinux/checkpolicy/policy_define.c:5608,1
    - Dst: yywarn
      Src: /src/selinux/checkpolicy/policy_define.c:5612,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:5615,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5617,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5624,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5625,1
    - Dst: insert_ipv4_node
      Src: /src/selinux/checkpolicy/policy_define.c:5629,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5630
      start: 5558
    functionDepth: 6
    functionLinenumber: 5558
    functionLinenumberEnd: 5630
    functionName: define_ipv4_node_context
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - yywarn
    - parse_security_context
    - inet_pton
    - yyerror
    - yyerror2
    - free
    - calloc
    - be32toh
    - insert_ipv4_node
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_ipv4_node_context(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5642,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5647,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:5647,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5648,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:5652,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5654,1
    - Dst: strchr
      Src: /src/selinux/checkpolicy/policy_define.c:5658,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5660,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5661,1
    - Dst: inet_pton
      Src: /src/selinux/checkpolicy/policy_define.c:5666,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5668,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5669,1
    - Dst: strtoul
      Src: /src/selinux/checkpolicy/policy_define.c:5674,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5676,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5677,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5681,1
    - Dst: yywarn
      Src: /src/selinux/checkpolicy/policy_define.c:5684,1
    - Dst: UINT32_C
      Src: /src/selinux/checkpolicy/policy_define.c:5687,1
    - Dst: htobe32
      Src: /src/selinux/checkpolicy/policy_define.c:5688,1
    - Dst: yywarn
      Src: /src/selinux/checkpolicy/policy_define.c:5692,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:5694,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5696,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5703,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5704,1
    - Dst: insert_ipv4_node
      Src: /src/selinux/checkpolicy/policy_define.c:5708,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5709
      start: 5632
    functionDepth: 6
    functionLinenumber: 5632
    functionLinenumberEnd: 5709
    functionName: define_ipv4_cidr_node_context
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - yywarn
    - htobe32
    - strchr
    - parse_security_context
    - inet_pton
    - yyerror
    - yyerror2
    - strtoul
    - UINT32_C
    - free
    - calloc
    - insert_ipv4_node
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_ipv4_cidr_node_context(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - mask
    argTypes:
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5731
      start: 5711
    functionDepth: 0
    functionLinenumber: 5711
    functionLinenumberEnd: 5731
    functionName: ipv6_is_mask_contiguous
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ipv6_is_mask_contiguous(const struct in6_addr *mask)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - addr
    - mask
    argTypes:
    - struct in6_addr*
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5745
      start: 5733
    functionDepth: 0
    functionLinenumber: 5733
    functionLinenumberEnd: 5745
    functionName: ipv6_has_host_bits_set
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: "int ipv6_has_host_bits_set(const struct in6_addr *addr,\n\t\t\t\t
      \ const struct in6_addr *mask)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: UINT32_C
      Src: /src/selinux/checkpolicy/policy_define.c:5756,1
    - Dst: htobe32
      Src: /src/selinux/checkpolicy/policy_define.c:5758,1
    - Dst: UINT32_C
      Src: /src/selinux/checkpolicy/policy_define.c:5759,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - cidr_bits
    - mask
    argTypes:
    - unsigned long
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5767
      start: 5747
    functionDepth: 0
    functionLinenumber: 5747
    functionLinenumberEnd: 5767
    functionName: ipv6_cidr_bits_to_mask
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - htobe32
    - UINT32_C
    linkageType: ''
    returnType: void
    signature: "void ipv6_cidr_bits_to_mask(unsigned long cidr_bits,\n\t\t\t\t   struct
      in6_addr *mask)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - addr
    - mask
    argTypes:
    - struct in6_addr*
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5776
      start: 5769
    functionDepth: 0
    functionLinenumber: 5769
    functionLinenumberEnd: 5776
    functionName: ipv6_apply_mask
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ipv6_apply_mask(struct in6_addr *restrict addr,\n\t\t\t    const
      struct in6_addr *restrict mask)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/selinux/checkpolicy/policy_define.c:5788,1
    - Dst: memcmp
      Src: /src/selinux/checkpolicy/policy_define.c:5789,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5790,1
    - Dst: inet_ntop
      Src: /src/selinux/checkpolicy/policy_define.c:5792,1
    - Dst: inet_ntop
      Src: /src/selinux/checkpolicy/policy_define.c:5794,1
    - Dst: context_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:5796,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5797,1
    - Dst: memcmp
      Src: /src/selinux/checkpolicy/policy_define.c:5801,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - newc
    argTypes:
    - ocontext_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5813
      start: 5778
    functionDepth: 5
    functionLinenumber: 5778
    functionLinenumberEnd: 5813
    functionName: insert_ipv6_node
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - context_destroy
    - inet_ntop
    - yyerror2
    - free
    - memcmp
    linkageType: ''
    returnType: int
    signature: int insert_ipv6_node(ocontext_t *newc)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5823,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5828,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:5828,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5829,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:5829,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5830,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:5834,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5836,1
    - Dst: inet_pton
      Src: /src/selinux/checkpolicy/policy_define.c:5840,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5842,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5843,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5847,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:5849,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5851,1
    - Dst: inet_pton
      Src: /src/selinux/checkpolicy/policy_define.c:5855,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5857,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5858,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5862,1
    - Dst: ipv6_is_mask_contiguous
      Src: /src/selinux/checkpolicy/policy_define.c:5864,1
    - Dst: yywarn
      Src: /src/selinux/checkpolicy/policy_define.c:5865,1
    - Dst: ipv6_has_host_bits_set
      Src: /src/selinux/checkpolicy/policy_define.c:5868,1
    - Dst: yywarn
      Src: /src/selinux/checkpolicy/policy_define.c:5869,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:5872,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5874,1
    - Dst: memcpy
      Src: /src/selinux/checkpolicy/policy_define.c:5878,1
    - Dst: memcpy
      Src: /src/selinux/checkpolicy/policy_define.c:5879,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5881,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5882,1
    - Dst: insert_ipv6_node
      Src: /src/selinux/checkpolicy/policy_define.c:5886,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5887
      start: 5815
    functionDepth: 6
    functionLinenumber: 5815
    functionLinenumberEnd: 5887
    functionName: define_ipv6_node_context
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - yywarn
    - parse_security_context
    - inet_pton
    - yyerror
    - yyerror2
    - free
    - calloc
    - memcpy
    - ipv6_is_mask_contiguous
    - insert_ipv6_node
    - queue_remove
    - ipv6_has_host_bits_set
    linkageType: ''
    returnType: int
    signature: int define_ipv6_node_context(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5898,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5903,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:5903,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5904,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:5908,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5910,1
    - Dst: strchr
      Src: /src/selinux/checkpolicy/policy_define.c:5914,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5916,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5917,1
    - Dst: inet_pton
      Src: /src/selinux/checkpolicy/policy_define.c:5922,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5924,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5925,1
    - Dst: strtoul
      Src: /src/selinux/checkpolicy/policy_define.c:5930,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:5932,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5933,1
    - Dst: yywarn
      Src: /src/selinux/checkpolicy/policy_define.c:5938,1
    - Dst: ipv6_cidr_bits_to_mask
      Src: /src/selinux/checkpolicy/policy_define.c:5941,1
    - Dst: ipv6_has_host_bits_set
      Src: /src/selinux/checkpolicy/policy_define.c:5943,1
    - Dst: yywarn
      Src: /src/selinux/checkpolicy/policy_define.c:5944,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5947,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:5949,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5951,1
    - Dst: ipv6_apply_mask
      Src: /src/selinux/checkpolicy/policy_define.c:5955,1
    - Dst: memcpy
      Src: /src/selinux/checkpolicy/policy_define.c:5956,1
    - Dst: memcpy
      Src: /src/selinux/checkpolicy/policy_define.c:5957,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5959,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5960,1
    - Dst: insert_ipv6_node
      Src: /src/selinux/checkpolicy/policy_define.c:5964,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5965
      start: 5889
    functionDepth: 6
    functionLinenumber: 5889
    functionLinenumberEnd: 5965
    functionName: define_ipv6_cidr_node_context
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - yywarn
    - strchr
    - parse_security_context
    - inet_pton
    - yyerror
    - yyerror2
    - strtoul
    - ipv6_cidr_bits_to_mask
    - free
    - calloc
    - ipv6_apply_mask
    - memcpy
    - insert_ipv6_node
    - queue_remove
    - ipv6_has_host_bits_set
    linkageType: ''
    returnType: int
    signature: int define_ipv6_cidr_node_context(void)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5972,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5977,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:5977,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5978,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:5982,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:5984,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:5988,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5990,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:5994,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5995,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:5996,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:6003,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:6004,1
    - Dst: context_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:6007,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:6008,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:6009,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 1
    argNames:
    - behavior
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6017
      start: 5967
    functionDepth: 6
    functionLinenumber: 5967
    functionLinenumberEnd: 6017
    functionName: define_fs_use
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - context_destroy
    - parse_security_context
    - yyerror
    - yyerror2
    - strcmp
    - free
    - calloc
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_fs_use(int behavior)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_get_bit
      Src: /src/selinux/checkpolicy/policy_define.c:6027,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:6031,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:6036,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:6037,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:6037,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:6039,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:6039,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:6040,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:6046,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:6050,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:6051,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:6053,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:6066,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/policy_define.c:6070,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:6072,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:6076,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/policy_define.c:6081,1
    - Dst: realloc
      Src: /src/selinux/checkpolicy/policy_define.c:6082,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:6084,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:6093,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:6097,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:6123,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:6127,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:6129,1
    - Dst: parse_security_context
      Src: /src/selinux/checkpolicy/policy_define.c:6136,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/policy_define.c:6142,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:6145,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/policy_define.c:6149,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/policy_define.c:6150,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:6160,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:6163,1
    - Dst: context_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:6164,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:6165,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:6166,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:6167,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 126
    argCount: 2
    argNames:
    - fstype
    - has_type
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6169
      start: 6019
    functionDepth: 6
    functionLinenumber: 6019
    functionLinenumberEnd: 6169
    functionName: define_genfs_context_helper
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - strlen
    - context_destroy
    - parse_security_context
    - hashtab_search
    - yyerror
    - yyerror2
    - strcmp
    - realloc
    - free
    - ebitmap_get_bit
    - calloc
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_genfs_context_helper(char *fstype, int has_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: define_genfs_context_helper
      Src: /src/selinux/checkpolicy/policy_define.c:6173,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:6173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - has_type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6174
      start: 6171
    functionDepth: 7
    functionLinenumber: 6171
    functionLinenumberEnd: 6174
    functionName: define_genfs_context
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - define_genfs_context_helper
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_genfs_context(int has_type)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:6185,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:6190,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:6191,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:6192,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:6193,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:6195,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:6196,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:6197,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:6198,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:6200,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:6201,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:6203,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:6206,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/policy_define.c:6211,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:6213,1
    - Dst: range_trans_rule_init
      Src: /src/selinux/checkpolicy/policy_define.c:6216,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:6218,1
    - Dst: set_types
      Src: /src/selinux/checkpolicy/policy_define.c:6219,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:6223,1
    - Dst: set_types
      Src: /src/selinux/checkpolicy/policy_define.c:6224,1
    - Dst: read_classes
      Src: /src/selinux/checkpolicy/policy_define.c:6229,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:6233,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:6235,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/checkpolicy/policy_define.c:6240,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:6242,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:6247,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:6249,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/policy_define.c:6253,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/policy_define.c:6255,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:6258,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:6261,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:6265,1
    - Dst: parse_semantic_categories
      Src: /src/selinux/checkpolicy/policy_define.c:6266,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:6268,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:6271,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/policy_define.c:6274,1
    - Dst: mls_semantic_level_cpy
      Src: /src/selinux/checkpolicy/policy_define.c:6279,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/policy_define.c:6281,1
    - Dst: append_range_trans
      Src: /src/selinux/checkpolicy/policy_define.c:6286,1
    - Dst: range_trans_rule_destroy
      Src: /src/selinux/checkpolicy/policy_define.c:6290,1
    - Dst: free
      Src: /src/selinux/checkpolicy/policy_define.c:6291,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 102
    argCount: 1
    argNames:
    - class_specified
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6293
      start: 6176
    functionDepth: 3
    functionLinenumber: 6176
    functionLinenumberEnd: 6293
    functionName: define_range_trans
    functionSourceFile: /src/selinux/checkpolicy/policy_define.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - yyerror
    - set_types
    - yyerror2
    - malloc
    - mls_semantic_level_cpy
    - ebitmap_set_bit
    - range_trans_rule_init
    - free
    - parse_semantic_categories
    - append_range_trans
    - range_trans_rule_destroy
    - queue_remove
    - read_classes
    linkageType: ''
    returnType: int
    signature: int define_range_trans(int class_specified)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:58,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/module_compiler.c:61,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/module_compiler.c:65,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/module_compiler.c:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ret
    - symbol_type
    argTypes:
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: print_error_msg
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - yyerror
    - yyerror2
    linkageType: ''
    returnType: void
    signature: void print_error_msg(int ret, uint32_t symbol_type)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:78,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/module_compiler.c:83,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:84,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/module_compiler.c:86,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:88,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:91,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/module_compiler.c:93,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:95,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:101,1
    - Dst: pop_stack
      Src: /src/selinux/checkpolicy/module_compiler.c:111,1
    - Dst: push_stack
      Src: /src/selinux/checkpolicy/module_compiler.c:113,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - pass
    - module_header_given
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 119
    functionName: define_policy
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - yyerror
    - free
    - pop_stack
    - push_stack
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int define_policy(int pass, int module_header_given)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 132
    functionName: is_creation_allowed
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_creation_allowed(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_creation_allowed
      Src: /src/selinux/checkpolicy/module_compiler.c:149,1
    - Dst: symtab_insert
      Src: /src/selinux/checkpolicy/module_compiler.c:153,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/module_compiler.c:157,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/module_compiler.c:159,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - symbol_type
    - key
    - datum
    - dest_value
    - scope
    argTypes:
    - uint32_t
    - hashtab_key_t
    - hashtab_datum_t
    - uint32_t*
    - uint32_t
    assertStmts:
    - condition: (s != NULL)
      pos:
        line_end: 158
        line_start: 158
        source_file: /src/selinux/checkpolicy/module_compiler.c
    constantsTouched: []
    func_position:
      end: 173
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 173
    functionName: create_symbol
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - assert
    - is_creation_allowed
    - hashtab_search
    - symtab_insert
    linkageType: ''
    returnType: int
    signature: "int create_symbol(uint32_t symbol_type, hashtab_key_t key,\n\t\t\t
      hashtab_datum_t datum, uint32_t *dest_value,\n\t\t\t uint32_t scope)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_symbol
      Src: /src/selinux/checkpolicy/module_compiler.c:190,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/checkpolicy/module_compiler.c:196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - symbol_type
    - key
    - datum
    - dest_value
    - datum_value
    argTypes:
    - uint32_t
    - hashtab_key_t
    - hashtab_datum_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 202
    functionName: declare_symbol
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 5
    functionsReached:
    - create_symbol
    - ebitmap_set_bit
    linkageType: ''
    returnType: int
    signature: "int declare_symbol(uint32_t symbol_type, hashtab_key_t key,\n\t\t
      \  hashtab_datum_t datum, uint32_t *dest_value,\n\t\t   const uint32_t *datum_value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/selinux/checkpolicy/module_compiler.c:210,1
    - Dst: strdup
      Src: /src/selinux/checkpolicy/module_compiler.c:214,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:216,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/module_compiler.c:221,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/module_compiler.c:223,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:226,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - roles_tab
    - role_id
    - role
    argTypes:
    - hashtab_t
    - char*
    - role_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 235
    functionName: role_implicit_bounds
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - yyerror
    - yyerror2
    - free
    - strrchr
    - strdup
    linkageType: ''
    returnType: int
    signature: "int role_implicit_bounds(hashtab_t roles_tab, char *role_id,\n\t\t\t\trole_datum_t
      *role)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/module_compiler.c:240,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:250,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/module_compiler.c:254,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:256,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:257,1
    - Dst: role_datum_init
      Src: /src/selinux/checkpolicy/module_compiler.c:261,1
    - Dst: declare_symbol
      Src: /src/selinux/checkpolicy/module_compiler.c:265,1
    - Dst: require_symbol
      Src: /src/selinux/checkpolicy/module_compiler.c:267,1
    - Dst: strdup
      Src: /src/selinux/checkpolicy/module_compiler.c:273,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:275,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/module_compiler.c:279,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/module_compiler.c:281,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:285,1
    - Dst: role_datum_destroy
      Src: /src/selinux/checkpolicy/module_compiler.c:286,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:287,1
    - Dst: print_error_msg
      Src: /src/selinux/checkpolicy/module_compiler.c:294,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:295,1
    - Dst: role_datum_destroy
      Src: /src/selinux/checkpolicy/module_compiler.c:296,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:297,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 50
    argCount: 4
    argNames:
    - scope
    - isattr
    - role
    - key
    argTypes:
    - uint32_t
    - unsigned char
    - role_datum_t**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 237
    functionDepth: 4
    functionLinenumber: 237
    functionLinenumberEnd: 301
    functionName: create_role
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - strdup
    - hashtab_search
    - require_symbol
    - yyerror
    - yyerror2
    - role_datum_destroy
    - malloc
    - declare_symbol
    - free
    - print_error_msg
    - queue_remove
    - role_datum_init
    linkageType: ''
    returnType: int
    signature: "int create_role(uint32_t scope, unsigned char isattr,\n\t\t       role_datum_t
      **role, char **key)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: create_role
      Src: /src/selinux/checkpolicy/module_compiler.c:311,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/module_compiler.c:317,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/module_compiler.c:326,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/module_compiler.c:329,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:331,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:332,1
    - Dst: role_datum_init
      Src: /src/selinux/checkpolicy/module_compiler.c:335,1
    - Dst: role_implicit_bounds
      Src: /src/selinux/checkpolicy/module_compiler.c:341,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:343,1
    - Dst: role_datum_destroy
      Src: /src/selinux/checkpolicy/module_compiler.c:344,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:345,1
    - Dst: hashtab_insert
      Src: /src/selinux/checkpolicy/module_compiler.c:348,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:350,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:351,1
    - Dst: role_datum_destroy
      Src: /src/selinux/checkpolicy/module_compiler.c:352,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:353,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:357,1
    - Dst: role_datum_destroy
      Src: /src/selinux/checkpolicy/module_compiler.c:359,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:360,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/checkpolicy/module_compiler.c:365,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:368,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 56
    argCount: 1
    argNames:
    - isattr
    argTypes:
    - unsigned char
    assertStmts:
    - condition: (stack_top->type == 1)
      pos:
        line_end: 316
        line_start: 316
        source_file: /src/selinux/checkpolicy/module_compiler.c
    constantsTouched: []
    func_position:
      end: 374
      start: 303
    functionDepth: 5
    functionLinenumber: 303
    functionLinenumberEnd: 374
    functionName: declare_role
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 2
    functionsReached:
    - hashtab_search
    - yyerror
    - role_datum_destroy
    - malloc
    - assert
    - hashtab_insert
    - ebitmap_set_bit
    - free
    - create_role
    - role_implicit_bounds
    - role_datum_init
    linkageType: ''
    returnType: role_datum_t
    signature: role_datum_t *declare_role(unsigned char isattr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/module_compiler.c:387,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:389,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/module_compiler.c:392,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:393,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:394,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/module_compiler.c:398,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:400,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:401,1
    - Dst: type_datum_init
      Src: /src/selinux/checkpolicy/module_compiler.c:404,1
    - Dst: declare_symbol
      Src: /src/selinux/checkpolicy/module_compiler.c:409,1
    - Dst: require_symbol
      Src: /src/selinux/checkpolicy/module_compiler.c:411,1
    - Dst: type_datum_destroy
      Src: /src/selinux/checkpolicy/module_compiler.c:418,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:419,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/module_compiler.c:420,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/module_compiler.c:422,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:426,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:429,1
    - Dst: print_error_msg
      Src: /src/selinux/checkpolicy/module_compiler.c:431,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:432,1
    - Dst: type_datum_destroy
      Src: /src/selinux/checkpolicy/module_compiler.c:433,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:434,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 49
    argCount: 3
    argNames:
    - scope
    - isattr
    - type
    argTypes:
    - uint32_t
    - unsigned char
    - type_datum_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 376
    functionDepth: 4
    functionLinenumber: 376
    functionLinenumberEnd: 438
    functionName: create_type
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - require_symbol
    - yyerror
    - yyerror2
    - malloc
    - strcmp
    - declare_symbol
    - free
    - type_datum_init
    - type_datum_destroy
    - print_error_msg
    - queue_remove
    linkageType: ''
    returnType: int
    signature: "int create_type(uint32_t scope, unsigned char isattr,\n\t\t       type_datum_t
      **type)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: create_type
      Src: /src/selinux/checkpolicy/module_compiler.c:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - primary
    - isattr
    argTypes:
    - unsigned char
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 440
    functionDepth: 5
    functionLinenumber: 440
    functionLinenumberEnd: 450
    functionName: declare_type
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 2
    functionsReached:
    - create_type
    linkageType: ''
    returnType: type_datum_t
    signature: type_datum_t *declare_type(unsigned char primary, unsigned char isattr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/selinux/checkpolicy/module_compiler.c:458,1
    - Dst: strdup
      Src: /src/selinux/checkpolicy/module_compiler.c:462,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:464,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/module_compiler.c:469,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/module_compiler.c:471,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:474,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:480,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - users_tab
    - user_id
    - user
    argTypes:
    - hashtab_t
    - char*
    - user_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 483
    functionName: user_implicit_bounds
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - hashtab_search
    - yyerror
    - yyerror2
    - free
    - strrchr
    - strdup
    linkageType: ''
    returnType: int
    signature: "int user_implicit_bounds(hashtab_t users_tab, char *user_id,\n\t\t\t\tuser_datum_t
      *user)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/module_compiler.c:487,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:496,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/module_compiler.c:500,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:502,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:503,1
    - Dst: user_datum_init
      Src: /src/selinux/checkpolicy/module_compiler.c:507,1
    - Dst: declare_symbol
      Src: /src/selinux/checkpolicy/module_compiler.c:510,1
    - Dst: require_symbol
      Src: /src/selinux/checkpolicy/module_compiler.c:512,1
    - Dst: strdup
      Src: /src/selinux/checkpolicy/module_compiler.c:518,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:520,1
    - Dst: print_error_msg
      Src: /src/selinux/checkpolicy/module_compiler.c:528,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:529,1
    - Dst: user_datum_destroy
      Src: /src/selinux/checkpolicy/module_compiler.c:530,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:531,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 3
    argNames:
    - scope
    - user
    - key
    argTypes:
    - uint32_t
    - user_datum_t**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 485
    functionDepth: 4
    functionLinenumber: 485
    functionLinenumberEnd: 535
    functionName: create_user
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - require_symbol
    - yyerror
    - malloc
    - declare_symbol
    - user_datum_destroy
    - free
    - user_datum_init
    - print_error_msg
    - queue_remove
    - strdup
    linkageType: ''
    returnType: int
    signature: int create_user(uint32_t scope, user_datum_t **user, char **key)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: create_user
      Src: /src/selinux/checkpolicy/module_compiler.c:545,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/module_compiler.c:551,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/module_compiler.c:560,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/module_compiler.c:563,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:565,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:566,1
    - Dst: user_datum_init
      Src: /src/selinux/checkpolicy/module_compiler.c:569,1
    - Dst: user_implicit_bounds
      Src: /src/selinux/checkpolicy/module_compiler.c:574,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:576,1
    - Dst: user_datum_destroy
      Src: /src/selinux/checkpolicy/module_compiler.c:577,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:578,1
    - Dst: hashtab_insert
      Src: /src/selinux/checkpolicy/module_compiler.c:581,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:583,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:584,1
    - Dst: user_datum_destroy
      Src: /src/selinux/checkpolicy/module_compiler.c:585,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:586,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:590,1
    - Dst: user_datum_destroy
      Src: /src/selinux/checkpolicy/module_compiler.c:592,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:593,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (stack_top->type == 1)
      pos:
        line_end: 550
        line_start: 550
        source_file: /src/selinux/checkpolicy/module_compiler.c
    constantsTouched: []
    func_position:
      end: 598
      start: 537
    functionDepth: 5
    functionLinenumber: 537
    functionLinenumberEnd: 598
    functionName: declare_user
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 1
    functionsReached:
    - create_user
    - hashtab_search
    - user_implicit_bounds
    - yyerror
    - malloc
    - assert
    - hashtab_insert
    - user_datum_destroy
    - free
    - user_datum_init
    linkageType: ''
    returnType: user_datum_t
    signature: user_datum_t *declare_user(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/checkpolicy/module_compiler.c:612,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/module_compiler.c:619,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/module_compiler.c:621,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:623,1
    - Dst: type_datum_init
      Src: /src/selinux/checkpolicy/module_compiler.c:626,1
    - Dst: hashtab_insert
      Src: /src/selinux/checkpolicy/module_compiler.c:630,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:631,1
    - Dst: type_datum_destroy
      Src: /src/selinux/checkpolicy/module_compiler.c:632,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:633,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:638,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - id
    - value
    - isattr
    argTypes:
    - char*
    - uint32_t
    - unsigned char
    assertStmts:
    - condition: (stack_top->type == 1)
      pos:
        line_end: 611
        line_start: 611
        source_file: /src/selinux/checkpolicy/module_compiler.c
    constantsTouched: []
    func_position:
      end: 644
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 644
    functionName: get_local_type
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 3
    functionsReached:
    - hashtab_search
    - malloc
    - assert
    - hashtab_insert
    - free
    - type_datum_init
    - type_datum_destroy
    linkageType: ''
    returnType: type_datum_t
    signature: type_datum_t *get_local_type(char *id, uint32_t value, unsigned char
      isattr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/checkpolicy/module_compiler.c:659,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/module_compiler.c:668,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/module_compiler.c:670,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:672,1
    - Dst: role_datum_init
      Src: /src/selinux/checkpolicy/module_compiler.c:676,1
    - Dst: hashtab_insert
      Src: /src/selinux/checkpolicy/module_compiler.c:680,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:681,1
    - Dst: role_datum_destroy
      Src: /src/selinux/checkpolicy/module_compiler.c:682,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:683,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:687,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 3
    argNames:
    - id
    - value
    - isattr
    argTypes:
    - char*
    - uint32_t
    - unsigned char
    assertStmts:
    - condition: (stack_top->type == 1)
      pos:
        line_end: 658
        line_start: 658
        source_file: /src/selinux/checkpolicy/module_compiler.c
    constantsTouched: []
    func_position:
      end: 693
      start: 654
    functionDepth: 3
    functionLinenumber: 654
    functionLinenumberEnd: 693
    functionName: get_local_role
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 3
    functionsReached:
    - hashtab_search
    - role_datum_destroy
    - malloc
    - assert
    - hashtab_insert
    - free
    - role_datum_init
    linkageType: ''
    returnType: role_datum_t
    signature: role_datum_t *get_local_role(char *id, uint32_t value, unsigned char
      isattr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: create_symbol
      Src: /src/selinux/checkpolicy/module_compiler.c:708,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/checkpolicy/module_compiler.c:714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - symbol_type
    - key
    - datum
    - dest_value
    - datum_value
    argTypes:
    - uint32_t
    - hashtab_key_t
    - hashtab_datum_t
    - uint32_t*
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 703
    functionDepth: 3
    functionLinenumber: 703
    functionLinenumberEnd: 721
    functionName: require_symbol
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 3
    functionsReached:
    - create_symbol
    - ebitmap_set_bit
    linkageType: ''
    returnType: int
    signature: "int require_symbol(uint32_t symbol_type, hashtab_key_t key,\n\t\t
      \  hashtab_datum_t datum, uint32_t *dest_value,\n\t\t   uint32_t *datum_value)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/checkpolicy/module_compiler.c:728,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/module_compiler.c:729,1
    - Dst: realloc
      Src: /src/selinux/checkpolicy/module_compiler.c:733,1
    - Dst: ebitmap_init
      Src: /src/selinux/checkpolicy/module_compiler.c:740,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/checkpolicy/module_compiler.c:744,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - perm_value
    - class_value
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts:
    - condition: (perm_value >= 1)
      pos:
        line_end: 727
        line_start: 727
        source_file: /src/selinux/checkpolicy/module_compiler.c
    - condition: (class_value >= 1)
      pos:
        line_end: 728
        line_start: 728
        source_file: /src/selinux/checkpolicy/module_compiler.c
    constantsTouched: []
    func_position:
      end: 749
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 749
    functionName: add_perm_to_class
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 1
    functionsReached:
    - ebitmap_init
    - ebitmap_set_bit
    - assert
    - realloc
    linkageType: ''
    returnType: int
    signature: int add_perm_to_class(uint32_t perm_value, uint32_t class_value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:755,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:756,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - key
    - datum
    - p
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 758
    functionName: perm_destroy
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: int
    signature: "int perm_destroy(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\tvoid
      *p __attribute__((unused)))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_map
      Src: /src/selinux/checkpolicy/module_compiler.c:763,1
    - Dst: hashtab_destroy
      Src: /src/selinux/checkpolicy/module_compiler.c:764,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cladatum
    argTypes:
    - class_datum_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 767
    functionName: class_datum_destroy
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - hashtab_destroy
    - free
    - hashtab_map
    linkageType: ''
    returnType: void
    signature: void class_datum_destroy(class_datum_t *cladatum)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/module_compiler.c:771,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:778,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/module_compiler.c:779,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:780,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:786,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/module_compiler.c:790,1
    - Dst: symtab_init
      Src: /src/selinux/checkpolicy/module_compiler.c:791,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:792,1
    - Dst: class_datum_destroy
      Src: /src/selinux/checkpolicy/module_compiler.c:793,1
    - Dst: require_symbol
      Src: /src/selinux/checkpolicy/module_compiler.c:796,1
    - Dst: print_error_msg
      Src: /src/selinux/checkpolicy/module_compiler.c:799,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:800,1
    - Dst: class_datum_destroy
      Src: /src/selinux/checkpolicy/module_compiler.c:801,1
    - Dst: policydb_index_classes
      Src: /src/selinux/checkpolicy/module_compiler.c:807,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:808,1
    - Dst: class_datum_destroy
      Src: /src/selinux/checkpolicy/module_compiler.c:812,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/module_compiler.c:813,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/module_compiler.c:814,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:815,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/module_compiler.c:819,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/module_compiler.c:823,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/module_compiler.c:825,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:829,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/module_compiler.c:833,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:836,1
    - Dst: yyerror2
      Src: /src/selinux/checkpolicy/module_compiler.c:840,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:846,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/module_compiler.c:850,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:851,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:852,1
    - Dst: hashtab_insert
      Src: /src/selinux/checkpolicy/module_compiler.c:855,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:858,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:859,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:860,1
    - Dst: add_perm_to_class
      Src: /src/selinux/checkpolicy/module_compiler.c:866,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:867,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 74
    argCount: 1
    argNames:
    - pass
    argTypes:
    - int
    assertStmts:
    - condition: (datum)
      pos:
        line_end: 813
        line_start: 813
        source_file: /src/selinux/checkpolicy/module_compiler.c
    constantsTouched: []
    func_position:
      end: 876
      start: 769
    functionDepth: 4
    functionLinenumber: 769
    functionLinenumberEnd: 876
    functionName: require_class
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - policydb_index_classes
    - class_datum_destroy
    - hashtab_search
    - symtab_init
    - require_symbol
    - yyerror
    - yyerror2
    - add_perm_to_class
    - assert
    - hashtab_insert
    - free
    - calloc
    - print_error_msg
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int require_class(int pass)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:885,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/module_compiler.c:885,1
    - Dst: create_role
      Src: /src/selinux/checkpolicy/module_compiler.c:889,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:894,1
    - Dst: ebitmap_set_bit
      Src: /src/selinux/checkpolicy/module_compiler.c:897,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:899,1
    - Dst: role_datum_destroy
      Src: /src/selinux/checkpolicy/module_compiler.c:903,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:904,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - pass
    - isattr
    argTypes:
    - int
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 878
    functionDepth: 5
    functionLinenumber: 878
    functionLinenumberEnd: 908
    functionName: require_role_or_attribute
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - yyerror
    - role_datum_destroy
    - ebitmap_set_bit
    - free
    - create_role
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int require_role_or_attribute(int pass, unsigned char isattr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: require_role_or_attribute
      Src: /src/selinux/checkpolicy/module_compiler.c:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pass
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 910
    functionDepth: 6
    functionLinenumber: 910
    functionLinenumberEnd: 913
    functionName: require_role
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - require_role_or_attribute
    linkageType: ''
    returnType: int
    signature: int require_role(int pass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: require_role_or_attribute
      Src: /src/selinux/checkpolicy/module_compiler.c:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pass
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 915
    functionDepth: 6
    functionLinenumber: 915
    functionLinenumberEnd: 918
    functionName: require_attribute_role
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - require_role_or_attribute
    linkageType: ''
    returnType: int
    signature: int require_attribute_role(int pass)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:926,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/module_compiler.c:926,1
    - Dst: create_type
      Src: /src/selinux/checkpolicy/module_compiler.c:930,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - pass
    - isattr
    argTypes:
    - int
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 920
    functionDepth: 5
    functionLinenumber: 920
    functionLinenumberEnd: 937
    functionName: require_type_or_attribute
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - create_type
    - free
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int require_type_or_attribute(int pass, unsigned char isattr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: require_type_or_attribute
      Src: /src/selinux/checkpolicy/module_compiler.c:941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pass
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 939
    functionDepth: 6
    functionLinenumber: 939
    functionLinenumberEnd: 942
    functionName: require_type
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - require_type_or_attribute
    linkageType: ''
    returnType: int
    signature: int require_type(int pass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: require_type_or_attribute
      Src: /src/selinux/checkpolicy/module_compiler.c:946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pass
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 944
    functionDepth: 6
    functionLinenumber: 944
    functionLinenumberEnd: 947
    functionName: require_attribute
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 1
    functionsReached:
    - require_type_or_attribute
    linkageType: ''
    returnType: int
    signature: int require_attribute(int pass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:956,1
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/module_compiler.c:956,1
    - Dst: create_user
      Src: /src/selinux/checkpolicy/module_compiler.c:960,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:965,1
    - Dst: user_datum_destroy
      Src: /src/selinux/checkpolicy/module_compiler.c:968,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:969,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - pass
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 949
    functionDepth: 5
    functionLinenumber: 949
    functionLinenumberEnd: 973
    functionName: require_user
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - create_user
    - user_datum_destroy
    - free
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int require_user(int pass)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/module_compiler.c:977,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:981,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:985,1
    - Dst: calloc
      Src: /src/selinux/checkpolicy/module_compiler.c:988,1
    - Dst: cond_destroy_bool
      Src: /src/selinux/checkpolicy/module_compiler.c:989,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:990,1
    - Dst: require_symbol
      Src: /src/selinux/checkpolicy/module_compiler.c:995,1
    - Dst: cond_destroy_bool
      Src: /src/selinux/checkpolicy/module_compiler.c:998,1
    - Dst: print_error_msg
      Src: /src/selinux/checkpolicy/module_compiler.c:1000,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 2
    argNames:
    - pass
    - is_tunable
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 975
    functionDepth: 4
    functionLinenumber: 975
    functionLinenumberEnd: 1006
    functionName: require_bool_tunable
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - require_symbol
    - yyerror
    - free
    - calloc
    - cond_destroy_bool
    - print_error_msg
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int require_bool_tunable(int pass, int is_tunable)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: require_bool_tunable
      Src: /src/selinux/checkpolicy/module_compiler.c:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pass
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1008
    functionDepth: 5
    functionLinenumber: 1008
    functionLinenumberEnd: 1011
    functionName: require_bool
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - require_bool_tunable
    linkageType: ''
    returnType: int
    signature: int require_bool(int pass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: require_bool_tunable
      Src: /src/selinux/checkpolicy/module_compiler.c:1015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pass
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1013
    functionDepth: 5
    functionLinenumber: 1013
    functionLinenumberEnd: 1016
    functionName: require_tunable
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - require_bool_tunable
    linkageType: ''
    returnType: int
    signature: int require_tunable(int pass)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/module_compiler.c:1020,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:1024,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:1028,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/module_compiler.c:1031,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:1033,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:1034,1
    - Dst: level_datum_init
      Src: /src/selinux/checkpolicy/module_compiler.c:1037,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/module_compiler.c:1038,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:1040,1
    - Dst: level_datum_destroy
      Src: /src/selinux/checkpolicy/module_compiler.c:1041,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:1042,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:1043,1
    - Dst: mls_level_init
      Src: /src/selinux/checkpolicy/module_compiler.c:1046,1
    - Dst: require_symbol
      Src: /src/selinux/checkpolicy/module_compiler.c:1047,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:1050,1
    - Dst: mls_level_destroy
      Src: /src/selinux/checkpolicy/module_compiler.c:1051,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:1052,1
    - Dst: level_datum_destroy
      Src: /src/selinux/checkpolicy/module_compiler.c:1053,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:1054,1
    - Dst: print_error_msg
      Src: /src/selinux/checkpolicy/module_compiler.c:1056,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 1
    argNames:
    - pass
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1018
    functionDepth: 4
    functionLinenumber: 1018
    functionLinenumberEnd: 1062
    functionName: require_sens
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - level_datum_destroy
    - level_datum_init
    - require_symbol
    - yyerror
    - mls_level_destroy
    - print_error_msg
    - malloc
    - free
    - mls_level_init
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int require_sens(int pass)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: queue_remove
      Src: /src/selinux/checkpolicy/module_compiler.c:1066,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:1070,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:1074,1
    - Dst: malloc
      Src: /src/selinux/checkpolicy/module_compiler.c:1077,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:1079,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:1080,1
    - Dst: cat_datum_init
      Src: /src/selinux/checkpolicy/module_compiler.c:1083,1
    - Dst: require_symbol
      Src: /src/selinux/checkpolicy/module_compiler.c:1086,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:1088,1
    - Dst: cat_datum_destroy
      Src: /src/selinux/checkpolicy/module_compiler.c:1089,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:1090,1
    - Dst: print_error_msg
      Src: /src/selinux/checkpolicy/module_compiler.c:1092,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - pass
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1064
    functionDepth: 4
    functionLinenumber: 1064
    functionLinenumberEnd: 1098
    functionName: require_cat
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - require_symbol
    - yyerror
    - cat_datum_init
    - malloc
    - free
    - cat_datum_destroy
    - print_error_msg
    - queue_remove
    linkageType: ''
    returnType: int
    signature: int require_cat(int pass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_scope_in_stack
      Src: /src/selinux/checkpolicy/module_compiler.c:1120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - scope
    - stack
    argTypes:
    - scope_datum_t*
    - scope_stack_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1100
    functionDepth: 1
    functionLinenumber: 1100
    functionLinenumberEnd: 1121
    functionName: is_scope_in_stack
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 1
    functionsReached:
    - is_scope_in_stack
    linkageType: ''
    returnType: int
    signature: "int is_scope_in_stack(const scope_datum_t *scope,\n\t\t\t     const
      scope_stack_t *stack)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/module_compiler.c:1125,1
    - Dst: is_scope_in_stack
      Src: /src/selinux/checkpolicy/module_compiler.c:1130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - symbol_type
    - id
    argTypes:
    - uint32_t
    - const_hashtab_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1123
    functionDepth: 2
    functionLinenumber: 1123
    functionLinenumberEnd: 1131
    functionName: is_id_in_scope
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 27
    functionsReached:
    - is_scope_in_stack
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: int is_id_in_scope(uint32_t symbol_type, const_hashtab_key_t id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_get_bit
      Src: /src/selinux/checkpolicy/module_compiler.c:1139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - perm_value
    - class_value
    - scope
    argTypes:
    - uint32_t
    - uint32_t
    - scope_index_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1133
    functionDepth: 1
    functionLinenumber: 1133
    functionLinenumberEnd: 1144
    functionName: is_perm_in_scope_index
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - ebitmap_get_bit
    linkageType: ''
    returnType: int
    signature: "int is_perm_in_scope_index(uint32_t perm_value, uint32_t class_value,\n\t\t\t\t
      \ const scope_index_t *scope)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_perm_in_scope_index
      Src: /src/selinux/checkpolicy/module_compiler.c:1154,1
    - Dst: is_perm_in_scope_index
      Src: /src/selinux/checkpolicy/module_compiler.c:1156,1
    - Dst: is_perm_in_stack
      Src: /src/selinux/checkpolicy/module_compiler.c:1166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - perm_value
    - class_value
    - stack
    argTypes:
    - uint32_t
    - uint32_t
    - scope_stack_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1146
    functionDepth: 2
    functionLinenumber: 1146
    functionLinenumberEnd: 1167
    functionName: is_perm_in_stack
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 1
    functionsReached:
    - is_perm_in_scope_index
    - is_perm_in_stack
    linkageType: ''
    returnType: int
    signature: "int is_perm_in_stack(uint32_t perm_value, uint32_t class_value,\n\t\t\t
      \   const scope_stack_t *stack)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/module_compiler.c:1171,1
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/module_compiler.c:1177,1
    - Dst: is_perm_in_stack
      Src: /src/selinux/checkpolicy/module_compiler.c:1182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - perm_id
    - class_id
    argTypes:
    - const_hashtab_key_t
    - const_hashtab_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1184
      start: 1169
    functionDepth: 3
    functionLinenumber: 1169
    functionLinenumberEnd: 1184
    functionName: is_perm_in_scope
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 2
    functionsReached:
    - is_perm_in_stack
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: int is_perm_in_scope(const_hashtab_key_t perm_id, const_hashtab_key_t
      class_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_decl_cond_list
      Src: /src/selinux/checkpolicy/module_compiler.c:1191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cond
    argTypes:
    - cond_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1186
    functionDepth: 5
    functionLinenumber: 1186
    functionLinenumberEnd: 1192
    functionName: get_current_cond_list
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 1
    functionsReached:
    - get_decl_cond_list
    linkageType: ''
    returnType: cond_list_t
    signature: cond_list_t *get_current_cond_list(cond_list_t *cond)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_current_cond_list
      Src: /src/selinux/checkpolicy/module_compiler.c:1200,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/module_compiler.c:1202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - cond
    argTypes:
    - cond_list_t*
    assertStmts:
    - condition: (old_cond != NULL)
      pos:
        line_end: 1201
        line_start: 1201
        source_file: /src/selinux/checkpolicy/module_compiler.c
    constantsTouched: []
    func_position:
      end: 1221
      start: 1198
    functionDepth: 6
    functionLinenumber: 1198
    functionLinenumberEnd: 1221
    functionName: append_cond_list
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 1
    functionsReached:
    - get_current_cond_list
    - assert
    linkageType: ''
    returnType: void
    signature: void append_cond_list(cond_list_t *cond)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/checkpolicy/module_compiler.c:1232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - avrule
    argTypes:
    - avrule_t*
    assertStmts:
    - condition: (stack_top->type == 1)
      pos:
        line_end: 1231
        line_start: 1231
        source_file: /src/selinux/checkpolicy/module_compiler.c
    constantsTouched: []
    func_position:
      end: 1240
      start: 1223
    functionDepth: 0
    functionLinenumber: 1223
    functionLinenumberEnd: 1240
    functionName: append_avrule
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 4
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void append_avrule(avrule_t *avrule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/checkpolicy/module_compiler.c:1248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - role_tr_rules
    argTypes:
    - role_trans_rule_t*
    assertStmts:
    - condition: (stack_top->type == 1)
      pos:
        line_end: 1247
        line_start: 1247
        source_file: /src/selinux/checkpolicy/module_compiler.c
    constantsTouched: []
    func_position:
      end: 1252
      start: 1243
    functionDepth: 0
    functionLinenumber: 1243
    functionLinenumberEnd: 1252
    functionName: append_role_trans
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void append_role_trans(role_trans_rule_t *role_tr_rules)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/checkpolicy/module_compiler.c:1260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - role_allow_rules
    argTypes:
    - role_allow_rule_t*
    assertStmts:
    - condition: (stack_top->type == 1)
      pos:
        line_end: 1259
        line_start: 1259
        source_file: /src/selinux/checkpolicy/module_compiler.c
    constantsTouched: []
    func_position:
      end: 1264
      start: 1255
    functionDepth: 0
    functionLinenumber: 1255
    functionLinenumberEnd: 1264
    functionName: append_role_allow
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void append_role_allow(role_allow_rule_t *role_allow_rules)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/checkpolicy/module_compiler.c:1272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - filename_trans_rules
    argTypes:
    - filename_trans_rule_t*
    assertStmts:
    - condition: (stack_top->type == 1)
      pos:
        line_end: 1271
        line_start: 1271
        source_file: /src/selinux/checkpolicy/module_compiler.c
    constantsTouched: []
    func_position:
      end: 1276
      start: 1267
    functionDepth: 0
    functionLinenumber: 1267
    functionLinenumberEnd: 1276
    functionName: append_filename_trans
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void append_filename_trans(filename_trans_rule_t *filename_trans_rules)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/checkpolicy/module_compiler.c:1284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - range_tr_rules
    argTypes:
    - range_trans_rule_t*
    assertStmts:
    - condition: (stack_top->type == 1)
      pos:
        line_end: 1283
        line_start: 1283
        source_file: /src/selinux/checkpolicy/module_compiler.c
    constantsTouched: []
    func_position:
      end: 1288
      start: 1279
    functionDepth: 0
    functionLinenumber: 1279
    functionLinenumberEnd: 1288
    functionName: append_range_trans
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 1
    functionsReached:
    - assert
    linkageType: ''
    returnType: void
    signature: void append_range_trans(range_trans_rule_t *range_tr_rules)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: avrule_block_create
      Src: /src/selinux/checkpolicy/module_compiler.c:1296,1
    - Dst: avrule_decl_create
      Src: /src/selinux/checkpolicy/module_compiler.c:1297,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/module_compiler.c:1306,1
    - Dst: push_stack
      Src: /src/selinux/checkpolicy/module_compiler.c:1310,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:1318,1
    - Dst: avrule_block_destroy
      Src: /src/selinux/checkpolicy/module_compiler.c:1319,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - pass
    argTypes:
    - int
    assertStmts:
    - condition: "(block != NULL && block->branch_list != NULL &&\n\t\t       block->branch_list->decl_id
        == next_decl_id)"
      pos:
        line_end: 1306
        line_start: 1305
        source_file: /src/selinux/checkpolicy/module_compiler.c
    constantsTouched: []
    func_position:
      end: 1321
      start: 1290
    functionDepth: 8
    functionLinenumber: 1290
    functionLinenumberEnd: 1321
    functionName: begin_optional
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - avrule_block_create
    - avrule_block_destroy
    - yyerror
    - assert
    - avrule_decl_create
    - push_stack
    linkageType: ''
    returnType: int
    signature: int begin_optional(int pass)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pop_stack
      Src: /src/selinux/checkpolicy/module_compiler.c:1326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pass
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1323
    functionDepth: 1
    functionLinenumber: 1323
    functionLinenumberEnd: 1328
    functionName: end_optional
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - pop_stack
    linkageType: ''
    returnType: int
    signature: int end_optional(int pass __attribute__((unused)))
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/checkpolicy/module_compiler.c:1333,1
    - Dst: avrule_decl_create
      Src: /src/selinux/checkpolicy/module_compiler.c:1337,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:1338,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/module_compiler.c:1346,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - pass
    argTypes:
    - int
    assertStmts:
    - condition: (stack_top->type == 1 && stack_top->in_else == 0)
      pos:
        line_end: 1332
        line_start: 1332
        source_file: /src/selinux/checkpolicy/module_compiler.c
    - condition: "(decl != NULL && decl->next == NULL &&\n\t\t       decl->decl_id
        == next_decl_id)"
      pos:
        line_end: 1346
        line_start: 1345
        source_file: /src/selinux/checkpolicy/module_compiler.c
    constantsTouched: []
    func_position:
      end: 1355
      start: 1330
    functionDepth: 2
    functionLinenumber: 1330
    functionLinenumberEnd: 1355
    functionName: begin_optional_else
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - yyerror
    - avrule_decl_create
    - assert
    linkageType: ''
    returnType: int
    signature: int begin_optional_else(int pass)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_union
      Src: /src/selinux/checkpolicy/module_compiler.c:1369,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:1370,1
    - Dst: realloc
      Src: /src/selinux/checkpolicy/module_compiler.c:1376,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:1380,1
    - Dst: ebitmap_init
      Src: /src/selinux/checkpolicy/module_compiler.c:1386,1
    - Dst: ebitmap_union
      Src: /src/selinux/checkpolicy/module_compiler.c:1396,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:1397,1
    - Dst: copy_requirements
      Src: /src/selinux/checkpolicy/module_compiler.c:1402,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - dest
    - stack
    argTypes:
    - avrule_decl_t*
    - scope_stack_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1403
      start: 1357
    functionDepth: 3
    functionLinenumber: 1357
    functionLinenumberEnd: 1403
    functionName: copy_requirements
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 1
    functionsReached:
    - ebitmap_init
    - yyerror
    - copy_requirements
    - realloc
    - ebitmap_union
    linkageType: ''
    returnType: int
    signature: int copy_requirements(avrule_decl_t *dest, const scope_stack_t *stack)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/checkpolicy/module_compiler.c:1412,1
    - Dst: copy_requirements
      Src: /src/selinux/checkpolicy/module_compiler.c:1416,1
    - Dst: yyerror
      Src: /src/selinux/checkpolicy/module_compiler.c:1428,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - pass
    argTypes:
    - int
    assertStmts:
    - condition: (stack_top->type == 1)
      pos:
        line_end: 1411
        line_start: 1411
        source_file: /src/selinux/checkpolicy/module_compiler.c
    constantsTouched: []
    func_position:
      end: 1433
      start: 1409
    functionDepth: 4
    functionLinenumber: 1409
    functionLinenumberEnd: 1433
    functionName: end_avrule_block
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - yyerror
    - copy_requirements
    - assert
    linkageType: ''
    returnType: int
    signature: int end_avrule_block(int pass)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/checkpolicy/module_compiler.c:1439,1
    - Dst: va_start
      Src: /src/selinux/checkpolicy/module_compiler.c:1444,1
    - Dst: va_arg
      Src: /src/selinux/checkpolicy/module_compiler.c:1448,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/module_compiler.c:1457,1
    - Dst: va_end
      Src: /src/selinux/checkpolicy/module_compiler.c:1459,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - stack_type
    argTypes:
    - int
    assertStmts:
    - condition: (0)
      pos:
        line_end: 1456
        line_start: 1456
        source_file: /src/selinux/checkpolicy/module_compiler.c
    constantsTouched: []
    func_position:
      end: 1463
      start: 1437
    functionDepth: 0
    functionLinenumber: 1437
    functionLinenumberEnd: 1463
    functionName: push_stack
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 2
    functionsReached:
    - va_end
    - va_arg
    - assert
    - calloc
    - va_start
    linkageType: ''
    returnType: int
    signature: int push_stack(int stack_type, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/selinux/checkpolicy/module_compiler.c:1470,1
    - Dst: free
      Src: /src/selinux/checkpolicy/module_compiler.c:1472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (stack_top != NULL)
      pos:
        line_end: 1469
        line_start: 1469
        source_file: /src/selinux/checkpolicy/module_compiler.c
    constantsTouched: []
    func_position:
      end: 1474
      start: 1467
    functionDepth: 0
    functionLinenumber: 1467
    functionLinenumberEnd: 1474
    functionName: pop_stack
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 2
    functionsReached:
    - free
    - assert
    linkageType: ''
    returnType: void
    signature: void pop_stack(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pop_stack
      Src: /src/selinux/checkpolicy/module_compiler.c:1480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1477
    functionDepth: 1
    functionLinenumber: 1477
    functionLinenumberEnd: 1484
    functionName: module_compiler_reset
    functionSourceFile: /src/selinux/checkpolicy/module_compiler.c
    functionUses: 0
    functionsReached:
    - pop_stack
    linkageType: ''
    returnType: void
    signature: void module_compiler_reset(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/checkpolicy/parse_util.c:39,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/parse_util.c:41,1
    - Dst: strerror
      Src: /src/selinux/checkpolicy/parse_util.c:42,1
    - Dst: queue_create
      Src: /src/selinux/checkpolicy/parse_util.c:46,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/parse_util.c:48,1
    - Dst: strdup
      Src: /src/selinux/checkpolicy/parse_util.c:54,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/parse_util.c:56,1
    - Dst: init_parser
      Src: /src/selinux/checkpolicy/parse_util.c:60,1
    - Dst: yyparse
      Src: /src/selinux/checkpolicy/parse_util.c:61,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/parse_util.c:62,1
    - Dst: rewind
      Src: /src/selinux/checkpolicy/parse_util.c:67,1
    - Dst: init_parser
      Src: /src/selinux/checkpolicy/parse_util.c:68,1
    - Dst: yyrestart
      Src: /src/selinux/checkpolicy/parse_util.c:69,1
    - Dst: yyparse
      Src: /src/selinux/checkpolicy/parse_util.c:70,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/parse_util.c:71,1
    - Dst: queue_destroy
      Src: /src/selinux/checkpolicy/parse_util.c:80,1
    - Dst: fclose
      Src: /src/selinux/checkpolicy/parse_util.c:81,1
    - Dst: yylex_destroy
      Src: /src/selinux/checkpolicy/parse_util.c:82,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 3
    argNames:
    - p
    - file
    - progname
    argTypes:
    - policydb_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 85
    functionName: read_source_policy
    functionSourceFile: /src/selinux/checkpolicy/parse_util.c
    functionUses: 3
    functionsReached:
    - rewind
    - fclose
    - yyrestart
    - yyparse
    - queue_create
    - strerror
    - init_parser
    - yylex_destroy
    - fopen
    - fprintf
    - queue_destroy
    - strdup
    linkageType: ''
    returnType: int
    signature: int read_source_policy(policydb_t *p, const char *file, const char
      *progname)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/selinux/checkpolicy/checkmodule.c:53,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkmodule.c:55,1
    - Dst: strerror
      Src: /src/selinux/checkpolicy/checkmodule.c:56,1
    - Dst: fstat
      Src: /src/selinux/checkpolicy/checkmodule.c:59,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkmodule.c:60,1
    - Dst: strerror
      Src: /src/selinux/checkpolicy/checkmodule.c:61,1
    - Dst: close
      Src: /src/selinux/checkpolicy/checkmodule.c:62,1
    - Dst: mmap
      Src: /src/selinux/checkpolicy/checkmodule.c:65,1
    - Dst: close
      Src: /src/selinux/checkpolicy/checkmodule.c:67,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkmodule.c:69,1
    - Dst: strerror
      Src: /src/selinux/checkpolicy/checkmodule.c:69,1
    - Dst: policy_file_init
      Src: /src/selinux/checkpolicy/checkmodule.c:72,1
    - Dst: policydb_init
      Src: /src/selinux/checkpolicy/checkmodule.c:78,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkmodule.c:79,1
    - Dst: policydb_read
      Src: /src/selinux/checkpolicy/checkmodule.c:83,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkmodule.c:84,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkmodule.c:93,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkmodule.c:101,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 3
    argNames:
    - p
    - file
    - progname
    argTypes:
    - policydb_t*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 45
    functionDepth: 8
    functionLinenumber: 45
    functionLinenumberEnd: 109
    functionName: read_binary_policy
    functionSourceFile: /src/selinux/checkpolicy/checkmodule.c
    functionUses: 1
    functionsReached:
    - policydb_read
    - policy_file_init
    - close
    - mmap
    - strerror
    - policydb_init
    - fstat
    - open
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int read_binary_policy(policydb_t *p, const char *file,\n\t\t\t      const
      char *progname)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: policy_file_init
      Src: /src/selinux/checkpolicy/checkmodule.c:121,1
    - Dst: policydb_write
      Src: /src/selinux/checkpolicy/checkmodule.c:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - p
    - outfp
    - policy_type
    - policyvers
    argTypes:
    - policydb_t*
    - FILE*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 111
    functionDepth: 8
    functionLinenumber: 111
    functionLinenumberEnd: 125
    functionName: write_binary_policy
    functionSourceFile: /src/selinux/checkpolicy/checkmodule.c
    functionUses: 2
    functionsReached:
    - policy_file_init
    - policydb_write
    linkageType: ''
    returnType: int
    signature: "int write_binary_policy(policydb_t *p, FILE *outfp,\n\t\t\t       unsigned
      int policy_type,\n\t\t\t       unsigned int policyvers)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkmodule.c:129,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkmodule.c:131,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkmodule.c:132,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkmodule.c:133,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkmodule.c:135,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkmodule.c:136,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkmodule.c:137,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkmodule.c:138,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkmodule.c:139,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkmodule.c:140,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkmodule.c:141,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkmodule.c:142,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkmodule.c:143,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkmodule.c:144,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkmodule.c:145,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkmodule.c:146,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkmodule.c:147,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkmodule.c:148,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkmodule.c:149,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkmodule.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 152
    functionName: usage
    functionSourceFile: /src/selinux/checkpolicy/checkmodule.c
    functionUses: 41
    functionsReached:
    - printf
    - exit
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/selinux/checkpolicy/checkmodule.c:178,1
    - Dst: usage
      Src: /src/selinux/checkpolicy/checkmodule.c:182,1
    - Dst: strcasecmp
      Src: /src/selinux/checkpolicy/checkmodule.c:198,1
    - Dst: strcasecmp
      Src: /src/selinux/checkpolicy/checkmodule.c:202,1
    - Dst: strcasecmp
      Src: /src/selinux/checkpolicy/checkmodule.c:206,1
    - Dst: usage
      Src: /src/selinux/checkpolicy/checkmodule.c:210,1
    - Dst: strtol
      Src: /src/selinux/checkpolicy/checkmodule.c:226,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkmodule.c:228,1
    - Dst: usage
      Src: /src/selinux/checkpolicy/checkmodule.c:231,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkmodule.c:236,1
    - Dst: usage
      Src: /src/selinux/checkpolicy/checkmodule.c:240,1
    - Dst: usage
      Src: /src/selinux/checkpolicy/checkmodule.c:250,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/checkmodule.c:255,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkmodule.c:257,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkmodule.c:261,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkmodule.c:264,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkmodule.c:268,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkmodule.c:271,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkmodule.c:275,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkmodule.c:277,1
    - Dst: usage
      Src: /src/selinux/checkpolicy/checkmodule.c:283,1
    - Dst: sepol_set_policydb
      Src: /src/selinux/checkpolicy/checkmodule.c:289,1
    - Dst: sepol_set_sidtab
      Src: /src/selinux/checkpolicy/checkmodule.c:290,1
    - Dst: read_binary_policy
      Src: /src/selinux/checkpolicy/checkmodule.c:293,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkmodule.c:294,1
    - Dst: policydb_init
      Src: /src/selinux/checkpolicy/checkmodule.c:297,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkmodule.c:298,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkmodule.c:299,1
    - Dst: read_source_policy
      Src: /src/selinux/checkpolicy/checkmodule.c:307,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkmodule.c:308,1
    - Dst: hierarchy_check_constraints
      Src: /src/selinux/checkpolicy/checkmodule.c:311,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkmodule.c:312,1
    - Dst: strdup
      Src: /src/selinux/checkpolicy/checkmodule.c:320,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkmodule.c:322,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkmodule.c:323,1
    - Dst: basename
      Src: /src/selinux/checkpolicy/checkmodule.c:325,1
    - Dst: strrchr
      Src: /src/selinux/checkpolicy/checkmodule.c:326,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/checkmodule.c:330,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkmodule.c:331,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkmodule.c:334,1
    - Dst: free
      Src: /src/selinux/checkpolicy/checkmodule.c:336,1
    - Dst: policydb_init
      Src: /src/selinux/checkpolicy/checkmodule.c:343,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkmodule.c:344,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkmodule.c:345,1
    - Dst: link_modules
      Src: /src/selinux/checkpolicy/checkmodule.c:347,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkmodule.c:348,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkmodule.c:349,1
    - Dst: expand_module
      Src: /src/selinux/checkpolicy/checkmodule.c:351,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkmodule.c:353,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkmodule.c:354,1
    - Dst: policydb_destroy
      Src: /src/selinux/checkpolicy/checkmodule.c:356,1
    - Dst: policydb_load_isids
      Src: /src/selinux/checkpolicy/checkmodule.c:359,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkmodule.c:360,1
    - Dst: sepol_sidtab_destroy
      Src: /src/selinux/checkpolicy/checkmodule.c:362,1
    - Dst: fopen
      Src: /src/selinux/checkpolicy/checkmodule.c:365,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkmodule.c:368,1
    - Dst: strerror
      Src: /src/selinux/checkpolicy/checkmodule.c:369,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkmodule.c:370,1
    - Dst: write_binary_policy
      Src: /src/selinux/checkpolicy/checkmodule.c:374,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkmodule.c:376,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkmodule.c:378,1
    - Dst: sepol_module_policydb_to_cil
      Src: /src/selinux/checkpolicy/checkmodule.c:385,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkmodule.c:387,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkmodule.c:389,1
    - Dst: fclose
      Src: /src/selinux/checkpolicy/checkmodule.c:393,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkmodule.c:394,1
    - Dst: strerror
      Src: /src/selinux/checkpolicy/checkmodule.c:395,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkmodule.c:396,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/checkmodule.c:399,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/checkmodule.c:401,1
    - Dst: policydb_destroy
      Src: /src/selinux/checkpolicy/checkmodule.c:404,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 173
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 154
    functionDepth: 10
    functionLinenumber: 154
    functionLinenumberEnd: 407
    functionName: main
    functionSourceFile: /src/selinux/checkpolicy/checkmodule.c
    functionUses: 6
    functionsReached:
    - sepol_set_sidtab
    - read_source_policy
    - policydb_load_isids
    - strcmp
    - strerror
    - read_binary_policy
    - fopen
    - link_modules
    - exit
    - fprintf
    - expand_module
    - free
    - strtol
    - printf
    - strcasecmp
    - policydb_destroy
    - strrchr
    - basename
    - strdup
    - write_binary_policy
    - sepol_module_policydb_to_cil
    - fclose
    - getopt_long
    - sepol_set_policydb
    - usage
    - hierarchy_check_constraints
    - policydb_init
    - sepol_sidtab_destroy
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: le32_to_cpu
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 45
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le32_to_cpu(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: le32_to_cpu
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 45
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: le32_to_cpu(x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/selinux/checkpolicy/test/dismod.c:99,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/test/dismod.c:100,1
    - Dst: puts
      Src: /src/selinux/checkpolicy/test/dismod.c:101,1
    - Dst: puts
      Src: /src/selinux/checkpolicy/test/dismod.c:102,1
    - Dst: puts
      Src: /src/selinux/checkpolicy/test/dismod.c:103,1
    - Dst: puts
      Src: /src/selinux/checkpolicy/test/dismod.c:104,1
    - Dst: puts
      Src: /src/selinux/checkpolicy/test/dismod.c:105,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/test/dismod.c:109,1
    - Dst: puts
      Src: /src/selinux/checkpolicy/test/dismod.c:111,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dismod.c:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 113
    functionName: usage
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 42
    functionsReached:
    - printf
    - exit
    - puts
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_av_to_string
      Src: /src/selinux/checkpolicy/test/dismod.c:118,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:119,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:120,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:121,1
    - Dst: free
      Src: /src/selinux/checkpolicy/test/dismod.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - mask
    - class
    - p
    - fp
    argTypes:
    - uint32_t
    - uint32_t
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 123
    functionName: render_access_mask
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 1
    functionsReached:
    - free
    - fprintf
    - sepol_av_to_string
    linkageType: ''
    returnType: void
    signature: "void render_access_mask(uint32_t mask, uint32_t class, policydb_t
      *p,\n\t\t\t       FILE *fp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:130,1
    - Dst: ebitmap_startbit
      Src: /src/selinux/checkpolicy/test/dismod.c:131,1
    - Dst: ebitmap_length
      Src: /src/selinux/checkpolicy/test/dismod.c:131,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/checkpolicy/test/dismod.c:132,1
    - Dst: sepol_av_to_string
      Src: /src/selinux/checkpolicy/test/dismod.c:133,1
    - Dst: UINT32_C
      Src: /src/selinux/checkpolicy/test/dismod.c:133,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:134,1
    - Dst: free
      Src: /src/selinux/checkpolicy/test/dismod.c:135,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - map
    - class
    - p
    - fp
    argTypes:
    - ebitmap_t*
    - uint32_t
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 139
    functionName: render_access_bitmap
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 0
    functionsReached:
    - ebitmap_length
    - sepol_av_to_string
    - UINT32_C
    - ebitmap_startbit
    - free
    - ebitmap_get_bit
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void render_access_bitmap(ebitmap_t *map, uint32_t class, policydb_t
      *p,\n\t\t\t\t FILE *fp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/test/dismod.c:145,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/test/dismod.c:147,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:149,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - p
    - fp
    - symbol_type
    - symbol_value
    - prefix
    argTypes:
    - policydb_t*
    - FILE*
    - uint32_t
    - uint32_t
    - char*
    assertStmts:
    - condition: (scope != NULL)
      pos:
        line_end: 146
        line_start: 146
        source_file: /src/selinux/checkpolicy/test/dismod.c
    constantsTouched: []
    func_position:
      end: 153
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 153
    functionName: display_id
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 0
    functionsReached:
    - fprintf
    - assert
    - hashtab_search
    linkageType: ''
    returnType: void
    signature: "void display_id(policydb_t *p, FILE *fp, uint32_t symbol_type,\n\t\t
      \      uint32_t symbol_value, const char *prefix)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:161,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:164,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:166,1
    - Dst: ebitmap_startbit
      Src: /src/selinux/checkpolicy/test/dismod.c:174,1
    - Dst: ebitmap_length
      Src: /src/selinux/checkpolicy/test/dismod.c:174,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/checkpolicy/test/dismod.c:176,1
    - Dst: ebitmap_startbit
      Src: /src/selinux/checkpolicy/test/dismod.c:184,1
    - Dst: ebitmap_length
      Src: /src/selinux/checkpolicy/test/dismod.c:185,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/checkpolicy/test/dismod.c:186,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:195,1
    - Dst: ebitmap_startbit
      Src: /src/selinux/checkpolicy/test/dismod.c:197,1
    - Dst: ebitmap_length
      Src: /src/selinux/checkpolicy/test/dismod.c:197,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/checkpolicy/test/dismod.c:199,1
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dismod.c:201,1
    - Dst: ebitmap_startbit
      Src: /src/selinux/checkpolicy/test/dismod.c:204,1
    - Dst: ebitmap_length
      Src: /src/selinux/checkpolicy/test/dismod.c:205,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/checkpolicy/test/dismod.c:206,1
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dismod.c:208,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:212,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:217,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:219,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:223,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 53
    argCount: 4
    argNames:
    - set
    - flags
    - policy
    - fp
    argTypes:
    - type_set_t*
    - uint32_t
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 226
    functionName: display_type_set
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 0
    functionsReached:
    - ebitmap_length
    - ebitmap_startbit
    - display_id
    - ebitmap_get_bit
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int display_type_set(type_set_t *set, uint32_t flags, policydb_t *policy,\n\t\t\t
      \   FILE *fp)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:233,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:236,1
    - Dst: ebitmap_startbit
      Src: /src/selinux/checkpolicy/test/dismod.c:239,1
    - Dst: ebitmap_length
      Src: /src/selinux/checkpolicy/test/dismod.c:240,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/checkpolicy/test/dismod.c:241,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:245,1
    - Dst: ebitmap_startbit
      Src: /src/selinux/checkpolicy/test/dismod.c:250,1
    - Dst: ebitmap_length
      Src: /src/selinux/checkpolicy/test/dismod.c:251,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/checkpolicy/test/dismod.c:252,1
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dismod.c:253,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:257,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - roles
    - p
    - fp
    argTypes:
    - role_set_t*
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 260
    functionName: display_mod_role_set
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 0
    functionsReached:
    - ebitmap_length
    - ebitmap_startbit
    - display_id
    - ebitmap_get_bit
    - fprintf
    linkageType: ''
    returnType: int
    signature: int display_mod_role_set(role_set_t *roles, policydb_t *p, FILE *fp)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:268,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:273,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:276,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:279,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:282,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:286,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:289,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:292,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:296,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:298,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:300,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:302,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:304,1
    - Dst: display_type_set
      Src: /src/selinux/checkpolicy/test/dismod.c:308,1
    - Dst: display_type_set
      Src: /src/selinux/checkpolicy/test/dismod.c:311,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:314,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:325,1
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dismod.c:329,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:334,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:335,1
    - Dst: render_access_mask
      Src: /src/selinux/checkpolicy/test/dismod.c:338,1
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dismod.c:341,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:354,1
    - Dst: sepol_extended_perms_to_string
      Src: /src/selinux/checkpolicy/test/dismod.c:362,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:364,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:367,1
    - Dst: free
      Src: /src/selinux/checkpolicy/test/dismod.c:368,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:371,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 95
    argCount: 3
    argNames:
    - avrule
    - policy
    - fp
    argTypes:
    - avrule_t*
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 374
    functionName: display_avrule
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 0
    functionsReached:
    - render_access_mask
    - display_type_set
    - display_id
    - free
    - fprintf
    - sepol_extended_perms_to_string
    linkageType: ''
    returnType: int
    signature: int display_avrule(avrule_t *avrule, policydb_t *policy, FILE *fp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dismod.c:387,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:388,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:393,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:396,1
    - Dst: ebitmap_startbit
      Src: /src/selinux/checkpolicy/test/dismod.c:397,1
    - Dst: ebitmap_length
      Src: /src/selinux/checkpolicy/test/dismod.c:398,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/checkpolicy/test/dismod.c:399,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:404,1
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dismod.c:406,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:409,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:411,1
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dismod.c:412,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:414,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 417
    functionName: display_type_callback
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 0
    functionsReached:
    - ebitmap_length
    - ebitmap_startbit
    - display_id
    - ebitmap_get_bit
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int display_type_callback(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t\t
      void *data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_map
      Src: /src/selinux/checkpolicy/test/dismod.c:421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 424
    functionName: display_types
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 0
    functionsReached:
    - hashtab_map
    linkageType: ''
    returnType: int
    signature: int display_types(policydb_t *p, FILE *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dismod.c:431,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:432,1
    - Dst: ebitmap_startbit
      Src: /src/selinux/checkpolicy/test/dismod.c:434,1
    - Dst: ebitmap_length
      Src: /src/selinux/checkpolicy/test/dismod.c:434,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/checkpolicy/test/dismod.c:436,1
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dismod.c:437,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:440,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 443
    functionName: display_users
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 0
    functionsReached:
    - ebitmap_length
    - ebitmap_startbit
    - display_id
    - ebitmap_get_bit
    - fprintf
    linkageType: ''
    returnType: int
    signature: int display_users(policydb_t *p, FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dismod.c:450,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:451,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 454
    functionName: display_bools
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 1
    functionsReached:
    - fprintf
    - display_id
    linkageType: ''
    returnType: int
    signature: int display_bools(policydb_t *p, FILE *fp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:462,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:466,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:469,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:472,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:475,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:478,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:481,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:484,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - p
    - exp
    - fp
    argTypes:
    - policydb_t*
    - cond_expr_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 488
    functionName: display_expr
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void display_expr(policydb_t *p, cond_expr_t *exp, FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 495
    functionName: display_policycon
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void display_policycon(FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:502,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:507,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:511,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:516,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 520
    functionName: display_initial_sids
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void display_initial_sids(policydb_t *p, FILE *fp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_startbit
      Src: /src/selinux/checkpolicy/test/dismod.c:526,1
    - Dst: ebitmap_length
      Src: /src/selinux/checkpolicy/test/dismod.c:526,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/checkpolicy/test/dismod.c:527,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:531,1
    - Dst: ebitmap_startbit
      Src: /src/selinux/checkpolicy/test/dismod.c:536,1
    - Dst: ebitmap_length
      Src: /src/selinux/checkpolicy/test/dismod.c:536,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/checkpolicy/test/dismod.c:537,1
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dismod.c:538,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:542,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - classes
    - p
    - fp
    argTypes:
    - ebitmap_t*
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 543
    functionName: display_class_set
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 0
    functionsReached:
    - ebitmap_length
    - ebitmap_startbit
    - display_id
    - ebitmap_get_bit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void display_class_set(ebitmap_t *classes, policydb_t *p, FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:548,1
    - Dst: display_mod_role_set
      Src: /src/selinux/checkpolicy/test/dismod.c:549,1
    - Dst: display_type_set
      Src: /src/selinux/checkpolicy/test/dismod.c:550,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:551,1
    - Dst: display_class_set
      Src: /src/selinux/checkpolicy/test/dismod.c:552,1
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dismod.c:553,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:554,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - tr
    - p
    - fp
    argTypes:
    - role_trans_rule_t*
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 556
    functionName: display_role_trans
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 0
    functionsReached:
    - display_class_set
    - display_type_set
    - display_mod_role_set
    - display_id
    - fprintf
    linkageType: ''
    returnType: void
    signature: void display_role_trans(role_trans_rule_t *tr, policydb_t *p, FILE
      *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:561,1
    - Dst: display_mod_role_set
      Src: /src/selinux/checkpolicy/test/dismod.c:562,1
    - Dst: display_mod_role_set
      Src: /src/selinux/checkpolicy/test/dismod.c:563,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:564,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ra
    - p
    - fp
    argTypes:
    - role_allow_rule_t*
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 566
    functionName: display_role_allow
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 0
    functionsReached:
    - display_mod_role_set
    - fprintf
    linkageType: ''
    returnType: void
    signature: void display_role_allow(role_allow_rule_t *ra, policydb_t *p, FILE
      *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:571,1
    - Dst: display_type_set
      Src: /src/selinux/checkpolicy/test/dismod.c:573,1
    - Dst: display_type_set
      Src: /src/selinux/checkpolicy/test/dismod.c:574,1
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dismod.c:575,1
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dismod.c:576,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:577,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - tr
    - p
    - fp
    argTypes:
    - filename_trans_rule_t*
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 568
    functionDepth: 2
    functionLinenumber: 568
    functionLinenumberEnd: 579
    functionName: display_filename_trans
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 0
    functionsReached:
    - display_id
    - fprintf
    - display_type_set
    linkageType: ''
    returnType: void
    signature: "void display_filename_trans(filename_trans_rule_t *tr, policydb_t
      *p,\n\t\t\t\t   FILE *fp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:590,1
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dismod.c:591,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:592,1
    - Dst: display_type_set
      Src: /src/selinux/checkpolicy/test/dismod.c:593,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - key
    - datum
    - data
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 581
    functionDepth: 2
    functionLinenumber: 581
    functionLinenumberEnd: 597
    functionName: role_display_callback
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 0
    functionsReached:
    - fprintf
    - display_id
    - display_type_set
    linkageType: ''
    returnType: int
    signature: "int role_display_callback(hashtab_key_t key __attribute__((unused)),\n\t\t\t\t
      hashtab_datum_t datum, void *data)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:605,1
    - Dst: ebitmap_startbit
      Src: /src/selinux/checkpolicy/test/dismod.c:606,1
    - Dst: ebitmap_length
      Src: /src/selinux/checkpolicy/test/dismod.c:607,1
    - Dst: ebitmap_get_bit
      Src: /src/selinux/checkpolicy/test/dismod.c:608,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:610,1
    - Dst: render_access_bitmap
      Src: /src/selinux/checkpolicy/test/dismod.c:614,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:619,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:626,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:628,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - indices
    - p
    - out_fp
    argTypes:
    - scope_index_t*
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 599
    functionDepth: 2
    functionLinenumber: 599
    functionLinenumberEnd: 631
    functionName: display_scope_index
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 0
    functionsReached:
    - ebitmap_length
    - render_access_bitmap
    - ebitmap_startbit
    - ebitmap_get_bit
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int display_scope_index(scope_index_t *indices, policydb_t *p,\n\t\t\t
      \      FILE *out_fp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:639,1
    - Dst: display_expr
      Src: /src/selinux/checkpolicy/test/dismod.c:640,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:641,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:642,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:645,1
    - Dst: render_av_rule
      Src: /src/selinux/checkpolicy/test/dismod.c:646,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:649,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:652,1
    - Dst: render_av_rule
      Src: /src/selinux/checkpolicy/test/dismod.c:653,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 658
    functionName: display_cond_expressions
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 1
    functionsReached:
    - display_expr
    - render_av_rule
    - fprintf
    linkageType: ''
    returnType: int
    signature: int display_cond_expressions(policydb_t * p, FILE * fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/test/dismod.c:664,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:666,1
    - Dst: evaluate_conds
      Src: /src/selinux/checkpolicy/test/dismod.c:670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - name
    - state
    - p
    - fp
    argTypes:
    - char*
    - int
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 660
    functionDepth: 3
    functionLinenumber: 660
    functionLinenumberEnd: 672
    functionName: change_bool
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 1
    functionsReached:
    - evaluate_conds
    - fprintf
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: int change_bool(char *name, int state, policydb_t * p, FILE * fp)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:678,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:685,1
    - Dst: display_expr
      Src: /src/selinux/checkpolicy/test/dismod.c:686,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:687,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:688,1
    - Dst: display_avrule
      Src: /src/selinux/checkpolicy/test/dismod.c:691,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:694,1
    - Dst: display_avrule
      Src: /src/selinux/checkpolicy/test/dismod.c:697,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:707,1
    - Dst: display_avrule
      Src: /src/selinux/checkpolicy/test/dismod.c:710,1
    - Dst: display_role_trans
      Src: /src/selinux/checkpolicy/test/dismod.c:720,1
    - Dst: display_role_allow
      Src: /src/selinux/checkpolicy/test/dismod.c:724,1
    - Dst: display_scope_index
      Src: /src/selinux/checkpolicy/test/dismod.c:728,1
    - Dst: display_scope_index
      Src: /src/selinux/checkpolicy/test/dismod.c:734,1
    - Dst: display_filename_trans
      Src: /src/selinux/checkpolicy/test/dismod.c:740,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/test/dismod.c:744,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 66
    argCount: 4
    argNames:
    - decl
    - field
    - policy
    - out_fp
    argTypes:
    - avrule_decl_t*
    - int
    - policydb_t*
    - FILE*
    assertStmts:
    - condition: (0)
      pos:
        line_end: 743
        line_start: 743
        source_file: /src/selinux/checkpolicy/test/dismod.c
    constantsTouched: []
    func_position:
      end: 748
      start: 675
    functionDepth: 3
    functionLinenumber: 675
    functionLinenumberEnd: 748
    functionName: display_avdecl
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 0
    functionsReached:
    - display_expr
    - display_avrule
    - display_role_allow
    - assert
    - display_role_trans
    - display_scope_index
    - display_filename_trans
    - fprintf
    linkageType: ''
    returnType: int
    signature: "int display_avdecl(avrule_decl_t *decl, int field, policydb_t *policy,\n\t\t\t
      \ FILE *out_fp)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:755,1
    - Dst: display_avdecl
      Src: /src/selinux/checkpolicy/test/dismod.c:757,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - field
    - policy
    - out_fp
    argTypes:
    - int
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 750
    functionDepth: 4
    functionLinenumber: 750
    functionLinenumberEnd: 765
    functionName: display_avblock
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 0
    functionsReached:
    - fprintf
    - display_avdecl
    linkageType: ''
    returnType: int
    signature: int display_avblock(int field, policydb_t *policy, FILE *out_fp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:770,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:772,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:774,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - p
    - out_fp
    argTypes:
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 776
    functionName: display_handle_unknown
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int display_handle_unknown(policydb_t *p, FILE *out_fp)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/checkpolicy/test/dismod.c:785,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:786,1
    - Dst: strerror
      Src: /src/selinux/checkpolicy/test/dismod.c:787,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dismod.c:788,1
    - Dst: policy_file_init
      Src: /src/selinux/checkpolicy/test/dismod.c:790,1
    - Dst: fread
      Src: /src/selinux/checkpolicy/test/dismod.c:797,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:798,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dismod.c:799,1
    - Dst: rewind
      Src: /src/selinux/checkpolicy/test/dismod.c:801,1
    - Dst: le32_to_cpu
      Src: /src/selinux/checkpolicy/test/dismod.c:802,1
    - Dst: sepol_module_package_create
      Src: /src/selinux/checkpolicy/test/dismod.c:804,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:805,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dismod.c:806,1
    - Dst: sepol_policydb_free
      Src: /src/selinux/checkpolicy/test/dismod.c:808,1
    - Dst: sepol_module_package_read
      Src: /src/selinux/checkpolicy/test/dismod.c:811,1
    - Dst: sepol_module_package_free
      Src: /src/selinux/checkpolicy/test/dismod.c:814,1
    - Dst: policydb_read
      Src: /src/selinux/checkpolicy/test/dismod.c:816,1
    - Dst: fclose
      Src: /src/selinux/checkpolicy/test/dismod.c:818,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 3
    argNames:
    - filename
    - policy
    - verbose
    argTypes:
    - char*
    - policydb_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 778
    functionDepth: 9
    functionLinenumber: 778
    functionLinenumberEnd: 820
    functionName: read_policy
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 0
    functionsReached:
    - rewind
    - policydb_read
    - policy_file_init
    - fclose
    - fread
    - sepol_policydb_free
    - sepol_module_package_free
    - le32_to_cpu
    - strerror
    - sepol_module_package_create
    - fopen
    - sepol_module_package_read
    - exit
    - fprintf
    linkageType: ''
    returnType: int
    signature: int read_policy(char *filename, policydb_t *policy, int verbose)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/checkpolicy/test/dismod.c:829,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/test/dismod.c:832,1
    - Dst: fgets
      Src: /src/selinux/checkpolicy/test/dismod.c:833,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:834,1
    - Dst: strerror
      Src: /src/selinux/checkpolicy/test/dismod.c:835,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dismod.c:836,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/test/dismod.c:839,1
    - Dst: policydb_init
      Src: /src/selinux/checkpolicy/test/dismod.c:844,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:845,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dismod.c:846,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:851,1
    - Dst: policydb_set_target_platform
      Src: /src/selinux/checkpolicy/test/dismod.c:852,1
    - Dst: read_policy
      Src: /src/selinux/checkpolicy/test/dismod.c:853,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:854,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dismod.c:857,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:860,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dismod.c:861,1
    - Dst: policydb_index_classes
      Src: /src/selinux/checkpolicy/test/dismod.c:863,1
    - Dst: policydb_index_others
      Src: /src/selinux/checkpolicy/test/dismod.c:864,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:865,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dismod.c:866,1
    - Dst: link_modules
      Src: /src/selinux/checkpolicy/test/dismod.c:868,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/test/dismod.c:870,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/test/dismod.c:871,1
    - Dst: policydb_destroy
      Src: /src/selinux/checkpolicy/test/dismod.c:873,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - base
    - out_fp
    - verbose
    argTypes:
    - policydb_t*
    - FILE*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 822
    functionDepth: 10
    functionLinenumber: 822
    functionLinenumberEnd: 875
    functionName: link_module
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 0
    functionsReached:
    - policydb_index_classes
    - link_modules
    - strerror
    - fgets
    - policydb_index_others
    - policydb_init
    - read_policy
    - policydb_destroy
    - policydb_set_target_platform
    - printf
    - exit
    - fprintf
    - strlen
    linkageType: ''
    returnType: void
    signature: void link_module(policydb_t *base, FILE *out_fp, int verbose)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:884,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/checkpolicy/test/dismod.c:885,1
    - Dst: sepol_polcap_getname
      Src: /src/selinux/checkpolicy/test/dismod.c:886,1
    - Dst: snprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:888,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:891,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 877
    functionDepth: 1
    functionLinenumber: 877
    functionLinenumberEnd: 893
    functionName: display_policycaps
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 0
    functionsReached:
    - ebitmap_for_each_positive_bit
    - fprintf
    - sepol_polcap_getname
    - snprintf
    linkageType: ''
    returnType: void
    signature: void display_policycaps(policydb_t *p, FILE *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/checkpolicy/test/dismod.c:900,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/test/dismod.c:902,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 895
    functionDepth: 0
    functionLinenumber: 895
    functionLinenumberEnd: 905
    functionName: menu
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int menu(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:910,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:912,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:913,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:914,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 907
    functionDepth: 0
    functionLinenumber: 907
    functionLinenumberEnd: 918
    functionName: print_version_info
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void print_version_info(policydb_t *p, FILE *fp)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/test/dismod.c:927,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/test/dismod.c:928,1
    - Dst: usage
      Src: /src/selinux/checkpolicy/test/dismod.c:929,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/test/dismod.c:932,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/test/dismod.c:932,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:934,1
    - Dst: usage
      Src: /src/selinux/checkpolicy/test/dismod.c:936,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:941,1
    - Dst: usage
      Src: /src/selinux/checkpolicy/test/dismod.c:942,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:947,1
    - Dst: policydb_init
      Src: /src/selinux/checkpolicy/test/dismod.c:948,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:949,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dismod.c:950,1
    - Dst: read_policy
      Src: /src/selinux/checkpolicy/test/dismod.c:952,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:953,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dismod.c:956,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:961,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dismod.c:963,1
    - Dst: policydb_index_classes
      Src: /src/selinux/checkpolicy/test/dismod.c:966,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:967,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dismod.c:968,1
    - Dst: policydb_index_others
      Src: /src/selinux/checkpolicy/test/dismod.c:971,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:972,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dismod.c:973,1
    - Dst: print_version_info
      Src: /src/selinux/checkpolicy/test/dismod.c:977,1
    - Dst: menu
      Src: /src/selinux/checkpolicy/test/dismod.c:978,1
    - Dst: puts
      Src: /src/selinux/checkpolicy/test/dismod.c:982,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/test/dismod.c:986,1
    - Dst: fgets
      Src: /src/selinux/checkpolicy/test/dismod.c:987,1
    - Dst: feof
      Src: /src/selinux/checkpolicy/test/dismod.c:988,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:990,1
    - Dst: strerror
      Src: /src/selinux/checkpolicy/test/dismod.c:991,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:998,1
    - Dst: display_avblock
      Src: /src/selinux/checkpolicy/test/dismod.c:999,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:1003,1
    - Dst: display_avblock
      Src: /src/selinux/checkpolicy/test/dismod.c:1004,1
    - Dst: display_users
      Src: /src/selinux/checkpolicy/test/dismod.c:1008,1
    - Dst: display_bools
      Src: /src/selinux/checkpolicy/test/dismod.c:1011,1
    - Dst: hashtab_map
      Src: /src/selinux/checkpolicy/test/dismod.c:1014,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dismod.c:1016,1
    - Dst: display_types
      Src: /src/selinux/checkpolicy/test/dismod.c:1019,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:1020,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dismod.c:1021,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:1025,1
    - Dst: display_avblock
      Src: /src/selinux/checkpolicy/test/dismod.c:1026,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:1030,1
    - Dst: display_avblock
      Src: /src/selinux/checkpolicy/test/dismod.c:1031,1
    - Dst: display_policycon
      Src: /src/selinux/checkpolicy/test/dismod.c:1035,1
    - Dst: display_initial_sids
      Src: /src/selinux/checkpolicy/test/dismod.c:1038,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:1041,1
    - Dst: display_avblock
      Src: /src/selinux/checkpolicy/test/dismod.c:1042,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:1046,1
    - Dst: display_avblock
      Src: /src/selinux/checkpolicy/test/dismod.c:1047,1
    - Dst: display_policycaps
      Src: /src/selinux/checkpolicy/test/dismod.c:1051,1
    - Dst: display_handle_unknown
      Src: /src/selinux/checkpolicy/test/dismod.c:1055,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/test/dismod.c:1058,1
    - Dst: fgets
      Src: /src/selinux/checkpolicy/test/dismod.c:1059,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:1061,1
    - Dst: strerror
      Src: /src/selinux/checkpolicy/test/dismod.c:1062,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/test/dismod.c:1065,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/test/dismod.c:1067,1
    - Dst: fopen
      Src: /src/selinux/checkpolicy/test/dismod.c:1069,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:1070,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/test/dismod.c:1075,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dismod.c:1078,1
    - Dst: display_avblock
      Src: /src/selinux/checkpolicy/test/dismod.c:1079,1
    - Dst: link_module
      Src: /src/selinux/checkpolicy/test/dismod.c:1083,1
    - Dst: print_version_info
      Src: /src/selinux/checkpolicy/test/dismod.c:1086,1
    - Dst: policydb_destroy
      Src: /src/selinux/checkpolicy/test/dismod.c:1089,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dismod.c:1090,1
    - Dst: menu
      Src: /src/selinux/checkpolicy/test/dismod.c:1093,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/test/dismod.c:1096,1
    - Dst: menu
      Src: /src/selinux/checkpolicy/test/dismod.c:1097,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dismod.c:1101,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 150
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 920
    functionDepth: 11
    functionLinenumber: 920
    functionLinenumberEnd: 1102
    functionName: main
    functionSourceFile: /src/selinux/checkpolicy/test/dismod.c
    functionUses: 6
    functionsReached:
    - hashtab_map
    - feof
    - strcmp
    - strerror
    - display_policycon
    - fopen
    - exit
    - fprintf
    - menu
    - policydb_index_others
    - display_users
    - printf
    - display_handle_unknown
    - strlen
    - policydb_index_classes
    - puts
    - display_bools
    - read_policy
    - policydb_destroy
    - print_version_info
    - display_types
    - usage
    - fgets
    - display_initial_sids
    - policydb_init
    - display_policycaps
    - display_avblock
    - link_module
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: puts
      Src: /src/selinux/checkpolicy/test/dispol.c:74,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/test/dispol.c:75,1
    - Dst: puts
      Src: /src/selinux/checkpolicy/test/dispol.c:76,1
    - Dst: puts
      Src: /src/selinux/checkpolicy/test/dispol.c:77,1
    - Dst: puts
      Src: /src/selinux/checkpolicy/test/dispol.c:78,1
    - Dst: puts
      Src: /src/selinux/checkpolicy/test/dispol.c:79,1
    - Dst: puts
      Src: /src/selinux/checkpolicy/test/dispol.c:80,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/test/dispol.c:84,1
    - Dst: puts
      Src: /src/selinux/checkpolicy/test/dispol.c:86,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dispol.c:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - progname
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 88
    functionName: usage
    functionSourceFile: /src/selinux/checkpolicy/test/dispol.c
    functionUses: 43
    functionsReached:
    - printf
    - exit
    - puts
    linkageType: ''
    returnType: void
    signature: void usage(const char *progname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sepol_av_to_string
      Src: /src/selinux/checkpolicy/test/dispol.c:93,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:94,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:95,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:96,1
    - Dst: free
      Src: /src/selinux/checkpolicy/test/dispol.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - mask
    - key
    - p
    - fp
    argTypes:
    - uint32_t
    - avtab_key_t*
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 99
    functionName: render_access_mask
    functionSourceFile: /src/selinux/checkpolicy/test/dispol.c
    functionUses: 2
    functionsReached:
    - free
    - fprintf
    - sepol_av_to_string
    linkageType: ''
    returnType: int
    signature: "int render_access_mask(uint32_t mask, avtab_key_t *key, policydb_t
      *p,\n\t\t\t      FILE *fp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - type
    - p
    - fp
    argTypes:
    - uint32_t
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: render_type
    functionSourceFile: /src/selinux/checkpolicy/test/dispol.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int render_type(uint32_t type, policydb_t *p, FILE *fp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:114,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:116,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:118,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - key
    - p
    - fp
    argTypes:
    - avtab_key_t*
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 123
    functionName: render_key
    functionSourceFile: /src/selinux/checkpolicy/test/dispol.c
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int render_key(avtab_key_t *key, policydb_t *p, FILE *fp)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:146,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:148,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:153,1
    - Dst: render_key
      Src: /src/selinux/checkpolicy/test/dispol.c:154,1
    - Dst: render_access_mask
      Src: /src/selinux/checkpolicy/test/dispol.c:155,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:156,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:159,1
    - Dst: render_key
      Src: /src/selinux/checkpolicy/test/dispol.c:160,1
    - Dst: render_access_mask
      Src: /src/selinux/checkpolicy/test/dispol.c:161,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:162,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:165,1
    - Dst: render_key
      Src: /src/selinux/checkpolicy/test/dispol.c:166,1
    - Dst: render_access_mask
      Src: /src/selinux/checkpolicy/test/dispol.c:169,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:170,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:174,1
    - Dst: render_key
      Src: /src/selinux/checkpolicy/test/dispol.c:175,1
    - Dst: render_type
      Src: /src/selinux/checkpolicy/test/dispol.c:176,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:177,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:180,1
    - Dst: render_key
      Src: /src/selinux/checkpolicy/test/dispol.c:181,1
    - Dst: render_type
      Src: /src/selinux/checkpolicy/test/dispol.c:182,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:183,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:186,1
    - Dst: render_key
      Src: /src/selinux/checkpolicy/test/dispol.c:187,1
    - Dst: render_type
      Src: /src/selinux/checkpolicy/test/dispol.c:188,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:189,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:195,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:197,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:199,1
    - Dst: render_key
      Src: /src/selinux/checkpolicy/test/dispol.c:200,1
    - Dst: sepol_extended_perms_to_string
      Src: /src/selinux/checkpolicy/test/dispol.c:201,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:203,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:206,1
    - Dst: free
      Src: /src/selinux/checkpolicy/test/dispol.c:207,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:209,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 72
    argCount: 5
    argNames:
    - key
    - datum
    - what
    - p
    - fp
    argTypes:
    - avtab_key_t*
    - avtab_datum_t*
    - uint32_t
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 213
    functionName: render_av_rule
    functionSourceFile: /src/selinux/checkpolicy/test/dispol.c
    functionUses: 1
    functionsReached:
    - render_access_mask
    - render_key
    - free
    - render_type
    - fprintf
    - sepol_extended_perms_to_string
    linkageType: ''
    returnType: int
    signature: "int render_av_rule(avtab_key_t *key, avtab_datum_t *datum, uint32_t
      what,\n\t\t\t  policydb_t *p, FILE *fp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: render_av_rule
      Src: /src/selinux/checkpolicy/test/dispol.c:223,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - a
    - what
    - p
    - fp
    argTypes:
    - avtab_t*
    - uint32_t
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 228
    functionName: display_avtab
    functionSourceFile: /src/selinux/checkpolicy/test/dispol.c
    functionUses: 0
    functionsReached:
    - render_av_rule
    - fprintf
    linkageType: ''
    returnType: int
    signature: int display_avtab(avtab_t *a, uint32_t what, policydb_t *p, FILE *fp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:236,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:240,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:243,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:246,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:249,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:252,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:255,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:258,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - p
    - exp
    - fp
    argTypes:
    - policydb_t*
    - cond_expr_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 262
    functionName: display_expr
    functionSourceFile: /src/selinux/checkpolicy/test/dispol.c
    functionUses: 3
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void display_expr(policydb_t *p, cond_expr_t *exp, FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:270,1
    - Dst: display_expr
      Src: /src/selinux/checkpolicy/test/dispol.c:271,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:272,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:273,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:276,1
    - Dst: render_av_rule
      Src: /src/selinux/checkpolicy/test/dispol.c:277,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:280,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:283,1
    - Dst: render_av_rule
      Src: /src/selinux/checkpolicy/test/dispol.c:284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 289
    functionName: display_cond_expressions
    functionSourceFile: /src/selinux/checkpolicy/test/dispol.c
    functionUses: 1
    functionsReached:
    - display_expr
    - render_av_rule
    - fprintf
    linkageType: ''
    returnType: int
    signature: int display_cond_expressions(policydb_t *p, FILE *fp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:294,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:296,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:298,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - p
    - out_fp
    argTypes:
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 302
    functionName: display_handle_unknown
    functionSourceFile: /src/selinux/checkpolicy/test/dispol.c
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int display_handle_unknown(policydb_t *p, FILE *out_fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hashtab_search
      Src: /src/selinux/checkpolicy/test/dispol.c:308,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:310,1
    - Dst: evaluate_conds
      Src: /src/selinux/checkpolicy/test/dispol.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - name
    - state
    - p
    - fp
    argTypes:
    - char*
    - int
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 316
    functionName: change_bool
    functionSourceFile: /src/selinux/checkpolicy/test/dispol.c
    functionUses: 1
    functionsReached:
    - evaluate_conds
    - fprintf
    - hashtab_search
    linkageType: ''
    returnType: int
    signature: int change_bool(char *name, int state, policydb_t *p, FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:322,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 328
    functionName: display_booleans
    functionSourceFile: /src/selinux/checkpolicy/test/dispol.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int display_booleans(policydb_t *p, FILE *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:337,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/checkpolicy/test/dispol.c:338,1
    - Dst: sepol_polcap_getname
      Src: /src/selinux/checkpolicy/test/dispol.c:339,1
    - Dst: snprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:341,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 346
    functionName: display_policycaps
    functionSourceFile: /src/selinux/checkpolicy/test/dispol.c
    functionUses: 1
    functionsReached:
    - ebitmap_for_each_positive_bit
    - fprintf
    - sepol_polcap_getname
    - snprintf
    linkageType: ''
    returnType: void
    signature: void display_policycaps(policydb_t *p, FILE *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:352,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:357,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 360
    functionName: display_classes
    functionSourceFile: /src/selinux/checkpolicy/test/dispol.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int display_classes(policydb_t *p, FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - p
    - fp
    - symbol_type
    - symbol_value
    - prefix
    argTypes:
    - policydb_t*
    - FILE*
    - uint32_t
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 367
    functionName: display_id
    functionSourceFile: /src/selinux/checkpolicy/test/dispol.c
    functionUses: 10
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: "void display_id(policydb_t *p, FILE *fp, uint32_t symbol_type,\n\t\t
      \      uint32_t symbol_value, const char *prefix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:374,1
    - Dst: ebitmap_cardinality
      Src: /src/selinux/checkpolicy/test/dispol.c:375,1
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/checkpolicy/test/dispol.c:376,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:377,1
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dispol.c:378,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 381
    functionName: display_permissive
    functionSourceFile: /src/selinux/checkpolicy/test/dispol.c
    functionUses: 0
    functionsReached:
    - ebitmap_cardinality
    - display_id
    - fprintf
    - ebitmap_for_each_positive_bit
    linkageType: ''
    returnType: void
    signature: void display_permissive(policydb_t *p, FILE *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:387,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 395
    functionName: display_users
    functionSourceFile: /src/selinux/checkpolicy/test/dispol.c
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int display_users(policydb_t *p, FILE *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:401,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:406,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 409
    functionName: display_roles
    functionSourceFile: /src/selinux/checkpolicy/test/dispol.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int display_roles(policydb_t *p, FILE *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:415,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:423,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 426
    functionName: display_types
    functionSourceFile: /src/selinux/checkpolicy/test/dispol.c
    functionUses: 1
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int display_types(policydb_t *p, FILE *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:432,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:440,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 443
    functionName: display_attributes
    functionSourceFile: /src/selinux/checkpolicy/test/dispol.c
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: int
    signature: int display_attributes(policydb_t *p, FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:449,1
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dispol.c:451,1
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dispol.c:452,1
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dispol.c:453,1
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dispol.c:454,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 457
    functionName: display_role_trans
    functionSourceFile: /src/selinux/checkpolicy/test/dispol.c
    functionUses: 1
    functionsReached:
    - fprintf
    - display_id
    linkageType: ''
    returnType: void
    signature: void display_role_trans(policydb_t *p, FILE *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebitmap_for_each_positive_bit
      Src: /src/selinux/checkpolicy/test/dispol.c:476,1
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dispol.c:477,1
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dispol.c:478,1
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dispol.c:479,1
    - Dst: display_id
      Src: /src/selinux/checkpolicy/test/dispol.c:480,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 3
    argNames:
    - key
    - datum
    - ptr
    argTypes:
    - hashtab_key_t
    - hashtab_datum_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 487
    functionName: filenametr_display
    functionSourceFile: /src/selinux/checkpolicy/test/dispol.c
    functionUses: 0
    functionsReached:
    - ebitmap_for_each_positive_bit
    - fprintf
    - display_id
    linkageType: ''
    returnType: int
    signature: "int filenametr_display(hashtab_key_t key, hashtab_datum_t datum,\n\t\t\t
      \     void *ptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:493,1
    - Dst: hashtab_map
      Src: /src/selinux/checkpolicy/test/dispol.c:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - p
    - fp
    argTypes:
    - policydb_t*
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 497
    functionName: display_filename_trans
    functionSourceFile: /src/selinux/checkpolicy/test/dispol.c
    functionUses: 1
    functionsReached:
    - hashtab_map
    - fprintf
    linkageType: ''
    returnType: void
    signature: void display_filename_trans(policydb_t *p, FILE *fp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/checkpolicy/test/dispol.c:504,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/test/dispol.c:506,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 509
    functionName: menu
    functionSourceFile: /src/selinux/checkpolicy/test/dispol.c
    functionUses: 2
    functionsReached:
    - printf
    linkageType: ''
    returnType: int
    signature: int menu(void)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/test/dispol.c:525,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/test/dispol.c:526,1
    - Dst: usage
      Src: /src/selinux/checkpolicy/test/dispol.c:527,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/test/dispol.c:530,1
    - Dst: strcmp
      Src: /src/selinux/checkpolicy/test/dispol.c:530,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:532,1
    - Dst: usage
      Src: /src/selinux/checkpolicy/test/dispol.c:534,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:539,1
    - Dst: usage
      Src: /src/selinux/checkpolicy/test/dispol.c:540,1
    - Dst: open
      Src: /src/selinux/checkpolicy/test/dispol.c:543,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:545,1
    - Dst: strerror
      Src: /src/selinux/checkpolicy/test/dispol.c:546,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dispol.c:547,1
    - Dst: fstat
      Src: /src/selinux/checkpolicy/test/dispol.c:549,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:550,1
    - Dst: strerror
      Src: /src/selinux/checkpolicy/test/dispol.c:551,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dispol.c:552,1
    - Dst: mmap
      Src: /src/selinux/checkpolicy/test/dispol.c:554,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:557,1
    - Dst: strerror
      Src: /src/selinux/checkpolicy/test/dispol.c:557,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dispol.c:558,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:563,1
    - Dst: policy_file_init
      Src: /src/selinux/checkpolicy/test/dispol.c:564,1
    - Dst: policydb_init
      Src: /src/selinux/checkpolicy/test/dispol.c:568,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:569,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dispol.c:570,1
    - Dst: policydb_read
      Src: /src/selinux/checkpolicy/test/dispol.c:572,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:574,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dispol.c:577,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:581,1
    - Dst: close
      Src: /src/selinux/checkpolicy/test/dispol.c:582,1
    - Dst: menu
      Src: /src/selinux/checkpolicy/test/dispol.c:585,1
    - Dst: puts
      Src: /src/selinux/checkpolicy/test/dispol.c:588,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/test/dispol.c:592,1
    - Dst: fgets
      Src: /src/selinux/checkpolicy/test/dispol.c:593,1
    - Dst: feof
      Src: /src/selinux/checkpolicy/test/dispol.c:594,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:596,1
    - Dst: strerror
      Src: /src/selinux/checkpolicy/test/dispol.c:597,1
    - Dst: display_avtab
      Src: /src/selinux/checkpolicy/test/dispol.c:603,1
    - Dst: display_avtab
      Src: /src/selinux/checkpolicy/test/dispol.c:607,1
    - Dst: display_avtab
      Src: /src/selinux/checkpolicy/test/dispol.c:611,1
    - Dst: display_avtab
      Src: /src/selinux/checkpolicy/test/dispol.c:615,1
    - Dst: display_booleans
      Src: /src/selinux/checkpolicy/test/dispol.c:619,1
    - Dst: display_cond_expressions
      Src: /src/selinux/checkpolicy/test/dispol.c:622,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/test/dispol.c:625,1
    - Dst: fgets
      Src: /src/selinux/checkpolicy/test/dispol.c:626,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:627,1
    - Dst: strerror
      Src: /src/selinux/checkpolicy/test/dispol.c:628,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/test/dispol.c:631,1
    - Dst: strdup
      Src: /src/selinux/checkpolicy/test/dispol.c:633,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:635,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/test/dispol.c:639,1
    - Dst: fgets
      Src: /src/selinux/checkpolicy/test/dispol.c:640,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:641,1
    - Dst: strerror
      Src: /src/selinux/checkpolicy/test/dispol.c:642,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/test/dispol.c:645,1
    - Dst: atoi
      Src: /src/selinux/checkpolicy/test/dispol.c:647,1
    - Dst: change_bool
      Src: /src/selinux/checkpolicy/test/dispol.c:652,1
    - Dst: free
      Src: /src/selinux/checkpolicy/test/dispol.c:653,1
    - Dst: display_role_trans
      Src: /src/selinux/checkpolicy/test/dispol.c:656,1
    - Dst: display_attributes
      Src: /src/selinux/checkpolicy/test/dispol.c:659,1
    - Dst: display_policycaps
      Src: /src/selinux/checkpolicy/test/dispol.c:662,1
    - Dst: display_classes
      Src: /src/selinux/checkpolicy/test/dispol.c:665,1
    - Dst: display_permissive
      Src: /src/selinux/checkpolicy/test/dispol.c:668,1
    - Dst: display_roles
      Src: /src/selinux/checkpolicy/test/dispol.c:671,1
    - Dst: display_types
      Src: /src/selinux/checkpolicy/test/dispol.c:674,1
    - Dst: display_users
      Src: /src/selinux/checkpolicy/test/dispol.c:677,1
    - Dst: display_handle_unknown
      Src: /src/selinux/checkpolicy/test/dispol.c:680,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/test/dispol.c:683,1
    - Dst: fgets
      Src: /src/selinux/checkpolicy/test/dispol.c:684,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:686,1
    - Dst: strerror
      Src: /src/selinux/checkpolicy/test/dispol.c:687,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/test/dispol.c:690,1
    - Dst: strlen
      Src: /src/selinux/checkpolicy/test/dispol.c:692,1
    - Dst: fopen
      Src: /src/selinux/checkpolicy/test/dispol.c:694,1
    - Dst: fprintf
      Src: /src/selinux/checkpolicy/test/dispol.c:695,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/test/dispol.c:700,1
    - Dst: display_filename_trans
      Src: /src/selinux/checkpolicy/test/dispol.c:703,1
    - Dst: policydb_destroy
      Src: /src/selinux/checkpolicy/test/dispol.c:706,1
    - Dst: exit
      Src: /src/selinux/checkpolicy/test/dispol.c:707,1
    - Dst: menu
      Src: /src/selinux/checkpolicy/test/dispol.c:710,1
    - Dst: printf
      Src: /src/selinux/checkpolicy/test/dispol.c:713,1
    - Dst: menu
      Src: /src/selinux/checkpolicy/test/dispol.c:714,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 166
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 511
    functionDepth: 8
    functionLinenumber: 511
    functionLinenumberEnd: 718
    functionName: main
    functionSourceFile: /src/selinux/checkpolicy/test/dispol.c
    functionUses: 6
    functionsReached:
    - feof
    - strcmp
    - strerror
    - display_cond_expressions
    - display_roles
    - fopen
    - change_bool
    - exit
    - fprintf
    - display_permissive
    - policydb_read
    - mmap
    - menu
    - atoi
    - display_users
    - free
    - fstat
    - display_booleans
    - display_filename_trans
    - printf
    - display_handle_unknown
    - strlen
    - policy_file_init
    - display_attributes
    - puts
    - policydb_destroy
    - strdup
    - close
    - display_types
    - usage
    - fgets
    - display_role_trans
    - policydb_init
    - display_policycaps
    - open
    - display_classes
    - display_avtab
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:43,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 60
    functionName: full_write
    functionSourceFile: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t full_write(int fd, const void *buf, size_t count)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memfd_create
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:67,1
    - Dst: full_write
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:71,1
    - Dst: close
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:73,1
    - Dst: fsync
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:77,1
    - Dst: fdopen
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:81,1
    - Dst: close
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:83,1
    - Dst: rewind
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:87,1
    - Dst: queue_create
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:89,1
    - Dst: fclose
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:91,1
    - Dst: yylex_destroy
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:92,1
    - Dst: init_parser
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:99,1
    - Dst: setjmp
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:101,1
    - Dst: queue_destroy
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:102,1
    - Dst: fclose
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:103,1
    - Dst: yylex_destroy
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:104,1
    - Dst: yyparse
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:108,1
    - Dst: queue_destroy
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:110,1
    - Dst: fclose
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:111,1
    - Dst: yylex_destroy
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:112,1
    - Dst: rewind
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:116,1
    - Dst: init_parser
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:117,1
    - Dst: yyrestart
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:118,1
    - Dst: yyparse
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:120,1
    - Dst: queue_destroy
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:122,1
    - Dst: fclose
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:123,1
    - Dst: yylex_destroy
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:124,1
    - Dst: queue_destroy
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:128,1
    - Dst: fclose
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:129,1
    - Dst: yylex_destroy
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:130,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 3
    argNames:
    - p
    - data
    - size
    argTypes:
    - policydb_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 133
    functionName: read_source_policy
    functionSourceFile: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c
    functionUses: 4
    functionsReached:
    - rewind
    - fclose
    - close
    - memfd_create
    - yyrestart
    - yyparse
    - queue_create
    - yylex_destroy
    - fsync
    - init_parser
    - setjmp
    - full_write
    - fdopen
    - queue_destroy
    linkageType: ''
    returnType: int
    signature: int read_source_policy(policydb_t *p, const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: policy_file_init
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:139,1
    - Dst: policydb_write
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - outfp
    - p
    argTypes:
    - FILE*
    - policydb_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 135
    functionDepth: 8
    functionLinenumber: 135
    functionLinenumberEnd: 143
    functionName: write_binary_policy
    functionSourceFile: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c
    functionUses: 3
    functionsReached:
    - policy_file_init
    - policydb_write
    linkageType: ''
    returnType: int
    signature: int write_binary_policy(FILE *outfp, policydb_t *p)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: sepol_debug
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:154,1
    - Dst: policydb_init
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:196,1
    - Dst: policydb_set_target_platform
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:203,1
    - Dst: read_source_policy
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:205,1
    - Dst: link_modules
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:209,1
    - Dst: policydb_init
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:212,1
    - Dst: expand_module
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:215,1
    - Dst: check_assertions
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:219,1
    - Dst: hierarchy_check_constraints
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:222,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:226,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:227,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:228,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:229,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:233,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:234,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:235,1
    - Dst: assert
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:236,1
    - Dst: policydb_load_isids
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:241,1
    - Dst: policydb_optimize
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:245,1
    - Dst: policydb_sort_ocontexts
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:248,1
    - Dst: policydb_validate
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:251,1
    - Dst: abort
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:253,1
    - Dst: fopen
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:255,1
    - Dst: write_binary_policy
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:259,1
    - Dst: abort
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:260,1
    - Dst: sepol_kernel_policydb_to_conf
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:263,1
    - Dst: abort
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:264,1
    - Dst: sepol_kernel_policydb_to_cil
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:267,1
    - Dst: abort
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:268,1
    - Dst: sepol_module_policydb_to_cil
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:271,1
    - Dst: abort
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:272,1
    - Dst: fclose
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:276,1
    - Dst: sepol_sidtab_destroy
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:278,1
    - Dst: policydb_destroy
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:279,1
    - Dst: policydb_destroy
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:280,1
    - Dst: module_compiler_reset
      Src: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c:284,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 101
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (kernpolicydb.handle_unknown == SEPOL_DENY_UNKNOWN)
      pos:
        line_end: 226
        line_start: 226
        source_file: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c
    - condition: (kernpolicydb.target_platform == platform)
      pos:
        line_end: 228
        line_start: 228
        source_file: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c
    - condition: (parsepolicydb.mls == mls)
      pos:
        line_end: 234
        line_start: 234
        source_file: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c
    - condition: (kernpolicydb.policy_type == POLICY_KERN)
      pos:
        line_end: 225
        line_start: 225
        source_file: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c
    - condition: (kernpolicydb.mls == mls)
      pos:
        line_end: 227
        line_start: 227
        source_file: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c
    - condition: (parsepolicydb.policy_type == POLICY_MOD)
      pos:
        line_end: 232
        line_start: 232
        source_file: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c
    - condition: (parsepolicydb.target_platform == platform)
      pos:
        line_end: 235
        line_start: 235
        source_file: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c
    - condition: (parsepolicydb.handle_unknown == SEPOL_DENY_UNKNOWN)
      pos:
        line_end: 233
        line_start: 233
        source_file: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c
    constantsTouched: []
    func_position:
      end: 288
      start: 145
    functionDepth: 10
    functionLinenumber: 145
    functionLinenumberEnd: 288
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c
    functionUses: 0
    functionsReached:
    - read_source_policy
    - policydb_validate
    - policydb_load_isids
    - assert
    - fopen
    - link_modules
    - sepol_kernel_policydb_to_cil
    - abort
    - expand_module
    - policydb_optimize
    - policydb_set_target_platform
    - policydb_sort_ocontexts
    - check_assertions
    - sepol_debug
    - policydb_destroy
    - module_compiler_reset
    - write_binary_policy
    - sepol_module_policydb_to_cil
    - fclose
    - hierarchy_check_constraints
    - policydb_init
    - sepol_kernel_policydb_to_conf
    - sepol_sidtab_destroy
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msgid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    functionName: _
    functionSourceFile: /src/selinux/sandbox/seunshare.c
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(msgid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msgid
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: _
    functionSourceFile: /src/selinux/sandbox/seunshare.c
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _(msgid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - args
    - ','
    - index
    - ','
    - src
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: strdup_or_err
    functionSourceFile: /src/selinux/sandbox/seunshare.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: strdup_or_err(args, index, src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: capng_have_capabilities
      Src: /src/selinux/sandbox/seunshare.c:81,1
    - Dst: capng_clear
      Src: /src/selinux/sandbox/seunshare.c:83,1
    - Dst: capng_lock
      Src: /src/selinux/sandbox/seunshare.c:84,1
    - Dst: capng_apply
      Src: /src/selinux/sandbox/seunshare.c:84,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:85,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 89
    functionName: drop_caps
    functionSourceFile: /src/selinux/sandbox/seunshare.c
    functionUses: 0
    functionsReached:
    - capng_apply
    - capng_lock
    - capng_have_capabilities
    - capng_clear
    - fprintf
    - _
    linkageType: ''
    returnType: int
    signature: int drop_caps(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: drop_caps
      Src: /src/selinux/sandbox/seunshare.c:96,1
    - Dst: setresuid
      Src: /src/selinux/sandbox/seunshare.c:96,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:97,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - uid
    argTypes:
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: drop_privs
    functionSourceFile: /src/selinux/sandbox/seunshare.c
    functionUses: 0
    functionsReached:
    - drop_caps
    - setresuid
    - fprintf
    - _
    linkageType: ''
    returnType: int
    signature: int drop_privs(uid_t uid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kill
      Src: /src/selinux/sandbox/seunshare.c:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: handler
    functionSourceFile: /src/selinux/sandbox/seunshare.c
    functionUses: 1
    functionsReached:
    - kill
    linkageType: ''
    returnType: void
    signature: void handler(int sig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/selinux/sandbox/seunshare.c:120,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:121,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:121,1
    - Dst: sigprocmask
      Src: /src/selinux/sandbox/seunshare.c:125,1
    - Dst: signal
      Src: /src/selinux/sandbox/seunshare.c:128,1
    - Dst: perror
      Src: /src/selinux/sandbox/seunshare.c:129,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:129,1
    - Dst: signal
      Src: /src/selinux/sandbox/seunshare.c:133,1
    - Dst: perror
      Src: /src/selinux/sandbox/seunshare.c:134,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 139
    functionName: set_signal_handles
    functionSourceFile: /src/selinux/sandbox/seunshare.c
    functionUses: 1
    functionsReached:
    - sigemptyset
    - signal
    - sigprocmask
    - perror
    - fprintf
    - _
    linkageType: ''
    returnType: int
    signature: int set_signal_handles(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - status
    - ','
    - retval
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 152
    functionName: status_to_retval
    functionSourceFile: /src/selinux/sandbox/seunshare.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: status_to_retval(status, retval)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/sandbox/seunshare.c:162,1
    - Dst: fork
      Src: /src/selinux/sandbox/seunshare.c:164,1
    - Dst: perror
      Src: /src/selinux/sandbox/seunshare.c:166,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:166,1
    - Dst: drop_privs
      Src: /src/selinux/sandbox/seunshare.c:171,1
    - Dst: exit
      Src: /src/selinux/sandbox/seunshare.c:172,1
    - Dst: execv
      Src: /src/selinux/sandbox/seunshare.c:174,1
    - Dst: exit
      Src: /src/selinux/sandbox/seunshare.c:175,1
    - Dst: waitpid
      Src: /src/selinux/sandbox/seunshare.c:178,1
    - Dst: status_to_retval
      Src: /src/selinux/sandbox/seunshare.c:179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - cmd
    - uid
    argTypes:
    - char**
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 181
    functionName: spawn_command
    functionSourceFile: /src/selinux/sandbox/seunshare.c
    functionUses: 0
    functionsReached:
    - status_to_retval
    - fork
    - drop_privs
    - waitpid
    - perror
    - exit
    - printf
    - execv
    - _
    linkageType: ''
    returnType: int
    signature: int spawn_command(char **cmd, uid_t uid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S_ISLNK
      Src: /src/selinux/sandbox/seunshare.c:189,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:190,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:190,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:195,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:195,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - uid
    - file
    - st
    argTypes:
    - uid_t
    - char*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 200
    functionName: check_owner_uid
    functionSourceFile: /src/selinux/sandbox/seunshare.c
    functionUses: 0
    functionsReached:
    - S_ISLNK
    - fprintf
    - _
    linkageType: ''
    returnType: int
    signature: int check_owner_uid(uid_t uid, const char *file, struct stat *st)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: S_ISLNK
      Src: /src/selinux/sandbox/seunshare.c:204,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:205,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:205,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:210,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - gid
    - file
    - st
    argTypes:
    - gid_t
    - char*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 215
    functionName: check_owner_gid
    functionSourceFile: /src/selinux/sandbox/seunshare.c
    functionUses: 0
    functionsReached:
    - S_ISLNK
    - fprintf
    - _
    linkageType: ''
    returnType: int
    signature: int check_owner_gid(gid_t gid, const char *file, struct stat *st)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/selinux/sandbox/seunshare.c:235,1
    - Dst: open
      Src: /src/selinux/sandbox/seunshare.c:238,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:240,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:240,1
    - Dst: fstat
      Src: /src/selinux/sandbox/seunshare.c:244,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:245,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:245,1
    - Dst: close
      Src: /src/selinux/sandbox/seunshare.c:246,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - dir
    - st_out
    argTypes:
    - char*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 253
    functionName: pin_dir
    functionSourceFile: /src/selinux/sandbox/seunshare.c
    functionUses: 0
    functionsReached:
    - close
    - syscall
    - fstat
    - open
    - fprintf
    - _
    linkageType: ''
    returnType: int
    signature: int pin_dir(const char *dir, struct stat *st_out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getusershell
      Src: /src/selinux/sandbox/seunshare.c:267,1
    - Dst: strcmp
      Src: /src/selinux/sandbox/seunshare.c:273,1
    - Dst: endusershell
      Src: /src/selinux/sandbox/seunshare.c:278,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - shell_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 280
    functionName: verify_shell
    functionSourceFile: /src/selinux/sandbox/seunshare.c
    functionUses: 1
    functionsReached:
    - endusershell
    - strcmp
    - getusershell
    linkageType: ''
    returnType: bool
    signature: bool verify_shell(const char *shell_name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/sandbox/seunshare.c:295,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:295,1
    - Dst: snprintf
      Src: /src/selinux/sandbox/seunshare.c:297,1
    - Dst: snprintf
      Src: /src/selinux/sandbox/seunshare.c:298,1
    - Dst: mount
      Src: /src/selinux/sandbox/seunshare.c:301,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:302,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:302,1
    - Dst: mount
      Src: /src/selinux/sandbox/seunshare.c:310,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:312,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:312,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - src
    - src_fd
    - dst
    - dst_fd
    - bind_flags
    - sec_flags
    argTypes:
    - char*
    - int
    - char*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 317
    functionName: seunshare_mount
    functionSourceFile: /src/selinux/sandbox/seunshare.c
    functionUses: 0
    functionsReached:
    - snprintf
    - mount
    - printf
    - fprintf
    - _
    linkageType: ''
    returnType: int
    signature: "int seunshare_mount(const char *src, int src_fd, const char *dst,\n\t\t\t
      \  int dst_fd, int bind_flags, int sec_flags)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/sandbox/seunshare.c:332,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:332,1
    - Dst: openat
      Src: /src/selinux/sandbox/seunshare.c:334,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:336,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:336,1
    - Dst: fstat
      Src: /src/selinux/sandbox/seunshare.c:340,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:341,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:341,1
    - Dst: check_owner_uid
      Src: /src/selinux/sandbox/seunshare.c:344,1
    - Dst: openat
      Src: /src/selinux/sandbox/seunshare.c:347,1
    - Dst: openat
      Src: /src/selinux/sandbox/seunshare.c:349,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:354,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:354,1
    - Dst: fstat
      Src: /src/selinux/sandbox/seunshare.c:358,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:359,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:359,1
    - Dst: check_owner_uid
      Src: /src/selinux/sandbox/seunshare.c:362,1
    - Dst: snprintf
      Src: /src/selinux/sandbox/seunshare.c:365,1
    - Dst: snprintf
      Src: /src/selinux/sandbox/seunshare.c:366,1
    - Dst: mount
      Src: /src/selinux/sandbox/seunshare.c:369,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:370,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:370,1
    - Dst: close
      Src: /src/selinux/sandbox/seunshare.c:378,1
    - Dst: close
      Src: /src/selinux/sandbox/seunshare.c:380,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 48
    argCount: 5
    argNames:
    - uid
    - src_dirfd
    - src_name
    - dst_dirfd
    - dst_name
    argTypes:
    - uid_t
    - int
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 382
    functionName: seunshare_mount_file
    functionSourceFile: /src/selinux/sandbox/seunshare.c
    functionUses: 0
    functionsReached:
    - close
    - openat
    - snprintf
    - check_owner_uid
    - fstat
    - mount
    - printf
    - fprintf
    - _
    linkageType: ''
    returnType: int
    signature: "int seunshare_mount_file(uid_t uid, int src_dirfd, const char *src_name,\n\t\t\t\tint
      dst_dirfd, const char *dst_name)"
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 409
    functionName: bad_path
    functionSourceFile: /src/selinux/sandbox/seunshare.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int bad_path(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/sandbox/seunshare.c:417,1
    - Dst: free
      Src: /src/selinux/sandbox/seunshare.c:420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - args
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 421
    functionName: free_args
    functionSourceFile: /src/selinux/sandbox/seunshare.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void free_args(char **args)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: asprintf
      Src: /src/selinux/sandbox/seunshare.c:433,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:434,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:434,1
    - Dst: glob
      Src: /src/selinux/sandbox/seunshare.c:438,1
    - Dst: free
      Src: /src/selinux/sandbox/seunshare.c:439,1
    - Dst: free
      Src: /src/selinux/sandbox/seunshare.c:444,1
    - Dst: calloc
      Src: /src/selinux/sandbox/seunshare.c:448,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:450,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:450,1
    - Dst: globfree
      Src: /src/selinux/sandbox/seunshare.c:451,1
    - Dst: strdup_or_err
      Src: /src/selinux/sandbox/seunshare.c:456,1
    - Dst: strdup_or_err
      Src: /src/selinux/sandbox/seunshare.c:457,1
    - Dst: strdup_or_err
      Src: /src/selinux/sandbox/seunshare.c:458,1
    - Dst: bad_path
      Src: /src/selinux/sandbox/seunshare.c:462,1
    - Dst: strdup_or_err
      Src: /src/selinux/sandbox/seunshare.c:464,1
    - Dst: strdup_or_err
      Src: /src/selinux/sandbox/seunshare.c:467,1
    - Dst: globfree
      Src: /src/selinux/sandbox/seunshare.c:470,1
    - Dst: globfree
      Src: /src/selinux/sandbox/seunshare.c:473,1
    - Dst: free_args
      Src: /src/selinux/sandbox/seunshare.c:475,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 3
    argNames:
    - src
    - dst
    - cmd
    argTypes:
    - char*
    - char*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 479
    functionName: rsynccmd
    functionSourceFile: /src/selinux/sandbox/seunshare.c
    functionUses: 0
    functionsReached:
    - strdup_or_err
    - glob
    - asprintf
    - globfree
    - free
    - calloc
    - bad_path
    - free_args
    - fprintf
    - _
    linkageType: ''
    returnType: int
    signature: int rsynccmd(const char *src, const char *dst, char ***cmd)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: fstatat
      Src: /src/selinux/sandbox/seunshare.c:494,1
    - Dst: perror
      Src: /src/selinux/sandbox/seunshare.c:498,1
    - Dst: S_ISDIR
      Src: /src/selinux/sandbox/seunshare.c:502,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:504,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:505,1
    - Dst: openat
      Src: /src/selinux/sandbox/seunshare.c:509,1
    - Dst: perror
      Src: /src/selinux/sandbox/seunshare.c:512,1
    - Dst: fdopendir
      Src: /src/selinux/sandbox/seunshare.c:516,1
    - Dst: perror
      Src: /src/selinux/sandbox/seunshare.c:518,1
    - Dst: close
      Src: /src/selinux/sandbox/seunshare.c:519,1
    - Dst: readdir
      Src: /src/selinux/sandbox/seunshare.c:525,1
    - Dst: strcmp
      Src: /src/selinux/sandbox/seunshare.c:526,1
    - Dst: strcmp
      Src: /src/selinux/sandbox/seunshare.c:527,1
    - Dst: rm_rf
      Src: /src/selinux/sandbox/seunshare.c:531,1
    - Dst: dirfd
      Src: /src/selinux/sandbox/seunshare.c:531,1
    - Dst: closedir
      Src: /src/selinux/sandbox/seunshare.c:537,1
    - Dst: unlinkat
      Src: /src/selinux/sandbox/seunshare.c:540,1
    - Dst: perror
      Src: /src/selinux/sandbox/seunshare.c:541,1
    - Dst: unlinkat
      Src: /src/selinux/sandbox/seunshare.c:550,1
    - Dst: perror
      Src: /src/selinux/sandbox/seunshare.c:551,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 4
    argNames:
    - targetfd
    - path
    - depth
    - removetop
    argTypes:
    - int
    - char*
    - unsigned int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 557
    functionName: rm_rf
    functionSourceFile: /src/selinux/sandbox/seunshare.c
    functionUses: 1
    functionsReached:
    - readdir
    - rm_rf
    - close
    - openat
    - dirfd
    - strcmp
    - fstatat
    - perror
    - closedir
    - S_ISDIR
    - fdopendir
    - unlinkat
    - fprintf
    - _
    linkageType: ''
    returnType: bool
    signature: "bool rm_rf(int targetfd, const char *path, unsigned int depth,\n\t\t
      \ bool removetop)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: setfsuid
      Src: /src/selinux/sandbox/seunshare.c:568,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:571,1
    - Dst: rc::rc
      Src: /src/selinux/sandbox/seunshare.c:572,1
    - Dst: setfsuid
      Src: /src/selinux/sandbox/seunshare.c:581,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:584,1
    - Dst: rc::rc
      Src: /src/selinux/sandbox/seunshare.c:585,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - old
    - new
    argTypes:
    - uid_t
    - uid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 595
    functionName: setfsuid_checked
    functionSourceFile: /src/selinux/sandbox/seunshare.c
    functionUses: 0
    functionsReached:
    - setfsuid
    - fprintf
    - rc::rc
    linkageType: ''
    returnType: int
    signature: int setfsuid_checked(uid_t old, uid_t new)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/selinux/sandbox/seunshare.c:610,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:612,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:612,1
    - Dst: strdup_or_err
      Src: /src/selinux/sandbox/seunshare.c:616,1
    - Dst: strdup_or_err
      Src: /src/selinux/sandbox/seunshare.c:617,1
    - Dst: strdup_or_err
      Src: /src/selinux/sandbox/seunshare.c:618,1
    - Dst: strdup_or_err
      Src: /src/selinux/sandbox/seunshare.c:619,1
    - Dst: strdup_or_err
      Src: /src/selinux/sandbox/seunshare.c:620,1
    - Dst: asprintf
      Src: /src/selinux/sandbox/seunshare.c:621,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:622,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:622,1
    - Dst: free_args
      Src: /src/selinux/sandbox/seunshare.c:623,1
    - Dst: asprintf
      Src: /src/selinux/sandbox/seunshare.c:626,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:627,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:627,1
    - Dst: free_args
      Src: /src/selinux/sandbox/seunshare.c:628,1
    - Dst: spawn_command
      Src: /src/selinux/sandbox/seunshare.c:633,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:634,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:635,1
    - Dst: free_args
      Src: /src/selinux/sandbox/seunshare.c:638,1
    - Dst: setfsuid_checked
      Src: /src/selinux/sandbox/seunshare.c:642,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:643,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:644,1
    - Dst: rm_rf
      Src: /src/selinux/sandbox/seunshare.c:647,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:648,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:649,1
    - Dst: setfsuid_checked
      Src: /src/selinux/sandbox/seunshare.c:655,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:656,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:657,1
    - Dst: rmdir
      Src: /src/selinux/sandbox/seunshare.c:660,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:661,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:661,1
    - Dst: free_args
      Src: /src/selinux/sandbox/seunshare.c:669,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 51
    argCount: 4
    argNames:
    - tmpdir
    - src
    - pwd
    - copy_content
    argTypes:
    - char*
    - char*
    - struct passwd*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 602
    functionDepth: 3
    functionLinenumber: 602
    functionLinenumberEnd: 671
    functionName: cleanup_tmpdir
    functionSourceFile: /src/selinux/sandbox/seunshare.c
    functionUses: 0
    functionsReached:
    - strdup_or_err
    - rm_rf
    - asprintf
    - setfsuid_checked
    - rmdir
    - calloc
    - spawn_command
    - free_args
    - fprintf
    - _
    linkageType: ''
    returnType: int
    signature: "int cleanup_tmpdir(const char *tmpdir, const char *src,\n\t\t\t  struct
      passwd *pwd, int copy_content)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: setfsuid_checked
      Src: /src/selinux/sandbox/seunshare.c:692,1
    - Dst: pin_dir
      Src: /src/selinux/sandbox/seunshare.c:694,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:698,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:699,1
    - Dst: fgetfilecon
      Src: /src/selinux/sandbox/seunshare.c:703,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:704,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:705,1
    - Dst: setfsuid_checked
      Src: /src/selinux/sandbox/seunshare.c:709,1
    - Dst: asprintf
      Src: /src/selinux/sandbox/seunshare.c:713,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:714,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:714,1
    - Dst: mkdtemp
      Src: /src/selinux/sandbox/seunshare.c:718,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:719,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:719,1
    - Dst: strerror
      Src: /src/selinux/sandbox/seunshare.c:720,1
    - Dst: pin_dir
      Src: /src/selinux/sandbox/seunshare.c:727,1
    - Dst: check_owner_uid
      Src: /src/selinux/sandbox/seunshare.c:731,1
    - Dst: check_owner_gid
      Src: /src/selinux/sandbox/seunshare.c:734,1
    - Dst: getgid
      Src: /src/selinux/sandbox/seunshare.c:734,1
    - Dst: fchmod
      Src: /src/selinux/sandbox/seunshare.c:738,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:739,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:739,1
    - Dst: strerror
      Src: /src/selinux/sandbox/seunshare.c:740,1
    - Dst: fstat
      Src: /src/selinux/sandbox/seunshare.c:744,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:745,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:745,1
    - Dst: strerror
      Src: /src/selinux/sandbox/seunshare.c:746,1
    - Dst: fsetfilecon
      Src: /src/selinux/sandbox/seunshare.c:752,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:753,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:754,1
    - Dst: strerror
      Src: /src/selinux/sandbox/seunshare.c:755,1
    - Dst: setfsuid_checked
      Src: /src/selinux/sandbox/seunshare.c:760,1
    - Dst: rsynccmd
      Src: /src/selinux/sandbox/seunshare.c:763,1
    - Dst: setfsuid_checked
      Src: /src/selinux/sandbox/seunshare.c:768,1
    - Dst: spawn_command
      Src: /src/selinux/sandbox/seunshare.c:771,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:772,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:773,1
    - Dst: cleanup_tmpdir
      Src: /src/selinux/sandbox/seunshare.c:774,1
    - Dst: setfsuid
      Src: /src/selinux/sandbox/seunshare.c:788,1
    - Dst: rmdir
      Src: /src/selinux/sandbox/seunshare.c:789,1
    - Dst: free
      Src: /src/selinux/sandbox/seunshare.c:791,1
    - Dst: close
      Src: /src/selinux/sandbox/seunshare.c:795,1
    - Dst: close
      Src: /src/selinux/sandbox/seunshare.c:797,1
    - Dst: free_args
      Src: /src/selinux/sandbox/seunshare.c:798,1
    - Dst: freecon
      Src: /src/selinux/sandbox/seunshare.c:799,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 98
    argCount: 5
    argNames:
    - src
    - src_st
    - out_st
    - pwd
    - execcon
    argTypes:
    - char*
    - struct stat*
    - struct stat*
    - struct passwd*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 679
    functionDepth: 5
    functionLinenumber: 679
    functionLinenumberEnd: 802
    functionName: create_tmpdir
    functionSourceFile: /src/selinux/sandbox/seunshare.c
    functionUses: 0
    functionsReached:
    - check_owner_uid
    - strerror
    - cleanup_tmpdir
    - spawn_command
    - fprintf
    - fsetfilecon
    - free
    - fstat
    - asprintf
    - fchmod
    - freecon
    - rmdir
    - fgetfilecon
    - getgid
    - mkdtemp
    - free_args
    - setfsuid
    - rsynccmd
    - close
    - setfsuid_checked
    - pin_dir
    - check_owner_gid
    - _
    linkageType: ''
    returnType: char
    signature: "char *create_tmpdir(const char *src, struct stat *src_st,\n\t\t\t
      \  struct stat *out_st, struct passwd *pwd,\n\t\t\t   const char *execcon)"
  - BBCount: 99
    BranchProfiles: []
    Callsites:
    - Dst: getuid
      Src: /src/selinux/sandbox/seunshare.c:835,1
    - Dst: setlocale
      Src: /src/selinux/sandbox/seunshare.c:844,1
    - Dst: bindtextdomain
      Src: /src/selinux/sandbox/seunshare.c:845,1
    - Dst: textdomain
      Src: /src/selinux/sandbox/seunshare.c:846,1
    - Dst: getpwuid
      Src: /src/selinux/sandbox/seunshare.c:849,1
    - Dst: perror
      Src: /src/selinux/sandbox/seunshare.c:851,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:851,1
    - Dst: verify_shell
      Src: /src/selinux/sandbox/seunshare.c:855,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:856,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:856,1
    - Dst: getopt_long
      Src: /src/selinux/sandbox/seunshare.c:861,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:901,1
    - Dst: strchr
      Src: /src/selinux/sandbox/seunshare.c:906,1
    - Dst: strcmp
      Src: /src/selinux/sandbox/seunshare.c:907,1
    - Dst: strchr
      Src: /src/selinux/sandbox/seunshare.c:908,1
    - Dst: strcmp
      Src: /src/selinux/sandbox/seunshare.c:909,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:910,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:911,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:916,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:917,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:923,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:923,1
    - Dst: is_selinux_enabled
      Src: /src/selinux/sandbox/seunshare.c:928,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:929,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:930,1
    - Dst: set_signal_handles
      Src: /src/selinux/sandbox/seunshare.c:934,1
    - Dst: setfsuid_checked
      Src: /src/selinux/sandbox/seunshare.c:941,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:942,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:942,1
    - Dst: pin_dir
      Src: /src/selinux/sandbox/seunshare.c:955,1
    - Dst: check_owner_uid
      Src: /src/selinux/sandbox/seunshare.c:958,1
    - Dst: close
      Src: /src/selinux/sandbox/seunshare.c:960,1
    - Dst: pin_dir
      Src: /src/selinux/sandbox/seunshare.c:963,1
    - Dst: check_owner_uid
      Src: /src/selinux/sandbox/seunshare.c:966,1
    - Dst: close
      Src: /src/selinux/sandbox/seunshare.c:968,1
    - Dst: pin_dir
      Src: /src/selinux/sandbox/seunshare.c:971,1
    - Dst: check_owner_uid
      Src: /src/selinux/sandbox/seunshare.c:974,1
    - Dst: close
      Src: /src/selinux/sandbox/seunshare.c:976,1
    - Dst: setfsuid_checked
      Src: /src/selinux/sandbox/seunshare.c:979,1
    - Dst: create_tmpdir
      Src: /src/selinux/sandbox/seunshare.c:984,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:987,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:988,1
    - Dst: fork
      Src: /src/selinux/sandbox/seunshare.c:994,1
    - Dst: perror
      Src: /src/selinux/sandbox/seunshare.c:996,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:996,1
    - Dst: unshare
      Src: /src/selinux/sandbox/seunshare.c:1012,1
    - Dst: perror
      Src: /src/selinux/sandbox/seunshare.c:1013,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:1013,1
    - Dst: mount
      Src: /src/selinux/sandbox/seunshare.c:1019,1
    - Dst: setfsuid_checked
      Src: /src/selinux/sandbox/seunshare.c:1024,1
    - Dst: pin_dir
      Src: /src/selinux/sandbox/seunshare.c:1034,1
    - Dst: check_owner_uid
      Src: /src/selinux/sandbox/seunshare.c:1040,1
    - Dst: pin_dir
      Src: /src/selinux/sandbox/seunshare.c:1048,1
    - Dst: check_owner_uid
      Src: /src/selinux/sandbox/seunshare.c:1060,1
    - Dst: pin_dir
      Src: /src/selinux/sandbox/seunshare.c:1064,1
    - Dst: check_owner_uid
      Src: /src/selinux/sandbox/seunshare.c:1070,1
    - Dst: realpath
      Src: /src/selinux/sandbox/seunshare.c:1074,1
    - Dst: pin_dir
      Src: /src/selinux/sandbox/seunshare.c:1078,1
    - Dst: check_owner_uid
      Src: /src/selinux/sandbox/seunshare.c:1081,1
    - Dst: getenv
      Src: /src/selinux/sandbox/seunshare.c:1084,1
    - Dst: strdup
      Src: /src/selinux/sandbox/seunshare.c:1085,1
    - Dst: perror
      Src: /src/selinux/sandbox/seunshare.c:1086,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:1086,1
    - Dst: asprintf
      Src: /src/selinux/sandbox/seunshare.c:1090,1
    - Dst: perror
      Src: /src/selinux/sandbox/seunshare.c:1091,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:1091,1
    - Dst: pin_dir
      Src: /src/selinux/sandbox/seunshare.c:1097,1
    - Dst: check_owner_uid
      Src: /src/selinux/sandbox/seunshare.c:1100,1
    - Dst: getenv
      Src: /src/selinux/sandbox/seunshare.c:1104,1
    - Dst: strdup
      Src: /src/selinux/sandbox/seunshare.c:1105,1
    - Dst: perror
      Src: /src/selinux/sandbox/seunshare.c:1107,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:1107,1
    - Dst: seunshare_mount_file
      Src: /src/selinux/sandbox/seunshare.c:1114,1
    - Dst: seunshare_mount_file
      Src: /src/selinux/sandbox/seunshare.c:1120,1
    - Dst: seunshare_mount
      Src: /src/selinux/sandbox/seunshare.c:1128,1
    - Dst: seunshare_mount
      Src: /src/selinux/sandbox/seunshare.c:1132,1
    - Dst: open
      Src: /src/selinux/sandbox/seunshare.c:1136,1
    - Dst: perror
      Src: /src/selinux/sandbox/seunshare.c:1139,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:1139,1
    - Dst: seunshare_mount
      Src: /src/selinux/sandbox/seunshare.c:1143,1
    - Dst: open
      Src: /src/selinux/sandbox/seunshare.c:1148,1
    - Dst: perror
      Src: /src/selinux/sandbox/seunshare.c:1152,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:1152,1
    - Dst: seunshare_mount
      Src: /src/selinux/sandbox/seunshare.c:1156,1
    - Dst: drop_privs
      Src: /src/selinux/sandbox/seunshare.c:1162,1
    - Dst: strcmp
      Src: /src/selinux/sandbox/seunshare.c:1168,1
    - Dst: getenv
      Src: /src/selinux/sandbox/seunshare.c:1170,1
    - Dst: strdup
      Src: /src/selinux/sandbox/seunshare.c:1173,1
    - Dst: perror
      Src: /src/selinux/sandbox/seunshare.c:1174,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:1174,1
    - Dst: getenv
      Src: /src/selinux/sandbox/seunshare.c:1179,1
    - Dst: strdup
      Src: /src/selinux/sandbox/seunshare.c:1180,1
    - Dst: perror
      Src: /src/selinux/sandbox/seunshare.c:1181,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:1181,1
    - Dst: getenv
      Src: /src/selinux/sandbox/seunshare.c:1188,1
    - Dst: strdup
      Src: /src/selinux/sandbox/seunshare.c:1189,1
    - Dst: perror
      Src: /src/selinux/sandbox/seunshare.c:1190,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:1190,1
    - Dst: clearenv
      Src: /src/selinux/sandbox/seunshare.c:1195,1
    - Dst: perror
      Src: /src/selinux/sandbox/seunshare.c:1196,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:1196,1
    - Dst: setenv
      Src: /src/selinux/sandbox/seunshare.c:1200,1
    - Dst: setenv
      Src: /src/selinux/sandbox/seunshare.c:1203,1
    - Dst: setenv
      Src: /src/selinux/sandbox/seunshare.c:1207,1
    - Dst: setenv
      Src: /src/selinux/sandbox/seunshare.c:1210,1
    - Dst: setenv
      Src: /src/selinux/sandbox/seunshare.c:1212,1
    - Dst: setenv
      Src: /src/selinux/sandbox/seunshare.c:1213,1
    - Dst: setenv
      Src: /src/selinux/sandbox/seunshare.c:1214,1
    - Dst: setenv
      Src: /src/selinux/sandbox/seunshare.c:1215,1
    - Dst: setenv
      Src: /src/selinux/sandbox/seunshare.c:1216,1
    - Dst: setenv
      Src: /src/selinux/sandbox/seunshare.c:1217,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:1219,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:1219,1
    - Dst: chdir
      Src: /src/selinux/sandbox/seunshare.c:1223,1
    - Dst: perror
      Src: /src/selinux/sandbox/seunshare.c:1224,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:1224,1
    - Dst: setsid
      Src: /src/selinux/sandbox/seunshare.c:1227,1
    - Dst: setcon
      Src: /src/selinux/sandbox/seunshare.c:1233,1
    - Dst: setexeccon
      Src: /src/selinux/sandbox/seunshare.c:1235,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:1236,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:1237,1
    - Dst: strerror
      Src: /src/selinux/sandbox/seunshare.c:1238,1
    - Dst: execv
      Src: /src/selinux/sandbox/seunshare.c:1244,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:1245,1
    - Dst: _
      Src: /src/selinux/sandbox/seunshare.c:1245,1
    - Dst: strerror
      Src: /src/selinux/sandbox/seunshare.c:1246,1
    - Dst: close
      Src: /src/selinux/sandbox/seunshare.c:1249,1
    - Dst: close
      Src: /src/selinux/sandbox/seunshare.c:1251,1
    - Dst: close
      Src: /src/selinux/sandbox/seunshare.c:1253,1
    - Dst: close
      Src: /src/selinux/sandbox/seunshare.c:1255,1
    - Dst: close
      Src: /src/selinux/sandbox/seunshare.c:1257,1
    - Dst: close
      Src: /src/selinux/sandbox/seunshare.c:1259,1
    - Dst: close
      Src: /src/selinux/sandbox/seunshare.c:1261,1
    - Dst: free
      Src: /src/selinux/sandbox/seunshare.c:1262,1
    - Dst: free
      Src: /src/selinux/sandbox/seunshare.c:1263,1
    - Dst: free
      Src: /src/selinux/sandbox/seunshare.c:1264,1
    - Dst: free
      Src: /src/selinux/sandbox/seunshare.c:1265,1
    - Dst: free
      Src: /src/selinux/sandbox/seunshare.c:1266,1
    - Dst: exit
      Src: /src/selinux/sandbox/seunshare.c:1267,1
    - Dst: drop_caps
      Src: /src/selinux/sandbox/seunshare.c:1270,1
    - Dst: waitpid
      Src: /src/selinux/sandbox/seunshare.c:1274,1
    - Dst: status_to_retval
      Src: /src/selinux/sandbox/seunshare.c:1275,1
    - Dst: kill
      Src: /src/selinux/sandbox/seunshare.c:1278,1
    - Dst: fprintf
      Src: /src/selinux/sandbox/seunshare.c:1281,1
    - Dst: cleanup_tmpdir
      Src: /src/selinux/sandbox/seunshare.c:1286,1
    - Dst: free
      Src: /src/selinux/sandbox/seunshare.c:1289,1
    CyclomaticComplexity: 158
    EdgeCount: 158
    ICount: 341
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 804
    functionDepth: 6
    functionLinenumber: 804
    functionLinenumberEnd: 1291
    functionName: main
    functionSourceFile: /src/selinux/sandbox/seunshare.c
    functionUses: 7
    functionsReached:
    - bindtextdomain
    - strchr
    - check_owner_uid
    - chdir
    - strcmp
    - strerror
    - clearenv
    - unshare
    - cleanup_tmpdir
    - exit
    - fprintf
    - getpwuid
    - execv
    - setsid
    - getuid
    - status_to_retval
    - seunshare_mount
    - fork
    - seunshare_mount_file
    - kill
    - realpath
    - waitpid
    - textdomain
    - getenv
    - setenv
    - free
    - mount
    - is_selinux_enabled
    - asprintf
    - setexeccon
    - setcon
    - strdup
    - getopt_long
    - close
    - verify_shell
    - setfsuid_checked
    - drop_privs
    - drop_caps
    - setlocale
    - perror
    - pin_dir
    - open
    - set_signal_handles
    - create_tmpdir
    - _
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: watch_list_isempty
    functionSourceFile: /src/selinux/restorecond/watch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int watch_list_isempty(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: openat
      Src: /src/selinux/restorecond/watch.c:55,1
    - Dst: fcntl
      Src: /src/selinux/restorecond/watch.c:57,1
    - Dst: fstat
      Src: /src/selinux/restorecond/watch.c:61,1
    - Dst: close
      Src: /src/selinux/restorecond/watch.c:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - dfd
    - name
    - sb
    argTypes:
    - int
    - char*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 67
    functionName: open_final
    functionSourceFile: /src/selinux/restorecond/watch.c
    functionUses: 1
    functionsReached:
    - close
    - fcntl
    - fstat
    - openat
    linkageType: ''
    returnType: int
    signature: int open_final(int dfd, const char *name, struct stat *sb)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: syscall
      Src: /src/selinux/restorecond/watch.c:85,1
    - Dst: fstat
      Src: /src/selinux/restorecond/watch.c:87,1
    - Dst: close
      Src: /src/selinux/restorecond/watch.c:88,1
    - Dst: strdup
      Src: /src/selinux/restorecond/watch.c:98,1
    - Dst: open
      Src: /src/selinux/restorecond/watch.c:103,1
    - Dst: open
      Src: /src/selinux/restorecond/watch.c:106,1
    - Dst: free
      Src: /src/selinux/restorecond/watch.c:110,1
    - Dst: strchr
      Src: /src/selinux/restorecond/watch.c:118,1
    - Dst: openat
      Src: /src/selinux/restorecond/watch.c:125,1
    - Dst: close
      Src: /src/selinux/restorecond/watch.c:128,1
    - Dst: free
      Src: /src/selinux/restorecond/watch.c:130,1
    - Dst: open_final
      Src: /src/selinux/restorecond/watch.c:139,1
    - Dst: close
      Src: /src/selinux/restorecond/watch.c:140,1
    - Dst: free
      Src: /src/selinux/restorecond/watch.c:141,1
    - Dst: open_final
      Src: /src/selinux/restorecond/watch.c:145,1
    - Dst: close
      Src: /src/selinux/restorecond/watch.c:146,1
    - Dst: free
      Src: /src/selinux/restorecond/watch.c:147,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 58
    argCount: 2
    argNames:
    - path
    - sb
    argTypes:
    - char*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 149
    functionName: safe_open
    functionSourceFile: /src/selinux/restorecond/watch.c
    functionUses: 1
    functionsReached:
    - close
    - strchr
    - openat
    - syscall
    - free
    - open
    - fstat
    - open_final
    - strdup
    linkageType: ''
    returnType: int
    signature: int safe_open(const char *path, struct stat *sb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: safe_open
      Src: /src/selinux/restorecond/watch.c:156,1
    - Dst: S_ISDIR
      Src: /src/selinux/restorecond/watch.c:160,1
    - Dst: close
      Src: /src/selinux/restorecond/watch.c:161,1
    - Dst: openat
      Src: /src/selinux/restorecond/watch.c:166,1
    - Dst: close
      Src: /src/selinux/restorecond/watch.c:167,1
    - Dst: fdopendir
      Src: /src/selinux/restorecond/watch.c:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 171
    functionName: nofollow_opendir
    functionSourceFile: /src/selinux/restorecond/watch.c
    functionUses: 0
    functionsReached:
    - close
    - openat
    - safe_open
    - S_ISDIR
    - fdopendir
    linkageType: ''
    returnType: void
    signature: void *nofollow_opendir(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: readdir
      Src: /src/selinux/restorecond/watch.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: nofollow_readdir
    functionSourceFile: /src/selinux/restorecond/watch.c
    functionUses: 0
    functionsReached:
    - readdir
    linkageType: ''
    returnType: struct dirent
    signature: struct dirent *nofollow_readdir(void *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: closedir
      Src: /src/selinux/restorecond/watch.c:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: nofollow_closedir
    functionSourceFile: /src/selinux/restorecond/watch.c
    functionUses: 0
    functionsReached:
    - closedir
    linkageType: ''
    returnType: void
    signature: void nofollow_closedir(void *d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lstat
      Src: /src/selinux/restorecond/watch.c:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - sb
    argTypes:
    - char*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: nofollow_lstat
    functionSourceFile: /src/selinux/restorecond/watch.c
    functionUses: 0
    functionsReached:
    - lstat
    linkageType: ''
    returnType: int
    signature: int nofollow_lstat(const char *path, struct stat *sb)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/selinux/restorecond/watch.c:197,1
    - Dst: exitApp
      Src: /src/selinux/restorecond/watch.c:199,1
    - Dst: strdup
      Src: /src/selinux/restorecond/watch.c:200,1
    - Dst: exitApp
      Src: /src/selinux/restorecond/watch.c:202,1
    - Dst: basename
      Src: /src/selinux/restorecond/watch.c:203,1
    - Dst: dirname
      Src: /src/selinux/restorecond/watch.c:204,1
    - Dst: memset
      Src: /src/selinux/restorecond/watch.c:208,1
    - Dst: glob
      Src: /src/selinux/restorecond/watch.c:214,1
    - Dst: strlen
      Src: /src/selinux/restorecond/watch.c:219,1
    - Dst: strcmp
      Src: /src/selinux/restorecond/watch.c:220,1
    - Dst: strcmp
      Src: /src/selinux/restorecond/watch.c:222,1
    - Dst: selinux_restorecon
      Src: /src/selinux/restorecond/watch.c:224,1
    - Dst: syslog
      Src: /src/selinux/restorecond/watch.c:228,1
    - Dst: strerror
      Src: /src/selinux/restorecond/watch.c:230,1
    - Dst: fprintf
      Src: /src/selinux/restorecond/watch.c:232,1
    - Dst: strerror
      Src: /src/selinux/restorecond/watch.c:234,1
    - Dst: globfree
      Src: /src/selinux/restorecond/watch.c:238,1
    - Dst: strcmp
      Src: /src/selinux/restorecond/watch.c:242,1
    - Dst: strings_list_add
      Src: /src/selinux/restorecond/watch.c:243,1
    - Dst: calloc
      Src: /src/selinux/restorecond/watch.c:249,1
    - Dst: exitApp
      Src: /src/selinux/restorecond/watch.c:252,1
    - Dst: safe_open
      Src: /src/selinux/restorecond/watch.c:254,1
    - Dst: S_ISDIR
      Src: /src/selinux/restorecond/watch.c:255,1
    - Dst: close
      Src: /src/selinux/restorecond/watch.c:257,1
    - Dst: snprintf
      Src: /src/selinux/restorecond/watch.c:262,1
    - Dst: inotify_add_watch
      Src: /src/selinux/restorecond/watch.c:264,1
    - Dst: close
      Src: /src/selinux/restorecond/watch.c:265,1
    - Dst: free
      Src: /src/selinux/restorecond/watch.c:269,1
    - Dst: syslog
      Src: /src/selinux/restorecond/watch.c:271,1
    - Dst: strerror
      Src: /src/selinux/restorecond/watch.c:272,1
    - Dst: fprintf
      Src: /src/selinux/restorecond/watch.c:274,1
    - Dst: strerror
      Src: /src/selinux/restorecond/watch.c:275,1
    - Dst: strdup
      Src: /src/selinux/restorecond/watch.c:279,1
    - Dst: exitApp
      Src: /src/selinux/restorecond/watch.c:281,1
    - Dst: strings_list_add
      Src: /src/selinux/restorecond/watch.c:283,1
    - Dst: printf
      Src: /src/selinux/restorecond/watch.c:290,1
    - Dst: free
      Src: /src/selinux/restorecond/watch.c:293,1
    - Dst: free
      Src: /src/selinux/restorecond/watch.c:294,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 75
    argCount: 2
    argNames:
    - fd
    - path
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 188
    functionDepth: 8
    functionLinenumber: 188
    functionLinenumberEnd: 296
    functionName: watch_list_add
    functionSourceFile: /src/selinux/restorecond/watch.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strerror
    - fprintf
    - inotify_add_watch
    - strings_list_add
    - safe_open
    - exitApp
    - globfree
    - free
    - S_ISDIR
    - printf
    - strlen
    - dirname
    - calloc
    - memset
    - basename
    - selinux_restorecon
    - strdup
    - glob
    - close
    - snprintf
    - syslog
    linkageType: ''
    returnType: void
    signature: void watch_list_add(int fd, const char *path)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/restorecond/watch.c:310,1
    - Dst: strings_list_find
      Src: /src/selinux/restorecond/watch.c:314,1
    - Dst: asprintf
      Src: /src/selinux/restorecond/watch.c:316,1
    - Dst: exitApp
      Src: /src/selinux/restorecond/watch.c:318,1
    - Dst: selinux_restorecon
      Src: /src/selinux/restorecond/watch.c:320,1
    - Dst: syslog
      Src: /src/selinux/restorecond/watch.c:325,1
    - Dst: strerror
      Src: /src/selinux/restorecond/watch.c:328,1
    - Dst: fprintf
      Src: /src/selinux/restorecond/watch.c:330,1
    - Dst: strerror
      Src: /src/selinux/restorecond/watch.c:333,1
    - Dst: free
      Src: /src/selinux/restorecond/watch.c:338,1
    - Dst: strings_list_print
      Src: /src/selinux/restorecond/watch.c:342,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - wd
    - file
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 303
    functionDepth: 8
    functionLinenumber: 303
    functionLinenumberEnd: 351
    functionName: watch_list_find
    functionSourceFile: /src/selinux/restorecond/watch.c
    functionUses: 0
    functionsReached:
    - asprintf
    - exitApp
    - strerror
    - syslog
    - strings_list_print
    - free
    - fprintf
    - selinux_restorecon
    - printf
    - strings_list_find
    linkageType: ''
    returnType: int
    signature: int watch_list_find(int wd, const char *file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inotify_rm_watch
      Src: /src/selinux/restorecond/watch.c:360,1
    - Dst: strings_list_free
      Src: /src/selinux/restorecond/watch.c:361,1
    - Dst: free
      Src: /src/selinux/restorecond/watch.c:362,1
    - Dst: free
      Src: /src/selinux/restorecond/watch.c:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 368
    functionName: watch_list_free
    functionSourceFile: /src/selinux/restorecond/watch.c
    functionUses: 0
    functionsReached:
    - strings_list_free
    - free
    - inotify_rm_watch
    linkageType: ''
    returnType: void
    signature: void watch_list_free(int fd)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/selinux/restorecond/watch.c:378,1
    - Dst: syslog
      Src: /src/selinux/restorecond/watch.c:381,1
    - Dst: strerror
      Src: /src/selinux/restorecond/watch.c:381,1
    - Dst: syslog
      Src: /src/selinux/restorecond/watch.c:384,1
    - Dst: printf
      Src: /src/selinux/restorecond/watch.c:393,1
    - Dst: read_config
      Src: /src/selinux/restorecond/watch.c:397,1
    - Dst: utmpwatcher_handle
      Src: /src/selinux/restorecond/watch.c:399,1
    - Dst: watch_list_find
      Src: /src/selinux/restorecond/watch.c:402,1
    - Dst: read_config
      Src: /src/selinux/restorecond/watch.c:406,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - fd
    - watch_file
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 373
    functionDepth: 9
    functionLinenumber: 373
    functionLinenumberEnd: 418
    functionName: watch
    functionSourceFile: /src/selinux/restorecond/watch.c
    functionUses: 2
    functionsReached:
    - strerror
    - syslog
    - read
    - utmpwatcher_handle
    - read_config
    - printf
    - watch_list_find
    linkageType: ''
    returnType: int
    signature: int watch(int fd, const char *watch_file)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getline
      Src: /src/selinux/restorecond/watch.c:425,1
    - Dst: isspace
      Src: /src/selinux/restorecond/watch.c:427,1
    - Dst: strlen
      Src: /src/selinux/restorecond/watch.c:431,1
    - Dst: asprintf
      Src: /src/selinux/restorecond/watch.c:439,1
    - Dst: exitApp
      Src: /src/selinux/restorecond/watch.c:441,1
    - Dst: watch_list_add
      Src: /src/selinux/restorecond/watch.c:443,1
    - Dst: free
      Src: /src/selinux/restorecond/watch.c:444,1
    - Dst: utmpwatcher_add
      Src: /src/selinux/restorecond/watch.c:446,1
    - Dst: watch_list_add
      Src: /src/selinux/restorecond/watch.c:449,1
    - Dst: free
      Src: /src/selinux/restorecond/watch.c:452,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 2
    argNames:
    - fd
    - cfg
    argTypes:
    - int
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 420
    functionDepth: 9
    functionLinenumber: 420
    functionLinenumberEnd: 453
    functionName: process_config
    functionSourceFile: /src/selinux/restorecond/watch.c
    functionUses: 0
    functionsReached:
    - asprintf
    - watch_list_add
    - utmpwatcher_add
    - isspace
    - getline
    - exitApp
    - free
    - strlen
    linkageType: ''
    returnType: void
    signature: void process_config(int fd, FILE *cfg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/restorecond/watch.c:465,1
    - Dst: watch_list_free
      Src: /src/selinux/restorecond/watch.c:467,1
    - Dst: fopen
      Src: /src/selinux/restorecond/watch.c:469,1
    - Dst: perror
      Src: /src/selinux/restorecond/watch.c:471,1
    - Dst: exitApp
      Src: /src/selinux/restorecond/watch.c:472,1
    - Dst: process_config
      Src: /src/selinux/restorecond/watch.c:474,1
    - Dst: fclose
      Src: /src/selinux/restorecond/watch.c:475,1
    - Dst: inotify_rm_watch
      Src: /src/selinux/restorecond/watch.c:477,1
    - Dst: inotify_add_watch
      Src: /src/selinux/restorecond/watch.c:479,1
    - Dst: exitApp
      Src: /src/selinux/restorecond/watch.c:482,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - fd
    - watch_file_path
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 461
    functionDepth: 10
    functionLinenumber: 461
    functionLinenumberEnd: 483
    functionName: read_config
    functionSourceFile: /src/selinux/restorecond/watch.c
    functionUses: 1
    functionsReached:
    - watch_list_free
    - fclose
    - inotify_rm_watch
    - exitApp
    - process_config
    - perror
    - fopen
    - printf
    - inotify_add_watch
    linkageType: ''
    returnType: void
    signature: void read_config(int fd, const char *watch_file_path)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/restorecond/stringslist.c:39,1
    - Dst: calloc
      Src: /src/selinux/restorecond/stringslist.c:47,1
    - Dst: exitApp
      Src: /src/selinux/restorecond/stringslist.c:49,1
    - Dst: strdup
      Src: /src/selinux/restorecond/stringslist.c:50,1
    - Dst: exitApp
      Src: /src/selinux/restorecond/stringslist.c:52,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - list
    - string
    argTypes:
    - struct stringsList**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 58
    functionName: strings_list_add
    functionSourceFile: /src/selinux/restorecond/stringslist.c
    functionUses: 1
    functionsReached:
    - exitApp
    - calloc
    - strcmp
    - strdup
    linkageType: ''
    returnType: void
    signature: void strings_list_add(struct stringsList **list, const char *string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/restorecond/stringslist.c:63,1
    - Dst: fnmatch
      Src: /src/selinux/restorecond/stringslist.c:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ptr
    - string
    - exact
    argTypes:
    - struct stringsList*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 70
    functionName: strings_list_find
    functionSourceFile: /src/selinux/restorecond/stringslist.c
    functionUses: 1
    functionsReached:
    - strcmp
    - fnmatch
    linkageType: ''
    returnType: int
    signature: int strings_list_find(struct stringsList *ptr, const char *string,
      int *exact)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/selinux/restorecond/stringslist.c:76,1
    - Dst: free
      Src: /src/selinux/restorecond/stringslist.c:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - struct stringsList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: strings_list_free
    functionSourceFile: /src/selinux/restorecond/stringslist.c
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void strings_list_free(struct stringsList *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/selinux/restorecond/stringslist.c:86,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - from
    - to
    argTypes:
    - struct stringsList*
    - struct stringsList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: strings_list_diff
    functionSourceFile: /src/selinux/restorecond/stringslist.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int strings_list_diff(struct stringsList *from, struct stringsList
      *to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/restorecond/stringslist.c:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - struct stringsList*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: strings_list_print
    functionSourceFile: /src/selinux/restorecond/stringslist.c
    functionUses: 1
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void strings_list_print(struct stringsList *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: perror
      Src: /src/selinux/restorecond/stringslist.c:107,1
    - Dst: exit
      Src: /src/selinux/restorecond/stringslist.c:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: exitApp
    functionSourceFile: /src/selinux/restorecond/stringslist.c
    functionUses: 5
    functionsReached:
    - perror
    - exit
    linkageType: ''
    returnType: void
    signature: void exitApp(const char *msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strings_list_add
      Src: /src/selinux/restorecond/stringslist.c:115,1
    - Dst: strings_list_add
      Src: /src/selinux/restorecond/stringslist.c:116,1
    - Dst: strings_list_add
      Src: /src/selinux/restorecond/stringslist.c:117,1
    - Dst: strings_list_add
      Src: /src/selinux/restorecond/stringslist.c:118,1
    - Dst: strings_list_diff
      Src: /src/selinux/restorecond/stringslist.c:119,1
    - Dst: printf
      Src: /src/selinux/restorecond/stringslist.c:120,1
    - Dst: strings_list_add
      Src: /src/selinux/restorecond/stringslist.c:121,1
    - Dst: strings_list_diff
      Src: /src/selinux/restorecond/stringslist.c:122,1
    - Dst: printf
      Src: /src/selinux/restorecond/stringslist.c:123,1
    - Dst: strings_list_add
      Src: /src/selinux/restorecond/stringslist.c:124,1
    - Dst: strings_list_add
      Src: /src/selinux/restorecond/stringslist.c:125,1
    - Dst: strings_list_add
      Src: /src/selinux/restorecond/stringslist.c:126,1
    - Dst: strings_list_add
      Src: /src/selinux/restorecond/stringslist.c:127,1
    - Dst: strings_list_diff
      Src: /src/selinux/restorecond/stringslist.c:128,1
    - Dst: printf
      Src: /src/selinux/restorecond/stringslist.c:129,1
    - Dst: printf
      Src: /src/selinux/restorecond/stringslist.c:130,1
    - Dst: strings_list_print
      Src: /src/selinux/restorecond/stringslist.c:131,1
    - Dst: printf
      Src: /src/selinux/restorecond/stringslist.c:132,1
    - Dst: strings_list_find
      Src: /src/selinux/restorecond/stringslist.c:133,1
    - Dst: strings_list_print
      Src: /src/selinux/restorecond/stringslist.c:134,1
    - Dst: strings_list_free
      Src: /src/selinux/restorecond/stringslist.c:135,1
    - Dst: strings_list_free
      Src: /src/selinux/restorecond/stringslist.c:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 137
    functionName: main
    functionSourceFile: /src/selinux/restorecond/stringslist.c
    functionUses: 7
    functionsReached:
    - strings_list_add
    - strings_list_free
    - strings_list_print
    - strings_list_diff
    - printf
    - strings_list_find
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/selinux/restorecond/utmpwatcher.c:59,1
    - Dst: exitApp
      Src: /src/selinux/restorecond/utmpwatcher.c:61,1
    - Dst: fread
      Src: /src/selinux/restorecond/utmpwatcher.c:63,1
    - Dst: strncpy
      Src: /src/selinux/restorecond/utmpwatcher.c:65,1
    - Dst: strings_list_add
      Src: /src/selinux/restorecond/utmpwatcher.c:67,1
    - Dst: fclose
      Src: /src/selinux/restorecond/utmpwatcher.c:70,1
    - Dst: inotify_rm_watch
      Src: /src/selinux/restorecond/utmpwatcher.c:72,1
    - Dst: inotify_add_watch
      Src: /src/selinux/restorecond/utmpwatcher.c:74,1
    - Dst: exitApp
      Src: /src/selinux/restorecond/utmpwatcher.c:77,1
    - Dst: strings_list_diff
      Src: /src/selinux/restorecond/utmpwatcher.c:79,1
    - Dst: strings_list_free
      Src: /src/selinux/restorecond/utmpwatcher.c:81,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - inotify_fd
    - wd
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 84
    functionName: utmpwatcher_handle
    functionSourceFile: /src/selinux/restorecond/utmpwatcher.c
    functionUses: 1
    functionsReached:
    - strings_list_add
    - fclose
    - inotify_rm_watch
    - strings_list_free
    - exitApp
    - strncpy
    - strings_list_diff
    - fopen
    - fread
    - inotify_add_watch
    linkageType: ''
    returnType: int
    signature: int utmpwatcher_handle(int inotify_fd, int wd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getpwnam
      Src: /src/selinux/restorecond/utmpwatcher.c:91,1
    - Dst: asprintf
      Src: /src/selinux/restorecond/utmpwatcher.c:94,1
    - Dst: exitApp
      Src: /src/selinux/restorecond/utmpwatcher.c:95,1
    - Dst: watch_list_add
      Src: /src/selinux/restorecond/utmpwatcher.c:96,1
    - Dst: free
      Src: /src/selinux/restorecond/utmpwatcher.c:97,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - inotify_fd
    - file
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 86
    functionDepth: 9
    functionLinenumber: 86
    functionLinenumberEnd: 101
    functionName: watch_file
    functionSourceFile: /src/selinux/restorecond/utmpwatcher.c
    functionUses: 0
    functionsReached:
    - watch_list_add
    - asprintf
    - exitApp
    - free
    - getpwnam
    linkageType: ''
    returnType: void
    signature: void watch_file(int inotify_fd, const char *file)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: utmpwatcher_handle
      Src: /src/selinux/restorecond/utmpwatcher.c:106,1
    - Dst: watch_file
      Src: /src/selinux/restorecond/utmpwatcher.c:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - inotify_fd
    - path
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 10
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: utmpwatcher_add
    functionSourceFile: /src/selinux/restorecond/utmpwatcher.c
    functionUses: 1
    functionsReached:
    - watch_file
    - utmpwatcher_handle
    linkageType: ''
    returnType: void
    signature: void utmpwatcher_add(int inotify_fd, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strings_list_free
      Src: /src/selinux/restorecond/utmpwatcher.c:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: utmpwatcher_free
    functionSourceFile: /src/selinux/restorecond/utmpwatcher.c
    functionUses: 0
    functionsReached:
    - strings_list_free
    linkageType: ''
    returnType: void
    signature: void utmpwatcher_free(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_utmp
      Src: /src/selinux/restorecond/utmpwatcher.c:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: main
    functionSourceFile: /src/selinux/restorecond/utmpwatcher.c
    functionUses: 7
    functionsReached:
    - read_utmp
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: g_bus_get_sync
      Src: /src/selinux/restorecond/user.c:86,1
    - Dst: g_bus_own_name_on_connection
      Src: /src/selinux/restorecond/user.c:90,1
    - Dst: g_object_unref
      Src: /src/selinux/restorecond/user.c:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - loop
    argTypes:
    - GMainLoop*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 99
    functionName: dbus_server
    functionSourceFile: /src/selinux/restorecond/user.c
    functionUses: 0
    functionsReached:
    - g_bus_get_sync
    - g_object_unref
    - g_bus_own_name_on_connection
    linkageType: ''
    returnType: int
    signature: int dbus_server(GMainLoop *loop)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: g_io_channel_read_chars
      Src: /src/selinux/restorecond/user.c:117,1
    - Dst: exit
      Src: /src/selinux/restorecond/user.c:122,1
    - Dst: printf
      Src: /src/selinux/restorecond/user.c:129,1
    - Dst: watch_list_find
      Src: /src/selinux/restorecond/user.c:133,1
    - Dst: g_io_channel_shutdown
      Src: /src/selinux/restorecond/user.c:149,1
    - Dst: exit
      Src: /src/selinux/restorecond/user.c:150,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - source
    - condition
    - data
    argTypes:
    - GIOChannel*
    - GIOCondition
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 108
    functionDepth: 9
    functionLinenumber: 108
    functionLinenumberEnd: 159
    functionName: io_channel_callback
    functionSourceFile: /src/selinux/restorecond/user.c
    functionUses: 0
    functionsReached:
    - g_io_channel_read_chars
    - g_io_channel_shutdown
    - exit
    - printf
    - watch_list_find
    linkageType: ''
    returnType: gboolean
    signature: "gboolean io_channel_callback(GIOChannel *source, GIOCondition condition,\n\t\t\t\t
      \   gpointer data __attribute__((__unused__)))"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_io_channel_read_chars
      Src: /src/selinux/restorecond/user.c:169,1
    - Dst: exit
      Src: /src/selinux/restorecond/user.c:175,1
    - Dst: exit
      Src: /src/selinux/restorecond/user.c:179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - source
    - condition
    - data
    argTypes:
    - GIOChannel*
    - GIOCondition
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 182
    functionName: stdin_callback
    functionSourceFile: /src/selinux/restorecond/user.c
    functionUses: 0
    functionsReached:
    - g_io_channel_read_chars
    - exit
    linkageType: ''
    returnType: gboolean
    signature: "gboolean stdin_callback(GIOChannel *source, GIOCondition condition,\n\t\t\t
      \      gpointer data __attribute__((__unused__)))"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: g_bus_get_sync
      Src: /src/selinux/restorecond/user.c:192,1
    - Dst: g_warning
      Src: /src/selinux/restorecond/user.c:195,1
    - Dst: g_error_free
      Src: /src/selinux/restorecond/user.c:197,1
    - Dst: g_dbus_connection_call_sync
      Src: /src/selinux/restorecond/user.c:205,1
    - Dst: g_object_unref
      Src: /src/selinux/restorecond/user.c:215,1
    - Dst: g_warning
      Src: /src/selinux/restorecond/user.c:217,1
    - Dst: g_error_free
      Src: /src/selinux/restorecond/user.c:219,1
    - Dst: g_object_unref
      Src: /src/selinux/restorecond/user.c:222,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 225
    functionName: start
    functionSourceFile: /src/selinux/restorecond/user.c
    functionUses: 31
    functionsReached:
    - g_error_free
    - g_object_unref
    - g_dbus_connection_call_sync
    - g_bus_get_sync
    - g_warning
    linkageType: ''
    returnType: int
    signature: int start(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: asprintf
      Src: /src/selinux/restorecond/user.c:231,1
    - Dst: perror
      Src: /src/selinux/restorecond/user.c:233,1
    - Dst: open
      Src: /src/selinux/restorecond/user.c:236,1
    - Dst: g_warning
      Src: /src/selinux/restorecond/user.c:239,1
    - Dst: free
      Src: /src/selinux/restorecond/user.c:241,1
    - Dst: perror
      Src: /src/selinux/restorecond/user.c:244,1
    - Dst: flock
      Src: /src/selinux/restorecond/user.c:247,1
    - Dst: perror
      Src: /src/selinux/restorecond/user.c:249,1
    - Dst: close
      Src: /src/selinux/restorecond/user.c:250,1
    - Dst: g_io_channel_unix_new
      Src: /src/selinux/restorecond/user.c:255,1
    - Dst: g_io_channel_set_encoding
      Src: /src/selinux/restorecond/user.c:256,1
    - Dst: g_io_channel_set_flags
      Src: /src/selinux/restorecond/user.c:257,1
    - Dst: g_io_channel_get_flags
      Src: /src/selinux/restorecond/user.c:258,1
    - Dst: g_io_add_watch_full
      Src: /src/selinux/restorecond/user.c:259,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 263
    functionName: local_server
    functionSourceFile: /src/selinux/restorecond/user.c
    functionUses: 0
    functionsReached:
    - g_io_channel_set_flags
    - asprintf
    - g_io_channel_unix_new
    - close
    - g_warning
    - flock
    - g_io_channel_set_encoding
    - g_io_channel_get_flags
    - perror
    - g_io_add_watch_full
    - free
    - open
    linkageType: ''
    returnType: int
    signature: int local_server(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/selinux/restorecond/user.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 270
    functionName: end_local_server
    functionSourceFile: /src/selinux/restorecond/user.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void end_local_server(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: g_print
      Src: /src/selinux/restorecond/user.c:277,1
    - Dst: g_main_loop_quit
      Src: /src/selinux/restorecond/user.c:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - user_data
    argTypes:
    - gpointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 280
    functionName: sigterm_handler
    functionSourceFile: /src/selinux/restorecond/user.c
    functionUses: 0
    functionsReached:
    - g_main_loop_quit
    - g_print
    linkageType: ''
    returnType: int
    signature: int sigterm_handler(gpointer user_data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: g_main_loop_new
      Src: /src/selinux/restorecond/user.c:286,1
    - Dst: dbus_server
      Src: /src/selinux/restorecond/user.c:289,1
    - Dst: local_server
      Src: /src/selinux/restorecond/user.c:291,1
    - Dst: read_config
      Src: /src/selinux/restorecond/user.c:294,1
    - Dst: watch_list_isempty
      Src: /src/selinux/restorecond/user.c:296,1
    - Dst: set_matchpathcon_flags
      Src: /src/selinux/restorecond/user.c:299,1
    - Dst: g_io_channel_unix_new
      Src: /src/selinux/restorecond/user.c:301,1
    - Dst: g_io_channel_set_encoding
      Src: /src/selinux/restorecond/user.c:302,1
    - Dst: g_io_channel_set_flags
      Src: /src/selinux/restorecond/user.c:303,1
    - Dst: g_io_channel_get_flags
      Src: /src/selinux/restorecond/user.c:304,1
    - Dst: g_io_add_watch_full
      Src: /src/selinux/restorecond/user.c:306,1
    - Dst: g_unix_signal_add_full
      Src: /src/selinux/restorecond/user.c:310,1
    - Dst: g_main_loop_run
      Src: /src/selinux/restorecond/user.c:313,1
    - Dst: end_local_server
      Src: /src/selinux/restorecond/user.c:316,1
    - Dst: g_main_loop_unref
      Src: /src/selinux/restorecond/user.c:317,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - master_fd
    - watch_file
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 282
    functionDepth: 11
    functionLinenumber: 282
    functionLinenumberEnd: 319
    functionName: server
    functionSourceFile: /src/selinux/restorecond/user.c
    functionUses: 1
    functionsReached:
    - g_io_channel_set_flags
    - g_unix_signal_add_full
    - g_io_channel_unix_new
    - set_matchpathcon_flags
    - watch_list_isempty
    - dbus_server
    - g_main_loop_new
    - g_main_loop_run
    - g_io_channel_set_encoding
    - g_io_channel_get_flags
    - g_io_add_watch_full
    - read_config
    - end_local_server
    - local_server
    - g_main_loop_unref
    linkageType: ''
    returnType: int
    signature: int server(int master_fd, const char *watch_file)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: selabel_open
      Src: /src/selinux/restorecond/restore.c:13,1
    - Dst: perror
      Src: /src/selinux/restorecond/restore.c:15,1
    - Dst: exit
      Src: /src/selinux/restorecond/restore.c:16,1
    - Dst: selinux_restorecon_set_sehandle
      Src: /src/selinux/restorecond/restore.c:29,1
    - Dst: selinux_restorecon_set_alt_rootpath
      Src: /src/selinux/restorecond/restore.c:32,1
    - Dst: fprintf
      Src: /src/selinux/restorecond/restore.c:34,1
    - Dst: strerror
      Src: /src/selinux/restorecond/restore.c:36,1
    - Dst: exit
      Src: /src/selinux/restorecond/restore.c:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - opts
    argTypes:
    - struct restore_opts*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 3
    functionDepth: 3
    functionLinenumber: 3
    functionLinenumberEnd: 40
    functionName: restore_init
    functionSourceFile: /src/selinux/restorecond/restore.c
    functionUses: 1
    functionsReached:
    - selinux_restorecon_set_alt_rootpath
    - strerror
    - perror
    - selinux_restorecon_set_sehandle
    - exit
    - fprintf
    - selabel_open
    linkageType: ''
    returnType: void
    signature: void restore_init(struct restore_opts *opts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: watch_list_free
      Src: /src/selinux/restorecond/restorecond.c:83,1
    - Dst: close
      Src: /src/selinux/restorecond/restorecond.c:84,1
    - Dst: utmpwatcher_free
      Src: /src/selinux/restorecond/restorecond.c:85,1
    - Dst: selabel_close
      Src: /src/selinux/restorecond/restorecond.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: done
    functionSourceFile: /src/selinux/restorecond/restorecond.c
    functionUses: 0
    functionsReached:
    - selabel_close
    - watch_list_free
    - close
    - utmpwatcher_free
    linkageType: ''
    returnType: void
    signature: void done(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/selinux/restorecond/restorecond.c:96,1
    - Dst: getpid
      Src: /src/selinux/restorecond/restorecond.c:96,1
    - Dst: syslog
      Src: /src/selinux/restorecond/restorecond.c:98,1
    - Dst: strerror
      Src: /src/selinux/restorecond/restorecond.c:98,1
    - Dst: open
      Src: /src/selinux/restorecond/restorecond.c:102,1
    - Dst: syslog
      Src: /src/selinux/restorecond/restorecond.c:104,1
    - Dst: strerror
      Src: /src/selinux/restorecond/restorecond.c:104,1
    - Dst: write
      Src: /src/selinux/restorecond/restorecond.c:108,1
    - Dst: syslog
      Src: /src/selinux/restorecond/restorecond.c:109,1
    - Dst: strerror
      Src: /src/selinux/restorecond/restorecond.c:110,1
    - Dst: close
      Src: /src/selinux/restorecond/restorecond.c:111,1
    - Dst: close
      Src: /src/selinux/restorecond/restorecond.c:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 116
    functionName: write_pid_file
    functionSourceFile: /src/selinux/restorecond/restorecond.c
    functionUses: 0
    functionsReached:
    - close
    - snprintf
    - getpid
    - strerror
    - write
    - open
    - syslog
    linkageType: ''
    returnType: int
    signature: int write_pid_file(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/selinux/restorecond/restorecond.c:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: term_handler
    functionSourceFile: /src/selinux/restorecond/restorecond.c
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void term_handler(int s __attribute__((unused)))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/selinux/restorecond/restorecond.c:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - program
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 132
    functionName: usage
    functionSourceFile: /src/selinux/restorecond/restorecond.c
    functionUses: 44
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void usage(char *program)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: perror
      Src: /src/selinux/restorecond/restorecond.c:136,1
    - Dst: exit
      Src: /src/selinux/restorecond/restorecond.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: exitApp
    functionSourceFile: /src/selinux/restorecond/restorecond.c
    functionUses: 7
    functionsReached:
    - perror
    - exit
    linkageType: ''
    returnType: void
    signature: void exitApp(const char *msg)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: is_selinux_enabled
      Src: /src/selinux/restorecond/restorecond.c:152,1
    - Dst: memset
      Src: /src/selinux/restorecond/restorecond.c:158,1
    - Dst: restore_init
      Src: /src/selinux/restorecond/restorecond.c:164,1
    - Dst: sigemptyset
      Src: /src/selinux/restorecond/restorecond.c:169,1
    - Dst: sigaction
      Src: /src/selinux/restorecond/restorecond.c:170,1
    - Dst: atexit
      Src: /src/selinux/restorecond/restorecond.c:172,1
    - Dst: getopt
      Src: /src/selinux/restorecond/restorecond.c:173,1
    - Dst: usage
      Src: /src/selinux/restorecond/restorecond.c:188,1
    - Dst: exit
      Src: /src/selinux/restorecond/restorecond.c:189,1
    - Dst: usage
      Src: /src/selinux/restorecond/restorecond.c:195,1
    - Dst: exit
      Src: /src/selinux/restorecond/restorecond.c:196,1
    - Dst: inotify_init
      Src: /src/selinux/restorecond/restorecond.c:200,1
    - Dst: exitApp
      Src: /src/selinux/restorecond/restorecond.c:202,1
    - Dst: getuid
      Src: /src/selinux/restorecond/restorecond.c:204,1
    - Dst: getpwuid
      Src: /src/selinux/restorecond/restorecond.c:205,1
    - Dst: exitApp
      Src: /src/selinux/restorecond/restorecond.c:207,1
    - Dst: strdup
      Src: /src/selinux/restorecond/restorecond.c:209,1
    - Dst: exitApp
      Src: /src/selinux/restorecond/restorecond.c:211,1
    - Dst: server
      Src: /src/selinux/restorecond/restorecond.c:215,1
    - Dst: start
      Src: /src/selinux/restorecond/restorecond.c:216,1
    - Dst: server
      Src: /src/selinux/restorecond/restorecond.c:217,1
    - Dst: read_config
      Src: /src/selinux/restorecond/restorecond.c:221,1
    - Dst: daemon
      Src: /src/selinux/restorecond/restorecond.c:224,1
    - Dst: exitApp
      Src: /src/selinux/restorecond/restorecond.c:225,1
    - Dst: write_pid_file
      Src: /src/selinux/restorecond/restorecond.c:226,1
    - Dst: watch
      Src: /src/selinux/restorecond/restorecond.c:231,1
    - Dst: watch_list_free
      Src: /src/selinux/restorecond/restorecond.c:234,1
    - Dst: close
      Src: /src/selinux/restorecond/restorecond.c:235,1
    - Dst: unlink
      Src: /src/selinux/restorecond/restorecond.c:238,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 146
    functionDepth: 12
    functionLinenumber: 146
    functionLinenumberEnd: 241
    functionName: main
    functionSourceFile: /src/selinux/restorecond/restorecond.c
    functionUses: 7
    functionsReached:
    - sigemptyset
    - exit
    - getpwuid
    - write_pid_file
    - watch_list_free
    - getuid
    - daemon
    - exitApp
    - sigaction
    - is_selinux_enabled
    - watch
    - atexit
    - inotify_init
    - memset
    - read_config
    - server
    - strdup
    - getopt
    - close
    - start
    - unlink
    - usage
    - restore_init
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
Fuzzer filename: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- genhomedircon.h
- sys/wait.h
- cil_parser.h
- sepol/cil/cil.h
- sys/mman.h
- sepol/policydb/hierarchy.h
- cil_verify.h
- semanage/booleans_policy.h
- glob.h
- flask.h
- CilTest.h
- test-cond.h
- cil_stack.h
- debug.h
- sepol/nodes.h
- user_internal.h
- stringslist.h
- sepol/iface_record.h
- ../../src/cil_verify.h
- sepol/policydb/symtab.h
- mapping.h
- dirent.h
- utmpwatcher.h
- time.h
- semanage/semanage.h
- sepol/module.h
- sepol/policydb/expand.h
- sepol/policydb/constraint.h
- linux/netlink.h
- linux/openat2.h
- cil_tree.h
- sys/syscall.h
- crypt.h
- sepol/ibendports.h
- gio/gio.h
- cil_lexer.h
- asm/bitsperlong.h
- queue.h
- cil_mem.h
- test-expander-users.h
- glib-unix.h
- mcscolor.h
- parse_utils.h
- sys/inotify.h
- sepol/ports.h
- cil_deny.h
- semanage/ibendports_local.h
- semanage/interfaces_policy.h
- libeconf.h
- fcontext_internal.h
- sepol/policydb/ebitmap.h
- ../../src/cil_lexer.h
- CUnit/TestDB.h
- sepol/policydb/mls_types.h
- CuTest.h
- netdb.h
- sepol/ibpkeys.h
- semanage/ibendport_record.h
- test_cil_parser.h
- test_cil.h
- sys/resource.h
- grp.h
- cil_flavor.h
- semanage/port_record.h
- semanage/booleans_local.h
- stdarg.h
- semanage/seusers_local.h
- cil_list.h
- sepol/policydb.h
- dlfcn.h
- stdint.h
- test-ebitmap.h
- utilities.h
- utmp.h
- semanage/fcontexts_local.h
- restorecond.h
- sepol/debug.h
- test_port.h
- test-deps.h
- semanage/fcontext_record.h
- sys/types.h
- security/pam_appl.h
- getopt.h
- pty.h
- test_user.h
- CUnit/Basic.h
- ../src/regex.h
- ../../src/cil_internal.h
- sys/mount.h
- test_cil_fqn.h
- test_cil_build_ast.h
- sepol/boolean_record.h
- sys/statvfs.h
- sysexits.h
- avc_sidtab.h
- cil_copy_ast.h
- linux/limits.h
- sepol/node_record.h
- semanage/nodes_local.h
- semanage/nodes_policy.h
- math.h
- label_internal.h
- strings.h
- hashtab.h
- values.h
- modules.h
- inttypes.h
- netinet/in.h
- parse_util.h
- pcre2.h
- avc_internal.h
- semanage/booleans_active.h
- direct_api.h
- policy.h
- test_handle.h
- sepol/policydb/services.h
- sys/stat.h
- semanage/node_record.h
- ../../src/cil_fqn.h
- errno.h
- test-expander.h
- sepol/kernel_to_cil.h
- ../../src/cil_log.h
- security/pam_misc.h
- sys/param.h
- arpa/inet.h
- port_internal.h
- test_integration.h
- semanage/user_record.h
- selinux_internal.h
- restore.h
- test_cil_post.h
- selinux/get_default_type.h
- sepol/policydb/util.h
- semanage/context_record.h
- test_other.h
- get_context_list_internal.h
- policydb_validate.h
- semanage/seuser_record.h
- libintl.h
- Python.h
- libaudit.h
- sepol/context.h
- semanage/modules.h
- ibpkey_internal.h
- compressed_file.h
- label_file.h
- cil/cil.h
- selinux/selinux.h
- context.h
- sys/xattr.h
- test-neverallow.h
- sepol/interfaces.h
- seuser_internal.h
- sepol/policydb/hashtab.h
- test-common.h
- sys/socket.h
- sys/vfs.h
- libgen.h
- selinux/label.h
- bzlib.h
- callbacks.h
- unistd.h
- selinux/get_context_list.h
- termios.h
- signal.h
- context_internal.h
- sys/select.h
- setjmp.h
- database_file.h
- sepol/ibendport_record.h
- cil_write_ast.h
- linux/types.h
- sepol/module_to_cil.h
- cil_fqn.h
- test_semanage_store.h
- database.h
- semanage/ports_policy.h
- iface_internal.h
- fnmatch.h
- test-downgrade.h
- sys/un.h
- endian.h
- sepol/policydb/link.h
- test-expander-attr-map.h
- node_internal.h
- pthread.h
- test-linker-types.h
- semanage/ibendports_policy.h
- policy_define.h
- ctype.h
- cil_binary.h
- stddef.h
- policydb_internal.h
- fts.h
- ../../src/cil_tree.h
- test_node.h
- selinux_netlink.h
- module_internal.h
- test-linker-cond-map.h
- sepol/kernel_to_conf.h
- ../../src/cil_symtab.h
- fcntl.h
- stdbool.h
- kernel_to_common.h
- linux/magic.h
- pwd.h
- sepol/policydb/context.h
- test_cil_list.h
- sys/prctl.h
- glib.h
- sepol/policydb/sidtab.h
- sepol/policydb/avtab.h
- test-linker.h
- sepol/policydb/conditional.h
- cil_build_ast.h
- sys/file.h
- sepol/sepol.h
- test-expander-roles.h
- cil_policy.h
- semanage/ports_local.h
- cil_post.h
- semanage/iface_record.h
- semanage/users_local.h
- sha256.h
- semanage/interfaces_local.h
- private.h
- test_cil_tree.h
- mls.h
- sepol/ibpkey_record.h
- ../src/label_file.h
- cil_strpool.h
- sepol/errcodes.h
- semanage/ibpkeys_local.h
- semanage/boolean_record.h
- sepol/booleans.h
- semanage/handle.h
- sys/capability.h
- stdlib.h
- shadow.h
- ../../src/cil_resolve_ast.h
- sys/time.h
- search.h
- semanage/seusers_policy.h
- string.h
- sepol/policydb/flask_types.h
- sepol/user_record.h
- sched.h
- cil_log.h
- sepol/users.h
- mls_level.h
- cil_reset_ast.h
- ../../src/cil_build_ast.h
- sepol/context_record.h
- get_default_type_internal.h
- sepol/port_record.h
- semanage/fcontexts_policy.h
- semanage_conf.h
- sepol/policydb/policydb.h
- sys/uio.h
- err.h
- machine/endian.h
- selinux/restorecon.h
- cap-ng.h
- test-linker-roles.h
- mcstrans.h
- poll.h
- limits.h
- semanage/debug.h
- test_ibendport.h
- cil_internal.h
- byteswap.h
- module_compiler.h
- ../../src/cil_post.h
- database_activedb.h
- database_join.h
- boolean_internal.h
- ../../src/cil_copy_ast.h
- test_cil_resolve_ast.h
- selinux/avc.h
- regex.h
- stdio.h
- semanage_store.h
- sepol/policydb/polcaps.h
- selinux/context.h
- ../src/avc_sidtab.h
- cil_symtab.h
- test_fcontext.h
- sha1.h
- stdio_ext.h
- pcre.h
- test_cil_symtab.h
- database_llist.h
- sepol/handle.h
- test_bool.h
- test_cil_copy_ast.h
- test_iface.h
- setrans_internal.h
- test_utilities.h
- alloca.h
- locale.h
- handle.h
- ../../src/cil_parser.h
- database_policydb.h
- semanage/ibpkey_record.h
- sys/ioctl.h
- cil_find.h
- syslog.h
- memory.h
- assert.h
- sys/fsuid.h
- semanage/users_policy.h
- helpers.h
- CUnit/Console.h
- sepol/policydb/module.h
- sys/utsname.h
- sepol/policydb/avrule_block.h
- ibendport_internal.h
- cil_resolve_ast.h
- test_cil_lexer.h
- semanage/ibpkeys_policy.h
report: name
sources:
- function_names: []
  source_file: /src/selinux/libsepol/tests/test-expander-users.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/tests/test-expander.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/tests/test-common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/tests/test-linker-cond-map.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/tests/test-linker-roles.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/tests/test-expander-attr-map.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DECLARE_SUITE
  - usage
  - do_tests
  - main
  source_file: /src/selinux/libsepol/tests/libsepol-tests.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/tests/test-linker.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - linker_test_init
  - linker_test_cleanup
  - test_linker_indexes
  - test_linker_roles
  - test_linker_types
  - test_linker_cond
  - linker_add_tests
  source_file: /src/selinux/libsepol/tests/test-linker.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NUM_MODS
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/selinux/libsepol/tests/test-linker.c
      type_or_value: '2'
    - item_type: preproc_def
      name: NUM_POLICIES
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/selinux/libsepol/tests/test-linker.c
      type_or_value: NUM_MODS + 1
    - item_type: preproc_def
      name: BASEMOD
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/selinux/libsepol/tests/test-linker.c
      type_or_value: NUM_MODS
    structs: []
    typedefs: []
    union: []
- function_names:
  - print_ebitmap
  - display_expr
  source_file: /src/selinux/libsepol/tests/debug.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cond_test_init
  - cond_test_cleanup
  - test_cond_expr_equal
  - cond_add_tests
  source_file: /src/selinux/libsepol/tests/test-cond.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ebitmap_init_random
  - test_ebitmap_init_destroy
  - test_ebitmap_cmp
  - test_ebitmap_set_and_get
  - test_ebitmap_init_range
  - test_ebitmap_or
  - test_ebitmap_and
  - test_ebitmap_xor
  - test_ebitmap_not
  - test_ebitmap_andnot
  - test_ebitmap__random_impl
  - test_ebitmap__random
  - ebitmap_test_init
  - ebitmap_test_cleanup
  - ADD_TEST
  - ebitmap_add_tests
  source_file: /src/selinux/libsepol/tests/test-ebitmap.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RANDOM_ROUNDS
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/selinux/libsepol/tests/test-ebitmap.c
      type_or_value: '10'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/tests/test-downgrade.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/tests/debug.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - neverallow_test_init
  - neverallow_test_cleanup
  - messages_clean
  - messages_check
  - msg_handler
  - ARRAY_SIZE
  - test_neverallow_basic
  - test_neverallow_minus_self
  - test_neverallow_not_self
  - test_neverallow_cond
  - neverallow_add_tests
  source_file: /src/selinux/libsepol/tests/test-neverallow.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*msg'
        type: char
      - name: '*next'
        type: struct msg_list
      item_type: struct
      name: msg_list
      pos:
        line_end: 29
        line_start: 26
        source_file: /src/selinux/libsepol/tests/test-neverallow.c
    typedefs: []
    union: []
- function_names:
  - CU_ASSERT_FATAL
  - CU_FAIL_FATAL
  - CU_ASSERT_PTR_NOT_NULL_FATAL
  source_file: /src/selinux/libsepol/tests/helpers.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/tests/test-deps.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/tests/test-linker-types.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - only_dominates_self
  - base_role_tests
  - module_role_tests
  source_file: /src/selinux/libsepol/tests/test-linker-roles.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_user_roles
  - test_expander_user_mapping
  source_file: /src/selinux/libsepol/tests/test-expander-users.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_expander_attr_mapping
  source_file: /src/selinux/libsepol/tests/test-expander-attr-map.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - downgrade_test_init
  - downgrade_test_cleanup
  - downgrade_add_tests
  - test_downgrade
  - do_downgrade_test
  - read_binary_policy
  - write_binary_policy
  source_file: /src/selinux/libsepol/tests/test-downgrade.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: POLICY_BIN_HI
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/selinux/libsepol/tests/test-downgrade.c
      type_or_value: '"policies/test-downgrade/policy.hi"'
    - item_type: preproc_def
      name: POLICY_BIN_LO
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/selinux/libsepol/tests/test-downgrade.c
      type_or_value: '"policies/test-downgrade/policy.lo"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/tests/test-cond.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_type_datum
  - base_type_tests
  - module_type_tests
  source_file: /src/selinux/libsepol/tests/test-linker-types.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_load_policy
  - test_find_decl_by_sym
  source_file: /src/selinux/libsepol/tests/helpers.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_expander_role_mapping
  source_file: /src/selinux/libsepol/tests/test-expander-roles.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/tests/test-ebitmap.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/tests/test-expander-roles.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_sym_presence
  - common_test_index
  - class_test_index
  - role_test_index
  - type_test_index
  - user_test_index
  - cond_test_index
  - level_test_index
  - cat_test_index
  - test_policydb_indexes
  - test_alias_datum
  - test_role_type_set
  - test_attr_types
  source_file: /src/selinux/libsepol/tests/test-common.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - deps_test_init
  - deps_test_cleanup
  - do_deps_modreq_global
  - deps_modreq_global
  - do_deps_modreq_opt
  - deps_modreq_opt
  - deps_add_tests
  source_file: /src/selinux/libsepol/tests/test-deps.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BASE_MODREQ_TYPE_GLOBAL
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/selinux/libsepol/tests/test-deps.c
      type_or_value: '0'
    - item_type: preproc_def
      name: BASE_MODREQ_ATTR_GLOBAL
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/selinux/libsepol/tests/test-deps.c
      type_or_value: '1'
    - item_type: preproc_def
      name: BASE_MODREQ_OBJ_GLOBAL
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/selinux/libsepol/tests/test-deps.c
      type_or_value: '2'
    - item_type: preproc_def
      name: BASE_MODREQ_BOOL_GLOBAL
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/selinux/libsepol/tests/test-deps.c
      type_or_value: '3'
    - item_type: preproc_def
      name: BASE_MODREQ_ROLE_GLOBAL
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/selinux/libsepol/tests/test-deps.c
      type_or_value: '4'
    - item_type: preproc_def
      name: BASE_MODREQ_PERM_GLOBAL
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/selinux/libsepol/tests/test-deps.c
      type_or_value: '5'
    - item_type: preproc_def
      name: BASE_MODREQ_TYPE_OPT
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/selinux/libsepol/tests/test-deps.c
      type_or_value: '6'
    - item_type: preproc_def
      name: BASE_MODREQ_ATTR_OPT
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/selinux/libsepol/tests/test-deps.c
      type_or_value: '7'
    - item_type: preproc_def
      name: BASE_MODREQ_OBJ_OPT
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/selinux/libsepol/tests/test-deps.c
      type_or_value: '8'
    - item_type: preproc_def
      name: BASE_MODREQ_BOOL_OPT
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/selinux/libsepol/tests/test-deps.c
      type_or_value: '9'
    - item_type: preproc_def
      name: BASE_MODREQ_ROLE_OPT
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/selinux/libsepol/tests/test-deps.c
      type_or_value: '10'
    - item_type: preproc_def
      name: BASE_MODREQ_PERM_OPT
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/selinux/libsepol/tests/test-deps.c
      type_or_value: '11'
    - item_type: preproc_def
      name: NUM_BASES
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/selinux/libsepol/tests/test-deps.c
      type_or_value: '12'
    structs: []
    typedefs: []
    union: []
- function_names:
  - expander_policy_init
  - expander_test_init
  - expander_test_cleanup
  - test_expander_indexes
  - test_expander_alias
  - test_expander_negset_bounds
  - expander_add_tests
  source_file: /src/selinux/libsepol/tests/test-expander.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/tests/test-neverallow.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_cond_expr_mapping
  - test_bool_state
  - base_cond_tests
  - module_cond_tests
  source_file: /src/selinux/libsepol/tests/test-linker-cond-map.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*boolean'
        type: char
      - name: expr_type
        type: uint32_t
      item_type: struct
      name: test_cond_expr
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/selinux/libsepol/tests/test-linker-cond-map.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/src/boolean_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/src/node_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BUG
  - push
  - pop
  - sepol_set_sidtab
  - sepol_set_policydb
  - sepol_set_policydb_from_file
  - cat_expr_buf
  - get_name_list
  - msgcat
  - get_class_info
  - constraint_expr_eval_reason
  - type_attribute_bounds_av
  - context_struct_compute_av
  - ebitmap_for_each_positive_bit
  - ebitmap_for_each_positive_bit
  - sepol_validate_transition_reason_buffer
  - sepol_compute_av_reason
  - sepol_compute_av_reason_buffer
  - sepol_compute_av
  - sepol_string_to_security_class
  - sepol_string_to_av_perm
  - sepol_av_perm_to_string
  - sepol_sid_to_context
  - sepol_context_to_sid
  - compute_sid_handle_invalid_context
  - sepol_compute_sid
  - sepol_transition_sid
  - sepol_member_sid
  - sepol_change_sid
  - validate_perm
  - validate_class
  - clone_sid
  - convert_context_handle_invalid_context
  - convert_context
  - next_entry
  - put_entry
  - str_read
  - sepol_load_policy
  - sepol_fs_sid
  - sepol_ibpkey_sid
  - sepol_ibendport_sid
  - sepol_port_sid
  - sepol_netif_sid
  - match_ipv6_addrmask
  - sepol_node_sid
  - sepol_get_user_sids
  - sepol_genfs_sid
  - sepol_fs_use
  source_file: /src/selinux/libsepol/src/services.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REASON_BUF_SIZE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/selinux/libsepol/src/services.c
      type_or_value: '2048'
    - item_type: preproc_def
      name: EXPR_BUF_SIZE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/selinux/libsepol/src/services.c
      type_or_value: '1024'
    - item_type: preproc_def
      name: STACK_LEN
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/selinux/libsepol/src/services.c
      type_or_value: '32'
    - item_type: preproc_def
      name: SOURCE
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/selinux/libsepol/src/services.c
      type_or_value: '1'
    - item_type: preproc_def
      name: TARGET
      pos:
        line_end: 411
        line_start: 410
        source_file: /src/selinux/libsepol/src/services.c
      type_or_value: '2'
    - item_type: preproc_def
      name: XTARGET
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/selinux/libsepol/src/services.c
      type_or_value: '3'
    - item_type: preproc_def
      name: SIDS_NEL
      pos:
        line_end: 2170
        line_start: 2169
        source_file: /src/selinux/libsepol/src/services.c
      type_or_value: '25'
    structs:
    - fields:
      - name: '*oldp'
        type: policydb_t
      - name: '*newp'
        type: policydb_t
      item_type: struct
      name: convert_context_args_t
      pos:
        line_end: 1637
        line_start: 1634
        source_file: /src/selinux/libsepol/src/services.c
    typedefs: []
    union: []
- function_names:
  - ebitmap_write
  - avtab_write_item
  - avtab_write
  - mls_write_semantic_level_helper
  - mls_write_semantic_range_helper
  - mls_write_level
  - mls_write_range_helper
  - sens_write
  - cat_write
  - role_trans_write
  - role_allow_write
  - filename_write_one_compat
  - filename_write_one
  - filename_trans_write
  - role_set_write
  - type_set_write
  - cond_write_bool
  - cond_write_av_list
  - cond_write_node
  - cond_write_list
  - context_write
  - perm_write
  - common_write
  - write_cons_helper
  - class_write
  - role_write
  - type_write
  - user_write
  - ocontext_write_xen
  - ocontext_write_selinux
  - ocontext_write
  - genfs_write
  - rangetrans_count
  - range_write_helper
  - range_write
  - avrule_write
  - avrule_write_list
  - only_process
  - ebitmap_for_each_positive_bit
  - role_trans_rule_write
  - role_allow_rule_write
  - filename_trans_rule_write
  - range_trans_rule_write
  - scope_index_write
  - avrule_decl_write
  - avrule_block_write
  - scope_write
  - role_attr_uncount
  - policydb_write
  source_file: /src/selinux/libsepol/src/write.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: glblub_version
      pos:
        line_end: 52
        line_start: 47
        source_file: /src/selinux/libsepol/src/write.c
      type_or_value: "((p->policy_type == POLICY_KERN &&             \\\n\t  p->policyvers
        >= POLICYDB_VERSION_GLBLUB) || \\\n\t (p->policy_type == POLICY_BASE &&             \\\n\t
        \ p->policyvers >= MOD_POLICYDB_VERSION_GLBLUB))"
    structs:
    - fields:
      - name: '*fp'
        type: struct policy_file
      - name: '*p'
        type: struct policydb
      item_type: struct
      name: policy_data
      pos:
        line_end: 56
        line_start: 53
        source_file: /src/selinux/libsepol/src/write.c
    - fields:
      - name: nel
        type: size_t
      - name: new_rangetr
        type: int
      - name: '*fp'
        type: struct policy_file
      - name: '*p'
        type: struct policydb
      item_type: struct
      name: rangetrans_write_args
      pos:
        line_end: 1503
        line_start: 1498
        source_file: /src/selinux/libsepol/src/write.c
    typedefs: []
    union: []
- function_names:
  - type_vec_init
  - type_vec_destroy
  - type_vec_append
  - type_vec_contains
  - build_type_map
  - destroy_type_map
  - process_xperms
  - process_avtab_datum
  - is_avrule_redundant
  - is_type_attr
  - is_avrule_with_attr
  - is_cond_rule_redundant
  - optimize_avtab
  - optimize_cond_av_list
  - optimize_cond_avtab
  - policydb_optimize
  source_file: /src/selinux/libsepol/src/optimize.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TYPE_VEC_INIT_SIZE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/selinux/libsepol/src/optimize.c
      type_or_value: '16'
    structs:
    - fields:
      - name: '*types'
        type: uint32_t
      - name: count
        type: unsigned int
      item_type: struct
      name: type_vec
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/selinux/libsepol/src/optimize.c
    typedefs: []
    union: []
- function_names:
  - policydb_lookup_compat
  - type_set_init
  - type_set_destroy
  - role_set_init
  - role_set_destroy
  - role_datum_init
  - role_datum_destroy
  - type_datum_init
  - type_datum_destroy
  - user_datum_init
  - user_datum_destroy
  - level_datum_init
  - level_datum_destroy
  - cat_datum_init
  - cat_datum_destroy
  - class_perm_node_init
  - avrule_init
  - avrule_destroy
  - role_trans_rule_init
  - role_trans_rule_destroy
  - role_trans_rule_list_destroy
  - filename_trans_rule_init
  - filename_trans_rule_destroy
  - filename_trans_rule_list_destroy
  - role_allow_rule_init
  - role_allow_rule_destroy
  - role_allow_rule_list_destroy
  - range_trans_rule_init
  - range_trans_rule_destroy
  - range_trans_rule_list_destroy
  - avrule_list_destroy
  - roles_init
  - partial_name_hash
  - filenametr_hash
  - filenametr_cmp
  - rangetr_hash
  - rangetr_cmp
  - policydb_init
  - policydb_role_cache
  - policydb_user_cache
  - common_index
  - class_index
  - role_index
  - type_index
  - user_index
  - sens_index
  - cat_index
  - policydb_index_classes
  - policydb_index_bools
  - policydb_index_decls
  - policydb_index_others
  - perm_destroy
  - common_destroy
  - class_destroy
  - role_destroy
  - type_destroy
  - user_destroy
  - sens_destroy
  - cat_destroy
  - filenametr_destroy
  - range_tr_destroy
  - ocontext_selinux_free
  - ocontext_xen_free
  - policydb_destroy
  - symtabs_destroy
  - scope_destroy
  - policydb_load_isids
  - symtab_insert
  - type_set_or
  - type_set_cpy
  - type_set_or_eq
  - role_set_read
  - type_set_read
  - mls_read_range_helper
  - mls_read_semantic_level_helper
  - mls_read_semantic_range_helper
  - mls_level_to_semantic
  - mls_range_to_semantic
  - context_read_and_validate
  - perm_read
  - common_read
  - read_cons_helper
  - class_read
  - role_read
  - type_read
  - role_trans_read
  - role_allow_read
  - policydb_filetrans_insert
  - filename_trans_read_one_compat
  - filename_trans_check_datum
  - filename_trans_read_one
  - filename_trans_read
  - ocontext_read_xen
  - ocontext_read_selinux
  - ocontext_read
  - genfs_read
  - mls_read_level
  - user_read
  - sens_read
  - cat_read
  - avrule_read
  - range_read
  - avrule_read_list
  - role_trans_rule_read
  - role_allow_rule_read
  - filename_trans_rule_read
  - range_trans_rule_read
  - scope_index_read
  - avrule_decl_read
  - avrule_block_read
  - scope_read
  - policydb_string_to_security_class
  - policydb_string_to_av_perm
  - policydb_read
  - policydb_reindex_users
  - policy_file_init
  - policydb_set_target_platform
  - policydb_sort_ocontexts
  source_file: /src/selinux/libsepol/src/policydb.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: POLICYDB_TARGET_SZ
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/selinux/libsepol/src/policydb.c
      type_or_value: ARRAY_SIZE(policydb_target_strings)
    structs: []
    typedefs: []
    union: []
- function_names:
  - sepol_handle_create
  - sepol_get_preserve_tunables
  - sepol_set_preserve_tunables
  - sepol_get_disable_dontaudit
  - sepol_set_disable_dontaudit
  - sepol_set_expand_consume_base
  - sepol_handle_destroy
  source_file: /src/selinux/libsepol/src/handle.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - UNUSED
  - UNUSED
  - cil_indent
  - cil_printf
  - cil_println
  - get_line
  - list_destroy
  - role_list_destroy
  - attr_list_destroy
  - list_init
  - list_prepend
  - roles_gather_map
  - role_list_create
  - typealiases_gather_map
  - typealias_list_destroy
  - typealias_list_create
  - stack_destroy
  - stack_init
  - stack_push
  - stack_pop
  - stack_peek
  - is_id_in_scope_with_start
  - is_id_in_ancestor_scope
  - is_id_in_scope
  - semantic_level_to_cil
  - avrule_to_cil
  - next_bit_in_range
  - xperms_to_cil
  - avrulex_to_cil
  - num_digits
  - ebitmap_to_cil
  - ebitmap_for_each_positive_bit
  - get_new_attr_name
  - cil_add_attr_to_list
  - cil_print_attr_strs
  - ebitmap_for_each_positive_bit
  - ebitmap_for_each_positive_bit
  - cil_print_attr_list
  - search_attr_list
  - set_to_names
  - ebitmap_to_names
  - ebitmap_for_each_positive_bit
  - ebitmap_for_each_positive_bit
  - process_roleset
  - process_typeset
  - names_destroy
  - roletype_role_in_ancestor_to_cil
  - name_list_to_string
  - avrule_list_to_cil
  - cond_expr_to_cil
  - cond_list_to_cil
  - role_trans_to_cil
  - role_allows_to_cil
  - range_trans_to_cil
  - filename_trans_to_cil
  - class_perm_to_array
  - class_perm_cmp
  - common_to_cil
  - constraint_expr_to_string
  - constraints_to_cil
  - class_order_to_cil
  - role_to_cil
  - type_to_cil
  - user_to_cil
  - boolean_to_cil
  - sens_to_cil
  - sens_order_to_cil
  - cat_to_cil
  - cat_order_to_cil
  - polcaps_to_cil
  - ebitmap_for_each_positive_bit
  - level_to_cil
  - context_to_cil
  - ocontext_isid_to_cil
  - ocontext_selinux_isid_to_cil
  - ocontext_selinux_fs_to_cil
  - ocontext_selinux_port_to_cil
  - ocontext_selinux_ibpkey_to_cil
  - ocontext_selinux_netif_to_cil
  - ocontext_selinux_node_to_cil
  - ocontext_selinux_node6_to_cil
  - ocontext_selinux_ibendport_to_cil
  - ocontext_selinux_fsuse_to_cil
  - ocontext_xen_isid_to_cil
  - ocontext_xen_pirq_to_cil
  - ocontext_xen_ioport_to_cil
  - ocontext_xen_iomem_to_cil
  - ocontext_xen_pcidevice_to_cil
  - ocontexts_to_cil
  - genfscon_to_cil
  - level_string_to_cil
  - level_range_string_to_cil
  - context_string_to_cil
  - seusers_to_cil
  - netfilter_contexts_to_cil
  - user_extra_to_cil
  - file_contexts_to_cil
  - typealiases_to_cil
  - declared_scopes_to_cil
  - required_scopes_to_cil
  - additive_scopes_to_cil_map
  - additive_scopes_to_cil
  - is_scope_superset
  - block_to_cil
  - module_block_to_cil
  - global_block_to_cil
  - blocks_to_cil
  - linked_block_to_cil
  - linked_blocks_to_cil
  - handle_unknown_to_cil
  - generate_mls
  - generate_default_level
  - generate_default_object
  - generate_gen_require_attribute
  - fix_module_name
  - sepol_module_policydb_to_cil
  - sepol_module_package_to_cil
  - fp_to_buffer
  - sepol_ppfile_to_module_package
  source_file: /src/selinux/libsepol/src/module_to_cil.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IPPROTO_DCCP
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/selinux/libsepol/src/module_to_cil.c
      type_or_value: '33'
    - item_type: preproc_def
      name: IPPROTO_SCTP
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/selinux/libsepol/src/module_to_cil.c
      type_or_value: '132'
    - item_type: preproc_def
      name: STACK_SIZE
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/selinux/libsepol/src/module_to_cil.c
      type_or_value: '16'
    - item_type: preproc_def
      name: DEFAULT_LEVEL
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/selinux/libsepol/src/module_to_cil.c
      type_or_value: '"systemlow"'
    - item_type: preproc_def
      name: DEFAULT_OBJECT
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/selinux/libsepol/src/module_to_cil.c
      type_or_value: '"object_r"'
    - item_type: preproc_def
      name: GEN_REQUIRE_ATTR
      pos:
        line_end: 72
        line_start: 70
        source_file: /src/selinux/libsepol/src/module_to_cil.c
      type_or_value: '"cil_gen_require" '
    - item_type: preproc_def
      name: TYPEATTR_INFIX
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/selinux/libsepol/src/module_to_cil.c
      type_or_value: '"_typeattr_" '
    - item_type: preproc_def
      name: ROLEATTR_INFIX
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/selinux/libsepol/src/module_to_cil.c
      type_or_value: '"_roleattr_"'
    structs:
    - fields:
      - name: '*pdb'
        type: struct policydb
      - name: '*block'
        type: struct avrule_block
      - name: '*decl_stack'
        type: struct stack
      - name: scope
        type: int
      - name: indent
        type: int
      - name: sym_index
        type: int
      item_type: struct
      name: map_args
      pos:
        line_end: 159
        line_start: 152
        source_file: /src/selinux/libsepol/src/module_to_cil.c
    - fields:
      - name: '**stack'
        type: void
      - name: pos
        type: int
      - name: size
        type: int
      item_type: struct
      name: stack
      pos:
        line_end: 165
        line_start: 161
        source_file: /src/selinux/libsepol/src/module_to_cil.c
    - fields:
      - name: '*role_name'
        type: char
      - name: '*role'
        type: role_datum_t
      item_type: struct
      name: role_list_node
      pos:
        line_end: 170
        line_start: 167
        source_file: /src/selinux/libsepol/src/module_to_cil.c
    - fields:
      - name: '*attr_name'
        type: char
      - name: is_type
        type: int
      - name: '*set'
        type: void
      item_type: struct
      name: attr_list_node
      pos:
        line_end: 176
        line_start: 172
        source_file: /src/selinux/libsepol/src/module_to_cil.c
    - fields:
      - name: '*data'
        type: void
      - name: '*next'
        type: struct list_node
      item_type: struct
      name: list_node
      pos:
        line_end: 181
        line_start: 178
        source_file: /src/selinux/libsepol/src/module_to_cil.c
    - fields:
      - name: '*head'
        type: struct list_node
      item_type: struct
      name: list
      pos:
        line_end: 185
        line_start: 183
        source_file: /src/selinux/libsepol/src/module_to_cil.c
    - fields:
      - name: '*name'
        type: char
      - name: val
        type: uint32_t
      item_type: struct
      name: class_perm_datum
      pos:
        line_end: 1819
        line_start: 1816
        source_file: /src/selinux/libsepol/src/module_to_cil.c
    - fields:
      - name: '*perms'
        type: struct class_perm_datum
      - name: count
        type: uint32_t
      item_type: struct
      name: class_perm_array
      pos:
        line_end: 1824
        line_start: 1821
        source_file: /src/selinux/libsepol/src/module_to_cil.c
    typedefs: []
    union: []
- function_names:
  - cond_optimize
  - cond_optimize_lists
  - bool_present
  - same_bools
  - cond_expr_equal
  - cond_node_create
  - cond_node_find
  - cond_node_search
  - cond_evaluate_expr
  - cond_copy_expr
  - evaluate_cond_node
  - cond_normalize_expr
  - evaluate_conds
  - cond_policydb_init
  - cond_av_list_destroy
  - cond_expr_destroy
  - cond_node_destroy
  - cond_list_destroy
  - cond_policydb_destroy
  - cond_init_bool_indexes
  - cond_destroy_bool
  - cond_index_bool
  - bool_isvalid
  - cond_read_bool
  - cond_insertf
  - cond_read_av_list
  - expr_isvalid
  - cond_read_node
  - cond_read_list
  - cond_compute_av
  - cond_av_list_search
  source_file: /src/selinux/libsepol/src/conditional.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*p'
        type: struct policydb
      - name: '*other'
        type: cond_av_list_t
      - name: '*head'
        type: cond_av_list_t
      - name: '*tail'
        type: cond_av_list_t
      item_type: struct
      name: cond_insertf_data
      pos:
        line_end: 616
        line_start: 611
        source_file: /src/selinux/libsepol/src/conditional.c
    typedefs: []
    union: []
- function_names:
  - sepol_port_key_create
  - sepol_port_key_unpack
  - sepol_port_key_extract
  - sepol_port_key_free
  - sepol_port_compare
  - sepol_port_compare2
  - sepol_port_get_low
  - sepol_port_get_high
  - sepol_port_set_port
  - sepol_port_set_range
  - sepol_port_get_proto
  - sepol_port_get_proto_str
  - sepol_port_set_proto
  - sepol_port_create
  - sepol_port_clone
  - sepol_port_free
  - sepol_port_get_con
  - sepol_port_set_con
  source_file: /src/selinux/libsepol/src/port_record.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: low
        type: int
      - name: proto
        type: int
      - name: '*con'
        type: sepol_context_t
      item_type: struct
      name: sepol_port
      pos:
        line_end: 16
        line_start: 7
        source_file: /src/selinux/libsepol/src/port_record.c
    - fields:
      - name: low
        type: int
      - name: proto
        type: int
      item_type: struct
      name: sepol_port_key
      pos:
        line_end: 24
        line_start: 18
        source_file: /src/selinux/libsepol/src/port_record.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/src/context_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/src/flask.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SECINITSID_KERNEL
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SECINITSID_SECURITY
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SECINITSID_UNLABELED
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SECINITSID_FS
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SECINITSID_FILE
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SECINITSID_FILE_LABELS
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SECINITSID_INIT
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SECINITSID_ANY_SOCKET
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SECINITSID_PORT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SECINITSID_NETIF
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '10'
    - item_type: preproc_def
      name: SECINITSID_NETMSG
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '11'
    - item_type: preproc_def
      name: SECINITSID_NODE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '12'
    - item_type: preproc_def
      name: SECINITSID_IGMP_PACKET
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '13'
    - item_type: preproc_def
      name: SECINITSID_ICMP_SOCKET
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '14'
    - item_type: preproc_def
      name: SECINITSID_TCP_SOCKET
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '15'
    - item_type: preproc_def
      name: SECINITSID_SYSCTL_MODPROBE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '16'
    - item_type: preproc_def
      name: SECINITSID_SYSCTL
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '17'
    - item_type: preproc_def
      name: SECINITSID_SYSCTL_FS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '18'
    - item_type: preproc_def
      name: SECINITSID_SYSCTL_KERNEL
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '19'
    - item_type: preproc_def
      name: SECINITSID_SYSCTL_NET
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '20'
    - item_type: preproc_def
      name: SECINITSID_SYSCTL_NET_UNIX
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '21'
    - item_type: preproc_def
      name: SECINITSID_SYSCTL_VM
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '22'
    - item_type: preproc_def
      name: SECINITSID_SYSCTL_DEV
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '23'
    - item_type: preproc_def
      name: SECINITSID_KMOD
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '24'
    - item_type: preproc_def
      name: SECINITSID_POLICY
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '25'
    - item_type: preproc_def
      name: SECINITSID_SCMP_PACKET
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '26'
    - item_type: preproc_def
      name: SECINITSID_DEVNULL
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '27'
    - item_type: preproc_def
      name: SECINITSID_NUM
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/selinux/libsepol/src/flask.h
      type_or_value: '27'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/src/policydb_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ebitmap_or
  - ebitmap_union
  - ebitmap_and
  - ebitmap_xor
  - ebitmap_not
  - ebitmap_andnot
  - ebitmap_cardinality
  - ebitmap_hamming_distance
  - ebitmap_cmp
  - ebitmap_cpy
  - ebitmap_contains
  - ebitmap_match_any
  - ebitmap_get_bit
  - ebitmap_set_bit
  - ebitmap_init_range
  - ebitmap_highest_set_bit
  - ebitmap_destroy
  - ebitmap_read
  source_file: /src/selinux/libsepol/src/ebitmap.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/src/policydb_validate.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ibpkey_from_record
  - ibpkey_to_record
  - sepol_ibpkey_count
  - sepol_ibpkey_exists
  - sepol_ibpkey_query
  - sepol_ibpkey_modify
  - sepol_ibpkey_iterate
  source_file: /src/selinux/libsepol/src/ibpkeys.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/src/kernel_to_common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STACK_SIZE
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/selinux/libsepol/src/kernel_to_common.h
      type_or_value: '16'
    - item_type: preproc_def
      name: DEFAULT_LEVEL
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/selinux/libsepol/src/kernel_to_common.h
      type_or_value: '"systemlow"'
    - item_type: preproc_def
      name: DEFAULT_OBJECT
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/selinux/libsepol/src/kernel_to_common.h
      type_or_value: '"object_r"'
    - item_type: preproc_def
      name: SELINUX_SID_SZ
      pos:
        line_end: 23
        line_start: 21
        source_file: /src/selinux/libsepol/src/kernel_to_common.h
      type_or_value: (sizeof(selinux_sid_to_str) / sizeof(selinux_sid_to_str[0]))
    - item_type: preproc_def
      name: XEN_SID_SZ
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/selinux/libsepol/src/kernel_to_common.h
      type_or_value: (sizeof(xen_sid_to_str) / sizeof(xen_sid_to_str[0]))
    - item_type: preproc_def
      name: AVTAB_FLAVORS_SZ
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/selinux/libsepol/src/kernel_to_common.h
      type_or_value: (sizeof(avtab_flavors) / sizeof(avtab_flavors[0]))
    structs:
    - fields:
      - name: '**list'
        type: char
      - name: num
        type: unsigned
      - name: size
        type: size_t
      item_type: struct
      name: strs
      pos:
        line_end: 49
        line_start: 45
        source_file: /src/selinux/libsepol/src/kernel_to_common.h
    typedefs: []
    union: []
- function_names:
  - sepol_polcap_getnum
  - sepol_polcap_getname
  source_file: /src/selinux/libsepol/src/polcaps.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sepol_ibendport_alloc_ibdev_name
  - sepol_ibendport_key_create
  - sepol_ibendport_key_unpack
  - sepol_ibendport_key_extract
  - sepol_ibendport_key_free
  - sepol_ibendport_compare
  - sepol_ibendport_compare2
  - sepol_ibendport_get_port
  - sepol_ibendport_set_port
  - sepol_ibendport_get_ibdev_name
  - sepol_ibendport_set_ibdev_name
  - sepol_ibendport_create
  - sepol_ibendport_clone
  - sepol_ibendport_free
  - sepol_ibendport_get_con
  - sepol_ibendport_set_con
  source_file: /src/selinux/libsepol/src/ibendport_record.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ibdev_name'
        type: char
      - name: port
        type: int
      - name: '*con'
        type: sepol_context_t
      item_type: struct
      name: sepol_ibendport
      pos:
        line_end: 20
        line_start: 11
        source_file: /src/selinux/libsepol/src/ibendport_record.c
    - fields:
      - name: '*ibdev_name'
        type: char
      - name: port
        type: int
      item_type: struct
      name: sepol_ibendport_key
      pos:
        line_end: 28
        line_start: 22
        source_file: /src/selinux/libsepol/src/ibendport_record.c
    typedefs: []
    union: []
- function_names:
  - sepol_debug
  - sepol_msg_get_level
  - sepol_msg_get_channel
  - sepol_msg_get_fname
  - sepol_msg_default_handler
  - sepol_msg_set_callback
  source_file: /src/selinux/libsepol/src/debug.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sepol2ipproto
  - ipproto2sepol
  - port_from_record
  - port_to_record
  - sepol_port_count
  - sepol_port_exists
  - sepol_port_query
  - sepol_port_modify
  - sepol_port_iterate
  source_file: /src/selinux/libsepol/src/ports.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IPPROTO_DCCP
      pos:
        line_end: 3
        line_start: 2
        source_file: /src/selinux/libsepol/src/ports.c
      type_or_value: '33'
    - item_type: preproc_def
      name: IPPROTO_SCTP
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/selinux/libsepol/src/ports.c
      type_or_value: '132'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ibendport_from_record
  - ibendport_to_record
  - sepol_ibendport_count
  - sepol_ibendport_exists
  - sepol_ibendport_query
  - sepol_ibendport_modify
  - sepol_ibendport_iterate
  source_file: /src/selinux/libsepol/src/ibendports.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/src/handle.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: msg_level
        type: int
      - name: '*msg_channel'
        type: char
      - name: '*msg_fname'
        type: char
      item_type: struct
      name: sepol_handle
      pos:
        line_end: 20
        line_start: 5
        source_file: /src/selinux/libsepol/src/handle.h
    typedefs: []
    union: []
- function_names:
  - constraint_expr_init
  - constraint_expr_destroy
  source_file: /src/selinux/libsepol/src/constraint.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - min
  - policy_module_destroy
  - permission_copy_callback
  - class_copy_default_new_object
  - class_copy_callback
  - role_copy_callback
  - type_copy_callback
  - user_copy_callback
  - bool_copy_callback
  - sens_copy_callback
  - cat_copy_callback
  - type_bounds_copy_callback
  - role_bounds_copy_callback
  - user_bounds_copy_callback
  - alias_copy_callback
  - ebitmap_convert
  - ebitmap_for_each_positive_bit
  - type_set_convert
  - type_set_or_convert
  - role_set_or_convert
  - mls_level_convert
  - mls_range_convert
  - role_fix_callback
  - type_fix_callback
  - user_fix_callback
  - copy_avrule_list
  - copy_role_trans_list
  - copy_role_allow_list
  - copy_filename_trans_list
  - copy_range_trans_list
  - copy_cond_list
  - copy_identifiers
  - copy_scope_index
  - ebitmap_for_each_positive_bit
  - copy_avrule_decl
  - copy_avrule_block
  - scope_copy_callback
  - copy_module
  - find_perm
  - is_decl_requires_met
  - ebitmap_for_each_positive_bit
  - ebitmap_for_each_positive_bit
  - debug_requirements
  - print_missing_requirements
  - enable_avrules
  - cond_normalize
  - prepare_module
  - prepare_base
  - link_modules
  source_file: /src/selinux/libsepol/src/link.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*policy'
        type: policydb_t
      - name: num_decls
        type: uint32_t
      - name: '*map[SYM_NUM]'
        type: uint32_t
      - name: '*avdecl_map'
        type: uint32_t
      - name: '**perm_map'
        type: uint32_t
      - name: '*perm_map_len'
        type: uint32_t
      - name: '*base_global'
        type: avrule_block_t
      item_type: struct
      name: policy_module
      pos:
        line_end: 52
        line_start: 41
        source_file: /src/selinux/libsepol/src/link.c
    - fields:
      - name: verbose
        type: int
      - name: '*base'
        type: policydb_t
      - name: '*last_avrule_block'
        type: avrule_block_t
      - name: next_decl_id
        type: uint32_t
      - name: '*cur'
        type: policy_module_t
      - name: '*cur_mod_name'
        type: char
      - name: '*dest_decl'
        type: avrule_decl_t
      - name: '*src_class'
        type: class_datum_t
      - name: '*dest_class_name'
        type: char
      - name: dest_class_req
        type: char
      - name: symbol_num
        type: uint32_t
      - name: '**decl_to_mod'
        type: policydb_t
      - name: '*handle'
        type: sepol_handle_t
      item_type: struct
      name: link_state
      pos:
        line_end: 73
        line_start: 54
        source_file: /src/selinux/libsepol/src/link.c
    - fields:
      - name: symbol_type
        type: uint32_t
      - name: symbol_value
        type: uint32_t
      - name: perm_value
        type: uint32_t
      item_type: struct
      name: missing_requirement
      pos:
        line_end: 79
        line_start: 75
        source_file: /src/selinux/libsepol/src/link.c
    - fields:
      - name: valuep
        type: unsigned int
      - name: key
        type: hashtab_key_t
      item_type: struct
      name: find_perm_arg
      pos:
        line_end: 1951
        line_start: 1948
        source_file: /src/selinux/libsepol/src/link.c
    typedefs: []
    union: []
- function_names:
  - msg_write
  - ERR
  - INFO
  - WARN
  source_file: /src/selinux/libsepol/src/debug.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STATUS_SUCCESS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/selinux/libsepol/src/debug.h
      type_or_value: '0'
    - item_type: preproc_def
      name: STATUS_ERR
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/selinux/libsepol/src/debug.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: STATUS_NODATA
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/selinux/libsepol/src/debug.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - policydb_context_isvalid
  - sepol_check_context
  - context_is_valid
  - context_to_string
  - context_from_record
  - context_to_record
  - context_from_string
  - sepol_context_check
  source_file: /src/selinux/libsepol/src/context.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - add_i_to_a
  - perm_name
  - sepol_av_to_string
  - next_bit_in_range
  - sepol_extended_perms_to_string
  - tokenize_str
  - tokenize
  source_file: /src/selinux/libsepol/src/util.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: val
        type: unsigned int
      - name: '*name'
        type: char
      item_type: struct
      name: val_to_name
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/selinux/libsepol/src/util.c
    typedefs: []
    union: []
- function_names:
  - sepol_iface_key_create
  - sepol_iface_key_unpack
  - sepol_iface_key_extract
  - sepol_iface_key_free
  - sepol_iface_compare
  - sepol_iface_compare2
  - sepol_iface_create
  - sepol_iface_get_name
  - sepol_iface_set_name
  - sepol_iface_get_ifcon
  - sepol_iface_set_ifcon
  - sepol_iface_get_msgcon
  - sepol_iface_set_msgcon
  - sepol_iface_clone
  - sepol_iface_free
  source_file: /src/selinux/libsepol/src/iface_record.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*netif_con'
        type: sepol_context_t
      - name: '*netmsg_con'
        type: sepol_context_t
      item_type: struct
      name: sepol_iface
      pos:
        line_end: 16
        line_start: 7
        source_file: /src/selinux/libsepol/src/iface_record.c
    - fields:
      - name: '*name'
        type: char
      item_type: struct
      name: sepol_iface_key
      pos:
        line_end: 21
        line_start: 18
        source_file: /src/selinux/libsepol/src/iface_record.c
    typedefs: []
    union: []
- function_names:
  - policy_file_seek
  - policy_file_length
  - module_package_init
  - set_char
  - sepol_module_package_create
  - sepol_module_package_free
  - sepol_module_package_get_file_contexts
  - sepol_module_package_get_file_contexts_len
  - sepol_module_package_get_seusers
  - sepol_module_package_get_seusers_len
  - sepol_module_package_get_user_extra
  - sepol_module_package_get_user_extra_len
  - sepol_module_package_get_netfilter_contexts
  - sepol_module_package_get_netfilter_contexts_len
  - sepol_module_package_set_file_contexts
  - sepol_module_package_set_seusers
  - sepol_module_package_set_user_extra
  - sepol_module_package_set_netfilter_contexts
  - sepol_module_package_get_policy
  - link_file_contexts
  - link_netfilter_contexts
  - sepol_link_packages
  - read_helper
  - module_package_read_offsets
  - sepol_module_package_read
  - sepol_module_package_info
  - write_helper
  - sepol_module_package_write
  - sepol_link_modules
  - sepol_expand_module
  source_file: /src/selinux/libsepol/src/module.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEPOL_PACKAGE_SECTION_FC
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/selinux/libsepol/src/module.c
      type_or_value: '0xf97cff90'
    - item_type: preproc_def
      name: SEPOL_PACKAGE_SECTION_SEUSER
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/selinux/libsepol/src/module.c
      type_or_value: '0x97cff91'
    - item_type: preproc_def
      name: SEPOL_PACKAGE_SECTION_USER_EXTRA
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/selinux/libsepol/src/module.c
      type_or_value: '0x97cff92'
    - item_type: preproc_def
      name: SEPOL_PACKAGE_SECTION_NETFILTER
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/selinux/libsepol/src/module.c
      type_or_value: '0x97cff93'
    - item_type: preproc_def
      name: _read_helper_bufsize
      pos:
        line_end: 350
        line_start: 349
        source_file: /src/selinux/libsepol/src/module.c
      type_or_value: BUFSIZ
    - item_type: preproc_def
      name: MAXSECTIONS
      pos:
        line_end: 373
        line_start: 372
        source_file: /src/selinux/libsepol/src/module.c
      type_or_value: '100'
    - item_type: preproc_def
      name: SEEN_MOD
      pos:
        line_end: 464
        line_start: 463
        source_file: /src/selinux/libsepol/src/module.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SEEN_FC
      pos:
        line_end: 465
        line_start: 464
        source_file: /src/selinux/libsepol/src/module.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SEEN_SEUSER
      pos:
        line_end: 466
        line_start: 465
        source_file: /src/selinux/libsepol/src/module.c
      type_or_value: '4'
    - item_type: preproc_def
      name: SEEN_USER_EXTRA
      pos:
        line_end: 467
        line_start: 466
        source_file: /src/selinux/libsepol/src/module.c
      type_or_value: '8'
    - item_type: preproc_def
      name: SEEN_NETFILTER
      pos:
        line_end: 468
        line_start: 467
        source_file: /src/selinux/libsepol/src/module.c
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - bounds_insert_helper
  - bounds_insert_rule
  - bounds_expand_rule
  - bounds_expand_cond_rules
  - bounds_expand_rule_callback
  - bounds_destroy_cond_info
  - bounds_expand_parent_rules
  - bounds_not_covered
  - bounds_add_bad
  - bounds_check_rule
  - bounds_check_cond_rules
  - bounds_check_rule_callback
  - bounds_check_child_rules
  - bounds_check_type
  - bounds_report
  - bounds_destroy_bad
  - bounds_check_type_callback
  - bounds_check_types
  - bounds_check_role_callback
  - bounds_check_roles
  - bounds_check_user_callback
  - bounds_check_users
  - add_hierarchy_callback_template
  - hierarchy_add_bounds
  - hierarchy_check_constraints
  source_file: /src/selinux/libsepol/src/hierarchy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BOUNDS_AVTAB_SIZE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/selinux/libsepol/src/hierarchy.c
      type_or_value: '1024'
    structs:
    - fields:
      - name: '*handle'
        type: sepol_handle_t
      - name: '*p'
        type: policydb_t
      - name: '*avtab'
        type: avtab_t
      - name: parent
        type: uint32_t
      item_type: struct
      name: bounds_expand_args
      pos:
        line_end: 153
        line_start: 148
        source_file: /src/selinux/libsepol/src/hierarchy.c
    - fields:
      - name: true_avtab
        type: avtab_t
      - name: false_avtab
        type: avtab_t
      - name: '*cond_list'
        type: cond_list_t
      - name: '*next'
        type: struct bounds_cond_info
      item_type: struct
      name: bounds_cond_info
      pos:
        line_end: 173
        line_start: 168
        source_file: /src/selinux/libsepol/src/hierarchy.c
    - fields:
      - name: '*handle'
        type: sepol_handle_t
      - name: '*p'
        type: policydb_t
      - name: '*cur_avtab'
        type: avtab_t
      - name: child
        type: uint32_t
      - name: parent
        type: uint32_t
      - name: bad
        type: avtab_ptr_t
      - name: numbad
        type: int
      item_type: struct
      name: bounds_check_args
      pos:
        line_end: 369
        line_start: 361
        source_file: /src/selinux/libsepol/src/hierarchy.c
    - fields:
      - name: '*handle'
        type: sepol_handle_t
      - name: '*p'
        type: policydb_t
      - name: numbad
        type: int
      item_type: struct
      name: bounds_args
      pos:
        line_end: 455
        line_start: 451
        source_file: /src/selinux/libsepol/src/hierarchy.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/src/ibendport_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - iface_from_record
  - iface_to_record
  - sepol_iface_exists
  - sepol_iface_query
  - sepol_iface_modify
  - sepol_iface_count
  - sepol_iface_iterate
  source_file: /src/selinux/libsepol/src/interfaces.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - policydb_from_image
  - policydb_to_image
  source_file: /src/selinux/libsepol/src/policydb_convert.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/src/user_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sepol_user_key_create
  - sepol_user_key_unpack
  - sepol_user_key_extract
  - sepol_user_key_free
  - sepol_user_compare
  - sepol_user_compare2
  - sepol_user_get_name
  - sepol_user_set_name
  - sepol_user_get_mlslevel
  - sepol_user_set_mlslevel
  - sepol_user_get_mlsrange
  - sepol_user_set_mlsrange
  - sepol_user_get_num_roles
  - sepol_user_add_role
  - sepol_user_has_role
  - sepol_user_set_roles
  - sepol_user_get_roles
  - sepol_user_del_role
  - sepol_user_create
  - sepol_user_clone
  - sepol_user_free
  source_file: /src/selinux/libsepol/src/user_record.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*mls_level'
        type: char
      - name: '*mls_range'
        type: char
      - name: '**roles'
        type: char
      - name: num_roles
        type: unsigned int
      item_type: struct
      name: sepol_user
      pos:
        line_end: 23
        line_start: 8
        source_file: /src/selinux/libsepol/src/user_record.c
    - fields:
      - name: '*name'
        type: char
      item_type: struct
      name: sepol_user_key
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/selinux/libsepol/src/user_record.c
    typedefs: []
    union: []
- function_names:
  - node_from_record
  - node_to_record
  - sepol_node_count
  - sepol_node_exists
  - sepol_node_query
  - sepol_node_modify
  - sepol_node_iterate
  source_file: /src/selinux/libsepol/src/nodes.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cpu_to_le16
  - le16_to_cpu
  - cpu_to_le32
  - le32_to_cpu
  - cpu_to_le64
  - le64_to_cpu
  - cpu_to_le16
  - le16_to_cpu
  - cpu_to_le32
  - le32_to_cpu
  - cpu_to_le64
  - le64_to_cpu
  - min
  - max
  - ARRAY_SIZE
  - exceeds_available_bytes
  - is_saturated
  - zero_or_saturated
  - spaceship_cmp
  - reallocarray
  source_file: /src/selinux/libsepol/src/private.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __BYTE_ORDER
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/selinux/libsepol/src/private.h
      type_or_value: BYTE_ORDER
    - item_type: preproc_def
      name: __LITTLE_ENDIAN
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/selinux/libsepol/src/private.h
      type_or_value: LITTLE_ENDIAN
    - item_type: preproc_def
      name: ignore_unsigned_overflow_
      pos:
        line_end: 72
        line_start: 69
        source_file: /src/selinux/libsepol/src/private.h
      type_or_value: "__attribute__((no_sanitize(\"unsigned-integer-overflow\", \\\n\t\t\t\t
        \  \"unsigned-shift-base\")))"
    - item_type: preproc_def
      name: ignore_unsigned_overflow_
      pos:
        line_end: 75
        line_start: 73
        source_file: /src/selinux/libsepol/src/private.h
      type_or_value: __attribute__((no_sanitize("unsigned-integer-overflow")))
    structs:
    - fields:
      - name: type
        type: unsigned int
      - name: version
        type: unsigned int
      - name: sym_num
        type: unsigned int
      - name: ocon_num
        type: unsigned int
      - name: target_platform
        type: unsigned int
      item_type: struct
      name: policydb_compat_info
      pos:
        line_end: 87
        line_start: 81
        source_file: /src/selinux/libsepol/src/private.h
    typedefs: []
    union: []
- function_names:
  - hashtab_create
  - hashtab_check_resize
  - hashtab_insert
  - hashtab_remove
  - hashtab_search
  - hashtab_destroy
  - hashtab_map
  - hashtab_hash_eval
  source_file: /src/selinux/libsepol/src/hashtab.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - user_to_record
  - ebitmap_for_each_positive_bit
  - sepol_user_modify
  - sepol_user_exists
  - sepol_user_count
  - sepol_user_query
  - sepol_user_iterate
  source_file: /src/selinux/libsepol/src/users.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - policy_name
  - report_failure
  - match_any_class_permissions
  - extended_permissions_and
  - check_extended_permissions
  - extended_permissions_violated
  - match_node_key
  - report_assertion_extended_permissions
  - ebitmap_for_each_positive_bit
  - ebitmap_for_each_positive_bit
  - report_assertion_avtab_matches
  - report_assertion_failures
  - check_assertion_extended_permissions_avtab
  - ebitmap_for_each_positive_bit
  - ebitmap_for_each_positive_bit
  - check_assertion_extended_permissions
  - check_assertion_notself_match
  - check_assertion_self_match
  - check_assertion_avtab_match
  - check_assertion
  - check_assertions
  source_file: /src/selinux/libsepol/src/assertion.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*handle'
        type: sepol_handle_t
      - name: '*p'
        type: policydb_t
      - name: '*narule'
        type: avrule_t
      - name: errors
        type: unsigned long
      - name: conditional
        type: bool
      item_type: struct
      name: avtab_match_args
      pos:
        line_end: 37
        line_start: 31
        source_file: /src/selinux/libsepol/src/assertion.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/src/module_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sepol_bool_key_create
  - sepol_bool_key_unpack
  - sepol_bool_key_extract
  - sepol_bool_key_free
  - sepol_bool_compare
  - sepol_bool_compare2
  - sepol_bool_get_name
  - sepol_bool_set_name
  - sepol_bool_get_value
  - sepol_bool_set_value
  - sepol_bool_create
  - sepol_bool_clone
  - sepol_bool_free
  source_file: /src/selinux/libsepol/src/boolean_record.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: value
        type: int
      item_type: struct
      name: sepol_bool
      pos:
        line_end: 13
        line_start: 7
        source_file: /src/selinux/libsepol/src/boolean_record.c
    - fields:
      - name: '*name'
        type: char
      item_type: struct
      name: sepol_bool_key
      pos:
        line_end: 18
        line_start: 15
        source_file: /src/selinux/libsepol/src/boolean_record.c
    typedefs: []
    union: []
- function_names:
  - node_parse_addr
  - node_alloc_addr
  - node_expand_addr
  - node_alloc_addr_string
  - sepol_node_key_create
  - sepol_node_key_unpack
  - sepol_node_key_extract
  - sepol_node_key_free
  - sepol_node_compare
  - sepol_node_compare2
  - sepol_node_get_addr
  - sepol_node_get_addr_bytes
  - sepol_node_set_addr
  - sepol_node_set_addr_bytes
  - sepol_node_get_mask
  - sepol_node_get_mask_bytes
  - sepol_node_set_mask
  - sepol_node_set_mask_bytes
  - sepol_node_get_proto
  - sepol_node_set_proto
  - sepol_node_get_proto_str
  - sepol_node_create
  - sepol_node_clone
  - sepol_node_free
  - sepol_node_get_con
  - sepol_node_set_con
  source_file: /src/selinux/libsepol/src/node_record.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*addr'
        type: char
      - name: addr_sz
        type: size_t
      - name: '*mask'
        type: char
      - name: mask_sz
        type: size_t
      - name: proto
        type: int
      - name: '*con'
        type: sepol_context_t
      item_type: struct
      name: sepol_node
      pos:
        line_end: 24
        line_start: 11
        source_file: /src/selinux/libsepol/src/node_record.c
    - fields:
      - name: '*addr'
        type: char
      - name: addr_sz
        type: size_t
      - name: '*mask'
        type: char
      - name: mask_sz
        type: size_t
      - name: proto
        type: int
      item_type: struct
      name: sepol_node_key
      pos:
        line_end: 36
        line_start: 26
        source_file: /src/selinux/libsepol/src/node_record.c
    typedefs: []
    union: []
- function_names:
  - bool_update
  - bool_to_record
  - sepol_bool_set
  - sepol_bool_count
  - sepol_bool_exists
  - sepol_bool_query
  - sepol_bool_iterate
  source_file: /src/selinux/libsepol/src/booleans.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/src/mls.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sepol_policy_file_create
  - sepol_policy_file_set_mem
  - sepol_policy_file_set_fp
  - sepol_policy_file_get_len
  - sepol_policy_file_set_handle
  - sepol_policy_file_free
  - sepol_policydb_create
  - sepol_policydb_free
  - sepol_policy_kern_vers_min
  - sepol_policy_kern_vers_max
  - sepol_policydb_set_typevers
  - sepol_policydb_set_vers
  - sepol_policydb_set_handle_unknown
  - sepol_policydb_set_target_platform
  - sepol_policydb_optimize
  - sepol_policydb_read
  - sepol_policydb_write
  - sepol_policydb_from_image
  - sepol_policydb_to_image
  - sepol_policydb_mls_enabled
  - sepol_policydb_compat_net
  source_file: /src/selinux/libsepol/src/policydb_public.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PACKET_CLASS_NAME
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/selinux/libsepol/src/policydb_public.c
      type_or_value: '"packet"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/src/iface_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - avrule_block_create
  - avrule_decl_create
  - scope_index_destroy
  - avrule_decl_destroy
  - avrule_block_destroy
  - avrule_block_list_destroy
  - get_decl_cond_list
  - is_id_enabled
  - is_perm_existent
  source_file: /src/selinux/libsepol/src/avrule_block.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sepol_indent
  - sepol_printf
  - create_str
  - strs_init
  - strs_destroy
  - strs_free_all
  - strs_add
  - strs_create_and_add
  - strs_remove_last
  - strs_add_at_index
  - strs_read_at_index
  - strs_cmp
  - strs_sort
  - strs_num_items
  - strs_len_items
  - strs_to_str
  - strs_write_each
  - strs_write_each_indented
  - hashtab_ordered_to_strs
  - ebitmap_to_strs
  - ebitmap_for_each_positive_bit
  - ebitmap_to_str
  - strs_stack_init
  - strs_stack_destroy
  - strs_stack_push
  - strs_stack_pop
  - strs_stack_empty
  - isids_to_strs
  - compare_ranges
  - fsuse_data_cmp
  - portcon_data_cmp
  - netif_data_cmp
  - node_data_cmp
  - node6_data_cmp
  - ibpkey_data_cmp
  - ibendport_data_cmp
  - pirq_data_cmp
  - ioport_data_cmp
  - iomem_data_cmp
  - pcid_data_cmp
  - dtree_data_cmp
  - sort_ocontext_data
  - sort_ocontexts
  - check_for_supported_policy
  source_file: /src/selinux/libsepol/src/kernel_to_common.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IPPROTO_DCCP
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/selinux/libsepol/src/kernel_to_common.c
      type_or_value: '33'
    - item_type: preproc_def
      name: IPPROTO_SCTP
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/selinux/libsepol/src/kernel_to_common.c
      type_or_value: '132'
    structs: []
    typedefs: []
    union: []
- function_names:
  - mls_to_string
  - mls_from_string
  - mls_compute_context_len
  - mls_sid_to_context
  - mls_context_isvalid
  - mls_context_to_sid
  - mls_copy_context
  - mls_scopy_context
  - mls_range_set
  - mls_setup_user_range
  - mls_convert_context
  - mls_compute_sid
  - sepol_mls_contains
  - sepol_mls_check
  - mls_semantic_cat_init
  - mls_semantic_cat_destroy
  - mls_semantic_level_init
  - mls_semantic_level_destroy
  - mls_semantic_level_cpy
  - mls_semantic_range_init
  - mls_semantic_range_destroy
  - mls_semantic_range_cpy
  source_file: /src/selinux/libsepol/src/mls.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/src/port_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sepol_context_get_user
  - sepol_context_set_user
  - sepol_context_get_role
  - sepol_context_set_role
  - sepol_context_get_type
  - sepol_context_set_type
  - sepol_context_get_mls
  - sepol_context_set_mls
  - sepol_context_create
  - sepol_context_clone
  - sepol_context_free
  - sepol_context_from_string
  - sepol_context_to_string
  source_file: /src/selinux/libsepol/src/context_record.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*user'
        type: char
      - name: '*role'
        type: char
      - name: '*type'
        type: char
      - name: '*mls'
        type: char
      item_type: struct
      name: sepol_context
      pos:
        line_end: 21
        line_start: 9
        source_file: /src/selinux/libsepol/src/context_record.c
    typedefs: []
    union: []
- function_names:
  - SIDTAB_HASH
  - sepol_sidtab_init
  - sepol_sidtab_insert
  - sepol_sidtab_search
  - sepol_sidtab_map
  - sepol_sidtab_map_remove_on_error
  - sepol_sidtab_search_context
  - sepol_sidtab_context_to_sid
  - sepol_sidtab_hash_eval
  - sepol_sidtab_destroy
  - sepol_sidtab_set
  - sepol_sidtab_shutdown
  source_file: /src/selinux/libsepol/src/sidtab.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bool_xor
  - bool_xnor
  - PERMISSION_MASK
  - NO_VALID_PERMS
  - create_gap_ebitmap
  - validate_init
  - validate_array_init
  - value_isvalid
  - validate_value
  - validate_string_field
  - validate_ebitmap
  - validate_type_set
  - validate_empty_type_set
  - validate_role_set
  - validate_scope
  - validate_scopes
  - validate_constraint_nodes
  - perm_visit
  - validate_permission_symtab
  - validate_common_datum
  - validate_common_datum_wrapper
  - validate_class_datum
  - validate_bool_datum
  - validate_bool_datum_wrapper
  - validate_datum_array_gaps
  - validate_datum
  - validate_datum_array_entries
  - validate_avtab_key
  - validate_xperms
  - validate_access_vector
  - validate_avtab_key_and_datum
  - validate_avtab
  - validate_cond_av_list
  - validate_avrules
  - validate_bool_id_array
  - validate_cond_expr
  - validate_cond_list
  - validate_role_transes
  - validate_role_allows
  - validate_filename_trans
  - validate_filename_trans_hashtab
  - validate_context
  - validate_ocontexts
  - validate_genfs
  - validate_role_trans_rules
  - validate_role_allow_rules
  - validate_range_trans_rules
  - validate_scope_index
  - ebitmap_for_each_positive_bit
  - validate_filename_trans_rules
  - validate_avrule_blocks
  - validate_permissives
  - validate_neveraudit
  - validate_range_transition
  - validate_range_transitions
  - validate_typeattr_map
  - validate_attrtype_map
  - validate_properties
  - validate_policycaps
  - validate_array_destroy
  - policydb_validate
  source_file: /src/selinux/libsepol/src/policydb_validate.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: nprim
        type: uint32_t
      - name: gaps
        type: ebitmap_t
      item_type: struct
      name: validate
      pos:
        line_end: 27
        line_start: 24
        source_file: /src/selinux/libsepol/src/policydb_validate.c
    - fields:
      - name: '*flavors'
        type: validate_t
      - name: '*handle'
        type: sepol_handle_t
      - name: '*policy'
        type: policydb_t
      - name: conditional
        type: int
      item_type: struct
      name: map_arg
      pos:
        line_end: 34
        line_start: 29
        source_file: /src/selinux/libsepol/src/policydb_validate.c
    - fields:
      - name: visited
        type: uint32_t
      - name: nprim
        type: uint32_t
      - name: inherited_nprim
        type: uint32_t
      item_type: struct
      name: perm_arg
      pos:
        line_end: 40
        line_start: 36
        source_file: /src/selinux/libsepol/src/policydb_validate.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/src/context.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - symhash
  - symcmp
  - symtab_init
  - symtab_destroy
  source_file: /src/selinux/libsepol/src/symtab.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cond_expr_to_str
  - constraint_expr_to_str
  - class_constraint_rules_to_strs
  - class_validatetrans_rules_to_strs
  - constraint_rules_to_strs
  - validatetrans_rules_to_strs
  - write_handle_unknown_to_conf
  - write_class_decl_rules_to_conf
  - write_sids_to_conf
  - write_sid_decl_rules_to_conf
  - class_or_common_perms_to_str
  - write_class_and_common_rules_to_conf
  - write_default_user_to_conf
  - map_sensitivity_aliases_to_strs
  - write_sensitivity_rules_to_conf
  - map_category_aliases_to_strs
  - write_category_rules_to_conf
  - cats_ebitmap_len
  - ebitmap_for_each_positive_bit
  - cats_ebitmap_to_str
  - ebitmap_for_each_positive_bit
  - write_level_rules_to_conf
  - write_mls_rules_to_conf
  - write_polcap_rules_to_conf
  - write_type_attributes_to_conf
  - write_role_attributes_to_conf
  - map_boolean_to_strs
  - write_boolean_decl_rules_to_conf
  - write_type_decl_rules_to_conf
  - map_count_type_aliases
  - map_type_aliases_to_strs
  - write_type_alias_rules_to_conf
  - write_type_bounds_rules_to_conf
  - attr_strs_to_str
  - attrmap_to_str
  - write_type_attribute_sets_to_conf
  - write_type_permissive_rules_to_conf
  - write_type_neveraudit_rules_to_conf
  - avtab_node_to_str
  - map_avtab_write_helper
  - write_avtab_flavor_to_conf
  - write_avtab_to_conf
  - map_filename_trans_to_str
  - write_filename_trans_rules_to_conf
  - level_to_str
  - range_to_str
  - map_range_trans_to_str
  - write_range_trans_rules_to_conf
  - write_cond_av_list_to_conf
  - cond_node_cmp
  - write_cond_nodes_to_conf
  - write_role_decl_rules_to_conf
  - write_role_transition_rules_to_conf
  - write_role_allow_rules_to_conf
  - write_user_decl_rules_to_conf
  - context_to_str
  - write_sid_context_rules_to_conf
  - write_selinux_isid_rules_to_conf
  - write_selinux_fsuse_rules_to_conf
  - write_genfscon_rules_to_conf
  - write_selinux_port_rules_to_conf
  - write_selinux_netif_rules_to_conf
  - write_selinux_node_rules_to_conf
  - write_selinux_node6_rules_to_conf
  - write_selinux_ibpkey_rules_to_conf
  - write_selinux_ibendport_rules_to_conf
  - write_xen_isid_rules_to_conf
  - write_xen_pirq_rules_to_conf
  - write_xen_ioport_rules_to_conf
  - write_xen_iomem_rules_to_conf
  - write_xen_pcidevice_rules_to_conf
  - write_xen_devicetree_rules_to_conf
  - sepol_kernel_policydb_to_conf
  source_file: /src/selinux/libsepol/src/kernel_to_conf.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IPPROTO_DCCP
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/selinux/libsepol/src/kernel_to_conf.c
      type_or_value: '33'
    - item_type: preproc_def
      name: IPPROTO_SCTP
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/selinux/libsepol/src/kernel_to_conf.c
      type_or_value: '132'
    structs:
    - fields:
      - name: '*pdb'
        type: struct policydb
      - name: flavor
        type: uint32_t
      - name: '*strs'
        type: struct strs
      item_type: struct
      name: map_avtab_args
      pos:
        line_end: 1974
        line_start: 1970
        source_file: /src/selinux/libsepol/src/kernel_to_conf.c
    - fields:
      - name: '*pdb'
        type: struct policydb
      - name: '*strs'
        type: struct strs
      item_type: struct
      name: map_filename_trans_args
      pos:
        line_end: 2058
        line_start: 2055
        source_file: /src/selinux/libsepol/src/kernel_to_conf.c
    - fields:
      - name: '*pdb'
        type: struct policydb
      - name: '*strs'
        type: struct strs
      item_type: struct
      name: map_range_trans_args
      pos:
        line_end: 2173
        line_start: 2170
        source_file: /src/selinux/libsepol/src/kernel_to_conf.c
    - fields:
      - name: '*expr'
        type: char
      - name: '*cond'
        type: struct cond_node
      item_type: struct
      name: cond_data
      pos:
        line_end: 2295
        line_start: 2292
        source_file: /src/selinux/libsepol/src/kernel_to_conf.c
    typedefs: []
    union: []
- function_names:
  - avtab_hash
  - mix
  - avtab_insert_node
  - avtab_insert
  - avtab_insert_nonunique
  - avtab_search
  - avtab_search_node
  - avtab_search_node_next
  - avtab_destroy
  - avtab_map
  - avtab_init
  - avtab_alloc
  - avtab_hash_eval
  - avtab_read_item
  - avtab_insertf
  - avtab_read
  source_file: /src/selinux/libsepol/src/avtab.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - expand_state_init
  - map_ebitmap
  - ebitmap_for_each_positive_bit
  - ebitmap_expand_roles
  - ebitmap_for_each_positive_bit
  - type_copy_callback
  - attr_convert_callback
  - expand_attributes_in_attributes
  - perm_copy_callback
  - common_copy_callback
  - constraint_node_clone
  - class_copy_default_new_object
  - class_copy_callback
  - (!new_class->comkey)
  - (!new_class->comdatum)
  - user_bounds_copy_callback
  - alias_copy_callback
  - role_dominates_copy_callback
  - role_types_copy_callback
  - role_roles_copy_callback
  - expand_role_attributes_in_attributes
  - role_fix_callback
  - role_copy_callback
  - mls_semantic_level_expand
  - mls_semantic_range_expand
  - user_copy_callback
  - bool_copy_callback
  - sens_copy_callback
  - cats_copy_callback
  - copy_role_allows
  - copy_role_trans
  - expand_filename_trans_helper
  - expand_filename_trans
  - exp_rangetr_helper
  - expand_range_trans
  - find_avtab_node
  - avrule_to_avtab_spec
  - expand_terule_helper
  - allocate_xperms
  - expand_avrule_helper
  - expand_rule_helper
  - ebitmap_for_each_positive_bit
  - ebitmap_for_each_positive_bit
  - convert_and_expand_rule
  - cond_avrule_list_copy
  - cond_node_map_bools
  - cond_node_copy
  - context_copy
  - ocontext_copy_xen
  - ocontext_copy_selinux
  - ocontext_copy
  - genfs_copy
  - type_attr_map
  - expand_convert_type_set
  - expand_rule
  - role_set_expand
  - type_set_expand
  - copy_neverallow
  - copy_and_expand_avrule_block
  - expand_module_avrules
  - discard_tunables
  - expand_module
  - expand_avtab_insert
  - expand_avtab_node
  - ebitmap_for_each_positive_bit
  - ebitmap_for_each_positive_bit
  - ebitmap_for_each_positive_bit
  - ebitmap_for_each_positive_bit
  - expand_avtab
  - expand_cond_insert
  - expand_cond_av_node
  - ebitmap_for_each_positive_bit
  - ebitmap_for_each_positive_bit
  - ebitmap_for_each_positive_bit
  - ebitmap_for_each_positive_bit
  - expand_cond_av_list
  source_file: /src/selinux/libsepol/src/expand.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EXPAND_RULE_SUCCESS
      pos:
        line_end: 1946
        line_start: 1945
        source_file: /src/selinux/libsepol/src/expand.c
      type_or_value: '1'
    - item_type: preproc_def
      name: EXPAND_RULE_CONFLICT
      pos:
        line_end: 1947
        line_start: 1946
        source_file: /src/selinux/libsepol/src/expand.c
      type_or_value: '0'
    - item_type: preproc_def
      name: EXPAND_RULE_ERROR
      pos:
        line_end: 1948
        line_start: 1947
        source_file: /src/selinux/libsepol/src/expand.c
      type_or_value: '-1'
    structs:
    - fields:
      - name: verbose
        type: int
      - name: '*typemap'
        type: uint32_t
      - name: '*boolmap'
        type: uint32_t
      - name: '*rolemap'
        type: uint32_t
      - name: '*usermap'
        type: uint32_t
      - name: '*base'
        type: policydb_t
      - name: '*out'
        type: policydb_t
      - name: '*handle'
        type: sepol_handle_t
      - name: expand_neverallow
        type: int
      item_type: struct
      name: expand_state
      pos:
        line_end: 51
        line_start: 41
        source_file: /src/selinux/libsepol/src/expand.c
    - fields:
      - name: '*expa'
        type: avtab_t
      - name: '*p'
        type: policydb_t
      item_type: struct
      name: expand_avtab_data
      pos:
        line_end: 3622
        line_start: 3619
        source_file: /src/selinux/libsepol/src/expand.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/src/ibpkey_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cond_expr_to_str
  - constraint_expr_to_str
  - class_constraint_rules_to_strs
  - class_validatetrans_rules_to_strs
  - (rc != 0)
  - (rc != 0)
  - write_handle_unknown_to_cil
  - class_or_common_perms_to_str
  - write_class_decl_rules_to_cil
  - write_sids_to_cil
  - write_sid_decl_rules_to_cil
  - (rc != 0)
  - write_default_mls_level
  - map_count_sensitivity_aliases
  - map_sensitivity_aliases_to_strs
  - write_sensitivity_rules_to_cil
  - map_count_category_aliases
  - map_category_aliases_to_strs
  - write_category_rules_to_cil
  - cats_ebitmap_len
  - ebitmap_for_each_positive_bit
  - cats_ebitmap_to_str
  - ebitmap_for_each_positive_bit
  - write_sensitivitycategory_rules_to_cil
  - write_mls_rules_to_cil
  - write_polcap_rules_to_cil
  - write_type_attributes_to_cil
  - write_role_attributes_to_cil
  - map_boolean_to_strs
  - write_boolean_decl_rules_to_cil
  - write_type_decl_rules_to_cil
  - map_count_type_aliases
  - map_type_aliases_to_strs
  - write_type_alias_rules_to_cil
  - write_type_bounds_rules_to_cil
  - write_type_attribute_sets_to_cil
  - write_type_permissive_rules_to_cil
  - write_type_neveraudit_rules_to_cil
  - next_bit_in_range
  - xperms_to_str
  - avtab_node_to_str
  - map_avtab_write_helper
  - write_avtab_flavor_to_cil
  - write_avtab_to_cil
  - map_filename_trans_to_str
  - write_filename_trans_rules_to_cil
  - level_to_str
  - range_to_str
  - map_range_trans_to_str
  - write_range_trans_rules_to_cil
  - write_cond_av_list_to_cil
  - cond_node_cmp
  - write_cond_nodes_to_cil
  - write_role_decl_rules_to_cil
  - write_role_transition_rules_to_cil
  - write_role_allow_rules_to_cil
  - write_user_decl_rules_to_cil
  - context_to_str
  - write_sid_context_rules_to_cil
  - write_selinux_isid_rules_to_cil
  - write_selinux_fsuse_rules_to_cil
  - write_genfscon_rules_to_cil
  - write_selinux_port_rules_to_cil
  - write_selinux_netif_rules_to_cil
  - write_selinux_node_rules_to_cil
  - write_selinux_node6_rules_to_cil
  - write_selinux_ibpkey_rules_to_cil
  - write_selinux_ibendport_rules_to_cil
  - write_xen_isid_rules_to_cil
  - write_xen_pirq_rules_to_cil
  - write_xen_ioport_rules_to_cil
  - write_xen_iomem_rules_to_cil
  - write_xen_pcidevice_rules_to_cil
  - write_xen_devicetree_rules_to_cil
  - sepol_kernel_policydb_to_cil
  - sepol_kernel_policydb_decls_to_cil
  source_file: /src/selinux/libsepol/src/kernel_to_cil.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IPPROTO_DCCP
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/selinux/libsepol/src/kernel_to_cil.c
      type_or_value: '33'
    - item_type: preproc_def
      name: IPPROTO_SCTP
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/selinux/libsepol/src/kernel_to_cil.c
      type_or_value: '132'
    structs:
    - fields:
      - name: '*pdb'
        type: struct policydb
      - name: flavor
        type: uint32_t
      - name: '*strs'
        type: struct strs
      item_type: struct
      name: map_avtab_args
      pos:
        line_end: 2006
        line_start: 2002
        source_file: /src/selinux/libsepol/src/kernel_to_cil.c
    - fields:
      - name: '*pdb'
        type: struct policydb
      - name: '*strs'
        type: struct strs
      item_type: struct
      name: map_filename_trans_args
      pos:
        line_end: 2090
        line_start: 2087
        source_file: /src/selinux/libsepol/src/kernel_to_cil.c
    - fields:
      - name: '*pdb'
        type: struct policydb
      - name: '*strs'
        type: struct strs
      item_type: struct
      name: map_range_trans_args
      pos:
        line_end: 2204
        line_start: 2201
        source_file: /src/selinux/libsepol/src/kernel_to_cil.c
    - fields:
      - name: '*expr'
        type: char
      - name: '*cond'
        type: struct cond_node
      item_type: struct
      name: cond_data
      pos:
        line_end: 2325
        line_start: 2322
        source_file: /src/selinux/libsepol/src/kernel_to_cil.c
    typedefs: []
    union: []
- function_names:
  - ibpkey_parse_subnet_prefix
  - ibpkey_expand_subnet_prefix
  - ibpkey_alloc_subnet_prefix_string
  - sepol_ibpkey_key_create
  - sepol_ibpkey_key_unpack
  - sepol_ibpkey_key_extract
  - sepol_ibpkey_key_free
  - sepol_ibpkey_compare
  - sepol_ibpkey_compare2
  - sepol_ibpkey_get_low
  - sepol_ibpkey_get_high
  - sepol_ibpkey_set_pkey
  - sepol_ibpkey_set_range
  - sepol_ibpkey_get_subnet_prefix
  - sepol_ibpkey_get_subnet_prefix_bytes
  - sepol_ibpkey_set_subnet_prefix
  - sepol_ibpkey_set_subnet_prefix_bytes
  - sepol_ibpkey_create
  - sepol_ibpkey_clone
  - sepol_ibpkey_free
  - sepol_ibpkey_get_con
  - sepol_ibpkey_set_con
  source_file: /src/selinux/libsepol/src/ibpkey_record.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: subnet_prefix
        type: uint64_t
      - name: low
        type: int
      - name: '*con'
        type: sepol_context_t
      item_type: struct
      name: sepol_ibpkey
      pos:
        line_end: 20
        line_start: 11
        source_file: /src/selinux/libsepol/src/ibpkey_record.c
    - fields:
      - name: subnet_prefix
        type: uint64_t
      - name: low
        type: int
      item_type: struct
      name: sepol_ibpkey_key
      pos:
        line_end: 28
        line_start: 22
        source_file: /src/selinux/libsepol/src/ibpkey_record.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/interfaces.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/ibpkeys.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/sepol.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/policydb.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEPOL_POLICY_KERN
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/selinux/libsepol/include/sepol/policydb.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SEPOL_POLICY_BASE
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/selinux/libsepol/include/sepol/policydb.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SEPOL_POLICY_MOD
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/selinux/libsepol/include/sepol/policydb.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SEPOL_DENY_UNKNOWN
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/selinux/libsepol/include/sepol/policydb.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SEPOL_REJECT_UNKNOWN
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/selinux/libsepol/include/sepol/policydb.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SEPOL_ALLOW_UNKNOWN
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/selinux/libsepol/include/sepol/policydb.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SEPOL_TARGET_SELINUX
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/selinux/libsepol/include/sepol/policydb.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SEPOL_TARGET_XEN
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/selinux/libsepol/include/sepol/policydb.h
      type_or_value: '1'
    structs: []
    typedefs:
    - item_type: typedef
      name: sepol_policy_file_t
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/selinux/libsepol/include/sepol/policydb.h
      type: sepol_policy_file
    - item_type: typedef
      name: sepol_policydb_t
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/selinux/libsepol/include/sepol/policydb.h
      type: sepol_policydb
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/module.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: sepol_module_package_t
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/selinux/libsepol/include/sepol/module.h
      type: sepol_module_package
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/kernel_to_conf.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/nodes.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/handle.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: sepol_handle_t
      pos:
        line_end: 8
        line_start: 8
        source_file: /src/selinux/libsepol/include/sepol/handle.h
      type: sepol_handle
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/kernel_to_cil.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/debug.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEPOL_MSG_ERR
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/selinux/libsepol/include/sepol/debug.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SEPOL_MSG_WARN
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/selinux/libsepol/include/sepol/debug.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SEPOL_MSG_INFO
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/selinux/libsepol/include/sepol/debug.h
      type_or_value: '3'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/user_record.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: sepol_user_t
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/selinux/libsepol/include/sepol/user_record.h
      type: sepol_user
    - item_type: typedef
      name: sepol_user_key_t
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/selinux/libsepol/include/sepol/user_record.h
      type: sepol_user_key
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/module_to_cil.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/ibpkey_record.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: INET6_ADDRLEN
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/selinux/libsepol/include/sepol/ibpkey_record.h
      type_or_value: '16'
    structs: []
    typedefs:
    - item_type: typedef
      name: sepol_ibpkey_t
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/selinux/libsepol/include/sepol/ibpkey_record.h
      type: sepol_ibpkey
    - item_type: typedef
      name: sepol_ibpkey_key_t
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/selinux/libsepol/include/sepol/ibpkey_record.h
      type: sepol_ibpkey_key
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/booleans.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/ports.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/users.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/iface_record.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: sepol_iface_t
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/selinux/libsepol/include/sepol/iface_record.h
      type: sepol_iface
    - item_type: typedef
      name: sepol_iface_key_t
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/selinux/libsepol/include/sepol/iface_record.h
      type: sepol_iface_key
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/context_record.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: sepol_context_t
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/selinux/libsepol/include/sepol/context_record.h
      type: sepol_context
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/boolean_record.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: sepol_bool_t
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/selinux/libsepol/include/sepol/boolean_record.h
      type: sepol_bool
    - item_type: typedef
      name: sepol_bool_key_t
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/selinux/libsepol/include/sepol/boolean_record.h
      type: sepol_bool_key
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/errcodes.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEPOL_OK
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/selinux/libsepol/include/sepol/errcodes.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SEPOL_ERR
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/selinux/libsepol/include/sepol/errcodes.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: SEPOL_ENOTSUP
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/selinux/libsepol/include/sepol/errcodes.h
      type_or_value: '(-2) '
    - item_type: preproc_def
      name: SEPOL_EREQ
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/selinux/libsepol/include/sepol/errcodes.h
      type_or_value: '(-3) '
    - item_type: preproc_def
      name: SEPOL_ENOMEM
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/selinux/libsepol/include/sepol/errcodes.h
      type_or_value: (-ENOMEM)
    - item_type: preproc_def
      name: SEPOL_EEXIST
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/selinux/libsepol/include/sepol/errcodes.h
      type_or_value: (-EEXIST)
    - item_type: preproc_def
      name: SEPOL_ENOENT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/selinux/libsepol/include/sepol/errcodes.h
      type_or_value: (-ENOENT)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/ibendport_record.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: sepol_ibendport_t
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/selinux/libsepol/include/sepol/ibendport_record.h
      type: sepol_ibendport
    - item_type: typedef
      name: sepol_ibendport_key_t
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/selinux/libsepol/include/sepol/ibendport_record.h
      type: sepol_ibendport_key
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/port_record.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEPOL_PROTO_UDP
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/selinux/libsepol/include/sepol/port_record.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SEPOL_PROTO_TCP
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/selinux/libsepol/include/sepol/port_record.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SEPOL_PROTO_DCCP
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/selinux/libsepol/include/sepol/port_record.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SEPOL_PROTO_SCTP
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/selinux/libsepol/include/sepol/port_record.h
      type_or_value: '3'
    structs: []
    typedefs:
    - item_type: typedef
      name: sepol_port_t
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/selinux/libsepol/include/sepol/port_record.h
      type: sepol_port
    - item_type: typedef
      name: sepol_port_key_t
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/selinux/libsepol/include/sepol/port_record.h
      type: sepol_port_key
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/ibendports.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/context.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/node_record.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEPOL_PROTO_IP4
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/selinux/libsepol/include/sepol/node_record.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SEPOL_PROTO_IP6
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/selinux/libsepol/include/sepol/node_record.h
      type_or_value: '1'
    structs: []
    typedefs:
    - item_type: typedef
      name: sepol_node_t
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/selinux/libsepol/include/sepol/node_record.h
      type: sepol_node
    - item_type: typedef
      name: sepol_node_key_t
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/selinux/libsepol/include/sepol/node_record.h
      type: sepol_node_key
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/policydb/polcaps.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: POLICYDB_CAP_MAX
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/selinux/libsepol/include/sepol/policydb/polcaps.h
      type_or_value: (__POLICYDB_CAP_MAX - 1)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CEXPR_MAXDEPTH
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
      type_or_value: '5'
    - item_type: preproc_def
      name: CEXPR_NOT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: CEXPR_AND
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: CEXPR_OR
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
      type_or_value: '3 '
    - item_type: preproc_def
      name: CEXPR_ATTR
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: CEXPR_NAMES
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
      type_or_value: '5 '
    - item_type: preproc_def
      name: CEXPR_USER
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: CEXPR_ROLE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: CEXPR_TYPE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: CEXPR_TARGET
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
      type_or_value: '8 '
    - item_type: preproc_def
      name: CEXPR_XTARGET
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
      type_or_value: '16 '
    - item_type: preproc_def
      name: CEXPR_L1L2
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
      type_or_value: '32 '
    - item_type: preproc_def
      name: CEXPR_L1H2
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
      type_or_value: '64 '
    - item_type: preproc_def
      name: CEXPR_H1L2
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
      type_or_value: '128 '
    - item_type: preproc_def
      name: CEXPR_H1H2
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
      type_or_value: '256 '
    - item_type: preproc_def
      name: CEXPR_L1H1
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
      type_or_value: '512 '
    - item_type: preproc_def
      name: CEXPR_L2H2
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
      type_or_value: '1024 '
    - item_type: preproc_def
      name: CEXPR_EQ
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: CEXPR_NEQ
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: CEXPR_DOM
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
      type_or_value: '3 '
    - item_type: preproc_def
      name: CEXPR_DOMBY
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: CEXPR_INCOMP
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
      type_or_value: '5 '
    structs:
    - fields:
      - name: expr_type
        type: uint32_t
      - name: attr
        type: uint32_t
      - name: op
        type: uint32_t
      - name: names
        type: ebitmap_t
      - name: '*type_names'
        type: struct type_set
      - name: '*next'
        type: struct constraint_expr
      item_type: struct
      name: constraint_expr
      pos:
        line_end: 63
        line_start: 31
        source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
    - fields:
      - name: permissions
        type: sepol_access_vector_t
      - name: '*expr'
        type: constraint_expr_t
      - name: '*next'
        type: struct constraint_node
      item_type: struct
      name: constraint_node
      pos:
        line_end: 69
        line_start: 65
        source_file: /src/selinux/libsepol/include/sepol/policydb/constraint.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/policydb/conditional.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COND_EXPR_MAXDEPTH
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/selinux/libsepol/include/sepol/policydb/conditional.h
      type_or_value: '10'
    - item_type: preproc_def
      name: COND_MAX_BOOLS
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/selinux/libsepol/include/sepol/policydb/conditional.h
      type_or_value: '5'
    - item_type: preproc_def
      name: COND_BOOL
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/selinux/libsepol/include/sepol/policydb/conditional.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: COND_NOT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/selinux/libsepol/include/sepol/policydb/conditional.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: COND_OR
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/selinux/libsepol/include/sepol/policydb/conditional.h
      type_or_value: '3 '
    - item_type: preproc_def
      name: COND_AND
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/selinux/libsepol/include/sepol/policydb/conditional.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: COND_XOR
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/selinux/libsepol/include/sepol/policydb/conditional.h
      type_or_value: '5 '
    - item_type: preproc_def
      name: COND_EQ
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/selinux/libsepol/include/sepol/policydb/conditional.h
      type_or_value: '6 '
    - item_type: preproc_def
      name: COND_NEQ
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/selinux/libsepol/include/sepol/policydb/conditional.h
      type_or_value: '7 '
    - item_type: preproc_def
      name: COND_LAST
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/selinux/libsepol/include/sepol/policydb/conditional.h
      type_or_value: COND_NEQ
    - item_type: preproc_def
      name: COND_NODE_FLAGS_TUNABLE
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/selinux/libsepol/include/sepol/policydb/conditional.h
      type_or_value: UINT32_C(0x01)
    structs:
    - fields:
      - name: expr_type
        type: uint32_t
      - name: boolean
        type: uint32_t
      - name: '*next'
        type: struct cond_expr
      item_type: struct
      name: cond_expr
      pos:
        line_end: 60
        line_start: 46
        source_file: /src/selinux/libsepol/include/sepol/policydb/conditional.h
    - fields:
      - name: node
        type: avtab_ptr_t
      - name: '*next'
        type: struct cond_av_list
      item_type: struct
      name: cond_av_list
      pos:
        line_end: 70
        line_start: 67
        source_file: /src/selinux/libsepol/include/sepol/policydb/conditional.h
    - fields:
      - name: cur_state
        type: int
      - name: '*expr'
        type: cond_expr_t
      - name: '*true_list'
        type: cond_av_list_t
      - name: '*false_list'
        type: cond_av_list_t
      - name: '*avtrue_list'
        type: avrule_t
      - name: '*avfalse_list'
        type: avrule_t
      - name: nbools
        type: unsigned int
      - name: bool_ids[COND_MAX_BOOLS]
        type: uint32_t
      - name: expr_pre_comp
        type: uint32_t
      - name: '*next'
        type: struct cond_node
      - name: flags
        type: uint32_t
      item_type: struct
      name: cond_node
      pos:
        line_end: 96
        line_start: 79
        source_file: /src/selinux/libsepol/include/sepol/policydb/conditional.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/policydb/services.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEPOL_COMPUTEAV_TE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/selinux/libsepol/include/sepol/policydb/services.h
      type_or_value: 0x1U
    - item_type: preproc_def
      name: SEPOL_COMPUTEAV_CONS
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/selinux/libsepol/include/sepol/policydb/services.h
      type_or_value: 0x2U
    - item_type: preproc_def
      name: SEPOL_COMPUTEAV_RBAC
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/selinux/libsepol/include/sepol/policydb/services.h
      type_or_value: 0x4U
    - item_type: preproc_def
      name: SEPOL_COMPUTEAV_BOUNDS
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/selinux/libsepol/include/sepol/policydb/services.h
      type_or_value: 0x8U
    - item_type: preproc_def
      name: SHOW_GRANTED
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/selinux/libsepol/include/sepol/policydb/services.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SECURITY_FS_USE_XATTR
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/selinux/libsepol/include/sepol/policydb/services.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: SECURITY_FS_USE_TRANS
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/selinux/libsepol/include/sepol/policydb/services.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: SECURITY_FS_USE_TASK
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/selinux/libsepol/include/sepol/policydb/services.h
      type_or_value: '3 '
    - item_type: preproc_def
      name: SECURITY_FS_USE_GENFS
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/selinux/libsepol/include/sepol/policydb/services.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: SECURITY_FS_USE_NONE
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/selinux/libsepol/include/sepol/policydb/services.h
      type_or_value: '5 '
    structs: []
    typedefs: []
    union: []
- function_names:
  - xperm_test
  - xperm_set
  - xperm_clear
  - policydb_has_boundary_feature
  - policydb_has_cond_xperms_feature
  source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ERRMSG_LEN
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: POLICYDB_SUCCESS
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '0'
    - item_type: preproc_def
      name: POLICYDB_ERROR
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: POLICYDB_UNSUPPORTED
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '-2'
    - item_type: preproc_def
      name: IB_DEVICE_NAME_MAX
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '64'
    - item_type: preproc_def
      name: TYPE_STAR
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TYPE_COMP
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '2'
    - item_type: preproc_def
      name: ROLE_STAR
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ROLE_COMP
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DEFAULT_SOURCE
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DEFAULT_TARGET
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DEFAULT_SOURCE_LOW
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DEFAULT_SOURCE_HIGH
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DEFAULT_SOURCE_LOW_HIGH
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '3'
    - item_type: preproc_def
      name: DEFAULT_TARGET_LOW
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '4'
    - item_type: preproc_def
      name: DEFAULT_TARGET_HIGH
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '5'
    - item_type: preproc_def
      name: DEFAULT_TARGET_LOW_HIGH
      pos:
        line_end: 132
        line_start: 131
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '6'
    - item_type: preproc_def
      name: DEFAULT_GLBLUB
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '7'
    - item_type: preproc_def
      name: ROLE_ROLE
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: ROLE_ATTRIB
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: TYPE_TYPE
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: TYPE_ATTRIB
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: TYPE_ALIAS
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: TYPE_FLAGS_PERMISSIVE
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: TYPE_FLAGS_EXPAND_ATTR_TRUE
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: TYPE_FLAGS_EXPAND_ATTR_FALSE
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: TYPE_FLAGS_EXPAND_ATTR
      pos:
        line_end: 190
        line_start: 188
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: (TYPE_FLAGS_EXPAND_ATTR_TRUE | TYPE_FLAGS_EXPAND_ATTR_FALSE)
    - item_type: preproc_def
      name: TYPE_FLAGS_NEVERAUDIT
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: TYPEDATUM_PROPERTY_PRIMARY
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: TYPEDATUM_PROPERTY_ATTRIBUTE
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: TYPEDATUM_PROPERTY_ALIAS
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '0x0004 '
    - item_type: preproc_def
      name: TYPEDATUM_PROPERTY_PERMISSIVE
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '0x0008 '
    - item_type: preproc_def
      name: TYPEDATUM_PROPERTY_NEVERAUDIT
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '0x0010 '
    - item_type: preproc_def
      name: COND_BOOL_FLAGS_TUNABLE
      pos:
        line_end: 241
        line_start: 240
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '0x01 '
    - item_type: preproc_def
      name: EXTENDED_PERMS_LEN
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '8'
    - item_type: preproc_def
      name: AVRULE_XPERMS_IOCTLFUNCTION
      pos:
        line_end: 262
        line_start: 261
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: AVRULE_XPERMS_IOCTLDRIVER
      pos:
        line_end: 263
        line_start: 262
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: AVRULE_XPERMS_NLMSG
      pos:
        line_end: 264
        line_start: 263
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: AVRULE_ALLOWED
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: AVTAB_ALLOWED
    - item_type: preproc_def
      name: AVRULE_AUDITALLOW
      pos:
        line_end: 275
        line_start: 274
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: AVTAB_AUDITALLOW
    - item_type: preproc_def
      name: AVRULE_AUDITDENY
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: AVTAB_AUDITDENY
    - item_type: preproc_def
      name: AVRULE_DONTAUDIT
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '0x0008'
    - item_type: preproc_def
      name: AVRULE_NEVERALLOW
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: AVTAB_NEVERALLOW
    - item_type: preproc_def
      name: AVRULE_AV
      pos:
        line_end: 281
        line_start: 278
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: "(AVRULE_ALLOWED | AVRULE_AUDITALLOW | AVRULE_AUDITDENY | \\\n\t
        AVRULE_DONTAUDIT | AVRULE_NEVERALLOW)"
    - item_type: preproc_def
      name: AVRULE_TRANSITION
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: AVTAB_TRANSITION
    - item_type: preproc_def
      name: AVRULE_MEMBER
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: AVTAB_MEMBER
    - item_type: preproc_def
      name: AVRULE_CHANGE
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: AVTAB_CHANGE
    - item_type: preproc_def
      name: AVRULE_TYPE
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: (AVRULE_TRANSITION | AVRULE_MEMBER | AVRULE_CHANGE)
    - item_type: preproc_def
      name: AVRULE_XPERMS_ALLOWED
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: AVTAB_XPERMS_ALLOWED
    - item_type: preproc_def
      name: AVRULE_XPERMS_AUDITALLOW
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: AVTAB_XPERMS_AUDITALLOW
    - item_type: preproc_def
      name: AVRULE_XPERMS_DONTAUDIT
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: AVTAB_XPERMS_DONTAUDIT
    - item_type: preproc_def
      name: AVRULE_XPERMS_NEVERALLOW
      pos:
        line_end: 289
        line_start: 288
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: AVTAB_XPERMS_NEVERALLOW
    - item_type: preproc_def
      name: AVRULE_XPERMS
      pos:
        line_end: 292
        line_start: 289
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: "(AVRULE_XPERMS_ALLOWED | AVRULE_XPERMS_AUDITALLOW | \\\n\t AVRULE_XPERMS_DONTAUDIT
        | AVRULE_XPERMS_NEVERALLOW)"
    - item_type: preproc_def
      name: RULE_SELF
      pos:
        line_end: 294
        line_start: 293
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: RULE_NOTSELF
      pos:
        line_end: 295
        line_start: 294
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: SYM_COMMONS
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SYM_CLASSES
      pos:
        line_end: 401
        line_start: 400
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SYM_ROLES
      pos:
        line_end: 402
        line_start: 401
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SYM_TYPES
      pos:
        line_end: 403
        line_start: 402
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SYM_USERS
      pos:
        line_end: 404
        line_start: 403
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SYM_BOOLS
      pos:
        line_end: 405
        line_start: 404
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SYM_LEVELS
      pos:
        line_end: 406
        line_start: 405
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SYM_CATS
      pos:
        line_end: 407
        line_start: 406
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SYM_NUM
      pos:
        line_end: 408
        line_start: 407
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '8'
    - item_type: preproc_def
      name: OCON_ISID
      pos:
        line_end: 411
        line_start: 410
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: OCON_FS
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: OCON_PORT
      pos:
        line_end: 413
        line_start: 412
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: OCON_NETIF
      pos:
        line_end: 414
        line_start: 413
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '3 '
    - item_type: preproc_def
      name: OCON_NODE
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: OCON_FSUSE
      pos:
        line_end: 416
        line_start: 415
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '5 '
    - item_type: preproc_def
      name: OCON_NODE6
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '6 '
    - item_type: preproc_def
      name: OCON_IBPKEY
      pos:
        line_end: 418
        line_start: 417
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '7 '
    - item_type: preproc_def
      name: OCON_IBENDPORT
      pos:
        line_end: 419
        line_start: 418
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '8 '
    - item_type: preproc_def
      name: OCON_XEN_ISID
      pos:
        line_end: 422
        line_start: 421
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: OCON_XEN_PIRQ
      pos:
        line_end: 423
        line_start: 422
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: OCON_XEN_IOPORT
      pos:
        line_end: 424
        line_start: 423
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: OCON_XEN_IOMEM
      pos:
        line_end: 425
        line_start: 424
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '3 '
    - item_type: preproc_def
      name: OCON_XEN_PCIDEVICE
      pos:
        line_end: 426
        line_start: 425
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: OCON_XEN_DEVICETREE
      pos:
        line_end: 427
        line_start: 426
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '5 '
    - item_type: preproc_def
      name: OCON_NUM
      pos:
        line_end: 430
        line_start: 429
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '9'
    - item_type: preproc_def
      name: p_classes_scope
      pos:
        line_end: 439
        line_start: 438
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: scope[SYM_CLASSES]
    - item_type: preproc_def
      name: p_roles_scope
      pos:
        line_end: 440
        line_start: 439
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: scope[SYM_ROLES]
    - item_type: preproc_def
      name: p_types_scope
      pos:
        line_end: 441
        line_start: 440
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: scope[SYM_TYPES]
    - item_type: preproc_def
      name: p_users_scope
      pos:
        line_end: 442
        line_start: 441
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: scope[SYM_USERS]
    - item_type: preproc_def
      name: p_bools_scope
      pos:
        line_end: 443
        line_start: 442
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: scope[SYM_BOOLS]
    - item_type: preproc_def
      name: p_sens_scope
      pos:
        line_end: 444
        line_start: 443
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: scope[SYM_LEVELS]
    - item_type: preproc_def
      name: p_cat_scope
      pos:
        line_end: 445
        line_start: 444
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: scope[SYM_CATS]
    - item_type: preproc_def
      name: AVRULE_OPTIONAL
      pos:
        line_end: 490
        line_start: 489
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SCOPE_REQ
      pos:
        line_end: 500
        line_start: 499
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SCOPE_DECL
      pos:
        line_end: 502
        line_start: 501
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '2'
    - item_type: preproc_def
      name: POLICY_KERN
      pos:
        line_end: 516
        line_start: 515
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: SEPOL_POLICY_KERN
    - item_type: preproc_def
      name: POLICY_BASE
      pos:
        line_end: 517
        line_start: 516
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: SEPOL_POLICY_BASE
    - item_type: preproc_def
      name: POLICY_MOD
      pos:
        line_end: 518
        line_start: 517
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: SEPOL_POLICY_MOD
    - item_type: preproc_def
      name: p_commons
      pos:
        line_end: 532
        line_start: 531
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: symtab[SYM_COMMONS]
    - item_type: preproc_def
      name: p_classes
      pos:
        line_end: 533
        line_start: 532
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: symtab[SYM_CLASSES]
    - item_type: preproc_def
      name: p_roles
      pos:
        line_end: 534
        line_start: 533
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: symtab[SYM_ROLES]
    - item_type: preproc_def
      name: p_types
      pos:
        line_end: 535
        line_start: 534
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: symtab[SYM_TYPES]
    - item_type: preproc_def
      name: p_users
      pos:
        line_end: 536
        line_start: 535
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: symtab[SYM_USERS]
    - item_type: preproc_def
      name: p_bools
      pos:
        line_end: 537
        line_start: 536
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: symtab[SYM_BOOLS]
    - item_type: preproc_def
      name: p_levels
      pos:
        line_end: 538
        line_start: 537
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: symtab[SYM_LEVELS]
    - item_type: preproc_def
      name: p_cats
      pos:
        line_end: 539
        line_start: 538
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: symtab[SYM_CATS]
    - item_type: preproc_def
      name: p_common_val_to_name
      pos:
        line_end: 543
        line_start: 542
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: sym_val_to_name[SYM_COMMONS]
    - item_type: preproc_def
      name: p_class_val_to_name
      pos:
        line_end: 544
        line_start: 543
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: sym_val_to_name[SYM_CLASSES]
    - item_type: preproc_def
      name: p_role_val_to_name
      pos:
        line_end: 545
        line_start: 544
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: sym_val_to_name[SYM_ROLES]
    - item_type: preproc_def
      name: p_type_val_to_name
      pos:
        line_end: 546
        line_start: 545
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: sym_val_to_name[SYM_TYPES]
    - item_type: preproc_def
      name: p_user_val_to_name
      pos:
        line_end: 547
        line_start: 546
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: sym_val_to_name[SYM_USERS]
    - item_type: preproc_def
      name: p_bool_val_to_name
      pos:
        line_end: 548
        line_start: 547
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: sym_val_to_name[SYM_BOOLS]
    - item_type: preproc_def
      name: p_sens_val_to_name
      pos:
        line_end: 549
        line_start: 548
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: sym_val_to_name[SYM_LEVELS]
    - item_type: preproc_def
      name: p_cat_val_to_name
      pos:
        line_end: 550
        line_start: 549
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: sym_val_to_name[SYM_CATS]
    - item_type: preproc_def
      name: PF_USE_MEMORY
      pos:
        line_end: 725
        line_start: 724
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PF_USE_STDIO
      pos:
        line_end: 726
        line_start: 725
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PF_LEN
      pos:
        line_end: 727
        line_start: 726
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: PERM_SYMTAB_SIZE
      pos:
        line_end: 750
        line_start: 749
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '32'
    - item_type: preproc_def
      name: POLICYDB_VERSION_BOUNDARY
      pos:
        line_end: 753
        line_start: 752
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '24'
    - item_type: preproc_def
      name: POLICYDB_VERSION_FILENAME_TRANS
      pos:
        line_end: 754
        line_start: 753
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '25'
    - item_type: preproc_def
      name: POLICYDB_VERSION_ROLETRANS
      pos:
        line_end: 755
        line_start: 754
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '26'
    - item_type: preproc_def
      name: POLICYDB_VERSION_NEW_OBJECT_DEFAULTS
      pos:
        line_end: 756
        line_start: 755
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '27'
    - item_type: preproc_def
      name: POLICYDB_VERSION_DEFAULT_TYPE
      pos:
        line_end: 757
        line_start: 756
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '28'
    - item_type: preproc_def
      name: POLICYDB_VERSION_CONSTRAINT_NAMES
      pos:
        line_end: 758
        line_start: 757
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '29'
    - item_type: preproc_def
      name: POLICYDB_VERSION_XEN_DEVICETREE
      pos:
        line_end: 759
        line_start: 758
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '30 '
    - item_type: preproc_def
      name: POLICYDB_VERSION_XPERMS_IOCTL
      pos:
        line_end: 760
        line_start: 759
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '30 '
    - item_type: preproc_def
      name: POLICYDB_VERSION_INFINIBAND
      pos:
        line_end: 761
        line_start: 760
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '31 '
    - item_type: preproc_def
      name: POLICYDB_VERSION_GLBLUB
      pos:
        line_end: 762
        line_start: 761
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '32'
    - item_type: preproc_def
      name: POLICYDB_VERSION_COMP_FTRANS
      pos:
        line_end: 763
        line_start: 762
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '33 '
    - item_type: preproc_def
      name: POLICYDB_VERSION_COND_XPERMS
      pos:
        line_end: 765
        line_start: 763
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '34 '
    - item_type: preproc_def
      name: POLICYDB_VERSION_NEVERAUDIT
      pos:
        line_end: 766
        line_start: 765
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '35 '
    - item_type: preproc_def
      name: POLICYDB_VERSION_MIN
      pos:
        line_end: 769
        line_start: 768
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: POLICYDB_VERSION_BOUNDARY
    - item_type: preproc_def
      name: POLICYDB_VERSION_MAX
      pos:
        line_end: 770
        line_start: 769
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: POLICYDB_VERSION_NEVERAUDIT
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_BASE
      pos:
        line_end: 773
        line_start: 772
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_VALIDATETRANS
      pos:
        line_end: 774
        line_start: 773
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '5'
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_MLS
      pos:
        line_end: 775
        line_start: 774
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '5'
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_RANGETRANS
      pos:
        line_end: 776
        line_start: 775
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '6'
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_MLS_USERS
      pos:
        line_end: 777
        line_start: 776
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '6'
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_POLCAP
      pos:
        line_end: 778
        line_start: 777
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '7'
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_PERMISSIVE
      pos:
        line_end: 779
        line_start: 778
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '8'
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_BOUNDARY
      pos:
        line_end: 780
        line_start: 779
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '9'
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_BOUNDARY_ALIAS
      pos:
        line_end: 781
        line_start: 780
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '10'
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_FILENAME_TRANS
      pos:
        line_end: 782
        line_start: 781
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '11'
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_ROLETRANS
      pos:
        line_end: 783
        line_start: 782
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '12'
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_ROLEATTRIB
      pos:
        line_end: 784
        line_start: 783
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '13'
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_TUNABLE_SEP
      pos:
        line_end: 785
        line_start: 784
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '14'
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_NEW_OBJECT_DEFAULTS
      pos:
        line_end: 786
        line_start: 785
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '15'
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_DEFAULT_TYPE
      pos:
        line_end: 787
        line_start: 786
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '16'
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_CONSTRAINT_NAMES
      pos:
        line_end: 788
        line_start: 787
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '17'
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_XPERMS_IOCTL
      pos:
        line_end: 789
        line_start: 788
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '18'
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_INFINIBAND
      pos:
        line_end: 790
        line_start: 789
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '19'
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_GLBLUB
      pos:
        line_end: 791
        line_start: 790
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '20'
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_SELF_TYPETRANS
      pos:
        line_end: 792
        line_start: 791
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '21'
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_COND_XPERMS
      pos:
        line_end: 793
        line_start: 792
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '22'
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_NEVERAUDIT
      pos:
        line_end: 794
        line_start: 793
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '23'
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_TYPE_ATTR_ATTRS
      pos:
        line_end: 795
        line_start: 794
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '24'
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_MIN
      pos:
        line_end: 797
        line_start: 796
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: MOD_POLICYDB_VERSION_BASE
    - item_type: preproc_def
      name: MOD_POLICYDB_VERSION_MAX
      pos:
        line_end: 798
        line_start: 797
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: MOD_POLICYDB_VERSION_TYPE_ATTR_ATTRS
    - item_type: preproc_def
      name: POLICYDB_CONFIG_MLS
      pos:
        line_end: 800
        line_start: 799
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DENY_UNKNOWN
      pos:
        line_end: 819
        line_start: 818
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: SEPOL_DENY_UNKNOWN
    - item_type: preproc_def
      name: REJECT_UNKNOWN
      pos:
        line_end: 820
        line_start: 819
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: SEPOL_REJECT_UNKNOWN
    - item_type: preproc_def
      name: ALLOW_UNKNOWN
      pos:
        line_end: 821
        line_start: 820
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: SEPOL_ALLOW_UNKNOWN
    - item_type: preproc_def
      name: POLICYDB_CONFIG_UNKNOWN_MASK
      pos:
        line_end: 824
        line_start: 822
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: (DENY_UNKNOWN | REJECT_UNKNOWN | ALLOW_UNKNOWN)
    - item_type: preproc_def
      name: OBJECT_R
      pos:
        line_end: 826
        line_start: 825
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '"object_r"'
    - item_type: preproc_def
      name: OBJECT_R_VAL
      pos:
        line_end: 827
        line_start: 826
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '1'
    - item_type: preproc_def
      name: POLICYDB_MAGIC
      pos:
        line_end: 829
        line_start: 828
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: SELINUX_MAGIC
    - item_type: preproc_def
      name: POLICYDB_STRING
      pos:
        line_end: 830
        line_start: 829
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '"SE Linux"'
    - item_type: preproc_def
      name: POLICYDB_XEN_STRING
      pos:
        line_end: 831
        line_start: 830
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '"XenFlask"'
    - item_type: preproc_def
      name: POLICYDB_STRING_MAX_LENGTH
      pos:
        line_end: 832
        line_start: 831
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '32'
    - item_type: preproc_def
      name: POLICYDB_MOD_MAGIC
      pos:
        line_end: 833
        line_start: 832
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: SELINUX_MOD_MAGIC
    - item_type: preproc_def
      name: POLICYDB_MOD_STRING
      pos:
        line_end: 834
        line_start: 833
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type_or_value: '"SE Linux Module"'
    structs:
    - fields:
      - name: types
        type: ebitmap_t
      - name: negset
        type: ebitmap_t
      - name: flags
        type: uint32_t
      item_type: struct
      name: type_set
      pos:
        line_end: 91
        line_start: 85
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: roles
        type: ebitmap_t
      - name: flags
        type: uint32_t
      item_type: struct
      name: role_set
      pos:
        line_end: 98
        line_start: 93
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: s
        type: symtab_datum_t
      item_type: struct
      name: perm_datum
      pos:
        line_end: 103
        line_start: 101
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: s
        type: symtab_datum_t
      - name: permissions
        type: symtab_t
      item_type: struct
      name: common_datum
      pos:
        line_end: 109
        line_start: 106
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: s
        type: symtab_datum_t
      - name: '*comkey'
        type: char
      - name: '*comdatum'
        type: common_datum_t
      - name: permissions
        type: symtab_t
      - name: '*constraints'
        type: constraint_node_t
      - name: '*validatetrans'
        type: constraint_node_t
      - name: default_user
        type: char
      - name: default_role
        type: char
      - name: default_type
        type: char
      - name: default_range
        type: char
      item_type: struct
      name: class_datum
      pos:
        line_end: 134
        line_start: 112
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: s
        type: symtab_datum_t
      - name: dominates
        type: ebitmap_t
      - name: types
        type: type_set_t
      - name: cache
        type: ebitmap_t
      - name: bounds
        type: uint32_t
      - name: flavor
        type: uint32_t
      - name: roles
        type: ebitmap_t
      item_type: struct
      name: role_datum
      pos:
        line_end: 147
        line_start: 137
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: role
        type: uint32_t
      - name: type
        type: uint32_t
      - name: tclass
        type: uint32_t
      - name: new_role
        type: uint32_t
      - name: '*next'
        type: struct role_trans
      item_type: struct
      name: role_trans
      pos:
        line_end: 155
        line_start: 149
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: role
        type: uint32_t
      - name: new_role
        type: uint32_t
      - name: '*next'
        type: struct role_allow
      item_type: struct
      name: role_allow
      pos:
        line_end: 161
        line_start: 157
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: ttype
        type: uint32_t
      - name: tclass
        type: uint32_t
      - name: '*name'
        type: char
      item_type: struct
      name: filename_trans_key
      pos:
        line_end: 168
        line_start: 164
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: stypes
        type: ebitmap_t
      - name: otype
        type: uint32_t
      - name: '*next'
        type: struct filename_trans_datum
      item_type: struct
      name: filename_trans_datum
      pos:
        line_end: 174
        line_start: 170
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: s
        type: symtab_datum_t
      - name: primary
        type: uint32_t
      - name: flavor
        type: uint32_t
      - name: types
        type: ebitmap_t
      - name: flags
        type: uint32_t
      - name: bounds
        type: uint32_t
      item_type: struct
      name: type_datum
      pos:
        line_end: 193
        line_start: 177
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: s
        type: symtab_datum_t
      - name: roles
        type: role_set_t
      - name: range
        type: mls_semantic_range_t
      - name: dfltlevel
        type: mls_semantic_level_t
      - name: cache
        type: ebitmap_t
      - name: exp_range
        type: mls_range_t
      - name: exp_dfltlevel
        type: mls_level_t
      - name: bounds
        type: uint32_t
      item_type: struct
      name: user_datum
      pos:
        line_end: 215
        line_start: 206
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: '*level'
        type: mls_level_t
      - name: isalias
        type: unsigned char
      - name: notdefined
        type: unsigned char
      item_type: struct
      name: level_datum
      pos:
        line_end: 222
        line_start: 218
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: s
        type: symtab_datum_t
      - name: isalias
        type: unsigned char
      item_type: struct
      name: cat_datum
      pos:
        line_end: 228
        line_start: 225
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: source_type
        type: uint32_t
      - name: target_type
        type: uint32_t
      - name: target_class
        type: uint32_t
      item_type: struct
      name: range_trans
      pos:
        line_end: 234
        line_start: 230
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: s
        type: symtab_datum_t
      - name: state
        type: int
      - name: flags
        type: uint32_t
      item_type: struct
      name: cond_bool_datum
      pos:
        line_end: 242
        line_start: 237
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: tclass
        type: uint32_t
      - name: data
        type: uint32_t
      - name: '*next'
        type: struct class_perm_node
      item_type: struct
      name: class_perm_node
      pos:
        line_end: 253
        line_start: 249
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: specified
        type: uint8_t
      - name: driver
        type: uint8_t
      - name: perms[EXTENDED_PERMS_LEN]
        type: uint32_t
      item_type: struct
      name: av_extended_perms
      pos:
        line_end: 268
        line_start: 260
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: specified
        type: uint32_t
      - name: flags
        type: uint32_t
      - name: stypes
        type: type_set_t
      - name: ttypes
        type: type_set_t
      - name: '*perms'
        type: class_perm_node_t
      - name: '*xperms'
        type: av_extended_perms_t
      - name: line
        type: unsigned long
      - name: '*source_filename'
        type: char
      - name: source_line
        type: unsigned long
      - name: '*next'
        type: struct avrule
      item_type: struct
      name: avrule
      pos:
        line_end: 306
        line_start: 270
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: roles
        type: role_set_t
      - name: types
        type: type_set_t
      - name: classes
        type: ebitmap_t
      - name: new_role
        type: uint32_t
      - name: '*next'
        type: struct role_trans_rule
      item_type: struct
      name: role_trans_rule
      pos:
        line_end: 314
        line_start: 308
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: roles
        type: role_set_t
      - name: new_roles
        type: role_set_t
      - name: '*next'
        type: struct role_allow_rule
      item_type: struct
      name: role_allow_rule
      pos:
        line_end: 320
        line_start: 316
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: flags
        type: uint32_t
      - name: stypes
        type: type_set_t
      - name: ttypes
        type: type_set_t
      - name: tclass
        type: uint32_t
      - name: '*name'
        type: char
      - name: otype
        type: uint32_t
      - name: '*next'
        type: struct filename_trans_rule
      item_type: struct
      name: filename_trans_rule
      pos:
        line_end: 330
        line_start: 322
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: stypes
        type: type_set_t
      - name: ttypes
        type: type_set_t
      - name: tclasses
        type: ebitmap_t
      - name: trange
        type: mls_semantic_range_t
      - name: '*next'
        type: struct range_trans_rule
      item_type: struct
      name: range_trans_rule
      pos:
        line_end: 338
        line_start: 332
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: u
        type: "union {\n\t\tchar *name; /* name of initial SID, fs, netif, fstype,
          path */\n\t\tstruct {\n\t\t\tuint8_t protocol;\n\t\t\tuint16_t low_port;\n\t\t\tuint16_t
          high_port;\n\t\t} port; /* TCP or UDP port information */\n\t\tstruct {\n\t\t\tuint32_t
          addr; /* network order */\n\t\t\tuint32_t mask; /* network order */\n\t\t}
          node; /* node information */\n\t\tstruct {\n\t\t\tuint32_t addr[4]; /* network
          order */\n\t\t\tuint32_t mask[4]; /* network order */\n\t\t} node6; /* IPv6
          node information */\n\t\tuint32_t device;\n\t\tuint16_t pirq;\n\t\tstruct
          {\n\t\t\tuint64_t low_iomem;\n\t\t\tuint64_t high_iomem;\n\t\t} iomem;\n\t\tstruct
          {\n\t\t\tuint32_t low_ioport;\n\t\t\tuint32_t high_ioport;\n\t\t} ioport;\n\t\tstruct
          {\n\t\t\tuint64_t subnet_prefix;\n\t\t\tuint16_t low_pkey;\n\t\t\tuint16_t
          high_pkey;\n\t\t} ibpkey;\n\t\tstruct {\n\t\t\tchar *dev_name;\n\t\t\tuint8_t
          port;\n\t\t} ibendport;\n\t}"
      - name: v
        type: "union {\n\t\tuint32_t sclass; /* security class for genfs */\n\t\tuint32_t
          behavior; /* labeling behavior for fs_use */\n\t}"
      - name: context[2]
        type: context_struct_t
      - name: sid[2]
        type: sepol_security_id_t
      - name: '*next'
        type: struct ocontext
      item_type: struct
      name: ocontext
      pos:
        line_end: 390
        line_start: 347
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: '*fstype'
        type: char
      - name: '*head'
        type: struct ocontext
      - name: '*next'
        type: struct genfs
      item_type: struct
      name: genfs
      pos:
        line_end: 396
        line_start: 392
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: scope[SYM_NUM]
        type: ebitmap_t
      - name: '*class_perms_map'
        type: ebitmap_t
      - name: class_perms_len
        type: uint32_t
      item_type: struct
      name: scope_index
      pos:
        line_end: 453
        line_start: 436
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: decl_id
        type: uint32_t
      - name: enabled
        type: uint32_t
      - name: '*cond_list'
        type: cond_list_t
      - name: '*avrules'
        type: avrule_t
      - name: '*role_tr_rules'
        type: role_trans_rule_t
      - name: '*role_allow_rules'
        type: role_allow_rule_t
      - name: '*range_tr_rules'
        type: range_trans_rule_t
      - name: required
        type: scope_index_t
      - name: declared
        type: scope_index_t
      - name: '*filename_trans_rules'
        type: filename_trans_rule_t
      - name: symtab[SYM_NUM]
        type: symtab_t
      - name: '*module_name'
        type: char
      - name: '*next'
        type: struct avrule_decl
      item_type: struct
      name: avrule_decl
      pos:
        line_end: 483
        line_start: 460
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: '*branch_list'
        type: avrule_decl_t
      - name: '*enabled'
        type: avrule_decl_t
      - name: flags
        type: uint32_t
      - name: '*next'
        type: struct avrule_block
      item_type: struct
      name: avrule_block
      pos:
        line_end: 492
        line_start: 485
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: scope
        type: uint32_t
      - name: '*decl_ids'
        type: uint32_t
      - name: decl_ids_len
        type: uint32_t
      item_type: struct
      name: scope_datum
      pos:
        line_end: 511
        line_start: 497
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: policy_type
        type: uint32_t
      - name: '*name'
        type: char
      - name: '*version'
        type: char
      - name: target_platform
        type: int
      - name: unsupported_format
        type: int
      - name: mls
        type: int
      - name: symtab[SYM_NUM]
        type: symtab_t
      - name: '**sym_val_to_name[SYM_NUM]'
        type: char
      - name: '**class_val_to_struct'
        type: class_datum_t
      - name: '**role_val_to_struct'
        type: role_datum_t
      - name: '**user_val_to_struct'
        type: user_datum_t
      - name: '**type_val_to_struct'
        type: type_datum_t
      - name: scope[SYM_NUM]
        type: symtab_t
      - name: '*global'
        type: avrule_block_t
      - name: '**decl_val_to_struct'
        type: avrule_decl_t
      - name: te_avtab
        type: avtab_t
      - name: '**bool_val_to_struct'
        type: cond_bool_datum_t
      - name: te_cond_avtab
        type: avtab_t
      - name: '*cond_list'
        type: cond_list_t
      - name: '*role_tr'
        type: role_trans_t
      - name: '*role_allow'
        type: role_allow_t
      - name: '*ocontexts[OCON_NUM]'
        type: ocontext_t
      - name: '*genfs'
        type: genfs_t
      - name: range_tr
        type: hashtab_t
      - name: filename_trans
        type: hashtab_t
      - name: filename_trans_count
        type: uint32_t
      - name: '*type_attr_map'
        type: ebitmap_t
      - name: '*attr_type_map'
        type: ebitmap_t
      - name: policycaps
        type: ebitmap_t
      - name: permissive_map
        type: ebitmap_t
      - name: neveraudit_map
        type: ebitmap_t
      - name: policyvers
        type: unsigned
      - name: handle_unknown
        type: unsigned
      - name: process_class
        type: sepol_security_class_t
      - name: dir_class
        type: sepol_security_class_t
      - name: process_trans
        type: sepol_access_vector_t
      - name: process_trans_dyntrans
        type: sepol_access_vector_t
      - name: line_marker_avrules
        type: uint32_t
      item_type: struct
      name: policydb
      pos:
        line_end: 633
        line_start: 514
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: p
        type: struct policydb
      item_type: struct
      name: sepol_policydb
      pos:
        line_end: 637
        line_start: 635
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: type
        type: unsigned
      - name: '*data'
        type: char
      - name: len
        type: size_t
      - name: size
        type: size_t
      - name: '*fp'
        type: FILE
      - name: '*handle'
        type: struct sepol_handle
      item_type: struct
      name: policy_file
      pos:
        line_end: 733
        line_start: 723
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    - fields:
      - name: pf
        type: struct policy_file
      item_type: struct
      name: sepol_policy_file
      pos:
        line_end: 737
        line_start: 735
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
    typedefs:
    - item_type: typedef
      name: cond_list_t
      pos:
        line_end: 246
        line_start: 246
        source_file: /src/selinux/libsepol/include/sepol/policydb/policydb.h
      type: cond_node
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/policydb/hierarchy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/policydb/symtab.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: value
        type: uint32_t
      item_type: struct
      name: symtab_datum
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/selinux/libsepol/include/sepol/policydb/symtab.h
    - fields:
      - name: table
        type: hashtab_t
      - name: nprim
        type: uint32_t
      item_type: struct
      name: symtab_t
      pos:
        line_end: 35
        line_start: 32
        source_file: /src/selinux/libsepol/include/sepol/policydb/symtab.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/policydb/module.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEPOL_MODULE_PACKAGE_MAGIC
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/selinux/libsepol/include/sepol/policydb/module.h
      type_or_value: '0xf97cff8f'
    structs:
    - fields:
      - name: '*policy'
        type: sepol_policydb_t
      - name: version
        type: uint32_t
      - name: '*file_contexts'
        type: char
      - name: file_contexts_len
        type: size_t
      - name: '*seusers'
        type: char
      - name: seusers_len
        type: size_t
      - name: '*user_extra'
        type: char
      - name: user_extra_len
        type: size_t
      - name: '*netfilter_contexts'
        type: char
      - name: netfilter_contexts_len
        type: size_t
      item_type: struct
      name: sepol_module_package
      pos:
        line_end: 47
        line_start: 36
        source_file: /src/selinux/libsepol/include/sepol/policydb/module.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/policydb/util.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AVTAB_ALLOWED
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: AVTAB_AUDITALLOW
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: AVTAB_AUDITDENY
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: AVTAB_NEVERALLOW
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
      type_or_value: '0x0080'
    - item_type: preproc_def
      name: AVTAB_AV
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
      type_or_value: (AVTAB_ALLOWED | AVTAB_AUDITALLOW | AVTAB_AUDITDENY)
    - item_type: preproc_def
      name: AVTAB_TRANSITION
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
      type_or_value: '0x0010'
    - item_type: preproc_def
      name: AVTAB_MEMBER
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
      type_or_value: '0x0020'
    - item_type: preproc_def
      name: AVTAB_CHANGE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: AVTAB_TYPE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
      type_or_value: (AVTAB_TRANSITION | AVTAB_MEMBER | AVTAB_CHANGE)
    - item_type: preproc_def
      name: AVTAB_XPERMS_ALLOWED
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
      type_or_value: '0x0100'
    - item_type: preproc_def
      name: AVTAB_XPERMS_AUDITALLOW
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
      type_or_value: '0x0200'
    - item_type: preproc_def
      name: AVTAB_XPERMS_DONTAUDIT
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
      type_or_value: '0x0400'
    - item_type: preproc_def
      name: AVTAB_XPERMS_NEVERALLOW
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
      type_or_value: '0x0800'
    - item_type: preproc_def
      name: AVTAB_XPERMS
      pos:
        line_end: 69
        line_start: 66
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
      type_or_value: "(AVTAB_XPERMS_ALLOWED | AVTAB_XPERMS_AUDITALLOW | \\\n\t AVTAB_XPERMS_DONTAUDIT)"
    - item_type: preproc_def
      name: AVTAB_ENABLED_OLD
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: AVTAB_ENABLED
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
      type_or_value: '0x8000 '
    - item_type: preproc_def
      name: AVTAB_XPERMS_IOCTLFUNCTION
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: AVTAB_XPERMS_IOCTLDRIVER
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: AVTAB_XPERMS_NLMSG
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: MAX_AVTAB_HASH_BITS
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
      type_or_value: '20'
    - item_type: preproc_def
      name: MAX_AVTAB_HASH_BUCKETS
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
      type_or_value: (1 << MAX_AVTAB_HASH_BITS)
    - item_type: preproc_def
      name: MAX_AVTAB_HASH_MASK
      pos:
        line_end: 144
        line_start: 143
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
      type_or_value: (MAX_AVTAB_HASH_BUCKETS - 1)
    - item_type: preproc_def
      name: MAX_AVTAB_SIZE
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
      type_or_value: (MAX_AVTAB_HASH_BUCKETS << 1)
    structs:
    - fields:
      - name: source_type
        type: uint16_t
      - name: target_type
        type: uint16_t
      - name: target_class
        type: uint16_t
      - name: specified
        type: uint16_t
      item_type: struct
      name: avtab_key
      pos:
        line_end: 72
        line_start: 49
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
    - fields:
      - name: specified
        type: uint8_t
      - name: driver
        type: uint8_t
      - name: perms[8]
        type: uint32_t
      item_type: struct
      name: avtab_extended_perms
      pos:
        line_end: 82
        line_start: 74
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
    - fields:
      - name: data
        type: uint32_t
      - name: '*xperms'
        type: avtab_extended_perms_t
      item_type: struct
      name: avtab_datum
      pos:
        line_end: 87
        line_start: 84
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
    - fields:
      - name: key
        type: avtab_key_t
      - name: datum
        type: avtab_datum_t
      - name: next
        type: avtab_ptr_t
      - name: '*parse_context'
        type: void
      - name: merged
        type: unsigned
      item_type: struct
      name: avtab_node
      pos:
        line_end: 99
        line_start: 91
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
    - fields:
      - name: '*htable'
        type: avtab_ptr_t
      - name: nel
        type: uint32_t
      - name: nslot
        type: uint32_t
      - name: mask
        type: uint32_t
      item_type: struct
      name: avtab
      pos:
        line_end: 106
        line_start: 101
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
    typedefs:
    - item_type: typedef
      name: '*avtab_ptr_t'
      pos:
        line_end: 89
        line_start: 89
        source_file: /src/selinux/libsepol/include/sepol/policydb/avtab.h
      type: avtab_node
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/policydb/flask_types.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEPOL_SECCLASS_NULL
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/selinux/libsepol/include/sepol/policydb/flask_types.h
      type_or_value: '0x0000 '
    - item_type: preproc_def
      name: SELINUX_MAGIC
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/selinux/libsepol/include/sepol/policydb/flask_types.h
      type_or_value: '0xf97cff8c'
    - item_type: preproc_def
      name: SELINUX_MOD_MAGIC
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/selinux/libsepol/include/sepol/policydb/flask_types.h
      type_or_value: '0xf97cff8d'
    - item_type: preproc_def
      name: SEPOL_SECSID_NULL
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/selinux/libsepol/include/sepol/policydb/flask_types.h
      type_or_value: '0'
    structs:
    - fields:
      - name: allowed
        type: sepol_access_vector_t
      - name: decided
        type: sepol_access_vector_t
      - name: auditallow
        type: sepol_access_vector_t
      - name: auditdeny
        type: sepol_access_vector_t
      - name: seqno
        type: uint32_t
      item_type: struct
      name: sepol_av_decision
      pos:
        line_end: 59
        line_start: 53
        source_file: /src/selinux/libsepol/include/sepol/policydb/flask_types.h
    typedefs:
    - item_type: typedef
      name: '*sepol_security_context_t'
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/selinux/libsepol/include/sepol/policydb/flask_types.h
      type: char
    - item_type: typedef
      name: '*sepol_const_security_context_t'
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/selinux/libsepol/include/sepol/policydb/flask_types.h
      type: char
    - item_type: typedef
      name: sepol_access_vector_t
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/selinux/libsepol/include/sepol/policydb/flask_types.h
      type: uint32_t
    - item_type: typedef
      name: sepol_security_class_t
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/selinux/libsepol/include/sepol/policydb/flask_types.h
      type: uint16_t
    - item_type: typedef
      name: sepol_security_id_t
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/selinux/libsepol/include/sepol/policydb/flask_types.h
      type: uint32_t
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/policydb/link.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/policydb/sidtab.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SIDTAB_HASH_BITS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/selinux/libsepol/include/sepol/policydb/sidtab.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SIDTAB_HASH_BUCKETS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/selinux/libsepol/include/sepol/policydb/sidtab.h
      type_or_value: (1 << SIDTAB_HASH_BITS)
    - item_type: preproc_def
      name: SIDTAB_HASH_MASK
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/selinux/libsepol/include/sepol/policydb/sidtab.h
      type_or_value: (SIDTAB_HASH_BUCKETS - 1)
    - item_type: preproc_def
      name: SIDTAB_SIZE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/selinux/libsepol/include/sepol/policydb/sidtab.h
      type_or_value: SIDTAB_HASH_BUCKETS
    structs:
    - fields:
      - name: sid
        type: sepol_security_id_t
      - name: context
        type: context_struct_t
      - name: '*next'
        type: struct sidtab_node
      item_type: struct
      name: sidtab_node
      pos:
        line_end: 22
        line_start: 18
        source_file: /src/selinux/libsepol/include/sepol/policydb/sidtab.h
    - fields:
      - name: '*htable'
        type: sidtab_ptr_t
      - name: nel
        type: unsigned int
      - name: next_sid
        type: unsigned int
      - name: shutdown
        type: unsigned char
      item_type: struct
      name: sidtab_t
      pos:
        line_end: 37
        line_start: 32
        source_file: /src/selinux/libsepol/include/sepol/policydb/sidtab.h
    typedefs:
    - item_type: typedef
      name: '*sidtab_ptr_t'
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/selinux/libsepol/include/sepol/policydb/sidtab.h
      type: sidtab_node
    union: []
- function_names:
  - mls_range_glblub
  - mls_level_cpy
  - mls_level_init
  - mls_level_destroy
  - mls_level_eq
  - mls_level_dom
  - mls_level_incomp
  - mls_level_between
  - mls_range_contains
  - mls_range_cpy
  - mls_range_init
  - mls_range_destroy
  - mls_range_eq
  source_file: /src/selinux/libsepol/include/sepol/policydb/mls_types.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: sens
        type: uint32_t
      - name: cat
        type: ebitmap_t
      item_type: struct
      name: mls_level
      pos:
        line_end: 46
        line_start: 43
        source_file: /src/selinux/libsepol/include/sepol/policydb/mls_types.h
    - fields:
      - name: level[2]
        type: mls_level_t
      item_type: struct
      name: mls_range
      pos:
        line_end: 50
        line_start: 48
        source_file: /src/selinux/libsepol/include/sepol/policydb/mls_types.h
    - fields:
      - name: low
        type: uint32_t
      - name: high
        type: uint32_t
      - name: '*next'
        type: struct mls_semantic_cat
      item_type: struct
      name: mls_semantic_cat
      pos:
        line_end: 165
        line_start: 161
        source_file: /src/selinux/libsepol/include/sepol/policydb/mls_types.h
    - fields:
      - name: sens
        type: uint32_t
      - name: '*cat'
        type: mls_semantic_cat_t
      item_type: struct
      name: mls_semantic_level
      pos:
        line_end: 170
        line_start: 167
        source_file: /src/selinux/libsepol/include/sepol/policydb/mls_types.h
    - fields:
      - name: level[2]
        type: mls_semantic_level_t
      item_type: struct
      name: mls_semantic_range
      pos:
        line_end: 174
        line_start: 172
        source_file: /src/selinux/libsepol/include/sepol/policydb/mls_types.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/policydb/hashtab.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: key
        type: hashtab_key_t
      - name: datum
        type: hashtab_datum_t
      - name: next
        type: hashtab_ptr_t
      item_type: struct
      name: hashtab_node
      pos:
        line_end: 34
        line_start: 30
        source_file: /src/selinux/libsepol/include/sepol/policydb/hashtab.h
    - fields:
      - name: '*htable'
        type: hashtab_ptr_t
      - name: size
        type: unsigned int
      - name: nel
        type: uint32_t
      - name: "(*hash_value)(struct hashtab_val *h,\n\t\t\t\t   const_hashtab_key_t
          key)"
        type: unsigned int
      - name: "(*keycmp)(struct hashtab_val *h, const_hashtab_key_t key1,\n\t\t      const_hashtab_key_t
          key2)"
        type: int
      item_type: struct
      name: hashtab_val
      pos:
        line_end: 44
        line_start: 36
        source_file: /src/selinux/libsepol/include/sepol/policydb/hashtab.h
    typedefs:
    - item_type: typedef
      name: '*hashtab_key_t'
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/selinux/libsepol/include/sepol/policydb/hashtab.h
      type: char
    - item_type: typedef
      name: '*const_hashtab_key_t'
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/selinux/libsepol/include/sepol/policydb/hashtab.h
      type: char
    - item_type: typedef
      name: '*hashtab_datum_t'
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/selinux/libsepol/include/sepol/policydb/hashtab.h
      type: void
    - item_type: typedef
      name: '*hashtab_ptr_t'
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/selinux/libsepol/include/sepol/policydb/hashtab.h
      type: hashtab_node
    - item_type: typedef
      name: '*hashtab_t'
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/selinux/libsepol/include/sepol/policydb/hashtab.h
      type: hashtab_val_t
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/policydb/avrule_block.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/include/sepol/policydb/expand.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ebitmap_is_empty
  - ebitmap_length
  - ebitmap_startbit
  - ebitmap_startnode
  - ebitmap_start
  - ebitmap_init
  - ebitmap_next
  - ebitmap_node_get_bit
  - ebitmap_for_each_bit
  - ebitmap_for_each_positive_bit
  source_file: /src/selinux/libsepol/include/sepol/policydb/ebitmap.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAPTYPE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/selinux/libsepol/include/sepol/policydb/ebitmap.h
      type_or_value: 'uint64_t '
    - item_type: preproc_def
      name: MAPSIZE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/selinux/libsepol/include/sepol/policydb/ebitmap.h
      type_or_value: '(sizeof(MAPTYPE) * 8) '
    - item_type: preproc_def
      name: MAPBIT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/selinux/libsepol/include/sepol/policydb/ebitmap.h
      type_or_value: '1ULL '
    structs:
    - fields:
      - name: startbit
        type: uint32_t
      - name: map
        type: MAPTYPE
      - name: '*next'
        type: struct ebitmap_node
      item_type: struct
      name: ebitmap_node
      pos:
        line_end: 34
        line_start: 30
        source_file: /src/selinux/libsepol/include/sepol/policydb/ebitmap.h
    - fields:
      - name: '*node'
        type: ebitmap_node_t
      - name: highbit
        type: uint32_t
      item_type: struct
      name: ebitmap
      pos:
        line_end: 39
        line_start: 36
        source_file: /src/selinux/libsepol/include/sepol/policydb/ebitmap.h
    typedefs: []
    union: []
- function_names:
  - mls_context_init
  - mls_context_cpy
  - mls_context_cpy_low
  - mls_context_cpy_high
  - mls_context_glblub
  - mls_context_cmp
  - mls_context_destroy
  - context_init
  - context_cpy
  - context_destroy
  - context_cmp
  source_file: /src/selinux/libsepol/include/sepol/policydb/context.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: user
        type: uint32_t
      - name: role
        type: uint32_t
      - name: type
        type: uint32_t
      - name: range
        type: mls_range_t
      item_type: struct
      name: context_struct
      pos:
        line_end: 37
        line_start: 32
        source_file: /src/selinux/libsepol/include/sepol/policydb/context.h
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/selinux/libsepol/fuzz/module-package-fuzzer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VERBOSE
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/selinux/libsepol/fuzz/module-package-fuzzer.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_binary_policy
  - LLVMFuzzerTestOneInput
  source_file: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VERBOSE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/selinux/libsepol/fuzz/binpolicy-fuzzer.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - log_handler
  - LLVMFuzzerTestOneInput
  source_file: /src/selinux/libsepol/fuzz/secilc-fuzzer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/selinux/libsepol/utils/sepol_compute_av.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/selinux/libsepol/utils/sepol_compute_relabel.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/selinux/libsepol/utils/chkcon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/selinux/libsepol/utils/sepol_check_access.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/selinux/libsepol/utils/sepol_compute_member.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/selinux/libsepol/utils/sepol_validate_transition.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/test/unit/test_cil_post.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CuStrAlloc
  - CuStrCopy
  - CuStringInit
  - CuStringNew
  - CuStringDelete
  - CuStringResize
  - CuStringAppend
  - CuStringAppendChar
  - CuStringAppendFormat
  - CuStringInsert
  - CuTestInit
  - CuTestNew
  - CuTestDelete
  - CuTestRun
  - CuFailInternal
  - CuFail_Line
  - CuAssert_Line
  - CuAssertStrEquals_LineMsg
  - CuAssertIntEquals_LineMsg
  - CuAssertDblEquals_LineMsg
  - CuAssertPtrEquals_LineMsg
  - CuSuiteInit
  - CuSuiteNew
  - CuSuiteDelete
  - CuSuiteAdd
  - CuSuiteAddSuite
  - CuSuiteRun
  - CuSuiteSummary
  - CuSuiteDetails
  source_file: /src/selinux/libsepol/cil/test/unit/CuTest.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - set_cil_file_data
  - gen_test_tree
  - test_symtab_init
  - test_symtab_init_no_table_neg
  - CilTreeGetResolveSuite
  - CilTreeGetBuildSuite
  - CilTreeGetSuite
  - CilTestFullCil
  source_file: /src/selinux/libsepol/cil/test/unit/CilTest.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/test/unit/test_cil_fqn.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_cil_qualify_name
  - test_cil_qualify_name_cil_flavor
  source_file: /src/selinux/libsepol/cil/test/unit/test_cil_fqn.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/test/unit/test_cil.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_cil_tree_node_init
  - test_cil_tree_init
  source_file: /src/selinux/libsepol/cil/test/unit/test_cil_tree.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gen_copy_args
  - test_cil_copy_list
  - test_cil_copy_list_sublist
  - test_cil_copy_list_sublist_extra
  - test_cil_copy_list_orignull_neg
  - test_cil_copy_block
  - test_cil_copy_perm
  - test_cil_copy_class
  - test_cil_copy_common
  - test_cil_copy_classcommon
  - test_cil_copy_sid
  - test_cil_copy_sidcontext
  - test_cil_copy_user
  - test_cil_copy_role
  - test_cil_copy_userrole
  - test_cil_copy_type
  - test_cil_copy_typealias
  - test_cil_copy_typeattribute
  - test_cil_copy_bool
  - test_cil_copy_type_rule
  - test_cil_copy_avrule
  - test_cil_copy_sens
  - test_cil_copy_sensalias
  - test_cil_copy_cat
  - test_cil_copy_catalias
  - test_cil_copy_senscat
  - test_cil_copy_catorder
  - test_cil_copy_dominance
  - test_cil_copy_level
  - test_cil_copy_fill_level
  - test_cil_copy_context
  - test_cil_copy_netifcon
  - test_cil_copy_netifcon_nested
  - test_cil_copy_fill_context
  - test_cil_copy_fill_context_anonrange
  - test_cil_copy_call
  - test_cil_copy_optional
  - test_cil_copy_nodecon
  - test_cil_copy_nodecon_anon
  - test_cil_copy_fill_ipaddr
  - test_cil_copy_ipaddr
  - test_cil_copy_conditional
  - test_cil_copy_boolif
  - test_cil_copy_constrain
  - test_cil_copy_node_helper_block
  - test_cil_copy_node_helper_block_merge
  - test_cil_copy_node_helper_perm
  - test_cil_copy_node_helper_perm_neg
  - test_cil_copy_node_helper_class
  - test_cil_copy_node_helper_class_dup_neg
  - test_cil_copy_node_helper_common
  - test_cil_copy_node_helper_common_dup_neg
  - test_cil_copy_node_helper_classcommon
  - test_cil_copy_node_helper_sid
  - test_cil_copy_node_helper_sid_merge
  - test_cil_copy_node_helper_sidcontext
  - test_cil_copy_node_helper_user
  - test_cil_copy_node_helper_user_merge
  - test_cil_copy_node_helper_role
  - test_cil_copy_node_helper_role_merge
  - test_cil_copy_node_helper_userrole
  - test_cil_copy_node_helper_type
  - test_cil_copy_node_helper_type_merge
  - test_cil_copy_node_helper_typeattribute
  - test_cil_copy_node_helper_typeattribute_merge
  - test_cil_copy_node_helper_typealias
  - test_cil_copy_node_helper_typealias_dup_neg
  - test_cil_copy_node_helper_bool
  - test_cil_copy_node_helper_bool_dup_neg
  - test_cil_copy_node_helper_avrule
  - test_cil_copy_node_helper_type_rule
  - test_cil_copy_node_helper_sens
  - test_cil_copy_node_helper_sens_merge
  - test_cil_copy_node_helper_sensalias
  - test_cil_copy_node_helper_sensalias_dup_neg
  - test_cil_copy_node_helper_cat
  - test_cil_copy_node_helper_cat_merge
  - test_cil_copy_node_helper_catalias
  - test_cil_copy_node_helper_catalias_dup_neg
  - test_cil_copy_node_helper_senscat
  - test_cil_copy_node_helper_catorder
  - test_cil_copy_node_helper_dominance
  - test_cil_copy_node_helper_level
  - test_cil_copy_node_helper_level_dup_neg
  - test_cil_copy_node_helper_context
  - test_cil_copy_node_helper_context_dup_neg
  - test_cil_copy_node_helper_netifcon
  - test_cil_copy_node_helper_call
  - test_cil_copy_node_helper_optional
  - test_cil_copy_node_helper_optional_merge
  - test_cil_copy_node_helper_ipaddr
  - test_cil_copy_node_helper_ipaddr_dup_neg
  - test_cil_copy_node_helper_boolif
  - test_cil_copy_node_helper_mlsconstrain
  - test_cil_copy_node_helper_orignull_neg
  - test_cil_copy_node_helper_extraargsnull_neg
  source_file: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CIL_TEST_SYM_SIZE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
      type_or_value: '1'
    structs:
    - fields:
      - name: '*dest'
        type: struct cil_tree_node
      - name: '*db'
        type: struct cil_db
      item_type: struct
      name: cil_args_copy
      pos:
        line_end: 45
        line_start: 42
        source_file: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/test/unit/test_cil_symtab.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_cil_lexer_setup
  - test_cil_lexer_next
  source_file: /src/selinux/libsepol/cil/test/unit/test_cil_lexer.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gen_resolve_args
  - test_cil_resolve_name
  - test_cil_resolve_name_invalid_type_neg
  - test_cil_resolve_ast_curr_null_neg
  - test_cil_resolve_roleallow
  - test_cil_resolve_roleallow_srcdecl_neg
  - test_cil_resolve_roleallow_tgtdecl_neg
  - test_cil_resolve_classmapping_anon
  - test_cil_resolve_classmapping_anon_inmacro
  - test_cil_resolve_classmapping_anon_inmacro_neg
  - test_cil_resolve_classmapping_named
  - test_cil_resolve_classmapping_named_classmapname_neg
  - test_cil_resolve_classmapping_anon_classmapname_neg
  - test_cil_resolve_classmapping_anon_permset_neg
  - test_cil_resolve_rolebounds
  - test_cil_resolve_rolebounds_exists_neg
  - test_cil_resolve_rolebounds_role1_neg
  - test_cil_resolve_rolebounds_role2_neg
  - test_cil_resolve_sensalias
  - test_cil_resolve_sensalias_sensdecl_neg
  - test_cil_resolve_catalias
  - test_cil_resolve_catalias_catdecl_neg
  - test_cil_resolve_catorder
  - test_cil_resolve_catorder_neg
  - test_cil_resolve_dominance
  - test_cil_resolve_dominance_neg
  - test_cil_resolve_cat_list
  - test_cil_resolve_cat_list_catlistnull_neg
  - test_cil_resolve_cat_list_rescatlistnull_neg
  - test_cil_resolve_cat_list_catrange
  - test_cil_resolve_cat_list_catrange_neg
  - test_cil_resolve_cat_list_catname_neg
  - test_cil_resolve_catset
  - test_cil_resolve_catset_catlist_neg
  - test_cil_resolve_catrange
  - test_cil_resolve_catrange_catloworder_neg
  - test_cil_resolve_catrange_cathighorder_neg
  - test_cil_resolve_catrange_cat1_neg
  - test_cil_resolve_catrange_cat2_neg
  - test_cil_resolve_senscat
  - test_cil_resolve_senscat_catrange_neg
  - test_cil_resolve_senscat_catsetname
  - test_cil_resolve_senscat_catsetname_neg
  - test_cil_resolve_senscat_sublist
  - test_cil_resolve_senscat_missingsens_neg
  - test_cil_resolve_senscat_category_neg
  - test_cil_resolve_senscat_currrangecat
  - test_cil_resolve_level
  - test_cil_resolve_level_catlist
  - test_cil_resolve_level_catset
  - test_cil_resolve_level_catset_name_neg
  - test_cil_resolve_level_sens_neg
  - test_cil_resolve_level_cat_neg
  - test_cil_resolve_level_senscat_neg
  - test_cil_resolve_levelrange_namedlvl
  - test_cil_resolve_levelrange_namedlvl_low_neg
  - test_cil_resolve_levelrange_namedlvl_high_neg
  - test_cil_resolve_levelrange_anonlvl
  - test_cil_resolve_levelrange_anonlvl_low_neg
  - test_cil_resolve_levelrange_anonlvl_high_neg
  - test_cil_resolve_constrain
  - test_cil_resolve_constrain_class_neg
  - test_cil_resolve_constrain_perm_neg
  - test_cil_resolve_constrain_perm_resolve_neg
  - test_cil_resolve_context
  - test_cil_resolve_context_macro
  - test_cil_resolve_context_macro_neg
  - test_cil_resolve_context_namedrange
  - test_cil_resolve_context_namedrange_neg
  - test_cil_resolve_context_user_neg
  - test_cil_resolve_context_role_neg
  - test_cil_resolve_context_type_neg
  - test_cil_resolve_context_anon_level_neg
  - test_cil_resolve_roletransition
  - test_cil_resolve_roletransition_srcdecl_neg
  - test_cil_resolve_roletransition_tgtdecl_neg
  - test_cil_resolve_roletransition_resultdecl_neg
  - test_cil_resolve_typeattributeset_type_in_multiple_attrs
  - test_cil_resolve_typeattributeset_multiple_excludes_with_not
  - test_cil_resolve_typeattributeset_multiple_types_with_and
  - test_cil_resolve_typeattributeset_using_attr
  - test_cil_resolve_typeattributeset_name_neg
  - test_cil_resolve_typeattributeset_undef_type_neg
  - test_cil_resolve_typeattributeset_not
  - test_cil_resolve_typeattributeset_undef_type_not_neg
  - test_cil_resolve_typealias
  - test_cil_resolve_typealias_neg
  - test_cil_resolve_typebounds
  - test_cil_resolve_typebounds_repeatbind_neg
  - test_cil_resolve_typebounds_type1_neg
  - test_cil_resolve_typebounds_type2_neg
  - test_cil_resolve_typepermissive
  - test_cil_resolve_typepermissive_neg
  - test_cil_resolve_nametypetransition
  - test_cil_resolve_nametypetransition_src_neg
  - test_cil_resolve_nametypetransition_tgt_neg
  - test_cil_resolve_nametypetransition_class_neg
  - test_cil_resolve_nametypetransition_dest_neg
  - test_cil_resolve_rangetransition
  - test_cil_resolve_rangetransition_namedrange_anon
  - test_cil_resolve_rangetransition_namedrange_anon_neg
  - test_cil_resolve_rangetransition_namedrange
  - test_cil_resolve_rangetransition_namedrange_neg
  - test_cil_resolve_rangetransition_type1_neg
  - test_cil_resolve_rangetransition_type2_neg
  - test_cil_resolve_rangetransition_class_neg
  - test_cil_resolve_rangetransition_call_level_l_anon
  - test_cil_resolve_rangetransition_call_level_l_anon_neg
  - test_cil_resolve_rangetransition_call_level_h_anon
  - test_cil_resolve_rangetransition_call_level_h_anon_neg
  - test_cil_resolve_rangetransition_level_l_neg
  - test_cil_resolve_rangetransition_level_h_neg
  - test_cil_resolve_rangetransition_anon_level_l
  - test_cil_resolve_rangetransition_anon_level_l_neg
  - test_cil_resolve_rangetransition_anon_level_h
  - test_cil_resolve_rangetransition_anon_level_h_neg
  - test_cil_resolve_classcommon
  - test_cil_resolve_classcommon_no_class_neg
  - test_cil_resolve_classcommon_no_common_neg
  - test_cil_resolve_classpermset_named
  - test_cil_resolve_classpermset_named_namedpermlist
  - test_cil_resolve_classpermset_named_permlist_neg
  - test_cil_resolve_classpermset_named_unnamedcps_neg
  - test_cil_resolve_classpermset_anon
  - test_cil_resolve_classpermset_anon_namedpermlist
  - test_cil_resolve_classpermset_anon_permlist_neg
  - test_cil_resolve_avrule
  - test_cil_resolve_avrule_permset
  - test_cil_resolve_avrule_permset_neg
  - test_cil_resolve_avrule_permset_permdne_neg
  - test_cil_resolve_avrule_firsttype_neg
  - test_cil_resolve_avrule_secondtype_neg
  - test_cil_resolve_avrule_class_neg
  - test_cil_resolve_avrule_perm_neg
  - test_cil_resolve_type_rule_transition
  - test_cil_resolve_type_rule_transition_srcdecl_neg
  - test_cil_resolve_type_rule_transition_tgtdecl_neg
  - test_cil_resolve_type_rule_transition_objdecl_neg
  - test_cil_resolve_type_rule_transition_resultdecl_neg
  - test_cil_resolve_type_rule_change
  - test_cil_resolve_type_rule_change_srcdecl_neg
  - test_cil_resolve_type_rule_change_tgtdecl_neg
  - test_cil_resolve_type_rule_change_objdecl_neg
  - test_cil_resolve_type_rule_change_resultdecl_neg
  - test_cil_resolve_type_rule_member
  - test_cil_resolve_type_rule_member_srcdecl_neg
  - test_cil_resolve_type_rule_member_tgtdecl_neg
  - test_cil_resolve_type_rule_member_objdecl_neg
  - test_cil_resolve_type_rule_member_resultdecl_neg
  - test_cil_resolve_filecon
  - test_cil_resolve_filecon_neg
  - test_cil_resolve_filecon_anon_context
  - test_cil_resolve_filecon_anon_context_neg
  - test_cil_resolve_portcon
  - test_cil_resolve_portcon_neg
  - test_cil_resolve_portcon_anon_context
  - test_cil_resolve_portcon_anon_context_neg
  - test_cil_resolve_genfscon
  - test_cil_resolve_genfscon_neg
  - test_cil_resolve_genfscon_anon_context
  - test_cil_resolve_genfscon_anon_context_neg
  - test_cil_resolve_nodecon_ipv4
  - test_cil_resolve_nodecon_ipv6
  - test_cil_resolve_nodecon_anonipaddr_ipv4
  - test_cil_resolve_nodecon_anonnetmask_ipv4
  - test_cil_resolve_nodecon_anonipaddr_ipv6
  - test_cil_resolve_nodecon_anonnetmask_ipv6
  - test_cil_resolve_nodecon_diffipfam_neg
  - test_cil_resolve_nodecon_context_neg
  - test_cil_resolve_nodecon_ipaddr_neg
  - test_cil_resolve_nodecon_netmask_neg
  - test_cil_resolve_nodecon_anon_context
  - test_cil_resolve_nodecon_anon_context_neg
  - test_cil_resolve_netifcon
  - test_cil_resolve_netifcon_otf_neg
  - test_cil_resolve_netifcon_interface_neg
  - test_cil_resolve_netifcon_unnamed
  - test_cil_resolve_netifcon_unnamed_packet_neg
  - test_cil_resolve_netifcon_unnamed_otf_neg
  - test_cil_resolve_netifcon_sublist_secondlist_missing_neg
  - test_cil_resolve_pirqcon
  - test_cil_resolve_pirqcon_context_neg
  - test_cil_resolve_pirqcon_anon_context
  - test_cil_resolve_pirqcon_anon_context_neg
  - test_cil_resolve_iomemcon
  - test_cil_resolve_iomemcon_context_neg
  - test_cil_resolve_iomemcon_anon_context
  - test_cil_resolve_iomemcon_anon_context_neg
  - test_cil_resolve_ioportcon
  - test_cil_resolve_ioportcon_context_neg
  - test_cil_resolve_ioportcon_anon_context
  - test_cil_resolve_ioportcon_anon_context_neg
  - test_cil_resolve_pcidevicecon
  - test_cil_resolve_pcidevicecon_context_neg
  - test_cil_resolve_pcidevicecon_anon_context
  - test_cil_resolve_pcidevicecon_anon_context_neg
  - test_cil_resolve_fsuse
  - test_cil_resolve_fsuse_nocontext_neg
  - test_cil_resolve_fsuse_neg
  - test_cil_resolve_fsuse_anon
  - test_cil_resolve_fsuse_anon_neg
  - test_cil_resolve_sidcontext
  - test_cil_resolve_sidcontext_named_levels
  - test_cil_resolve_sidcontext_named_context
  - test_cil_resolve_sidcontext_named_context_wrongname_neg
  - test_cil_resolve_sidcontext_named_context_invaliduser_neg
  - test_cil_resolve_blockinherit
  - test_cil_resolve_blockinherit_blockstrdne_neg
  - test_cil_resolve_in_block
  - test_cil_resolve_in_blockstrdne_neg
  - test_cil_resolve_in_macro
  - test_cil_resolve_in_optional
  - test_cil_resolve_call1_noparam
  - test_cil_resolve_call1_type
  - test_cil_resolve_call1_role
  - test_cil_resolve_call1_user
  - test_cil_resolve_call1_sens
  - test_cil_resolve_call1_cat
  - test_cil_resolve_call1_catset
  - test_cil_resolve_call1_catset_anon
  - test_cil_resolve_call1_catset_anon_neg
  - test_cil_resolve_call1_level
  - test_cil_resolve_call1_level_anon
  - test_cil_resolve_call1_level_anon_neg
  - test_cil_resolve_call1_ipaddr
  - test_cil_resolve_call1_ipaddr_anon
  - test_cil_resolve_call1_ipaddr_anon_neg
  - test_cil_resolve_call1_class
  - test_cil_resolve_call1_classmap
  - test_cil_resolve_call1_permset
  - test_cil_resolve_call1_permset_anon
  - test_cil_resolve_call1_classpermset_named
  - test_cil_resolve_call1_classpermset_anon
  - test_cil_resolve_call1_classpermset_anon_neg
  - test_cil_resolve_call1_unknown_neg
  - test_cil_resolve_call1_unknowncall_neg
  - test_cil_resolve_call1_extraargs_neg
  - test_cil_resolve_call1_copy_dup
  - test_cil_resolve_call1_missing_arg_neg
  - test_cil_resolve_call1_paramsflavor_neg
  - test_cil_resolve_call1_unknownflavor_neg
  - test_cil_resolve_call2_type
  - test_cil_resolve_call2_role
  - test_cil_resolve_call2_user
  - test_cil_resolve_call2_sens
  - test_cil_resolve_call2_cat
  - test_cil_resolve_call2_catset
  - test_cil_resolve_call2_catset_anon
  - test_cil_resolve_call2_permset
  - test_cil_resolve_call2_permset_anon
  - test_cil_resolve_call2_classpermset_named
  - test_cil_resolve_call2_classpermset_anon
  - test_cil_resolve_call2_class
  - test_cil_resolve_call2_classmap
  - test_cil_resolve_call2_level
  - test_cil_resolve_call2_level_anon
  - test_cil_resolve_call2_ipaddr
  - test_cil_resolve_call2_ipaddr_anon
  - test_cil_resolve_call2_unknown_neg
  - test_cil_resolve_call2_name_neg
  - test_cil_resolve_name_call_args
  - test_cil_resolve_name_call_args_multipleparams
  - test_cil_resolve_name_call_args_diffflavor
  - test_cil_resolve_name_call_args_callnull_neg
  - test_cil_resolve_name_call_args_namenull_neg
  - test_cil_resolve_name_call_args_callargsnull_neg
  - test_cil_resolve_name_call_args_name_neg
  - test_cil_resolve_expr_stack_bools
  - test_cil_resolve_expr_stack_tunables
  - test_cil_resolve_expr_stack_type
  - test_cil_resolve_expr_stack_role
  - test_cil_resolve_expr_stack_user
  - test_cil_resolve_expr_stack_neg
  - test_cil_resolve_expr_stack_emptystr_neg
  - test_cil_resolve_boolif
  - test_cil_resolve_boolif_neg
  - test_cil_evaluate_expr_stack_and
  - test_cil_evaluate_expr_stack_not
  - test_cil_evaluate_expr_stack_or
  - test_cil_evaluate_expr_stack_xor
  - test_cil_evaluate_expr_stack_eq
  - test_cil_evaluate_expr_stack_neq
  - test_cil_evaluate_expr_stack_oper1
  - test_cil_evaluate_expr_stack_oper2
  - test_cil_resolve_tunif_false
  - test_cil_resolve_tunif_true
  - test_cil_resolve_tunif_resolveexpr_neg
  - test_cil_resolve_userbounds
  - test_cil_resolve_userbounds_exists_neg
  - test_cil_resolve_userbounds_user1_neg
  - test_cil_resolve_userbounds_user2_neg
  - test_cil_resolve_roletype
  - test_cil_resolve_roletype_type_neg
  - test_cil_resolve_roletype_role_neg
  - test_cil_resolve_userrole
  - test_cil_resolve_userrole_user_neg
  - test_cil_resolve_userrole_role_neg
  - test_cil_resolve_userlevel
  - test_cil_resolve_userlevel_macro
  - test_cil_resolve_userlevel_macro_neg
  - test_cil_resolve_userlevel_level_anon
  - test_cil_resolve_userlevel_level_anon_neg
  - test_cil_resolve_userlevel_user_neg
  - test_cil_resolve_userlevel_level_neg
  - test_cil_resolve_userrange
  - test_cil_resolve_userrange_macro
  - test_cil_resolve_userrange_macro_neg
  - test_cil_resolve_userrange_range_anon
  - test_cil_resolve_userrange_range_anon_neg
  - test_cil_resolve_userrange_user_neg
  - test_cil_resolve_userrange_range_neg
  - test_cil_disable_children_helper_optional_enabled
  - test_cil_disable_children_helper_optional_disabled
  - test_cil_disable_children_helper_block
  - test_cil_disable_children_helper_user
  - test_cil_disable_children_helper_role
  - test_cil_disable_children_helper_type
  - test_cil_disable_children_helper_typealias
  - test_cil_disable_children_helper_common
  - test_cil_disable_children_helper_class
  - test_cil_disable_children_helper_bool
  - test_cil_disable_children_helper_sens
  - test_cil_disable_children_helper_cat
  - test_cil_disable_children_helper_catset
  - test_cil_disable_children_helper_sid
  - test_cil_disable_children_helper_macro
  - test_cil_disable_children_helper_context
  - test_cil_disable_children_helper_level
  - test_cil_disable_children_helper_policycap
  - test_cil_disable_children_helper_perm
  - test_cil_disable_children_helper_catalias
  - test_cil_disable_children_helper_sensalias
  - test_cil_disable_children_helper_tunable
  - test_cil_disable_children_helper_unknown
  - test_cil_resolve_ast_node_helper_call1
  - test_cil_resolve_ast_node_helper_call1_neg
  - test_cil_resolve_ast_node_helper_call2
  - test_cil_resolve_ast_node_helper_call2_neg
  - test_cil_resolve_ast_node_helper_boolif
  - test_cil_resolve_ast_node_helper_boolif_neg
  - test_cil_resolve_ast_node_helper_tunif
  - test_cil_resolve_ast_node_helper_tunif_neg
  - test_cil_resolve_ast_node_helper_catorder
  - test_cil_resolve_ast_node_helper_catorder_neg
  - test_cil_resolve_ast_node_helper_dominance
  - test_cil_resolve_ast_node_helper_dominance_neg
  - test_cil_resolve_ast_node_helper_roleallow
  - test_cil_resolve_ast_node_helper_roleallow_neg
  - test_cil_resolve_ast_node_helper_sensalias
  - test_cil_resolve_ast_node_helper_sensalias_neg
  - test_cil_resolve_ast_node_helper_catalias
  - test_cil_resolve_ast_node_helper_catalias_neg
  - test_cil_resolve_ast_node_helper_catset
  - test_cil_resolve_ast_node_helper_catset_catlist_neg
  - test_cil_resolve_ast_node_helper_catrange
  - test_cil_resolve_ast_node_helper_catrange_neg
  - test_cil_resolve_ast_node_helper_level
  - test_cil_resolve_ast_node_helper_level_neg
  - test_cil_resolve_ast_node_helper_levelrange
  - test_cil_resolve_ast_node_helper_levelrange_neg
  - test_cil_resolve_ast_node_helper_constrain
  - test_cil_resolve_ast_node_helper_constrain_neg
  - test_cil_resolve_ast_node_helper_mlsconstrain
  - test_cil_resolve_ast_node_helper_mlsconstrain_neg
  - test_cil_resolve_ast_node_helper_context
  - test_cil_resolve_ast_node_helper_context_neg
  - test_cil_resolve_ast_node_helper_senscat
  - test_cil_resolve_ast_node_helper_senscat_neg
  - test_cil_resolve_ast_node_helper_roletransition
  - test_cil_resolve_ast_node_helper_roletransition_srcdecl_neg
  - test_cil_resolve_ast_node_helper_roletransition_tgtdecl_neg
  - test_cil_resolve_ast_node_helper_roletransition_resultdecl_neg
  - test_cil_resolve_ast_node_helper_typeattributeset
  - test_cil_resolve_ast_node_helper_typeattributeset_undef_type_neg
  - test_cil_resolve_ast_node_helper_typealias
  - test_cil_resolve_ast_node_helper_typealias_notype_neg
  - test_cil_resolve_ast_node_helper_typebounds
  - test_cil_resolve_ast_node_helper_typebounds_neg
  - test_cil_resolve_ast_node_helper_typepermissive
  - test_cil_resolve_ast_node_helper_typepermissive_neg
  - test_cil_resolve_ast_node_helper_rangetransition
  - test_cil_resolve_ast_node_helper_rangetransition_neg
  - test_cil_resolve_ast_node_helper_nametypetransition
  - test_cil_resolve_ast_node_helper_nametypetransition_neg
  - test_cil_resolve_ast_node_helper_avrule
  - test_cil_resolve_ast_node_helper_avrule_src_nores_neg
  - test_cil_resolve_ast_node_helper_avrule_tgt_nores_neg
  - test_cil_resolve_ast_node_helper_avrule_class_nores_neg
  - test_cil_resolve_ast_node_helper_avrule_datum_null_neg
  - test_cil_resolve_ast_node_helper_type_rule_transition
  - test_cil_resolve_ast_node_helper_type_rule_transition_neg
  - test_cil_resolve_ast_node_helper_type_rule_change
  - test_cil_resolve_ast_node_helper_type_rule_change_neg
  - test_cil_resolve_ast_node_helper_type_rule_member
  - test_cil_resolve_ast_node_helper_type_rule_member_neg
  - test_cil_resolve_ast_node_helper_userbounds
  - test_cil_resolve_ast_node_helper_userbounds_neg
  - test_cil_resolve_ast_node_helper_roletype
  - test_cil_resolve_ast_node_helper_roletype_role_neg
  - test_cil_resolve_ast_node_helper_roletype_type_neg
  - test_cil_resolve_ast_node_helper_userrole
  - test_cil_resolve_ast_node_helper_userrole_user_neg
  - test_cil_resolve_ast_node_helper_userrole_role_neg
  - test_cil_resolve_ast_node_helper_userlevel
  - test_cil_resolve_ast_node_helper_userlevel_neg
  - test_cil_resolve_ast_node_helper_userrange
  - test_cil_resolve_ast_node_helper_userrange_neg
  - test_cil_resolve_ast_node_helper_filecon
  - test_cil_resolve_ast_node_helper_filecon_neg
  - test_cil_resolve_ast_node_helper_portcon
  - test_cil_resolve_ast_node_helper_portcon_neg
  - test_cil_resolve_ast_node_helper_genfscon
  - test_cil_resolve_ast_node_helper_genfscon_neg
  - test_cil_resolve_ast_node_helper_nodecon
  - test_cil_resolve_ast_node_helper_nodecon_ipaddr_neg
  - test_cil_resolve_ast_node_helper_nodecon_netmask_neg
  - test_cil_resolve_ast_node_helper_netifcon
  - test_cil_resolve_ast_node_helper_netifcon_neg
  - test_cil_resolve_ast_node_helper_pirqcon
  - test_cil_resolve_ast_node_helper_pirqcon_neg
  - test_cil_resolve_ast_node_helper_iomemcon
  - test_cil_resolve_ast_node_helper_iomemcon_neg
  - test_cil_resolve_ast_node_helper_ioportcon
  - test_cil_resolve_ast_node_helper_ioportcon_neg
  - test_cil_resolve_ast_node_helper_pcidevicecon
  - test_cil_resolve_ast_node_helper_pcidevicecon_neg
  - test_cil_resolve_ast_node_helper_fsuse
  - test_cil_resolve_ast_node_helper_fsuse_neg
  - test_cil_resolve_ast_node_helper_sidcontext
  - test_cil_resolve_ast_node_helper_sidcontext_neg
  - test_cil_resolve_ast_node_helper_blockinherit
  - test_cil_resolve_ast_node_helper_classcommon
  - test_cil_resolve_ast_node_helper_classcommon_neg
  - test_cil_resolve_ast_node_helper_rolebounds
  - test_cil_resolve_ast_node_helper_rolebounds_neg
  - test_cil_resolve_ast_node_helper_callstack
  - test_cil_resolve_ast_node_helper_call
  - test_cil_resolve_ast_node_helper_optional
  - test_cil_resolve_ast_node_helper_macro
  - test_cil_resolve_ast_node_helper_optstack
  - test_cil_resolve_ast_node_helper_optstack_tunable_neg
  - test_cil_resolve_ast_node_helper_optstack_macro_neg
  - test_cil_resolve_ast_node_helper_nodenull_neg
  - test_cil_resolve_ast_node_helper_extraargsnull_neg
  - test_cil_resolve_ast_node_helper_dbflavor_neg
  - test_cil_resolve_ast_node_helper_pass_neg
  - test_cil_resolve_ast_node_helper_optfailedtoresolve
  source_file: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*db'
        type: struct cil_db
      - name: pass
        type: enum cil_pass
      - name: '*changed'
        type: uint32_t
      - name: '*callstack'
        type: struct cil_tree_node
      - name: '*optstack'
        type: struct cil_tree_node
      - name: '*macro'
        type: struct cil_tree_node
      item_type: struct
      name: cil_args_resolve
      pos:
        line_end: 52
        line_start: 45
        source_file: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/test/unit/test_cil_parser.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/test/unit/test_cil_tree.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_cil_symtab_array_init
  - test_cil_db_init
  - test_cil_get_symtab_block
  - test_cil_get_symtab_class
  - test_cil_get_symtab_root
  - test_cil_get_symtab_flavor_neg
  - test_cil_get_symtab_null_neg
  - test_cil_get_symtab_node_null_neg
  - test_cil_get_symtab_parent_null_neg
  source_file: /src/selinux/libsepol/cil/test/unit/test_cil.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_cil_symtab_insert
  source_file: /src/selinux/libsepol/cil/test/unit/test_cil_symtab.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_cil_list_init
  - test_cil_list_append_item
  - test_cil_list_append_item_append
  - test_cil_list_append_item_append_extra
  - test_cil_list_append_item_listnull_neg
  - test_cil_list_append_item_itemnull_neg
  - test_cil_list_prepend_item
  - test_cil_list_prepend_item_prepend
  - test_cil_list_prepend_item_prepend_neg
  - test_cil_list_prepend_item_listnull_neg
  - test_cil_list_prepend_item_itemnull_neg
  source_file: /src/selinux/libsepol/cil/test/unit/test_cil_list.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_cil_parser
  source_file: /src/selinux/libsepol/cil/test/unit/test_cil_parser.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_integration
  - test_min_policy
  source_file: /src/selinux/libsepol/cil/test/unit/test_integration.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/test/unit/test_cil_copy_ast.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/test/unit/CilTest.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*buffer'
        type: char
      - name: file_size
        type: uint32_t
      item_type: struct
      name: cil_file_data
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/selinux/libsepol/cil/test/unit/CilTest.h
    typedefs: []
    union: []
- function_names:
  - CU_ALLOC
  - CuFail
  - CuAssert
  - CuAssertTrue
  - CuAssertStrEquals
  - CuAssertStrEquals_Msg
  - CuAssertIntEquals
  - CuAssertIntEquals_Msg
  - CuAssertDblEquals
  - CuAssertDblEquals_Msg
  - CuAssertPtrEquals
  - CuAssertPtrEquals_Msg
  - CuAssertPtrNotNull
  - CuAssertPtrNotNullMsg
  - SUITE_ADD_TEST
  source_file: /src/selinux/libsepol/cil/test/unit/CuTest.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CUTEST_VERSION
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/selinux/libsepol/cil/test/unit/CuTest.h
      type_or_value: '"CuTest 1.5"'
    - item_type: preproc_def
      name: HUGE_STRING_LEN
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/selinux/libsepol/cil/test/unit/CuTest.h
      type_or_value: '8192'
    - item_type: preproc_def
      name: STRING_MAX
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/selinux/libsepol/cil/test/unit/CuTest.h
      type_or_value: '256'
    - item_type: preproc_def
      name: STRING_INC
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/selinux/libsepol/cil/test/unit/CuTest.h
      type_or_value: '256'
    - item_type: preproc_def
      name: MAX_TEST_CASES
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/selinux/libsepol/cil/test/unit/CuTest.h
      type_or_value: '1024'
    structs:
    - fields:
      - name: length
        type: int
      - name: size
        type: int
      - name: '*buffer'
        type: char
      item_type: struct
      name: CuString
      pos:
        line_end: 46
        line_start: 42
        source_file: /src/selinux/libsepol/cil/test/unit/CuTest.h
    - fields:
      - name: '*name'
        type: char
      - name: function
        type: TestFunction
      - name: failed
        type: int
      - name: ran
        type: int
      - name: '*message'
        type: char
      - name: '*jumpBuf'
        type: jmp_buf
      item_type: struct
      name: CuTest
      pos:
        line_end: 71
        line_start: 64
        source_file: /src/selinux/libsepol/cil/test/unit/CuTest.h
    - fields:
      - name: count
        type: int
      - name: '*list[MAX_TEST_CASES]'
        type: CuTest
      - name: failCount
        type: int
      item_type: struct
      name: CuSuite
      pos:
        line_end: 139
        line_start: 134
        source_file: /src/selinux/libsepol/cil/test/unit/CuTest.h
    typedefs:
    - item_type: typedef
      name: CuTest
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/selinux/libsepol/cil/test/unit/CuTest.h
      type: CuTest
    - item_type: typedef
      name: (*TestFunction)(CuTest *)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/selinux/libsepol/cil/test/unit/CuTest.h
      type: void
    union: []
- function_names:
  - RunAllTests
  - main
  source_file: /src/selinux/libsepol/cil/test/unit/AllTests.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/test/unit/test_cil_list.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/test/unit/test_cil_resolve_ast.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gen_build_args
  - test_cil_parse_to_list
  - test_cil_parse_to_list_currnull_neg
  - test_cil_parse_to_list_listnull_neg
  - test_cil_set_to_list
  - test_cil_set_to_list_tree_node_null_neg
  - test_cil_set_to_list_cl_head_null_neg
  - test_cil_set_to_list_listnull_neg
  - test_cil_gen_block
  - test_cil_gen_block_justblock_neg
  - test_cil_gen_block_noname_neg
  - test_cil_gen_block_dbnull_neg
  - test_cil_gen_block_treenull_neg
  - test_cil_gen_block_nodenull_neg
  - test_cil_gen_block_nodeparentnull_neg
  - test_cil_destroy_block
  - test_cil_gen_blockinherit
  - test_cil_gen_blockinherit_namelist_neg
  - test_cil_gen_blockinherit_namenull_neg
  - test_cil_gen_blockinherit_extra_neg
  - test_cil_gen_blockinherit_dbnull_neg
  - test_cil_gen_blockinherit_currnull_neg
  - test_cil_gen_blockinherit_astnull_neg
  - test_cil_gen_perm
  - test_cil_gen_perm_dbnull_neg
  - test_cil_gen_perm_currnull_neg
  - test_cil_gen_perm_astnull_neg
  - test_cil_gen_perm_nodenull_neg
  - test_cil_gen_permset
  - test_cil_gen_permset_noname_neg
  - test_cil_gen_permset_nameinparens_neg
  - test_cil_gen_permset_noperms_neg
  - test_cil_gen_permset_emptyperms_neg
  - test_cil_gen_permset_extra_neg
  - test_cil_gen_permset_dbnull_neg
  - test_cil_gen_permset_currnull_neg
  - test_cil_gen_permset_astnull_neg
  - test_cil_gen_perm_nodes
  - test_cil_gen_perm_nodes_failgen_neg
  - test_cil_gen_perm_nodes_inval_perm_neg
  - test_cil_fill_permset
  - test_cil_fill_permset_sublist_neg
  - test_cil_fill_permset_startpermnull_neg
  - test_cil_fill_permset_permsetnull_neg
  - test_cil_gen_in
  - test_cil_gen_in_blockstrnull_neg
  - test_cil_gen_in_extra_neg
  - test_cil_gen_in_dbnull_neg
  - test_cil_gen_in_currnull_neg
  - test_cil_gen_in_astnull_neg
  - test_cil_gen_class
  - test_cil_gen_class_noname_neg
  - test_cil_gen_class_nodenull_neg
  - test_cil_gen_class_dbnull_neg
  - test_cil_gen_class_currnull_neg
  - test_cil_gen_class_noclass_neg
  - test_cil_gen_class_noclassname_neg
  - test_cil_gen_class_namesublist_neg
  - test_cil_gen_class_noperms
  - test_cil_gen_class_permsnotinlist_neg
  - test_cil_gen_class_extrapermlist_neg
  - test_cil_gen_class_listinlist_neg
  - test_cil_fill_classpermset_anonperms
  - test_cil_fill_classpermset_anonperms_neg
  - test_cil_fill_classpermset_namedperms
  - test_cil_fill_classpermset_extra_neg
  - test_cil_fill_classpermset_emptypermslist_neg
  - test_cil_fill_classpermset_noperms_neg
  - test_cil_fill_classpermset_noclass_neg
  - test_cil_fill_classpermset_classnodenull_neg
  - test_cil_fill_classpermset_cpsnull_neg
  - test_cil_gen_classpermset
  - test_cil_gen_classpermset_noname_neg
  - test_cil_gen_classpermset_nameinparens_neg
  - test_cil_gen_classpermset_noclass_neg
  - test_cil_gen_classpermset_noperms_neg
  - test_cil_gen_classpermset_emptyperms_neg
  - test_cil_gen_classpermset_extra_neg
  - test_cil_gen_classpermset_dbnull_neg
  - test_cil_gen_classpermset_currnull_neg
  - test_cil_gen_classpermset_astnull_neg
  - test_cil_gen_classmap_perm
  - test_cil_gen_classmap_perm_dupeperm_neg
  - test_cil_gen_classmap_perm_dbnull_neg
  - test_cil_gen_classmap_perm_currnull_neg
  - test_cil_gen_classmap_perm_astnull_neg
  - test_cil_gen_classmap
  - test_cil_gen_classmap_extra_neg
  - test_cil_gen_classmap_noname_neg
  - test_cil_gen_classmap_emptyperms_neg
  - test_cil_gen_classmap_dbnull_neg
  - test_cil_gen_classmap_currnull_neg
  - test_cil_gen_classmap_astnull_neg
  - test_cil_gen_classmapping_anonpermset
  - test_cil_gen_classmapping_anonpermset_neg
  - test_cil_gen_classmapping_namedpermset
  - test_cil_gen_classmapping_noclassmapname_neg
  - test_cil_gen_classmapping_noclassmapperm_neg
  - test_cil_gen_classmapping_nopermissionsets_neg
  - test_cil_gen_classmapping_dbnull_neg
  - test_cil_gen_classmapping_currnull_neg
  - test_cil_gen_classmapping_astnull_neg
  - test_cil_gen_common
  - test_cil_gen_common_dbnull_neg
  - test_cil_gen_common_currnull_neg
  - test_cil_gen_common_astnull_neg
  - test_cil_gen_common_noname_neg
  - test_cil_gen_common_twoperms_neg
  - test_cil_gen_common_permsublist_neg
  - test_cil_gen_common_noperms_neg
  - test_cil_gen_sid
  - test_cil_gen_sid_noname_neg
  - test_cil_gen_sid_nameinparens_neg
  - test_cil_gen_sid_extra_neg
  - test_cil_gen_sid_dbnull_neg
  - test_cil_gen_sid_currnull_neg
  - test_cil_gen_sid_astnull_neg
  - test_cil_gen_sidcontext
  - test_cil_gen_sidcontext_namedcontext
  - test_cil_gen_sidcontext_halfcontext_neg
  - test_cil_gen_sidcontext_noname_neg
  - test_cil_gen_sidcontext_empty_neg
  - test_cil_gen_sidcontext_nocontext_neg
  - test_cil_gen_sidcontext_dblname_neg
  - test_cil_gen_sidcontext_dbnull_neg
  - test_cil_gen_sidcontext_pcurrnull_neg
  - test_cil_gen_sidcontext_astnodenull_neg
  - test_cil_gen_type
  - test_cil_gen_type_dbnull_neg
  - test_cil_gen_type_currnull_neg
  - test_cil_gen_type_astnull_neg
  - test_cil_gen_type_extra_neg
  - test_cil_gen_typeattribute
  - test_cil_gen_typeattribute_dbnull_neg
  - test_cil_gen_typeattribute_currnull_neg
  - test_cil_gen_typeattribute_astnull_neg
  - test_cil_gen_typeattribute_extra_neg
  - test_cil_gen_typebounds
  - test_cil_gen_typebounds_notype1_neg
  - test_cil_gen_typebounds_type1inparens_neg
  - test_cil_gen_typebounds_notype2_neg
  - test_cil_gen_typebounds_type2inparens_neg
  - test_cil_gen_typebounds_extra_neg
  - test_cil_gen_typebounds_dbnull_neg
  - test_cil_gen_typebounds_currnull_neg
  - test_cil_gen_typebounds_astnull_neg
  - test_cil_gen_typepermissive
  - test_cil_gen_typepermissive_noname_neg
  - test_cil_gen_typepermissive_typeinparens_neg
  - test_cil_gen_typepermissive_extra_neg
  - test_cil_gen_typepermissive_dbnull_neg
  - test_cil_gen_typepermissive_currnull_neg
  - test_cil_gen_typepermissive_astnull_neg
  - test_cil_gen_nametypetransition
  - test_cil_gen_nametypetransition_strinparens_neg
  - test_cil_gen_nametypetransition_nostr_neg
  - test_cil_gen_nametypetransition_srcinparens_neg
  - test_cil_gen_nametypetransition_nosrc_neg
  - test_cil_gen_nametypetransition_tgtinparens_neg
  - test_cil_gen_nametypetransition_notgt_neg
  - test_cil_gen_nametypetransition_classinparens_neg
  - test_cil_gen_nametypetransition_noclass_neg
  - test_cil_gen_nametypetransition_destinparens_neg
  - test_cil_gen_nametypetransition_nodest_neg
  - test_cil_gen_nametypetransition_extra_neg
  - test_cil_gen_nametypetransition_dbnull_neg
  - test_cil_gen_nametypetransition_currnull_neg
  - test_cil_gen_nametypetransition_astnull_neg
  - test_cil_gen_rangetransition
  - test_cil_gen_rangetransition_namedtransition
  - test_cil_gen_rangetransition_anon_low_l
  - test_cil_gen_rangetransition_anon_low_l_neg
  - test_cil_gen_rangetransition_anon_high_l
  - test_cil_gen_rangetransition_anon_high_l_neg
  - test_cil_gen_rangetransition_dbnull_neg
  - test_cil_gen_rangetransition_currnull_neg
  - test_cil_gen_rangetransition_astnull_neg
  - test_cil_gen_rangetransition_nofirsttype_neg
  - test_cil_gen_rangetransition_firsttype_inparens_neg
  - test_cil_gen_rangetransition_nosecondtype_neg
  - test_cil_gen_rangetransition_secondtype_inparens_neg
  - test_cil_gen_rangetransition_noclass_neg
  - test_cil_gen_rangetransition_class_inparens_neg
  - test_cil_gen_rangetransition_nolevel_l_neg
  - test_cil_gen_rangetransition_nolevel_h_neg
  - test_cil_gen_rangetransition_extra_neg
  - test_cil_gen_expr_stack_and
  - test_cil_gen_expr_stack_or
  - test_cil_gen_expr_stack_xor
  - test_cil_gen_expr_stack_not
  - test_cil_gen_expr_stack_not_noexpr_neg
  - test_cil_gen_expr_stack_not_extraexpr_neg
  - test_cil_gen_expr_stack_eq
  - test_cil_gen_expr_stack_neq
  - test_cil_gen_expr_stack_nested
  - test_cil_gen_expr_stack_nested_neg
  - test_cil_gen_expr_stack_nested_emptyargs_neg
  - test_cil_gen_expr_stack_nested_missingoperator_neg
  - test_cil_gen_expr_stack_arg1null_neg
  - test_cil_gen_expr_stack_arg2null_neg
  - test_cil_gen_expr_stack_extraarg_neg
  - test_cil_gen_expr_stack_currnull_neg
  - test_cil_gen_expr_stack_stacknull_neg
  - test_cil_gen_boolif_multiplebools_true
  - test_cil_gen_boolif_multiplebools_false
  - test_cil_gen_boolif_multiplebools_unknowncond_neg
  - test_cil_gen_boolif_true
  - test_cil_gen_boolif_false
  - test_cil_gen_boolif_unknowncond_neg
  - test_cil_gen_boolif_nested
  - test_cil_gen_boolif_nested_neg
  - test_cil_gen_boolif_extra_neg
  - test_cil_gen_boolif_extra_parens_neg
  - test_cil_gen_boolif_nocond
  - test_cil_gen_boolif_neg
  - test_cil_gen_boolif_dbnull_neg
  - test_cil_gen_boolif_currnull_neg
  - test_cil_gen_boolif_astnull_neg
  - test_cil_gen_boolif_nocond_neg
  - test_cil_gen_boolif_notruelist_neg
  - test_cil_gen_boolif_empty_cond_neg
  - test_cil_gen_tunif_multiplebools_true
  - test_cil_gen_tunif_multiplebools_false
  - test_cil_gen_tunif_multiplebools_unknowncond_neg
  - test_cil_gen_tunif_true
  - test_cil_gen_tunif_false
  - test_cil_gen_tunif_unknowncond_neg
  - test_cil_gen_tunif_nocond
  - test_cil_gen_tunif_nested
  - test_cil_gen_tunif_nested_neg
  - test_cil_gen_tunif_extra_neg
  - test_cil_gen_tunif_extra_parens_neg
  - test_cil_gen_tunif_neg
  - test_cil_gen_tunif_dbnull_neg
  - test_cil_gen_tunif_currnull_neg
  - test_cil_gen_tunif_astnull_neg
  - test_cil_gen_tunif_nocond_neg
  - test_cil_gen_tunif_notruelist_neg
  - test_cil_gen_condblock_true
  - test_cil_gen_condblock_false
  - test_cil_gen_condblock_dbnull_neg
  - test_cil_gen_condblock_currnull_neg
  - test_cil_gen_condblock_astnull_neg
  - test_cil_gen_condblock_nocond_neg
  - test_cil_gen_condblock_extra_neg
  - test_cil_gen_typealias
  - test_cil_gen_typealias_incomplete_neg
  - test_cil_gen_typealias_incomplete_neg2
  - test_cil_gen_typealias_extratype_neg
  - test_cil_gen_typealias_dbnull_neg
  - test_cil_gen_typealias_currnull_neg
  - test_cil_gen_typealias_astnull_neg
  - test_cil_gen_typeattributeset
  - test_cil_gen_typeattributeset_and_two_types
  - test_cil_gen_typeattributeset_not
  - test_cil_gen_typeattributeset_exclude_attr
  - test_cil_gen_typeattributeset_exclude_neg
  - test_cil_gen_typeattributeset_dbnull_neg
  - test_cil_gen_typeattributeset_currnull_neg
  - test_cil_gen_typeattributeset_astnull_neg
  - test_cil_gen_typeattributeset_noname_neg
  - test_cil_gen_typeattributeset_nameinparens_neg
  - test_cil_gen_typeattributeset_emptylists_neg
  - test_cil_gen_typeattributeset_listinparens_neg
  - test_cil_gen_typeattributeset_extra_neg
  - test_cil_gen_userbounds
  - test_cil_gen_userbounds_notype1_neg
  - test_cil_gen_userbounds_type1_inparens_neg
  - test_cil_gen_userbounds_notype2_neg
  - test_cil_gen_userbounds_type2_inparens_neg
  - test_cil_gen_userbounds_extra_neg
  - test_cil_gen_userbounds_dbnull_neg
  - test_cil_gen_userbounds_currnull_neg
  - test_cil_gen_userbounds_astnull_neg
  - test_cil_gen_role
  - test_cil_gen_role_dbnull_neg
  - test_cil_gen_role_currnull_neg
  - test_cil_gen_role_astnull_neg
  - test_cil_gen_role_extrarole_neg
  - test_cil_gen_role_noname_neg
  - test_cil_gen_roletransition
  - test_cil_gen_roletransition_currnull_neg
  - test_cil_gen_roletransition_astnull_neg
  - test_cil_gen_roletransition_srcnull_neg
  - test_cil_gen_roletransition_tgtnull_neg
  - test_cil_gen_roletransition_resultnull_neg
  - test_cil_gen_roletransition_extra_neg
  - test_cil_gen_bool_true
  - test_cil_gen_bool_tunable_true
  - test_cil_gen_bool_false
  - test_cil_gen_bool_tunable_false
  - test_cil_gen_bool_none_neg
  - test_cil_gen_bool_dbnull_neg
  - test_cil_gen_bool_currnull_neg
  - test_cil_gen_bool_astnull_neg
  - test_cil_gen_bool_notbool_neg
  - test_cil_gen_bool_boolname_neg
  - test_cil_gen_bool_extraname_false_neg
  - test_cil_gen_bool_extraname_true_neg
  - test_cil_gen_constrain_expr_stack_eq2_t1type
  - test_cil_gen_constrain_expr_stack_eq2_t1t1_neg
  - test_cil_gen_constrain_expr_stack_eq2_t2type
  - test_cil_gen_constrain_expr_stack_eq2_t2t2_neg
  - test_cil_gen_constrain_expr_stack_eq2_r1role
  - test_cil_gen_constrain_expr_stack_eq2_r1r1_neg
  - test_cil_gen_constrain_expr_stack_eq2_r2role
  - test_cil_gen_constrain_expr_stack_eq2_r2r2_neg
  - test_cil_gen_constrain_expr_stack_eq2_t1t2
  - test_cil_gen_constrain_expr_stack_eq_r1r2
  - test_cil_gen_constrain_expr_stack_eq2_r1r2
  - test_cil_gen_constrain_expr_stack_eq2_u1u2
  - test_cil_gen_constrain_expr_stack_eq2_u1user
  - test_cil_gen_constrain_expr_stack_eq2_u1u1_neg
  - test_cil_gen_constrain_expr_stack_eq2_u2user
  - test_cil_gen_constrain_expr_stack_eq2_u2u2_neg
  - test_cil_gen_constrain_expr_stack_eq_l2h2
  - test_cil_gen_constrain_expr_stack_eq_l2_neg
  - test_cil_gen_constrain_expr_stack_eq_l1l2
  - test_cil_gen_constrain_expr_stack_eq_l1h1
  - test_cil_gen_constrain_expr_stack_eq_l1h2
  - test_cil_gen_constrain_expr_stack_eq_h1l2
  - test_cil_gen_constrain_expr_stack_eq_h1h2
  - test_cil_gen_constrain_expr_stack_eq_h1_neg
  - test_cil_gen_constrain_expr_stack_eq_l1l1_neg
  - test_cil_gen_constrain_expr_stack_eq2_l1l2_constrain_neg
  - test_cil_gen_constrain_expr_stack_eq_l1l2_constrain_neg
  - test_cil_gen_constrain_expr_stack_eq_leftkeyword_neg
  - test_cil_gen_constrain_expr_stack_eq_noexpr1_neg
  - test_cil_gen_constrain_expr_stack_eq_expr1inparens_neg
  - test_cil_gen_constrain_expr_stack_eq_noexpr2_neg
  - test_cil_gen_constrain_expr_stack_eq_expr2inparens_neg
  - test_cil_gen_constrain_expr_stack_eq_extraexpr_neg
  - test_cil_gen_constrain_expr_stack_eq2
  - test_cil_gen_constrain_expr_stack_eq2_noexpr1_neg
  - test_cil_gen_constrain_expr_stack_eq2_expr1inparens_neg
  - test_cil_gen_constrain_expr_stack_eq2_noexpr2_neg
  - test_cil_gen_constrain_expr_stack_eq2_expr2inparens_neg
  - test_cil_gen_constrain_expr_stack_eq2_extraexpr_neg
  - test_cil_gen_constrain_expr_stack_noteq
  - test_cil_gen_constrain_expr_stack_noteq_noexpr1_neg
  - test_cil_gen_constrain_expr_stack_noteq_expr1inparens_neg
  - test_cil_gen_constrain_expr_stack_noteq_noexpr2_neg
  - test_cil_gen_constrain_expr_stack_noteq_expr2inparens_neg
  - test_cil_gen_constrain_expr_stack_noteq_extraexpr_neg
  - test_cil_gen_constrain_expr_stack_not
  - test_cil_gen_constrain_expr_stack_not_noexpr_neg
  - test_cil_gen_constrain_expr_stack_not_emptyparens_neg
  - test_cil_gen_constrain_expr_stack_not_extraparens_neg
  - test_cil_gen_constrain_expr_stack_or
  - test_cil_gen_constrain_expr_stack_or_neg
  - test_cil_gen_constrain_expr_stack_or_noexpr_neg
  - test_cil_gen_constrain_expr_stack_or_emptyfirstparens_neg
  - test_cil_gen_constrain_expr_stack_or_missingsecondexpr_neg
  - test_cil_gen_constrain_expr_stack_or_emptysecondparens_neg
  - test_cil_gen_constrain_expr_stack_or_extraexpr_neg
  - test_cil_gen_constrain_expr_stack_and
  - test_cil_gen_constrain_expr_stack_and_neg
  - test_cil_gen_constrain_expr_stack_and_noexpr_neg
  - test_cil_gen_constrain_expr_stack_and_emptyfirstparens_neg
  - test_cil_gen_constrain_expr_stack_and_missingsecondexpr_neg
  - test_cil_gen_constrain_expr_stack_and_emptysecondparens_neg
  - test_cil_gen_constrain_expr_stack_and_extraexpr_neg
  - test_cil_gen_constrain_expr_stack_dom
  - test_cil_gen_constrain_expr_stack_dom_noexpr1_neg
  - test_cil_gen_constrain_expr_stack_dom_expr1inparens_neg
  - test_cil_gen_constrain_expr_stack_dom_noexpr2_neg
  - test_cil_gen_constrain_expr_stack_dom_expr2inparens_neg
  - test_cil_gen_constrain_expr_stack_dom_extraexpr_neg
  - test_cil_gen_constrain_expr_stack_domby
  - test_cil_gen_constrain_expr_stack_domby_noexpr1_neg
  - test_cil_gen_constrain_expr_stack_domby_expr1inparens_neg
  - test_cil_gen_constrain_expr_stack_domby_noexpr2_neg
  - test_cil_gen_constrain_expr_stack_domby_expr2inparens_neg
  - test_cil_gen_constrain_expr_stack_domby_extraexpr_neg
  - test_cil_gen_constrain_expr_stack_incomp
  - test_cil_gen_constrain_expr_stack_incomp_noexpr1_neg
  - test_cil_gen_constrain_expr_stack_incomp_expr1inparens_neg
  - test_cil_gen_constrain_expr_stack_incomp_noexpr2_neg
  - test_cil_gen_constrain_expr_stack_incomp_expr2inparens_neg
  - test_cil_gen_constrain_expr_stack_incomp_extraexpr_neg
  - test_cil_gen_constrain_expr_stack_currnull_neg
  - test_cil_gen_constrain_expr_stack_stacknull_neg
  - test_cil_gen_constrain_expr_stack_operatorinparens_neg
  - test_cil_gen_constrain_expr_stack_incorrectcall_neg
  - test_cil_gen_roleallow
  - test_cil_gen_roleallow_dbnull_neg
  - test_cil_gen_roleallow_currnull_neg
  - test_cil_gen_roleallow_astnull_neg
  - test_cil_gen_roleallow_srcnull_neg
  - test_cil_gen_roleallow_tgtnull_neg
  - test_cil_gen_roleallow_extra_neg
  - test_cil_gen_rolebounds
  - test_cil_gen_rolebounds_norole1_neg
  - test_cil_gen_rolebounds_role1_inparens_neg
  - test_cil_gen_rolebounds_norole2_neg
  - test_cil_gen_rolebounds_role2_inparens_neg
  - test_cil_gen_rolebounds_extra_neg
  - test_cil_gen_rolebounds_dbnull_neg
  - test_cil_gen_rolebounds_currnull_neg
  - test_cil_gen_rolebounds_astnull_neg
  - test_cil_gen_avrule
  - test_cil_gen_avrule_permset
  - test_cil_gen_avrule_permset_anon
  - test_cil_gen_avrule_extra_neg
  - test_cil_gen_avrule_sourceparens
  - test_cil_gen_avrule_sourceemptyparen_neg
  - test_cil_gen_avrule_targetparens
  - test_cil_gen_avrule_targetemptyparen_neg
  - test_cil_gen_avrule_currnull_neg
  - test_cil_gen_avrule_astnull_neg
  - test_cil_gen_avrule_sourcedomainnull_neg
  - test_cil_gen_avrule_targetdomainnull_neg
  - test_cil_gen_avrule_objectclassnull_neg
  - test_cil_gen_avrule_permsnull_neg
  - test_cil_gen_avrule_twolists_neg
  - test_cil_gen_type_rule_transition
  - test_cil_gen_type_rule_transition_currnull_neg
  - test_cil_gen_type_rule_transition_astnull_neg
  - test_cil_gen_type_rule_transition_srcnull_neg
  - test_cil_gen_type_rule_transition_tgtnull_neg
  - test_cil_gen_type_rule_transition_objnull_neg
  - test_cil_gen_type_rule_transition_resultnull_neg
  - test_cil_gen_type_rule_transition_extra_neg
  - test_cil_gen_type_rule_change
  - test_cil_gen_type_rule_change_currnull_neg
  - test_cil_gen_type_rule_change_astnull_neg
  - test_cil_gen_type_rule_change_srcnull_neg
  - test_cil_gen_type_rule_change_tgtnull_neg
  - test_cil_gen_type_rule_change_objnull_neg
  - test_cil_gen_type_rule_change_resultnull_neg
  - test_cil_gen_type_rule_change_extra_neg
  - test_cil_gen_type_rule_member
  - test_cil_gen_type_rule_member_currnull_neg
  - test_cil_gen_type_rule_member_astnull_neg
  - test_cil_gen_type_rule_member_srcnull_neg
  - test_cil_gen_type_rule_member_tgtnull_neg
  - test_cil_gen_type_rule_member_objnull_neg
  - test_cil_gen_type_rule_member_resultnull_neg
  - test_cil_gen_type_rule_member_extra_neg
  - test_cil_gen_user
  - test_cil_gen_user_dbnull_neg
  - test_cil_gen_user_currnull_neg
  - test_cil_gen_user_astnull_neg
  - test_cil_gen_user_nouser_neg
  - test_cil_gen_user_xsinfo_neg
  - test_cil_gen_userlevel
  - test_cil_gen_userlevel_anon_level
  - test_cil_gen_userlevel_anon_level_neg
  - test_cil_gen_userlevel_usernull_neg
  - test_cil_gen_userlevel_userrange_neg
  - test_cil_gen_userlevel_levelnull_neg
  - test_cil_gen_userlevel_levelrangeempty_neg
  - test_cil_gen_userlevel_extra_neg
  - test_cil_gen_userlevel_dbnull_neg
  - test_cil_gen_userlevel_currnull_neg
  - test_cil_gen_userlevel_astnull_neg
  - test_cil_gen_userrange_named
  - test_cil_gen_userrange_anon
  - test_cil_gen_userrange_usernull_neg
  - test_cil_gen_userrange_anonuser_neg
  - test_cil_gen_userrange_rangenamenull_neg
  - test_cil_gen_userrange_anonrangeinvalid_neg
  - test_cil_gen_userrange_anonrangeempty_neg
  - test_cil_gen_userrange_extra_neg
  - test_cil_gen_userrange_dbnull_neg
  - test_cil_gen_userrange_currnull_neg
  - test_cil_gen_userrange_astnull_neg
  - test_cil_gen_sensitivity
  - test_cil_gen_sensitivity_dbnull_neg
  - test_cil_gen_sensitivity_currnull_neg
  - test_cil_gen_sensitivity_astnull_neg
  - test_cil_gen_sensitivity_sensnull_neg
  - test_cil_gen_sensitivity_senslist_neg
  - test_cil_gen_sensitivity_extra_neg
  - test_cil_gen_sensalias
  - test_cil_gen_sensalias_dbnull_neg
  - test_cil_gen_sensalias_currnull_neg
  - test_cil_gen_sensalias_astnull_neg
  - test_cil_gen_sensalias_sensnull_neg
  - test_cil_gen_sensalias_senslist_neg
  - test_cil_gen_sensalias_aliasnull_neg
  - test_cil_gen_sensalias_aliaslist_neg
  - test_cil_gen_sensalias_extra_neg
  - test_cil_gen_category
  - test_cil_gen_category_dbnull_neg
  - test_cil_gen_category_astnull_neg
  - test_cil_gen_category_currnull_neg
  - test_cil_gen_category_catnull_neg
  - test_cil_gen_category_catlist_neg
  - test_cil_gen_category_extra_neg
  - test_cil_gen_catset
  - test_cil_gen_catset_dbnull_neg
  - test_cil_gen_catset_currnull_neg
  - test_cil_gen_catset_astnull_neg
  - test_cil_gen_catset_namenull_neg
  - test_cil_gen_catset_setnull_neg
  - test_cil_gen_catset_namelist_neg
  - test_cil_gen_catset_extra_neg
  - test_cil_gen_catset_notset_neg
  - test_cil_gen_catset_nodefail_neg
  - test_cil_gen_catset_settolistfail_neg
  - test_cil_gen_catalias
  - test_cil_gen_catalias_dbnull_neg
  - test_cil_gen_catalias_currnull_neg
  - test_cil_gen_catalias_astnull_neg
  - test_cil_gen_catalias_catnull_neg
  - test_cil_gen_catalias_aliasnull_neg
  - test_cil_gen_catalias_extra_neg
  - test_cil_gen_catrange
  - test_cil_gen_catrange_noname_neg
  - test_cil_gen_catrange_norange_neg
  - test_cil_gen_catrange_emptyrange_neg
  - test_cil_gen_catrange_extrarange_neg
  - test_cil_gen_catrange_dbnull_neg
  - test_cil_gen_catrange_currnull_neg
  - test_cil_gen_catrange_astnull_neg
  - test_cil_gen_catrange_extra_neg
  - test_cil_gen_roletype
  - test_cil_gen_roletype_currnull_neg
  - test_cil_gen_roletype_dbnull_neg
  - test_cil_gen_roletype_astnull_neg
  - test_cil_gen_roletype_empty_neg
  - test_cil_gen_roletype_rolelist_neg
  - test_cil_gen_roletype_roletype_sublist_neg
  - test_cil_gen_roletype_typelist_neg
  - test_cil_gen_userrole
  - test_cil_gen_userrole_currnull_neg
  - test_cil_gen_userrole_dbnull_neg
  - test_cil_gen_userrole_astnull_neg
  - test_cil_gen_userrole_empty_neg
  - test_cil_gen_userrole_userlist_neg
  - test_cil_gen_userrole_userrole_sublist_neg
  - test_cil_gen_userrole_rolelist_neg
  - test_cil_gen_classcommon
  - test_cil_gen_classcommon_dbnull_neg
  - test_cil_gen_classcommon_currnull_neg
  - test_cil_gen_classcommon_astnull_neg
  - test_cil_gen_classcommon_missingclassname_neg
  - test_cil_gen_classcommon_noperms_neg
  - test_cil_gen_classcommon_extraperms_neg
  - test_cil_gen_catorder
  - test_cil_gen_catorder_dbnull_neg
  - test_cil_gen_catorder_currnull_neg
  - test_cil_gen_catorder_astnull_neg
  - test_cil_gen_catorder_missingcats_neg
  - test_cil_gen_catorder_nosublist_neg
  - test_cil_gen_catorder_nestedcat_neg
  - test_cil_gen_dominance
  - test_cil_gen_dominance_dbnull_neg
  - test_cil_gen_dominance_currnull_neg
  - test_cil_gen_dominance_astnull_neg
  - test_cil_gen_dominance_nosensitivities_neg
  - test_cil_gen_dominance_nosublist_neg
  - test_cil_gen_senscat
  - test_cil_gen_senscat_nosublist
  - test_cil_gen_senscat_dbnull_neg
  - test_cil_gen_senscat_currnull_neg
  - test_cil_gen_senscat_astnull_neg
  - test_cil_gen_senscat_nosensitivities_neg
  - test_cil_gen_senscat_sublist_neg
  - test_cil_gen_senscat_nocat_neg
  - test_cil_fill_level
  - test_cil_fill_level_sensnull_neg
  - test_cil_fill_level_levelnull_neg
  - test_cil_fill_level_nocat
  - test_cil_fill_level_emptycat_neg
  - test_cil_gen_level
  - test_cil_gen_level_nameinparens_neg
  - test_cil_gen_level_emptysensparens_neg
  - test_cil_gen_level_extra_neg
  - test_cil_gen_level_emptycat_neg
  - test_cil_gen_level_noname_neg
  - test_cil_gen_level_nosens_neg
  - test_cil_gen_level_dbnull_neg
  - test_cil_gen_level_currnull_neg
  - test_cil_gen_level_astnull_neg
  - test_cil_gen_levelrange
  - test_cil_gen_levelrange_rangeinvalid_neg
  - test_cil_gen_levelrange_namenull_neg
  - test_cil_gen_levelrange_rangenull_neg
  - test_cil_gen_levelrange_rangeempty_neg
  - test_cil_gen_levelrange_extra_neg
  - test_cil_gen_levelrange_dbnull_neg
  - test_cil_gen_levelrange_currnull_neg
  - test_cil_gen_levelrange_astnull_neg
  - test_cil_gen_constrain
  - test_cil_gen_constrain_neg
  - test_cil_gen_constrain_classset_neg
  - test_cil_gen_constrain_classset_noclass_neg
  - test_cil_gen_constrain_classset_noperm_neg
  - test_cil_gen_constrain_permset_neg
  - test_cil_gen_constrain_permset_noclass_neg
  - test_cil_gen_constrain_permset_noperm_neg
  - test_cil_gen_constrain_expression_neg
  - test_cil_gen_constrain_dbnull_neg
  - test_cil_gen_constrain_currnull_neg
  - test_cil_gen_constrain_astnull_neg
  - test_cil_fill_context
  - test_cil_fill_context_unnamedlvl
  - test_cil_fill_context_nocontext_neg
  - test_cil_fill_context_nouser_neg
  - test_cil_fill_context_norole_neg
  - test_cil_fill_context_notype_neg
  - test_cil_fill_context_nolowlvl_neg
  - test_cil_fill_context_nohighlvl_neg
  - test_cil_fill_context_unnamedlvl_nocontextlow_neg
  - test_cil_fill_context_unnamedlvl_nocontexthigh_neg
  - test_cil_gen_context
  - test_cil_gen_context_notinparens_neg
  - test_cil_gen_context_extralevel_neg
  - test_cil_gen_context_emptycontext_neg
  - test_cil_gen_context_extra_neg
  - test_cil_gen_context_doubleparen_neg
  - test_cil_gen_context_norole_neg
  - test_cil_gen_context_roleinparens_neg
  - test_cil_gen_context_notype_neg
  - test_cil_gen_context_typeinparens_neg
  - test_cil_gen_context_nolevels_neg
  - test_cil_gen_context_nosecondlevel_neg
  - test_cil_gen_context_noname_neg
  - test_cil_gen_context_nouser_neg
  - test_cil_gen_context_dbnull_neg
  - test_cil_gen_context_currnull_neg
  - test_cil_gen_context_astnull_neg
  - test_cil_gen_filecon_dir
  - test_cil_gen_filecon_file
  - test_cil_gen_filecon_char
  - test_cil_gen_filecon_block
  - test_cil_gen_filecon_socket
  - test_cil_gen_filecon_pipe
  - test_cil_gen_filecon_symlink
  - test_cil_gen_filecon_any
  - test_cil_gen_filecon_neg
  - test_cil_gen_filecon_anon_context
  - test_cil_gen_filecon_dbnull_neg
  - test_cil_gen_filecon_currnull_neg
  - test_cil_gen_filecon_astnull_neg
  - test_cil_gen_filecon_str1null_neg
  - test_cil_gen_filecon_str1_inparens_neg
  - test_cil_gen_filecon_str2null_neg
  - test_cil_gen_filecon_str2_inparens_neg
  - test_cil_gen_filecon_classnull_neg
  - test_cil_gen_filecon_class_inparens_neg
  - test_cil_gen_filecon_contextnull_neg
  - test_cil_gen_filecon_context_neg
  - test_cil_gen_filecon_extra_neg
  - test_cil_gen_portcon_udp
  - test_cil_gen_portcon_tcp
  - test_cil_gen_portcon_unknownprotocol_neg
  - test_cil_gen_portcon_anon_context
  - test_cil_gen_portcon_portrange
  - test_cil_gen_portcon_portrange_one_neg
  - test_cil_gen_portcon_portrange_morethanone_neg
  - test_cil_gen_portcon_singleport_neg
  - test_cil_gen_portcon_lowport_neg
  - test_cil_gen_portcon_highport_neg
  - test_cil_gen_portcon_dbnull_neg
  - test_cil_gen_portcon_currnull_neg
  - test_cil_gen_portcon_astnull_neg
  - test_cil_gen_portcon_str1null_neg
  - test_cil_gen_portcon_str1parens_neg
  - test_cil_gen_portcon_portnull_neg
  - test_cil_gen_portcon_contextnull_neg
  - test_cil_gen_portcon_context_neg
  - test_cil_gen_portcon_extra_neg
  - test_cil_fill_ipaddr
  - test_cil_fill_ipaddr_addrnodenull_neg
  - test_cil_fill_ipaddr_addrnull_neg
  - test_cil_fill_ipaddr_addrinparens_neg
  - test_cil_fill_ipaddr_extra_neg
  - test_cil_gen_nodecon
  - test_cil_gen_nodecon_anon_context
  - test_cil_gen_nodecon_dbnull_neg
  - test_cil_gen_nodecon_currnull_neg
  - test_cil_gen_nodecon_astnull_neg
  - test_cil_gen_nodecon_ipnull_neg
  - test_cil_gen_nodecon_ipanon
  - test_cil_gen_nodecon_ipanon_neg
  - test_cil_gen_nodecon_netmasknull_neg
  - test_cil_gen_nodecon_netmaskanon
  - test_cil_gen_nodecon_netmaskanon_neg
  - test_cil_gen_nodecon_contextnull_neg
  - test_cil_gen_nodecon_context_neg
  - test_cil_gen_nodecon_extra_neg
  - test_cil_gen_genfscon
  - test_cil_gen_genfscon_anon_context
  - test_cil_gen_genfscon_dbnull_neg
  - test_cil_gen_genfscon_currnull_neg
  - test_cil_gen_genfscon_astnull_neg
  - test_cil_gen_genfscon_typenull_neg
  - test_cil_gen_genfscon_typeparens_neg
  - test_cil_gen_genfscon_pathnull_neg
  - test_cil_gen_genfscon_pathparens_neg
  - test_cil_gen_genfscon_contextnull_neg
  - test_cil_gen_genfscon_context_neg
  - test_cil_gen_genfscon_extra_neg
  - test_cil_gen_netifcon
  - test_cil_gen_netifcon_nested
  - test_cil_gen_netifcon_nested_neg
  - test_cil_gen_netifcon_nested_emptysecondlist_neg
  - test_cil_gen_netifcon_extra_nested_secondlist_neg
  - test_cil_gen_netifcon_nested_missingobjects_neg
  - test_cil_gen_netifcon_nested_secondnested_missingobjects_neg
  - test_cil_gen_netifcon_dbnull_neg
  - test_cil_gen_netifcon_currnull_neg
  - test_cil_gen_netifcon_astnull_neg
  - test_cil_gen_netifcon_ethmissing_neg
  - test_cil_gen_netifcon_interfacemissing_neg
  - test_cil_gen_netifcon_packetmissing_neg
  - test_cil_gen_pirqcon
  - test_cil_gen_pirqcon_pirqnotint_neg
  - test_cil_gen_pirqcon_nopirq_neg
  - test_cil_gen_pirqcon_pirqrange_neg
  - test_cil_gen_pirqcon_nocontext_neg
  - test_cil_gen_pirqcon_anoncontext_neg
  - test_cil_gen_pirqcon_extra_neg
  - test_cil_gen_pirqcon_dbnull_neg
  - test_cil_gen_pirqcon_currnull_neg
  - test_cil_gen_pirqcon_astnull_neg
  - test_cil_gen_iomemcon
  - test_cil_gen_iomemcon_iomemrange
  - test_cil_gen_iomemcon_iomemrange_firstnotint_neg
  - test_cil_gen_iomemcon_iomemrange_secondnotint_neg
  - test_cil_gen_iomemcon_iomemrange_empty_neg
  - test_cil_gen_iomemcon_iomemrange_singleiomem_neg
  - test_cil_gen_iomemcon_iomemrange_morethantwoiomem_neg
  - test_cil_gen_iomemcon_iomemnotint_neg
  - test_cil_gen_iomemcon_noiomem_neg
  - test_cil_gen_iomemcon_nocontext_neg
  - test_cil_gen_iomemcon_anoncontext_neg
  - test_cil_gen_iomemcon_extra_neg
  - test_cil_gen_iomemcon_dbnull_neg
  - test_cil_gen_iomemcon_currnull_neg
  - test_cil_gen_iomemcon_astnull_neg
  - test_cil_gen_ioportcon
  - test_cil_gen_ioportcon_ioportrange
  - test_cil_gen_ioportcon_ioportrange_firstnotint_neg
  - test_cil_gen_ioportcon_ioportrange_secondnotint_neg
  - test_cil_gen_ioportcon_ioportrange_empty_neg
  - test_cil_gen_ioportcon_ioportrange_singleioport_neg
  - test_cil_gen_ioportcon_ioportrange_morethantwoioport_neg
  - test_cil_gen_ioportcon_ioportnotint_neg
  - test_cil_gen_ioportcon_noioport_neg
  - test_cil_gen_ioportcon_nocontext_neg
  - test_cil_gen_ioportcon_anoncontext_neg
  - test_cil_gen_ioportcon_extra_neg
  - test_cil_gen_ioportcon_dbnull_neg
  - test_cil_gen_ioportcon_currnull_neg
  - test_cil_gen_ioportcon_astnull_neg
  - test_cil_gen_pcidevicecon
  - test_cil_gen_pcidevicecon_pcidevicenotint_neg
  - test_cil_gen_pcidevicecon_nopcidevice_neg
  - test_cil_gen_pcidevicecon_pcidevicerange_neg
  - test_cil_gen_pcidevicecon_nocontext_neg
  - test_cil_gen_pcidevicecon_anoncontext_neg
  - test_cil_gen_pcidevicecon_extra_neg
  - test_cil_gen_pcidevicecon_dbnull_neg
  - test_cil_gen_pcidevicecon_currnull_neg
  - test_cil_gen_pcidevicecon_astnull_neg
  - test_cil_gen_fsuse_anoncontext
  - test_cil_gen_fsuse_anoncontext_neg
  - test_cil_gen_fsuse_xattr
  - test_cil_gen_fsuse_task
  - test_cil_gen_fsuse_transition
  - test_cil_gen_fsuse_invalidtype_neg
  - test_cil_gen_fsuse_notype_neg
  - test_cil_gen_fsuse_typeinparens_neg
  - test_cil_gen_fsuse_nofilesystem_neg
  - test_cil_gen_fsuse_filesysteminparens_neg
  - test_cil_gen_fsuse_nocontext_neg
  - test_cil_gen_fsuse_emptyconparens_neg
  - test_cil_gen_fsuse_extra_neg
  - test_cil_gen_fsuse_dbnull_neg
  - test_cil_gen_fsuse_currnull_neg
  - test_cil_gen_fsuse_astnull_neg
  - test_cil_gen_macro_noparams
  - test_cil_gen_macro_type
  - test_cil_gen_macro_role
  - test_cil_gen_macro_user
  - test_cil_gen_macro_sensitivity
  - test_cil_gen_macro_category
  - test_cil_gen_macro_catset
  - test_cil_gen_macro_level
  - test_cil_gen_macro_class
  - test_cil_gen_macro_classmap
  - test_cil_gen_macro_permset
  - test_cil_gen_macro_duplicate
  - test_cil_gen_macro_duplicate_neg
  - test_cil_gen_macro_unknown_neg
  - test_cil_gen_macro_dbnull_neg
  - test_cil_gen_macro_currnull_neg
  - test_cil_gen_macro_astnull_neg
  - test_cil_gen_macro_unnamed_neg
  - test_cil_gen_macro_noparam_neg
  - test_cil_gen_macro_nosecondparam_neg
  - test_cil_gen_macro_noparam_name_neg
  - test_cil_gen_macro_emptyparam_neg
  - test_cil_gen_macro_paramcontainsperiod_neg
  - test_cil_gen_call
  - test_cil_gen_call_noargs
  - test_cil_gen_call_anon
  - test_cil_gen_call_empty_call_neg
  - test_cil_gen_call_dbnull_neg
  - test_cil_gen_call_currnull_neg
  - test_cil_gen_call_astnull_neg
  - test_cil_gen_call_name_inparens_neg
  - test_cil_gen_call_noname_neg
  - test_cil_gen_optional
  - test_cil_gen_optional_dbnull_neg
  - test_cil_gen_optional_currnull_neg
  - test_cil_gen_optional_astnull_neg
  - test_cil_gen_optional_unnamed_neg
  - test_cil_gen_optional_extra_neg
  - test_cil_gen_optional_nameinparens_neg
  - test_cil_gen_optional_emptyoptional
  - test_cil_gen_optional_norule_neg
  - test_cil_gen_policycap
  - test_cil_gen_policycap_noname_neg
  - test_cil_gen_policycap_nameinparens_neg
  - test_cil_gen_policycap_extra_neg
  - test_cil_gen_policycap_dbnull_neg
  - test_cil_gen_policycap_currnull_neg
  - test_cil_gen_policycap_astnull_neg
  - test_cil_gen_policycap_neg
  - test_cil_gen_ipaddr_ipv4
  - test_cil_gen_ipaddr_ipv4_neg
  - test_cil_gen_ipaddr_ipv6
  - test_cil_gen_ipaddr_ipv6_neg
  - test_cil_gen_ipaddr_noname_neg
  - test_cil_gen_ipaddr_nameinparens_neg
  - test_cil_gen_ipaddr_noip_neg
  - test_cil_gen_ipaddr_ipinparens_neg
  - test_cil_gen_ipaddr_extra_neg
  - test_cil_gen_ipaddr_dbnull_neg
  - test_cil_gen_ipaddr_currnull_neg
  - test_cil_gen_ipaddr_astnull_neg
  - test_cil_build_ast
  - test_cil_build_ast_dbnull_neg
  - test_cil_build_ast_astnull_neg
  - test_cil_build_ast_suberr_neg
  - test_cil_build_ast_treenull_neg
  - test_cil_build_ast_node_helper_block
  - test_cil_build_ast_node_helper_block_neg
  - test_cil_build_ast_node_helper_blockinherit
  - test_cil_build_ast_node_helper_blockinherit_neg
  - test_cil_build_ast_node_helper_permset
  - test_cil_build_ast_node_helper_permset_neg
  - test_cil_build_ast_node_helper_in
  - test_cil_build_ast_node_helper_in_neg
  - test_cil_build_ast_node_helper_class
  - test_cil_build_ast_node_helper_class_neg
  - test_cil_build_ast_node_helper_classpermset
  - test_cil_build_ast_node_helper_classpermset_neg
  - test_cil_build_ast_node_helper_classmap
  - test_cil_build_ast_node_helper_classmap_neg
  - test_cil_build_ast_node_helper_classmapping
  - test_cil_build_ast_node_helper_classmapping_neg
  - test_cil_build_ast_node_helper_common
  - test_cil_build_ast_node_helper_common_neg
  - test_cil_build_ast_node_helper_sid
  - test_cil_build_ast_node_helper_sid_neg
  - test_cil_build_ast_node_helper_sidcontext
  - test_cil_build_ast_node_helper_sidcontext_neg
  - test_cil_build_ast_node_helper_user
  - test_cil_build_ast_node_helper_user_neg
  - test_cil_build_ast_node_helper_userlevel
  - test_cil_build_ast_node_helper_userlevel_neg
  - test_cil_build_ast_node_helper_userrange
  - test_cil_build_ast_node_helper_userrange_neg
  - test_cil_build_ast_node_helper_type
  - test_cil_build_ast_node_helper_type_neg
  - test_cil_build_ast_node_helper_attribute
  - test_cil_build_ast_node_helper_attribute_neg
  - test_cil_build_ast_node_helper_typebounds
  - test_cil_build_ast_node_helper_typebounds_neg
  - test_cil_build_ast_node_helper_typepermissive
  - test_cil_build_ast_node_helper_typepermissive_neg
  - test_cil_build_ast_node_helper_nametypetransition
  - test_cil_build_ast_node_helper_nametypetransition_neg
  - test_cil_build_ast_node_helper_rangetransition
  - test_cil_build_ast_node_helper_rangetransition_neg
  - test_cil_build_ast_node_helper_boolif
  - test_cil_build_ast_node_helper_boolif_neg
  - test_cil_build_ast_node_helper_condblock_true
  - test_cil_build_ast_node_helper_condblock_true_neg
  - test_cil_build_ast_node_helper_condblock_false
  - test_cil_build_ast_node_helper_condblock_false_neg
  - test_cil_build_ast_node_helper_tunif
  - test_cil_build_ast_node_helper_tunif_neg
  - test_cil_build_ast_node_helper_typealias
  - test_cil_build_ast_node_helper_typealias_notype_neg
  - test_cil_build_ast_node_helper_typeattribute
  - test_cil_build_ast_node_helper_typeattribute_neg
  - test_cil_build_ast_node_helper_typeattributeset
  - test_cil_build_ast_node_helper_typeattributeset_neg
  - test_cil_build_ast_node_helper_userbounds
  - test_cil_build_ast_node_helper_userbounds_neg
  - test_cil_build_ast_node_helper_role
  - test_cil_build_ast_node_helper_role_neg
  - test_cil_build_ast_node_helper_roletransition
  - test_cil_build_ast_node_helper_roletransition_neg
  - test_cil_build_ast_node_helper_roleallow
  - test_cil_build_ast_node_helper_roleallow_neg
  - test_cil_build_ast_node_helper_rolebounds
  - test_cil_build_ast_node_helper_rolebounds_neg
  - test_cil_build_ast_node_helper_avrule_allow
  - test_cil_build_ast_node_helper_avrule_allow_neg
  - test_cil_build_ast_node_helper_avrule_auditallow
  - test_cil_build_ast_node_helper_avrule_auditallow_neg
  - test_cil_build_ast_node_helper_avrule_dontaudit
  - test_cil_build_ast_node_helper_avrule_dontaudit_neg
  - test_cil_build_ast_node_helper_avrule_neverallow
  - test_cil_build_ast_node_helper_avrule_neverallow_neg
  - test_cil_build_ast_node_helper_type_rule_transition
  - test_cil_build_ast_node_helper_type_rule_transition_neg
  - test_cil_build_ast_node_helper_type_rule_change
  - test_cil_build_ast_node_helper_type_rule_change_neg
  - test_cil_build_ast_node_helper_type_rule_member
  - test_cil_build_ast_node_helper_type_rule_member_neg
  - test_cil_build_ast_node_helper_bool
  - test_cil_build_ast_node_helper_bool_neg
  - test_cil_build_ast_node_helper_bool_tunable
  - test_cil_build_ast_node_helper_bool_tunable_neg
  - test_cil_build_ast_node_helper_sensitivity
  - test_cil_build_ast_node_helper_sensitivity_neg
  - test_cil_build_ast_node_helper_sensalias
  - test_cil_build_ast_node_helper_sensalias_neg
  - test_cil_build_ast_node_helper_category
  - test_cil_build_ast_node_helper_category_neg
  - test_cil_build_ast_node_helper_catset
  - test_cil_build_ast_node_helper_catset_neg
  - test_cil_build_ast_node_helper_catorder
  - test_cil_build_ast_node_helper_catorder_neg
  - test_cil_build_ast_node_helper_catalias
  - test_cil_build_ast_node_helper_catalias_neg
  - test_cil_build_ast_node_helper_catrange
  - test_cil_build_ast_node_helper_catrange_neg
  - test_cil_build_ast_node_helper_roletype
  - test_cil_build_ast_node_helper_roletype_neg
  - test_cil_build_ast_node_helper_userrole
  - test_cil_build_ast_node_helper_userrole_neg
  - test_cil_build_ast_node_helper_gen_classcommon
  - test_cil_build_ast_node_helper_gen_classcommon_neg
  - test_cil_build_ast_node_helper_gen_dominance
  - test_cil_build_ast_node_helper_gen_dominance_neg
  - test_cil_build_ast_node_helper_gen_senscat
  - test_cil_build_ast_node_helper_gen_senscat_neg
  - test_cil_build_ast_node_helper_gen_level
  - test_cil_build_ast_node_helper_gen_level_neg
  - test_cil_build_ast_node_helper_gen_levelrange
  - test_cil_build_ast_node_helper_gen_levelrange_neg
  - test_cil_build_ast_node_helper_gen_constrain
  - test_cil_build_ast_node_helper_gen_constrain_neg
  - test_cil_build_ast_node_helper_gen_mlsconstrain
  - test_cil_build_ast_node_helper_gen_mlsconstrain_neg
  - test_cil_build_ast_node_helper_gen_context
  - test_cil_build_ast_node_helper_gen_context_neg
  - test_cil_build_ast_node_helper_gen_filecon
  - test_cil_build_ast_node_helper_gen_filecon_neg
  - test_cil_build_ast_node_helper_gen_portcon
  - test_cil_build_ast_node_helper_gen_portcon_neg
  - test_cil_build_ast_node_helper_gen_nodecon
  - test_cil_build_ast_node_helper_gen_nodecon_neg
  - test_cil_build_ast_node_helper_gen_genfscon
  - test_cil_build_ast_node_helper_gen_genfscon_neg
  - test_cil_build_ast_node_helper_gen_netifcon
  - test_cil_build_ast_node_helper_gen_netifcon_neg
  - test_cil_build_ast_node_helper_gen_pirqcon
  - test_cil_build_ast_node_helper_gen_pirqcon_neg
  - test_cil_build_ast_node_helper_gen_iomemcon
  - test_cil_build_ast_node_helper_gen_iomemcon_neg
  - test_cil_build_ast_node_helper_gen_ioportcon
  - test_cil_build_ast_node_helper_gen_ioportcon_neg
  - test_cil_build_ast_node_helper_gen_pcidevicecon
  - test_cil_build_ast_node_helper_gen_pcidevicecon_neg
  - test_cil_build_ast_node_helper_gen_fsuse
  - test_cil_build_ast_node_helper_gen_fsuse_neg
  - test_cil_build_ast_node_helper_gen_macro
  - test_cil_build_ast_node_helper_gen_macro_neg
  - test_cil_build_ast_node_helper_gen_macro_nested_macro_neg
  - test_cil_build_ast_node_helper_gen_macro_nested_tunif_neg
  - test_cil_build_ast_node_helper_gen_call
  - test_cil_build_ast_node_helper_gen_call_neg
  - test_cil_build_ast_node_helper_gen_optional
  - test_cil_build_ast_node_helper_gen_optional_neg
  - test_cil_build_ast_node_helper_gen_policycap
  - test_cil_build_ast_node_helper_gen_policycap_neg
  - test_cil_build_ast_node_helper_gen_ipaddr
  - test_cil_build_ast_node_helper_gen_ipaddr_neg
  - test_cil_build_ast_node_helper_extraargsnull_neg
  - test_cil_build_ast_last_child_helper
  - test_cil_build_ast_last_child_helper_extraargsnull_neg
  source_file: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ast'
        type: struct cil_tree_node
      - name: '*db'
        type: struct cil_db
      - name: '*macro'
        type: struct cil_tree_node
      - name: '*tifstack'
        type: struct cil_tree_node
      item_type: struct
      name: cil_args_build
      pos:
        line_end: 49
        line_start: 44
        source_file: /src/selinux/libsepol/cil/test/unit/test_cil_build_ast.c
    typedefs: []
    union: []
- function_names:
  - test_cil_post_filecon_compare_meta_a_not_b
  - test_cil_post_filecon_compare_meta_b_not_a
  - test_cil_post_filecon_compare_meta_a_and_b_strlen_a_greater_b
  - test_cil_post_filecon_compare_type_atype_greater_btype
  - test_cil_post_filecon_compare_type_btype_greater_atype
  - test_cil_post_filecon_compare_meta_a_and_b_strlen_b_greater_a
  - test_cil_post_filecon_compare_stemlen_a_greater_b
  - test_cil_post_filecon_compare_stemlen_b_greater_a
  - test_cil_post_filecon_compare_equal
  - test_cil_post_portcon_compare_atotal_greater_btotal
  - test_cil_post_portcon_compare_btotal_greater_atotal
  - test_cil_post_portcon_compare_aportlow_greater_bportlow
  - test_cil_post_portcon_compare_bportlow_greater_aportlow
  - test_cil_post_portcon_compare_equal
  - test_cil_post_genfscon_compare_atypestr_greater_btypestr
  - test_cil_post_genfscon_compare_btypestr_greater_atypestr
  - test_cil_post_genfscon_compare_apathstr_greater_bpathstr
  - test_cil_post_genfscon_compare_bpathstr_greater_apathstr
  - test_cil_post_genfscon_compare_equal
  - test_cil_post_netifcon_compare_a_greater_b
  - test_cil_post_netifcon_compare_b_greater_a
  - test_cil_post_netifcon_compare_equal
  - test_cil_post_nodecon_compare_aipv4_bipv6
  - test_cil_post_nodecon_compare_aipv6_bipv4
  - test_cil_post_nodecon_compare_aipv4_greaterthan_bipv4
  - test_cil_post_nodecon_compare_aipv4_lessthan_bipv4
  - test_cil_post_nodecon_compare_amaskipv4_greaterthan_bmaskipv4
  - test_cil_post_nodecon_compare_amaskipv4_lessthan_bmaskipv4
  - test_cil_post_nodecon_compare_aipv6_greaterthan_bipv6
  - test_cil_post_nodecon_compare_aipv6_lessthan_bipv6
  - test_cil_post_nodecon_compare_amaskipv6_greaterthan_bmaskipv6
  - test_cil_post_nodecon_compare_amaskipv6_lessthan_bmaskipv6
  - test_cil_post_fsuse_compare_type_a_greater_b
  - test_cil_post_fsuse_compare_type_b_greater_a
  - test_cil_post_fsuse_compare_fsstr_a_greater_b
  - test_cil_post_fsuse_compare_fsstr_b_greater_a
  - test_cil_post_fsuse_compare_equal
  source_file: /src/selinux/libsepol/cil/test/unit/test_cil_post.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/test/unit/test_integration.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cil_list_is_empty
  - cil_list_for_each
  source_file: /src/selinux/libsepol/cil/src/cil_list.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*head'
        type: struct cil_list_item
      - name: '*tail'
        type: struct cil_list_item
      - name: flavor
        type: enum cil_flavor
      item_type: struct
      name: cil_list
      pos:
        line_end: 38
        line_start: 34
        source_file: /src/selinux/libsepol/cil/src/cil_list.h
    - fields:
      - name: '*next'
        type: struct cil_list_item
      - name: flavor
        type: enum cil_flavor
      - name: '*data'
        type: void
      item_type: struct
      name: cil_list_item
      pos:
        line_end: 44
        line_start: 40
        source_file: /src/selinux/libsepol/cil/src/cil_list.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/src/cil_lexer.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: OPAREN
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/selinux/libsepol/cil/src/cil_lexer.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CPAREN
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/selinux/libsepol/cil/src/cil_lexer.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SYMBOL
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/selinux/libsepol/cil/src/cil_lexer.h
      type_or_value: '3'
    - item_type: preproc_def
      name: QSTRING
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/selinux/libsepol/cil/src/cil_lexer.h
      type_or_value: '4'
    - item_type: preproc_def
      name: COMMENT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/selinux/libsepol/cil/src/cil_lexer.h
      type_or_value: '5'
    - item_type: preproc_def
      name: HLL_LINEMARK
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/selinux/libsepol/cil/src/cil_lexer.h
      type_or_value: '6'
    - item_type: preproc_def
      name: NEWLINE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/selinux/libsepol/cil/src/cil_lexer.h
      type_or_value: '7'
    - item_type: preproc_def
      name: END_OF_FILE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/selinux/libsepol/cil/src/cil_lexer.h
      type_or_value: '8'
    - item_type: preproc_def
      name: UNKNOWN
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/selinux/libsepol/cil/src/cil_lexer.h
      type_or_value: '9'
    structs:
    - fields:
      - name: type
        type: uint32_t
      - name: '*value'
        type: char
      - name: line
        type: uint32_t
      item_type: struct
      name: token
      pos:
        line_end: 48
        line_start: 44
        source_file: /src/selinux/libsepol/cil/src/cil_lexer.h
    typedefs: []
    union: []
- function_names:
  - cil_list_error
  - cil_list_init
  - cil_list_destroy
  - cil_list_item_init
  - cil_list_item_destroy
  - cil_list_append
  - cil_list_prepend
  - cil_list_insert
  - cil_list_append_item
  - cil_list_prepend_item
  - cil_list_remove
  - cil_list_for_each
  - cil_list_contains
  - cil_list_for_each
  - cil_list_match_any
  - cil_list_for_each
  - cil_list_for_each
  source_file: /src/selinux/libsepol/cil/src/cil_list.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - __cil_gather_statements_helper
  - cil_gather_statements
  - cil_simple_rules_to_policy
  - cil_list_for_each
  - cil_cats_to_policy
  - cil_level_to_policy
  - cil_levels_simple_and_equal
  - cil_levelrange_to_policy
  - cil_context_to_policy
  - cil_cond_expr_to_policy
  - __cil_userattribute_len
  - __cil_cons_leaf_operand_len
  - __cil_cons_leaf_op_len
  - cil_cons_expr_len
  - __cil_userattribute_to_string
  - __cil_cons_leaf_operand_to_string
  - __cil_cons_leaf_op_to_string
  - __cil_cons_expr_to_string
  - cil_cons_expr_to_string
  - cil_classperms_to_string
  - cil_classperms_to_strings
  - cil_list_for_each
  - cil_class_decls_to_policy
  - cil_list_for_each
  - cil_sid_decls_to_policy
  - cil_list_for_each
  - cil_commons_to_policy
  - cil_list_for_each
  - cil_classes_to_policy
  - cil_list_for_each
  - cil_defaults_to_policy
  - cil_list_for_each
  - cil_list_for_each
  - cil_default_ranges_to_policy
  - cil_list_for_each
  - cil_list_for_each
  - cil_sensitivities_to_policy
  - cil_list_for_each
  - cil_list_for_each
  - cil_list_for_each
  - cil_dominance_to_policy
  - cil_list_for_each
  - cil_categories_to_policy
  - cil_list_for_each
  - cil_list_for_each
  - cil_list_for_each
  - cil_levels_to_policy
  - cil_list_for_each
  - cil_mlsconstrains_to_policy
  - cil_list_for_each
  - cil_list_for_each
  - cil_validatetrans_to_policy
  - cil_list_for_each
  - cil_list_for_each
  - cil_bools_to_policy
  - cil_list_for_each
  - cil_typealiases_to_policy
  - cil_list_for_each
  - cil_list_for_each
  - cil_list_for_each
  - cil_typebounds_to_policy
  - cil_list_for_each
  - cil_typeattributes_to_policy
  - cil_list_for_each
  - cil_list_for_each
  - cil_xperms_to_policy
  - cil_av_rulex_to_policy
  - cil_av_rule_to_policy
  - cil_list_for_each
  - cil_type_rule_to_policy
  - cil_list_for_each
  - cil_nametypetransition_to_policy
  - cil_list_for_each
  - cil_rangetransition_to_policy
  - cil_list_for_each
  - cil_typepermissive_to_policy
  - cil_typeneveraudit_to_policy
  - __cil_block_te_rules_to_policy_helper
  - cil_block_te_rules_to_policy
  - __cil_te_rules_to_policy_helper
  - cil_te_rules_to_policy
  - cil_roles_to_policy
  - cil_list_for_each
  - cil_role_types_to_policy
  - cil_list_for_each
  - cil_list_for_each
  - cil_roleattributes_to_policy
  - cil_list_for_each
  - cil_list_for_each
  - cil_roleallows_to_policy
  - cil_list_for_each
  - cil_roletransitions_to_policy
  - cil_list_for_each
  - cil_list_for_each
  - cil_users_to_policy
  - cil_list_for_each
  - cil_list_for_each
  - cil_list_for_each
  - cil_constrains_to_policy
  - cil_list_for_each
  - cil_list_for_each
  - cil_sid_contexts_to_policy
  - cil_list_for_each
  - cil_fsuses_to_policy
  - cil_genfscons_to_policy
  - cil_ibpkeycons_to_policy
  - cil_ibendportcons_to_policy
  - cil_portcons_to_policy
  - cil_netifcons_to_policy
  - cil_nodecons_to_policy
  - cil_pirqcons_to_policy
  - cil_iomemcons_to_policy
  - cil_ioportcons_to_policy
  - cil_pcidevicecons_to_policy
  - cil_devicetreecons_to_policy
  - cil_gen_policy
  source_file: /src/selinux/libsepol/cil/src/cil_policy.c
  types:
    enum:
    - enumerators:
      - name: CIL_LIST_DEFAULT_RANGE
      - name: CIL_LIST_MLSVALIDATETRANS
      - name: CIL_LIST_ROLEALLOW
      - name: CIL_LIST_BOOL
      - name: CIL_LIST_VALIDATETRANS
      - name: CIL_LIST_DEFAULT_USER
      - name: CIL_LIST_SENSALIAS
      - name: CIL_LIST_POLICYCAP
      - name: CIL_LIST_ROLETRANSITION
      - name: CIL_LIST_TYPE
      - name: CIL_LIST_DEFAULT_ROLE
      - name: CIL_LIST_CATALIAS
      - name: CIL_LIST_TYPEATTRIBUTE
      - name: CIL_LIST_TYPEALIAS
      - name: CIL_LIST_USER
      - name: CIL_LIST_COMMON
        value: '1'
      - name: CIL_LIST_DEFAULT_TYPE
      - name: CIL_LIST_MLSCONSTRAIN
      - name: CIL_LIST_ROLEATTRIBUTE
      - name: CIL_LIST_ROLE
      - name: CIL_LIST_CONSTRAINT
      - name: CIL_LIST_NUM_LISTS
      item_type: enum
      name: cil_statement_list
      pos:
        line_end: 71
        line_start: 48
        source_file: /src/selinux/libsepol/cil/src/cil_policy.c
    preproc_defs: []
    structs:
    - fields:
      - name: '*out'
        type: FILE
      - name: flavor
        type: enum cil_flavor
      - name: rule_kind
        type: uint32_t
      item_type: struct
      name: block_te_rules_extra
      pos:
        line_end: 1366
        line_start: 1362
        source_file: /src/selinux/libsepol/cil/src/cil_policy.c
    - fields:
      - name: '*out'
        type: FILE
      - name: mls
        type: int
      item_type: struct
      name: te_rules_extra
      pos:
        line_end: 1513
        line_start: 1510
        source_file: /src/selinux/libsepol/cil/src/cil_policy.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/src/cil_verify.h
  types:
    enum:
    - enumerators:
      - name: CIL_SYN_STRING
        value: 1 << 0
      - name: CIL_SYN_N_LISTS
        value: 1 << 3
      - name: CIL_SYN_N_STRINGS
        value: 1 << 4
      - name: CIL_SYN_LIST
        value: 1 << 1
      - name: CIL_SYN_EMPTY_LIST
        value: 1 << 2
      - name: CIL_SYN_END
        value: 1 << 5
      item_type: enum
      name: cil_syntax
      pos:
        line_end: 46
        line_start: 39
        source_file: /src/selinux/libsepol/cil/src/cil_verify.h
    preproc_defs: []
    structs:
    - fields:
      - name: '*db'
        type: struct cil_db
      - name: '*csymtab'
        type: struct cil_complex_symtab
      - name: '*handleunknown'
        type: int
      - name: '*mls'
        type: int
      - name: '*nseuserdflt'
        type: int
      - name: '*pass'
        type: int
      item_type: struct
      name: cil_args_verify
      pos:
        line_end: 55
        line_start: 48
        source_file: /src/selinux/libsepol/cil/src/cil_verify.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/src/cil_binary.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/src/cil_parser.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/src/cil_find.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/src/cil_fqn.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cil_tree_get_next_path
  - cil_tree_get_cil_path
  - cil_tree_log
  - cil_tree_subtree_has_decl
  - cil_tree_init
  - cil_tree_destroy
  - cil_tree_subtree_destroy
  - cil_tree_children_destroy
  - cil_tree_node_init
  - cil_tree_node_destroy
  - cil_tree_node_remove
  - cil_tree_walk_core
  - cil_tree_walk_helper
  - cil_tree_walk
  source_file: /src/selinux/libsepol/cil/src/cil_tree.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_DEPTH
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/selinux/libsepol/cil/src/cil_tree.c
      type_or_value: (256)
    - item_type: preproc_def
      name: MAX_NODES
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/selinux/libsepol/cil/src/cil_tree.c
      type_or_value: (1U << 20)
    structs: []
    typedefs: []
    union: []
- function_names:
  - cil_init_keys
  - cil_db_init
  - cil_declared_strings_list_destroy
  - cil_db_destroy
  - cil_root_init
  - cil_root_destroy
  - cil_add_file
  - cil_compile
  - cil_write_parse_ast
  - cil_write_build_ast
  - cil_write_resolve_ast
  - cil_write_post_ast
  - cil_build_policydb
  - cil_write_policy_conf
  - cil_destroy_data
  - cil_flavor_to_symtab_index
  - cil_node_to_string
  - cil_userprefixes_to_string
  - cil_cats_to_ebitmap
  - cil_level_equals
  - __cil_level_strlen
  - __cil_level_to_string
  - cil_selinuxusers_to_string
  - cil_filecons_to_string
  - cil_set_disable_dontaudit
  - cil_set_disable_neverallow
  - cil_set_attrs_expand_generated
  - cil_set_attrs_expand_size
  - cil_set_preserve_tunables
  - cil_set_handle_unknown
  - cil_set_mls
  - cil_set_multiple_decls
  - cil_set_qualified_names
  - cil_set_target_platform
  - cil_set_policy_version
  - cil_symtab_array_init
  - cil_symtab_array_destroy
  - cil_destroy_ast_symtabs
  - cil_get_symtab
  - cil_string_to_uint32
  - cil_string_to_uint64
  - cil_sort_init
  - cil_sort_destroy
  - cil_ordered_init
  - cil_netifcon_init
  - cil_ibendportcon_init
  - cil_context_init
  - cil_level_init
  - cil_levelrange_init
  - cil_sens_init
  - cil_block_init
  - cil_blockinherit_init
  - cil_blockabstract_init
  - cil_in_init
  - cil_class_init
  - cil_classcommon_init
  - cil_sid_init
  - cil_sidcontext_init
  - cil_userrole_init
  - cil_userprefix_init
  - cil_selinuxuser_init
  - cil_roletype_init
  - cil_roleattribute_init
  - cil_roleattributeset_init
  - cil_typeattribute_init
  - cil_typeattributeset_init
  - cil_expandtypeattribute_init
  - cil_alias_init
  - cil_aliasactual_init
  - cil_typepermissive_init
  - cil_typeneveraudit_init
  - cil_nametypetransition_init
  - cil_rangetransition_init
  - cil_bool_init
  - cil_tunable_init
  - cil_condblock_init
  - cil_boolif_init
  - cil_tunif_init
  - cil_avrule_init
  - cil_permissionx_init
  - cil_deny_rule_init
  - cil_type_rule_init
  - cil_roletransition_init
  - cil_roleallow_init
  - cil_catset_init
  - cil_senscat_init
  - cil_cats_init
  - cil_filecon_init
  - cil_ibpkeycon_init
  - cil_portcon_init
  - cil_nodecon_init
  - cil_genfscon_init
  - cil_pirqcon_init
  - cil_iomemcon_init
  - cil_ioportcon_init
  - cil_pcidevicecon_init
  - cil_devicetreecon_init
  - cil_fsuse_init
  - cil_constrain_init
  - cil_validatetrans_init
  - cil_ipaddr_init
  - cil_perm_init
  - cil_classpermission_init
  - cil_classpermissionset_init
  - cil_classperms_set_init
  - cil_classperms_init
  - cil_classmapping_init
  - cil_user_init
  - cil_userattribute_init
  - cil_userattributeset_init
  - cil_userlevel_init
  - cil_userrange_init
  - cil_role_init
  - cil_type_init
  - cil_cat_init
  - cil_args_init
  - cil_call_init
  - cil_optional_init
  - cil_param_init
  - cil_macro_init
  - cil_policycap_init
  - cil_bounds_init
  - cil_default_init
  - cil_defaultrange_init
  - cil_handleunknown_init
  - cil_mls_init
  - cil_src_info_init
  source_file: /src/selinux/libsepol/cil/src/cil.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cil_stack_for_each_starting_at
  - cil_stack_for_each
  source_file: /src/selinux/libsepol/cil/src/cil_stack.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*stack'
        type: struct cil_stack_item
      - name: size
        type: int
      - name: pos
        type: int
      item_type: struct
      name: cil_stack
      pos:
        line_end: 36
        line_start: 32
        source_file: /src/selinux/libsepol/cil/src/cil_stack.h
    - fields:
      - name: flavor
        type: enum cil_flavor
      - name: '*data'
        type: void
      item_type: struct
      name: cil_stack_item
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/selinux/libsepol/cil/src/cil_stack.h
    typedefs: []
    union: []
- function_names:
  - __cil_is_reserved_name
  - cil_verify_name
  - __cil_verify_syntax
  - cil_verify_expr_syntax
  - cil_verify_constraint_leaf_expr_syntax
  - cil_verify_constraint_expr_syntax
  - cil_verify_conditional_blocks
  - cil_verify_decl_does_not_shadow_macro_parameter
  - cil_list_for_each
  - __verify_no_self_reference_in_expr
  - cil_list_for_each
  - cil_verify_no_self_reference
  - cil_stack_for_each
  - __cil_verify_ranges
  - cil_list_for_each
  - cil_verify_completed_ordered_list
  - cil_list_for_each
  - cil_list_for_each
  - __cil_verify_ordered_node_helper
  - __cil_verify_ordered
  - __cil_verify_initsids
  - cil_list_for_each
  - __cil_is_cat_in_cats
  - __cil_verify_cat_in_cats
  - __cil_verify_cats_associated_with_sens
  - __cil_verify_levelrange_sensitivity
  - __cil_verify_levelrange_cats
  - __cil_verify_levelrange
  - __cil_verify_named_levelrange
  - __cil_verify_user_pre_eval
  - __cil_verify_user_post_eval
  - __cil_verify_role
  - __cil_verify_type
  - __cil_verify_context
  - __cil_verify_named_context
  - __cil_verify_booleanif_helper
  - __cil_verify_booleanif
  - __cil_verify_netifcon
  - __cil_verify_ibendportcon
  - __cil_verify_genfscon
  - __cil_verify_filecon
  - __cil_verify_nodecon
  - __cil_verify_ibpkeycon
  - __cil_verify_portcon
  - __cil_verify_pirqcon
  - __cil_verify_iomemcon
  - __cil_verify_ioportcon
  - __cil_verify_pcidevicecon
  - __cil_verify_devicetreecon
  - __cil_verify_fsuse
  - __cil_verify_permissionx
  - cil_list_for_each
  - __cil_verify_avrulex
  - __cil_verify_class
  - __cil_verify_policycap
  - __cil_verify_helper
  - __add_perm_to_list
  - __cil_verify_map_perm
  - __cil_verify_perms
  - cil_list_for_each
  - cil_list_for_each
  - __cil_verify_classperms
  - cil_list_for_each
  - __cil_verify_classpermission
  - __verify_map_perm_classperms
  - __cil_verify_map_class
  - __cil_pre_verify_helper
  source_file: /src/selinux/libsepol/cil/src/cil_verify.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*flavor'
        type: uint32_t
      item_type: struct
      name: cil_args_verify_order
      pos:
        line_end: 681
        line_start: 679
        source_file: /src/selinux/libsepol/cil/src/cil_verify.c
    - fields:
      - name: '*class'
        type: struct cil_class
      - name: '*node'
        type: struct cil_tree_node
      - name: rc
        type: int
      item_type: struct
      name: cil_verify_map_args
      pos:
        line_end: 2184
        line_start: 2180
        source_file: /src/selinux/libsepol/cil/src/cil_verify.c
    typedefs: []
    union: []
- function_names:
  - cil_perm_match
  - cil_list_for_each
  - cil_class_perm_match
  - cil_list_for_each
  - cil_classperms_match_any
  - cil_classperms_list_match_any
  - cil_list_for_each
  - cil_classperms_match_all
  - cil_classperms_list_match_all
  - cil_list_for_each
  - cil_classperms_copy
  - cil_classperms_set_copy
  - cil_classperms_list_copy
  - cil_list_for_each
  - cil_classperms_map_and
  - cil_list_for_each
  - cil_classperms_set_and
  - cil_list_for_each
  - cil_classperms_list_and
  - cil_list_for_each
  - cil_classperms_andnot
  - cil_classperms_map_andnot
  - cil_list_for_each
  - cil_classperms_set_andnot
  - cil_list_for_each
  - cil_classperms_list_andnot
  - cil_list_for_each
  - cil_datum_cardinality
  - cil_datum_not
  - cil_datums_and
  - cil_datums_andnot
  - num_digits
  - cil_create_new_attribute_name
  - cil_create_and_expr_list
  - cil_create_andnot_expr_list
  - cil_create_and_insert_node
  - cil_create_and_insert_attribute_and_set
  - cil_check_attribute_in_symtab
  - cil_check_for_previously_defined_attribute
  - cil_create_attribute_all_and_not_d
  - cil_create_attribute_d1_and_not_d2
  - cil_create_attribute_d1_and_d2
  - cil_create_avrule
  - cil_create_and_add_avrule
  - cil_remove_permissions_from_special_rule
  - cil_remove_permissions_from_rule
  - cil_find_matching_allow_rules
  - cil_process_deny_rule
  - cil_list_for_each
  - cil_process_deny_rules
  - cil_list_for_each
  - __cil_find_deny_rules
  - cil_process_deny_rules_in_ast
  source_file: /src/selinux/libsepol/cil/src/cil_deny.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CIL_DENY_ATTR_PREFIX
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/selinux/libsepol/cil/src/cil_deny.c
      type_or_value: '"deny_rule_attr"'
    structs:
    - fields:
      - name: '*d'
        type: struct cil_symtab_datum
      - name: '*types'
        type: ebitmap_t
      item_type: struct
      name: attr_symtab_map_data
      pos:
        line_end: 929
        line_start: 926
        source_file: /src/selinux/libsepol/cil/src/cil_deny.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/src/cil_resolve_ast.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - __cil_get_sepol_user_datum
  - __cil_get_sepol_role_datum
  - __cil_get_sepol_type_datum
  - __cil_get_sepol_class_datum
  - __cil_get_sepol_cat_datum
  - __cil_get_sepol_level_datum
  - __cil_expand_user
  - __cil_expand_role
  - __cil_expand_type
  - cil_add_ocontext
  - cil_common_to_policydb
  - cil_classorder_to_policydb
  - cil_role_to_policydb
  - cil_role_bounds_to_policydb
  - cil_roletype_to_policydb
  - cil_type_to_policydb
  - cil_type_bounds_to_policydb
  - cil_typealias_to_policydb
  - cil_typepermissive_to_policydb
  - cil_typeneveraudit_to_policydb
  - cil_typeattribute_to_policydb
  - __cil_typeattr_bitmap_init
  - cil_typeattribute_to_bitmap
  - cil_policycap_to_policydb
  - cil_user_to_policydb
  - cil_user_bounds_to_policydb
  - cil_userrole_to_policydb
  - cil_bool_to_policydb
  - cil_catorder_to_policydb
  - cil_catalias_to_policydb
  - cil_sensitivityorder_to_policydb
  - cil_sensalias_to_policydb
  - __cil_cond_insert_rule
  - cil_cond_av_list_search
  - __cil_insert_type_rule
  - __cil_type_rule_to_avtab_helper
  - cil_list_for_each
  - __cil_type_rule_to_avtab
  - cil_type_rule_to_policydb
  - __cil_typetransition_to_avtab_helper
  - cil_list_for_each
  - __cil_typetransition_to_avtab
  - cil_typetransition_to_policydb
  - __perm_str_to_datum
  - __cil_perms_to_datum
  - cil_list_for_each
  - __cil_insert_avrule
  - __cil_avrule_expand_helper
  - __cil_avrule_expand
  - cil_list_for_each
  - __cil_should_expand_attribute
  - __cil_avrule_to_avtab
  - cil_avrule_to_policydb
  - XPERM_IDX
  - XPERM_SETBITS
  - XPERM_LOW
  - XPERM_HIGH
  - __avrule_xperm_setrangebits
  - __cil_xperm_kind_to_str
  - IOC_DRIV
  - IOC_FUNC
  - __cil_permx_bitmap_to_sepol_xperms_list
  - ebitmap_for_each_positive_bit
  - __cil_avrulex_xperm_to_policydb
  - cil_list_for_each
  - cil_list_for_each
  - __cil_avrulex_ioctl_to_policydb
  - __cil_avrulex_nlmsg_to_policydb
  - __cil_avrulex_xperm_to_hashtable
  - __cil_avrulex_to_hashtable_helper
  - cil_list_for_each
  - cil_avrulex_to_hashtable
  - __cil_avrulex_xperm_destroy
  - __cil_cond_to_policydb_helper
  - __cil_expr_to_string_helper
  - __cil_expr_to_string
  - __cil_cond_item_to_sepol_expr
  - __cil_cond_expr_to_sepol_expr_helper
  - __cil_cond_expr_to_sepol_expr
  - __cil_validate_cond_expr
  - cil_booleanif_to_policydb
  - cil_roletrans_to_policydb
  - cil_list_for_each
  - cil_roleallow_to_policydb
  - __cil_constrain_expr_datum_to_sepol_expr
  - __cil_constrain_expr_leaf_to_sepol_expr
  - cil_list_for_each
  - __cil_constrain_expr_to_sepol_expr_helper
  - __cil_constrain_expr_to_sepol_expr
  - __cil_validate_constrain_expr
  - cil_constrain_to_policydb_helper
  - cil_constrain_expand
  - cil_list_for_each
  - cil_constrain_to_policydb
  - cil_validatetrans_to_policydb
  - cil_list_for_each
  - __cil_cats_to_mls_level
  - cil_sepol_level_define
  - cil_level_to_mls_level
  - __cil_levelrange_to_mls_range
  - cil_userlevel_userrange_to_policydb
  - __cil_context_to_sepol_context
  - cil_sidorder_to_policydb
  - cil_rangetransition_to_policydb
  - cil_list_for_each
  - cil_ibpkeycon_to_policydb
  - cil_portcon_to_policydb
  - cil_netifcon_to_policydb
  - cil_ibendportcon_to_policydb
  - cil_nodecon_to_policydb
  - cil_fsuse_to_policydb
  - cil_genfscon_to_policydb
  - cil_pirqcon_to_policydb
  - cil_iomemcon_to_policydb
  - cil_ioportcon_to_policydb
  - cil_pcidevicecon_to_policydb
  - cil_devicetreecon_to_policydb
  - cil_default_to_policydb
  - cil_list_for_each
  - cil_defaultrange_to_policydb
  - cil_list_for_each
  - __cil_node_to_policydb
  - __cil_binary_create_helper
  - __cil_contexts_to_policydb
  - __cil_common_val_array_insert
  - __cil_class_val_array_insert
  - __cil_role_val_array_insert
  - __cil_type_val_array_insert
  - __cil_user_val_array_insert
  - __cil_bool_val_array_insert
  - __cil_level_val_array_insert
  - __cil_cat_val_array_insert
  - __cil_policydb_val_arrays_create
  - __cil_set_conditional_state_and_flags
  - __cil_policydb_create
  - __cil_policydb_init
  - role_trans_hash
  - role_trans_compare
  - avrulex_hash
  - mix
  - avrulex_compare
  - cil_binary_create
  - __cil_destroy_sepol_class_perms
  - __cil_rule_to_sepol_class_perms
  - cil_list_for_each
  - __cil_permx_to_sepol_class_perms
  - cil_list_for_each
  - __cil_init_sepol_type_set
  - __cil_add_sepol_type
  - __cil_init_sepol_avrule
  - __cil_destroy_sepol_avrules
  - __cil_print_parents
  - __cil_print_classperm
  - __cil_print_permissionx
  - __cil_print_rule
  - __cil_print_neverallow_failure
  - cil_list_for_each
  - cil_list_for_each
  - cil_check_neverallow
  - cil_list_for_each
  - cil_list_for_each
  - cil_check_neverallows
  - cil_list_for_each
  - __cil_collect_neverallows_helper
  - cil_check_neverallows_against_pdb
  - cil_classperms_from_sepol
  - cil_avrule_from_sepol
  - cil_check_type_bounds
  - cil_list_for_each
  - cil_list_for_each
  - cil_binary_create_allocated_pdb
  source_file: /src/selinux/libsepol/cil/src/cil_binary.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IPPROTO_DCCP
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/selinux/libsepol/cil/src/cil_binary.c
      type_or_value: '33'
    - item_type: preproc_def
      name: IPPROTO_SCTP
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/selinux/libsepol/cil/src/cil_binary.c
      type_or_value: '132'
    - item_type: preproc_def
      name: ROLE_TRANS_TABLE_SIZE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/selinux/libsepol/cil/src/cil_binary.c
      type_or_value: (1 << 10)
    - item_type: preproc_def
      name: AVRULEX_TABLE_SIZE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/selinux/libsepol/cil/src/cil_binary.c
      type_or_value: (1 << 10)
    - item_type: preproc_def
      name: PERMS_PER_CLASS
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/selinux/libsepol/cil/src/cil_binary.c
      type_or_value: '32'
    structs:
    - fields:
      - name: ioctl
        type: hashtab_t
      - name: nlmsg
        type: hashtab_t
      item_type: struct
      name: cil_args_xperm_tables
      pos:
        line_end: 64
        line_start: 61
        source_file: /src/selinux/libsepol/cil/src/cil_binary.c
    - fields:
      - name: '*db'
        type: struct cil_db
      - name: '*pdb'
        type: policydb_t
      - name: '*neverallows'
        type: struct cil_list
      - name: pass
        type: int
      - name: role_trans_table
        type: hashtab_t
      - name: avrulex_xperm_tables
        type: struct cil_args_xperm_tables
      - name: '**type_value_to_cil'
        type: void
      item_type: struct
      name: cil_args_binary
      pos:
        line_end: 74
        line_start: 66
        source_file: /src/selinux/libsepol/cil/src/cil_binary.c
    - fields:
      - name: '*db'
        type: struct cil_db
      - name: '*pdb'
        type: policydb_t
      - name: '*cond_node'
        type: cond_node_t
      - name: cond_flavor
        type: enum cil_flavor
      - name: avrulex_xperm_tables
        type: struct cil_args_xperm_tables
      item_type: struct
      name: cil_args_booleanif
      pos:
        line_end: 82
        line_start: 76
        source_file: /src/selinux/libsepol/cil/src/cil_binary.c
    typedefs: []
    union: []
- function_names:
  - DATUM
  - NODE
  - FLAVOR
  source_file: /src/selinux/libsepol/cil/src/cil_symtab.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*nodes'
        type: struct cil_list
      - name: '*name'
        type: char
      - name: '*fqn'
        type: char
      - name: '*symtab'
        type: symtab_t
      item_type: struct
      name: cil_symtab_datum
      pos:
        line_end: 42
        line_start: 37
        source_file: /src/selinux/libsepol/cil/src/cil_symtab.h
    - fields:
      - name: key1
        type: intptr_t
      - name: key2
        type: intptr_t
      - name: key3
        type: intptr_t
      - name: key4
        type: intptr_t
      item_type: struct
      name: cil_complex_symtab_key
      pos:
        line_end: 53
        line_start: 48
        source_file: /src/selinux/libsepol/cil/src/cil_symtab.h
    - fields:
      - name: '*data'
        type: void
      item_type: struct
      name: cil_complex_symtab_datum
      pos:
        line_end: 57
        line_start: 55
        source_file: /src/selinux/libsepol/cil/src/cil_symtab.h
    - fields:
      - name: '*ckey'
        type: struct cil_complex_symtab_key
      - name: '*datum'
        type: struct cil_complex_symtab_datum
      - name: '*next'
        type: struct cil_complex_symtab_node
      item_type: struct
      name: cil_complex_symtab_node
      pos:
        line_end: 63
        line_start: 59
        source_file: /src/selinux/libsepol/cil/src/cil_symtab.h
    - fields:
      - name: '**htable'
        type: struct cil_complex_symtab_node
      - name: nelems
        type: uint32_t
      - name: nslots
        type: uint32_t
      - name: mask
        type: uint32_t
      item_type: struct
      name: cil_complex_symtab
      pos:
        line_end: 70
        line_start: 65
        source_file: /src/selinux/libsepol/cil/src/cil_symtab.h
    typedefs: []
    union: []
- function_names:
  - cil_fill_list
  - cil_gen_declared_string
  - cil_allow_multiple_decls
  - cil_add_decl_to_symtab
  - cil_gen_node
  - cil_clear_node
  - cil_gen_ordered
  - cil_destroy_ordered
  - cil_gen_block
  - cil_destroy_block
  - cil_gen_blockinherit
  - cil_destroy_blockinherit
  - cil_gen_blockabstract
  - cil_destroy_blockabstract
  - cil_gen_in
  - cil_destroy_in
  - cil_gen_class
  - cil_destroy_class
  - cil_gen_perm
  - cil_destroy_perm
  - cil_gen_perm_nodes
  - cil_fill_perms
  - cil_fill_classperms
  - cil_destroy_classperms
  - cil_fill_classperms_set
  - cil_destroy_classperms_set
  - cil_fill_classperms_list
  - cil_destroy_classperms_list
  - cil_gen_classpermission
  - cil_destroy_classpermission
  - cil_gen_classpermissionset
  - cil_destroy_classpermissionset
  - cil_gen_map_class
  - cil_gen_classmapping
  - cil_destroy_classmapping
  - cil_gen_common
  - cil_gen_classcommon
  - cil_destroy_classcommon
  - cil_gen_sid
  - cil_destroy_sid
  - cil_gen_sidcontext
  - cil_destroy_sidcontext
  - cil_gen_user
  - cil_destroy_user
  - cil_gen_userattribute
  - cil_destroy_userattribute
  - cil_gen_userattributeset
  - cil_destroy_userattributeset
  - cil_gen_userlevel
  - cil_destroy_userlevel
  - cil_gen_userrange
  - cil_destroy_userrange
  - cil_gen_userprefix
  - cil_destroy_userprefix
  - cil_gen_selinuxuser
  - cil_gen_selinuxuserdefault
  - cil_destroy_selinuxuser
  - cil_gen_role
  - cil_destroy_role
  - cil_gen_roletype
  - cil_destroy_roletype
  - cil_gen_userrole
  - cil_destroy_userrole
  - cil_gen_roletransition
  - cil_destroy_roletransition
  - cil_gen_roleallow
  - cil_destroy_roleallow
  - cil_gen_roleattribute
  - cil_destroy_roleattribute
  - cil_gen_roleattributeset
  - cil_destroy_roleattributeset
  - cil_gen_avrule
  - cil_destroy_avrule
  - cil_fill_permissionx
  - cil_gen_permissionx
  - cil_destroy_permissionx
  - cil_gen_avrulex
  - cil_gen_deny_rule
  - cil_destroy_deny_rule
  - cil_gen_type_rule
  - cil_destroy_type_rule
  - cil_gen_type
  - cil_destroy_type
  - cil_gen_typeattribute
  - cil_destroy_typeattribute
  - cil_gen_bool
  - cil_destroy_bool
  - cil_gen_tunable
  - cil_destroy_tunable
  - __cil_get_expr_operator_flavor
  - __cil_fill_expr_helper
  - __cil_fill_expr
  - cil_gen_expr
  - __cil_get_constraint_operator_flavor
  - __cil_get_constraint_operand_flavor
  - __cil_fill_constraint_leaf_expr
  - __cil_fill_constraint_expr
  - cil_gen_constraint_expr
  - cil_gen_boolif
  - cil_destroy_boolif
  - cil_gen_tunif
  - cil_destroy_tunif
  - cil_gen_condblock
  - cil_destroy_condblock
  - cil_gen_alias
  - cil_destroy_alias
  - cil_gen_aliasactual
  - cil_destroy_aliasactual
  - cil_gen_typeattributeset
  - cil_destroy_typeattributeset
  - cil_gen_expandtypeattribute
  - cil_destroy_expandtypeattribute
  - cil_gen_typepermissive
  - cil_destroy_typepermissive
  - cil_gen_typeneveraudit
  - cil_destroy_typeneveraudit
  - cil_gen_typetransition
  - cil_destroy_typetransition
  - cil_gen_rangetransition
  - cil_destroy_rangetransition
  - cil_gen_sensitivity
  - cil_destroy_sensitivity
  - cil_gen_category
  - cil_destroy_category
  - cil_gen_catset
  - cil_destroy_catset
  - cil_gen_senscat
  - cil_destroy_senscat
  - cil_gen_level
  - cil_destroy_level
  - cil_fill_levelrange
  - cil_gen_levelrange
  - cil_destroy_levelrange
  - cil_gen_constrain
  - cil_destroy_constrain
  - cil_gen_validatetrans
  - cil_destroy_validatetrans
  - cil_fill_context
  - cil_gen_context
  - cil_destroy_context
  - cil_gen_filecon
  - cil_destroy_filecon
  - cil_gen_ibpkeycon
  - cil_destroy_ibpkeycon
  - cil_gen_portcon
  - cil_destroy_portcon
  - cil_gen_nodecon
  - cil_destroy_nodecon
  - cil_gen_genfscon
  - cil_destroy_genfscon
  - cil_gen_netifcon
  - cil_destroy_netifcon
  - cil_gen_ibendportcon
  - cil_destroy_ibendportcon
  - cil_gen_pirqcon
  - cil_destroy_pirqcon
  - cil_gen_iomemcon
  - cil_destroy_iomemcon
  - cil_gen_ioportcon
  - cil_destroy_ioportcon
  - cil_gen_pcidevicecon
  - cil_destroy_pcidevicecon
  - cil_gen_devicetreecon
  - cil_destroy_devicetreecon
  - cil_gen_fsuse
  - cil_destroy_fsuse
  - cil_destroy_param
  - cil_gen_macro
  - cil_destroy_macro
  - cil_gen_call
  - cil_destroy_call
  - cil_destroy_args
  - cil_gen_optional
  - cil_destroy_optional
  - cil_gen_policycap
  - cil_destroy_policycap
  - cil_gen_ipaddr
  - cil_destroy_ipaddr
  - cil_fill_integer
  - cil_fill_integer64
  - cil_fill_ipaddr
  - cil_fill_level
  - cil_fill_cats
  - cil_destroy_cats
  - cil_gen_bounds
  - cil_destroy_bounds
  - cil_gen_default
  - cil_destroy_default
  - cil_gen_defaultrange
  - cil_destroy_defaultrange
  - cil_gen_handleunknown
  - cil_destroy_handleunknown
  - cil_gen_mls
  - cil_destroy_mls
  - cil_gen_src_info
  - cil_destroy_src_info
  - check_for_illegal_statement
  - parse_statement
  - __cil_build_ast_node_helper
  - __cil_build_ast_first_child_helper
  - __cil_build_ast_last_child_helper
  - cil_build_ast
  source_file: /src/selinux/libsepol/cil/src/cil_build_ast.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ast'
        type: struct cil_tree_node
      - name: '*db'
        type: struct cil_db
      - name: '*tunif'
        type: struct cil_tree_node
      - name: '*in'
        type: struct cil_tree_node
      - name: '*macro'
        type: struct cil_tree_node
      - name: '*optional'
        type: struct cil_tree_node
      - name: '*boolif'
        type: struct cil_tree_node
      item_type: struct
      name: cil_args_build
      pos:
        line_end: 56
        line_start: 48
        source_file: /src/selinux/libsepol/cil/src/cil_build_ast.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/src/cil_strpool.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/src/cil_mem.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/src/cil_policy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - datum_or_str
  - datum_to_str
  - write_expr
  - cil_list_for_each
  - write_node_list
  - write_string_list
  - cil_list_for_each
  - write_datum_list
  - cil_list_for_each
  - write_classperms
  - write_classperms_list
  - cil_list_for_each
  - cil_list_for_each
  - write_permx
  - write_cats
  - write_level
  - write_range
  - write_context
  - write_ipaddr
  - write_constrain
  - write_call_args
  - cil_list_for_each
  - write_call_args_tree
  - macro_param_flavor_to_string
  - cil_write_src_info_node
  - cil_write_ast_node
  - __write_parse_ast_node_helper
  - __write_parse_ast_first_child_helper
  - __write_parse_ast_last_child_helper
  - __write_cil_ast_node_helper
  - __write_cil_ast_first_child_helper
  - __write_cil_ast_last_child_helper
  - cil_write_ast
  source_file: /src/selinux/libsepol/cil/src/cil_write_ast.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*out'
        type: FILE
      - name: depth
        type: int
      item_type: struct
      name: cil_write_ast_args
      pos:
        line_end: 1685
        line_start: 1682
        source_file: /src/selinux/libsepol/cil/src/cil_write_ast.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/src/cil_tree.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CIL_TREE_SKIP_NOTHING
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/selinux/libsepol/cil/src/cil_tree.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CIL_TREE_SKIP_NEXT
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/selinux/libsepol/cil/src/cil_tree.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CIL_TREE_SKIP_HEAD
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/selinux/libsepol/cil/src/cil_tree.h
      type_or_value: '2'
    - item_type: preproc_def
      name: CIL_TREE_SKIP_ALL
      pos:
        line_end: 78
        line_start: 76
        source_file: /src/selinux/libsepol/cil/src/cil_tree.h
      type_or_value: (CIL_TREE_SKIP_NOTHING | CIL_TREE_SKIP_NEXT | CIL_TREE_SKIP_HEAD)
    structs:
    - fields:
      - name: '*root'
        type: struct cil_tree_node
      item_type: struct
      name: cil_tree
      pos:
        line_end: 39
        line_start: 37
        source_file: /src/selinux/libsepol/cil/src/cil_tree.h
    - fields:
      - name: '*parent'
        type: struct cil_tree_node
      - name: '*cl_head'
        type: struct cil_tree_node
      - name: '*cl_tail'
        type: struct cil_tree_node
      - name: '*next'
        type: struct cil_tree_node
      - name: flavor
        type: enum cil_flavor
      - name: line
        type: uint32_t
      - name: hll_offset
        type: uint32_t
      - name: '*data'
        type: void
      item_type: struct
      name: cil_tree_node
      pos:
        line_end: 51
        line_start: 41
        source_file: /src/selinux/libsepol/cil/src/cil_tree.h
    typedefs: []
    union: []
- function_names:
  - cil_symtab_error
  - cil_symtab_init
  - cil_symtab_datum_init
  - cil_symtab_datum_destroy
  - cil_symtab_datum_remove_node
  - cil_symtab_insert
  - cil_symtab_remove_datum
  - cil_symtab_get_datum
  - cil_symtab_map
  - __cil_symtab_destroy_helper
  - cil_symtab_destroy
  - cil_complex_symtab_hash
  - cil_complex_symtab_init
  - cil_complex_symtab_insert
  - cil_complex_symtab_search
  - cil_complex_symtab_destroy
  source_file: /src/selinux/libsepol/cil/src/cil_symtab.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cil_stack_init
  - cil_stack_destroy
  - cil_stack_empty
  - cil_stack_is_empty
  - cil_stack_number_of_items
  - cil_stack_push
  - cil_stack_pop
  - cil_stack_peek
  - cil_stack_peek_at
  source_file: /src/selinux/libsepol/cil/src/cil_stack.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CIL_STACK_INIT_SIZE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/selinux/libsepol/cil/src/cil_stack.c
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/src/cil_reset_ast.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/src/cil_internal.h
  types:
    enum:
    - enumerators:
      - name: CIL_PASS_INIT
        value: '0'
      - name: CIL_PASS_IN_BEFORE
      - name: CIL_PASS_TIF
      - name: CIL_PASS_BLKIN_LINK
      - name: CIL_PASS_BLKIN_COPY
      - name: CIL_PASS_BLKABS
      - name: CIL_PASS_IN_AFTER
      - name: CIL_PASS_CALL1
      - name: CIL_PASS_CALL2
      - name: CIL_PASS_ALIAS1
      - name: CIL_PASS_ALIAS2
      - name: CIL_PASS_MISC3
      - name: CIL_PASS_MISC1
      - name: CIL_PASS_MISC2
      - name: CIL_PASS_MLS
      - name: CIL_PASS_NUM
      item_type: enum
      name: cil_pass
      pos:
        line_end: 74
        line_start: 55
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - enumerators:
      - name: CIL_SYM_ROLES
      - name: CIL_SYM_CLASSPERMSETS
      - name: CIL_SYM_LEVELRANGES
      - name: CIL_SYM_CATS
      - name: CIL_SYM_UNKNOWN
      - name: CIL_SYM_USERS
      - name: CIL_SYM_CLASSES
      - name: CIL_SYM_SENS
      - name: CIL_SYM_STRINGS
      - name: CIL_SYM_LEVELS
      - name: CIL_SYM_NUM
      - name: CIL_SYM_PERMS
      - name: CIL_SYM_COMMONS
      - name: CIL_SYM_TUNABLES
      - name: CIL_SYM_CONTEXTS
      - name: CIL_SYM_IPADDRS
      - name: CIL_SYM_PERMX
      - name: CIL_SYM_BLOCKS
        value: '0'
      - name: CIL_SYM_TYPES
      - name: CIL_SYM_BOOLS
      - name: CIL_SYM_POLICYCAPS
      - name: CIL_SYM_SIDS
      item_type: enum
      name: cil_sym_index
      pos:
        line_end: 276
        line_start: 253
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - enumerators:
      - name: CIL_SYM_ARRAY_ROOT
        value: '0'
      - name: CIL_SYM_ARRAY_IN
      - name: CIL_SYM_ARRAY_BLOCK
      - name: CIL_SYM_ARRAY_MACRO
      - name: CIL_SYM_ARRAY_CONDBLOCK
      - name: CIL_SYM_ARRAY_NUM
      item_type: enum
      name: cil_sym_array
      pos:
        line_end: 285
        line_start: 278
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - enumerators:
      - name: CIL_FILECON_ANY
        value: '0'
      - name: CIL_FILECON_BLOCK
      - name: CIL_FILECON_CHAR
      - name: CIL_FILECON_DIR
      - name: CIL_FILECON_FILE
      - name: CIL_FILECON_SOCKET
      - name: CIL_FILECON_PIPE
      - name: CIL_FILECON_SYMLINK
      item_type: enum
      name: cil_filecon_types
      pos:
        line_end: 763
        line_start: 754
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - enumerators:
      - name: CIL_PROTOCOL_UDP
        value: '1'
      - name: CIL_PROTOCOL_SCTP
      - name: CIL_PROTOCOL_DCCP
      - name: CIL_PROTOCOL_TCP
      item_type: enum
      name: cil_protocol
      pos:
        line_end: 778
        line_start: 773
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - enumerators:
      - name: CIL_FSUSE_XATTR
        value: SECURITY_FS_USE_XATTR
      - name: CIL_FSUSE_TRANS
        value: SECURITY_FS_USE_TRANS
      - name: CIL_FSUSE_TASK
        value: SECURITY_FS_USE_TASK
      item_type: enum
      name: cil_fsuse_types
      pos:
        line_end: 874
        line_start: 870
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - enumerators:
      - name: CIL_DEFAULT_SOURCE
        value: DEFAULT_SOURCE
      - name: CIL_DEFAULT_TARGET
        value: DEFAULT_TARGET
      item_type: enum
      name: cil_default_object
      pos:
        line_end: 960
        line_start: 957
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - enumerators:
      - name: CIL_DEFAULT_SOURCE_LOW
        value: DEFAULT_SOURCE_LOW
      - name: CIL_DEFAULT_TARGET_HIGH
        value: DEFAULT_TARGET_HIGH
      - name: CIL_DEFAULT_TARGET_LOW
        value: DEFAULT_TARGET_LOW
      - name: CIL_DEFAULT_SOURCE_LOW_HIGH
        value: DEFAULT_SOURCE_LOW_HIGH
      - name: CIL_DEFAULT_SOURCE_HIGH
        value: DEFAULT_SOURCE_HIGH
      - name: CIL_DEFAULT_TARGET_LOW_HIGH
        value: DEFAULT_TARGET_LOW_HIGH
      - name: CIL_DEFAULT_GLBLUB
        value: DEFAULT_GLBLUB
      item_type: enum
      name: cil_default_object_range
      pos:
        line_end: 979
        line_start: 971
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    preproc_defs:
    - item_type: preproc_def
      name: CIL_MAX_NAME_LENGTH
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: CIL_DEGENERATE_INHERITANCE_DEPTH
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: 10UL
    - item_type: preproc_def
      name: CIL_DEGENERATE_INHERITANCE_MINIMUM
      pos:
        line_end: 53
        line_start: 51
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: (0x01 << CIL_DEGENERATE_INHERITANCE_DEPTH)
    - item_type: preproc_def
      name: CIL_DEGENERATE_INHERITANCE_GROWTH
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: 10UL
    - item_type: preproc_def
      name: CIL_CLASS_SYM_SIZE
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: '256'
    - item_type: preproc_def
      name: CIL_PERMS_PER_CLASS
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: (sizeof(sepol_access_vector_t) * 8)
    - item_type: preproc_def
      name: CIL_ATTR_AVRULE
      pos:
        line_end: 553
        line_start: 552
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: (1 << 0)
    - item_type: preproc_def
      name: CIL_ATTR_NEVERALLOW
      pos:
        line_end: 554
        line_start: 553
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: CIL_ATTR_CONSTRAINT
      pos:
        line_end: 555
        line_start: 554
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: CIL_ATTR_EXPAND_TRUE
      pos:
        line_end: 556
        line_start: 555
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: CIL_ATTR_EXPAND_FALSE
      pos:
        line_end: 557
        line_start: 556
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: CIL_AVRULE_ALLOWED
      pos:
        line_end: 623
        line_start: 622
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CIL_AVRULE_AUDITALLOW
      pos:
        line_end: 624
        line_start: 623
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: '2'
    - item_type: preproc_def
      name: CIL_AVRULE_DONTAUDIT
      pos:
        line_end: 625
        line_start: 624
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: '8'
    - item_type: preproc_def
      name: CIL_AVRULE_NEVERALLOW
      pos:
        line_end: 626
        line_start: 625
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: '128'
    - item_type: preproc_def
      name: CIL_AVRULE_AV
      pos:
        line_end: 629
        line_start: 626
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: "(AVRULE_ALLOWED | AVRULE_AUDITALLOW | AVRULE_DONTAUDIT | \\\n\t
        AVRULE_NEVERALLOW)"
    - item_type: preproc_def
      name: CIL_PERMX_KIND_IOCTL
      pos:
        line_end: 646
        line_start: 645
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CIL_PERMX_KIND_NLMSG
      pos:
        line_end: 647
        line_start: 646
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: '2'
    - item_type: preproc_def
      name: CIL_TYPE_TRANSITION
      pos:
        line_end: 665
        line_start: 664
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: '16'
    - item_type: preproc_def
      name: CIL_TYPE_MEMBER
      pos:
        line_end: 666
        line_start: 665
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: '32'
    - item_type: preproc_def
      name: CIL_TYPE_CHANGE
      pos:
        line_end: 667
        line_start: 666
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: '64'
    - item_type: preproc_def
      name: CIL_AVRULE_TYPE
      pos:
        line_end: 668
        line_start: 667
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: (AVRULE_TRANSITION | AVRULE_MEMBER | AVRULE_CHANGE)
    - item_type: preproc_def
      name: CIL_MLS_LEVELS
      pos:
        line_end: 884
        line_start: 883
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: '"l1 l2 h1 h2"'
    - item_type: preproc_def
      name: CIL_CONSTRAIN_KEYS
      pos:
        line_end: 885
        line_start: 884
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: '"t1 t2 r1 r2 u1 u2"'
    - item_type: preproc_def
      name: CIL_MLSCONSTRAIN_KEYS
      pos:
        line_end: 886
        line_start: 885
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: CIL_MLS_LEVELS CIL_CONSTRAIN_KEYS
    - item_type: preproc_def
      name: CIL_CONSTRAIN_OPER
      pos:
        line_end: 887
        line_start: 886
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: '"== != eq dom domby incomp not and or"'
    - item_type: preproc_def
      name: CIL_TRUE
      pos:
        line_end: 927
        line_start: 926
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: '1'
    - item_type: preproc_def
      name: CIL_FALSE
      pos:
        line_end: 928
        line_start: 927
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
      type_or_value: '0'
    structs:
    - fields:
      - name: '*parse'
        type: struct cil_tree
      - name: '*ast'
        type: struct cil_tree
      - name: '*selftype'
        type: struct cil_type
      - name: '*notselftype'
        type: struct cil_type
      - name: '*othertype'
        type: struct cil_type
      - name: '*sidorder'
        type: struct cil_list
      - name: '*classorder'
        type: struct cil_list
      - name: '*catorder'
        type: struct cil_list
      - name: '*sensitivityorder'
        type: struct cil_list
      - name: '*netifcon'
        type: struct cil_sort
      - name: '*genfscon'
        type: struct cil_sort
      - name: '*filecon'
        type: struct cil_sort
      - name: '*nodecon'
        type: struct cil_sort
      - name: '*ibpkeycon'
        type: struct cil_sort
      - name: '*ibendportcon'
        type: struct cil_sort
      - name: '*portcon'
        type: struct cil_sort
      - name: '*pirqcon'
        type: struct cil_sort
      - name: '*iomemcon'
        type: struct cil_sort
      - name: '*ioportcon'
        type: struct cil_sort
      - name: '*pcidevicecon'
        type: struct cil_sort
      - name: '*devicetreecon'
        type: struct cil_sort
      - name: '*fsuse'
        type: struct cil_sort
      - name: '*userprefixes'
        type: struct cil_list
      - name: '*selinuxusers'
        type: struct cil_list
      - name: '*declared_strings'
        type: struct cil_list
      - name: num_types_and_attrs
        type: int
      - name: num_classes
        type: int
      - name: num_cats
        type: int
      - name: num_types
        type: int
      - name: num_roles
        type: int
      - name: num_users
        type: int
      - name: '**val_to_type'
        type: struct cil_type
      - name: '**val_to_role'
        type: struct cil_role
      - name: '**val_to_user'
        type: struct cil_user
      - name: disable_dontaudit
        type: int
      - name: disable_neverallow
        type: int
      - name: attrs_expand_generated
        type: int
      - name: attrs_expand_size
        type: unsigned
      - name: preserve_tunables
        type: int
      - name: handle_unknown
        type: int
      - name: mls
        type: int
      - name: multiple_decls
        type: int
      - name: qualified_names
        type: int
      - name: target_platform
        type: int
      - name: policy_version
        type: int
      item_type: struct
      name: cil_db
      pos:
        line_end: 338
        line_start: 292
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: symtab[CIL_SYM_NUM]
        type: symtab_t
      item_type: struct
      name: cil_root
      pos:
        line_end: 342
        line_start: 340
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: flavor
        type: enum cil_flavor
      - name: count
        type: uint32_t
      - name: index
        type: uint32_t
      - name: '**array'
        type: void
      item_type: struct
      name: cil_sort
      pos:
        line_end: 349
        line_start: 344
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: merged
        type: int
      - name: '*strs'
        type: struct cil_list
      - name: '*datums'
        type: struct cil_list
      item_type: struct
      name: cil_ordered
      pos:
        line_end: 355
        line_start: 351
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      - name: symtab[CIL_SYM_NUM]
        type: symtab_t
      - name: is_abstract
        type: uint16_t
      - name: '*bi_nodes'
        type: struct cil_list
      item_type: struct
      name: cil_block
      pos:
        line_end: 362
        line_start: 357
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*block_str'
        type: char
      - name: '*block'
        type: struct cil_block
      item_type: struct
      name: cil_blockinherit
      pos:
        line_end: 367
        line_start: 364
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*block_str'
        type: char
      - name: '*block'
        type: struct cil_block
      item_type: struct
      name: cil_blockabstract
      pos:
        line_end: 372
        line_start: 369
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: symtab[CIL_SYM_NUM]
        type: symtab_t
      - name: is_after
        type: int
      - name: '*block_str'
        type: char
      - name: '*block'
        type: struct cil_block
      item_type: struct
      name: cil_in
      pos:
        line_end: 379
        line_start: 374
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      item_type: struct
      name: cil_optional
      pos:
        line_end: 383
        line_start: 381
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      - name: value
        type: unsigned int
      - name: '*classperms'
        type: struct cil_list
      item_type: struct
      name: cil_perm
      pos:
        line_end: 389
        line_start: 385
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      - name: perms
        type: symtab_t
      - name: num_perms
        type: unsigned int
      - name: '*common'
        type: struct cil_class
      - name: ordered
        type: uint32_t
      item_type: struct
      name: cil_class
      pos:
        line_end: 397
        line_start: 391
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*set_str'
        type: char
      - name: '*set'
        type: struct cil_classpermission
      item_type: struct
      name: cil_classperms_set
      pos:
        line_end: 402
        line_start: 399
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*class_str'
        type: char
      - name: '*class'
        type: struct cil_class
      - name: '*perm_strs'
        type: struct cil_list
      - name: '*perms'
        type: struct cil_list
      item_type: struct
      name: cil_classperms
      pos:
        line_end: 409
        line_start: 404
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      - name: '*classperms'
        type: struct cil_list
      item_type: struct
      name: cil_classpermission
      pos:
        line_end: 414
        line_start: 411
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*set_str'
        type: char
      - name: '*set'
        type: struct cil_classpermission
      - name: '*classperms'
        type: struct cil_list
      item_type: struct
      name: cil_classpermissionset
      pos:
        line_end: 420
        line_start: 416
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*map_class_str'
        type: char
      - name: '*map_class'
        type: struct cil_class
      - name: '*map_perm_str'
        type: char
      - name: '*map_perm'
        type: struct cil_perm
      - name: '*classperms'
        type: struct cil_list
      item_type: struct
      name: cil_classmapping
      pos:
        line_end: 428
        line_start: 422
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*class_str'
        type: char
      - name: '*class'
        type: struct cil_class
      - name: '*common_str'
        type: char
      - name: '*common'
        type: struct cil_class
      item_type: struct
      name: cil_classcommon
      pos:
        line_end: 435
        line_start: 430
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      - name: '*actual'
        type: void
      item_type: struct
      name: cil_alias
      pos:
        line_end: 440
        line_start: 437
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*alias_str'
        type: char
      - name: '*alias'
        type: void
      - name: '*actual_str'
        type: char
      - name: '*actual'
        type: void
      item_type: struct
      name: cil_aliasactual
      pos:
        line_end: 447
        line_start: 442
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      - name: '*context'
        type: struct cil_context
      - name: ordered
        type: uint32_t
      item_type: struct
      name: cil_sid
      pos:
        line_end: 453
        line_start: 449
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*sid_str'
        type: char
      - name: '*sid'
        type: struct cil_sid
      - name: '*context_str'
        type: char
      - name: '*context'
        type: struct cil_context
      item_type: struct
      name: cil_sidcontext
      pos:
        line_end: 460
        line_start: 455
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      - name: '*bounds'
        type: struct cil_user
      - name: '*roles'
        type: ebitmap_t
      - name: '*dftlevel'
        type: struct cil_level
      - name: '*range'
        type: struct cil_levelrange
      - name: value
        type: int
      item_type: struct
      name: cil_user
      pos:
        line_end: 469
        line_start: 462
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      - name: '*expr_list'
        type: struct cil_list
      - name: '*users'
        type: ebitmap_t
      item_type: struct
      name: cil_userattribute
      pos:
        line_end: 475
        line_start: 471
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*attr_str'
        type: char
      - name: '*attr'
        type: struct cil_userattribute
      - name: '*str_expr'
        type: struct cil_list
      - name: '*datum_expr'
        type: struct cil_list
      item_type: struct
      name: cil_userattributeset
      pos:
        line_end: 482
        line_start: 477
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*user_str'
        type: char
      - name: '*user'
        type: void
      - name: '*role_str'
        type: char
      - name: '*role'
        type: void
      item_type: struct
      name: cil_userrole
      pos:
        line_end: 489
        line_start: 484
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*user_str'
        type: char
      - name: '*user'
        type: void
      - name: '*level_str'
        type: char
      - name: '*level'
        type: struct cil_level
      item_type: struct
      name: cil_userlevel
      pos:
        line_end: 496
        line_start: 491
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*user_str'
        type: char
      - name: '*user'
        type: void
      - name: '*range_str'
        type: char
      - name: '*range'
        type: struct cil_levelrange
      item_type: struct
      name: cil_userrange
      pos:
        line_end: 503
        line_start: 498
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*user_str'
        type: char
      - name: '*user'
        type: struct cil_user
      - name: '*prefix_str'
        type: char
      item_type: struct
      name: cil_userprefix
      pos:
        line_end: 509
        line_start: 505
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*name_str'
        type: char
      - name: '*user_str'
        type: char
      - name: '*user'
        type: struct cil_user
      - name: '*range_str'
        type: char
      - name: '*range'
        type: struct cil_levelrange
      item_type: struct
      name: cil_selinuxuser
      pos:
        line_end: 517
        line_start: 511
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      - name: '*bounds'
        type: struct cil_role
      - name: '*types'
        type: ebitmap_t
      - name: value
        type: int
      item_type: struct
      name: cil_role
      pos:
        line_end: 524
        line_start: 519
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      - name: '*expr_list'
        type: struct cil_list
      - name: '*roles'
        type: ebitmap_t
      item_type: struct
      name: cil_roleattribute
      pos:
        line_end: 530
        line_start: 526
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*attr_str'
        type: char
      - name: '*attr'
        type: struct cil_roleattribute
      - name: '*str_expr'
        type: struct cil_list
      - name: '*datum_expr'
        type: struct cil_list
      item_type: struct
      name: cil_roleattributeset
      pos:
        line_end: 537
        line_start: 532
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*role_str'
        type: char
      - name: '*role'
        type: void
      - name: '*type_str'
        type: char
      - name: '*type'
        type: void
      item_type: struct
      name: cil_roletype
      pos:
        line_end: 544
        line_start: 539
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      - name: '*bounds'
        type: struct cil_type
      - name: value
        type: int
      item_type: struct
      name: cil_type
      pos:
        line_end: 550
        line_start: 546
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      - name: '*expr_list'
        type: struct cil_list
      - name: '*types'
        type: ebitmap_t
      - name: used
        type: int
      - name: keep
        type: int
      item_type: struct
      name: cil_typeattribute
      pos:
        line_end: 563
        line_start: 557
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*attr_str'
        type: char
      - name: '*attr'
        type: struct cil_typeattribute
      - name: '*str_expr'
        type: struct cil_list
      - name: '*datum_expr'
        type: struct cil_list
      item_type: struct
      name: cil_typeattributeset
      pos:
        line_end: 570
        line_start: 565
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*attr_strs'
        type: struct cil_list
      - name: '*attr_datums'
        type: struct cil_list
      - name: expand
        type: int
      item_type: struct
      name: cil_expandtypeattribute
      pos:
        line_end: 576
        line_start: 572
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*type_str'
        type: char
      - name: '*type'
        type: void
      item_type: struct
      name: cil_typepermissive
      pos:
        line_end: 581
        line_start: 578
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*type_str'
        type: char
      - name: '*type'
        type: void
      item_type: struct
      name: cil_typeneveraudit
      pos:
        line_end: 586
        line_start: 583
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*src_str'
        type: char
      - name: '*src'
        type: void
      - name: '*tgt_str'
        type: char
      - name: '*tgt'
        type: void
      - name: '*obj_str'
        type: char
      - name: '*obj'
        type: struct cil_class
      - name: '*name_str'
        type: char
      - name: '*name'
        type: struct cil_symtab_datum
      - name: '*result_str'
        type: char
      - name: '*result'
        type: void
      item_type: struct
      name: cil_nametypetransition
      pos:
        line_end: 599
        line_start: 588
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*src_str'
        type: char
      - name: '*src'
        type: void
      - name: '*exec_str'
        type: char
      - name: '*exec'
        type: void
      - name: '*obj_str'
        type: char
      - name: '*obj'
        type: struct cil_class
      - name: '*range_str'
        type: char
      - name: '*range'
        type: struct cil_levelrange
      item_type: struct
      name: cil_rangetransition
      pos:
        line_end: 610
        line_start: 601
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      - name: value
        type: uint16_t
      item_type: struct
      name: cil_bool
      pos:
        line_end: 615
        line_start: 612
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      - name: value
        type: uint16_t
      item_type: struct
      name: cil_tunable
      pos:
        line_end: 620
        line_start: 617
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: is_extended
        type: int
      - name: rule_kind
        type: uint32_t
      - name: '*src_str'
        type: char
      - name: '*src'
        type: void
      - name: '*tgt_str'
        type: char
      - name: '*tgt'
        type: void
      - name: perms
        type: "union {\n\t\tstruct cil_list *classperms;\n\t\tstruct {\n\t\t\tchar
          *permx_str;\n\t\t\tstruct cil_permissionx *permx;\n\t\t} x;\n\t}"
      item_type: struct
      name: cil_avrule
      pos:
        line_end: 643
        line_start: 629
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      - name: kind
        type: uint32_t
      - name: '*obj_str'
        type: char
      - name: '*obj'
        type: struct cil_class
      - name: '*expr_str'
        type: struct cil_list
      - name: '*perms'
        type: ebitmap_t
      item_type: struct
      name: cil_permissionx
      pos:
        line_end: 654
        line_start: 647
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*src_str'
        type: char
      - name: '*src'
        type: void
      - name: '*tgt_str'
        type: char
      - name: '*tgt'
        type: void
      - name: '*classperms'
        type: struct cil_list
      item_type: struct
      name: cil_deny_rule
      pos:
        line_end: 662
        line_start: 656
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: rule_kind
        type: uint32_t
      - name: '*src_str'
        type: char
      - name: '*src'
        type: void
      - name: '*tgt_str'
        type: char
      - name: '*tgt'
        type: void
      - name: '*obj_str'
        type: char
      - name: '*obj'
        type: struct cil_class
      - name: '*result_str'
        type: char
      - name: '*result'
        type: void
      item_type: struct
      name: cil_type_rule
      pos:
        line_end: 678
        line_start: 668
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*src_str'
        type: char
      - name: '*src'
        type: struct cil_role
      - name: '*tgt_str'
        type: char
      - name: '*tgt'
        type: void
      - name: '*obj_str'
        type: char
      - name: '*obj'
        type: struct cil_class
      - name: '*result_str'
        type: char
      - name: '*result'
        type: struct cil_role
      item_type: struct
      name: cil_roletransition
      pos:
        line_end: 689
        line_start: 680
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*src_str'
        type: char
      - name: '*src'
        type: void
      - name: '*tgt_str'
        type: char
      - name: '*tgt'
        type: void
      item_type: struct
      name: cil_roleallow
      pos:
        line_end: 696
        line_start: 691
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      - name: '*cats_list'
        type: struct cil_list
      - name: ordered
        type: uint32_t
      item_type: struct
      name: cil_sens
      pos:
        line_end: 702
        line_start: 698
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      - name: ordered
        type: uint32_t
      - name: value
        type: int
      item_type: struct
      name: cil_cat
      pos:
        line_end: 708
        line_start: 704
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: evaluated
        type: uint32_t
      - name: '*str_expr'
        type: struct cil_list
      - name: '*datum_expr'
        type: struct cil_list
      item_type: struct
      name: cil_cats
      pos:
        line_end: 714
        line_start: 710
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      - name: '*cats'
        type: struct cil_cats
      item_type: struct
      name: cil_catset
      pos:
        line_end: 719
        line_start: 716
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*sens_str'
        type: char
      - name: '*sens'
        type: struct cil_sens
      - name: '*cats'
        type: struct cil_cats
      item_type: struct
      name: cil_senscat
      pos:
        line_end: 725
        line_start: 721
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      - name: '*sens_str'
        type: char
      - name: '*sens'
        type: struct cil_sens
      - name: '*cats'
        type: struct cil_cats
      item_type: struct
      name: cil_level
      pos:
        line_end: 732
        line_start: 727
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      - name: '*low_str'
        type: char
      - name: '*low'
        type: struct cil_level
      - name: '*high_str'
        type: char
      - name: '*high'
        type: struct cil_level
      item_type: struct
      name: cil_levelrange
      pos:
        line_end: 740
        line_start: 734
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      - name: '*user_str'
        type: char
      - name: '*user'
        type: struct cil_user
      - name: '*role_str'
        type: char
      - name: '*role'
        type: struct cil_role
      - name: '*type_str'
        type: char
      - name: '*type'
        type: void
      - name: '*range_str'
        type: char
      - name: '*range'
        type: struct cil_levelrange
      item_type: struct
      name: cil_context
      pos:
        line_end: 752
        line_start: 742
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*path_str'
        type: char
      - name: '*path'
        type: struct cil_symtab_datum
      - name: type
        type: enum cil_filecon_types
      - name: '*context_str'
        type: char
      - name: '*context'
        type: struct cil_context
      item_type: struct
      name: cil_filecon
      pos:
        line_end: 771
        line_start: 765
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*subnet_prefix_str'
        type: char
      - name: pkey_low
        type: uint32_t
      - name: pkey_high
        type: uint32_t
      - name: '*context_str'
        type: char
      - name: '*context'
        type: struct cil_context
      item_type: struct
      name: cil_ibpkeycon
      pos:
        line_end: 786
        line_start: 780
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: proto
        type: enum cil_protocol
      - name: port_low
        type: uint32_t
      - name: port_high
        type: uint32_t
      - name: '*context_str'
        type: char
      - name: '*context'
        type: struct cil_context
      item_type: struct
      name: cil_portcon
      pos:
        line_end: 794
        line_start: 788
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*addr_str'
        type: char
      - name: '*addr'
        type: struct cil_ipaddr
      - name: '*mask_str'
        type: char
      - name: '*mask'
        type: struct cil_ipaddr
      - name: '*context_str'
        type: char
      - name: '*context'
        type: struct cil_context
      item_type: struct
      name: cil_nodecon
      pos:
        line_end: 803
        line_start: 796
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      - name: family
        type: int
      - name: ip
        type: "union {\n\t\tstruct in_addr v4;\n\t\tstruct in6_addr v6;\n\t}"
      item_type: struct
      name: cil_ipaddr
      pos:
        line_end: 812
        line_start: 805
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*fs_str'
        type: char
      - name: '*path_str'
        type: char
      - name: file_type
        type: enum cil_filecon_types
      - name: '*context_str'
        type: char
      - name: '*context'
        type: struct cil_context
      item_type: struct
      name: cil_genfscon
      pos:
        line_end: 820
        line_start: 814
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*interface_str'
        type: char
      - name: '*if_context_str'
        type: char
      - name: '*if_context'
        type: struct cil_context
      - name: '*packet_context_str'
        type: char
      - name: '*packet_context'
        type: struct cil_context
      - name: '*context_str'
        type: char
      item_type: struct
      name: cil_netifcon
      pos:
        line_end: 829
        line_start: 822
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*dev_name_str'
        type: char
      - name: port
        type: uint32_t
      - name: '*context_str'
        type: char
      - name: '*context'
        type: struct cil_context
      item_type: struct
      name: cil_ibendportcon
      pos:
        line_end: 836
        line_start: 831
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: pirq
        type: uint32_t
      - name: '*context_str'
        type: char
      - name: '*context'
        type: struct cil_context
      item_type: struct
      name: cil_pirqcon
      pos:
        line_end: 841
        line_start: 837
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: iomem_low
        type: uint64_t
      - name: iomem_high
        type: uint64_t
      - name: '*context_str'
        type: char
      - name: '*context'
        type: struct cil_context
      item_type: struct
      name: cil_iomemcon
      pos:
        line_end: 848
        line_start: 843
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: ioport_low
        type: uint32_t
      - name: ioport_high
        type: uint32_t
      - name: '*context_str'
        type: char
      - name: '*context'
        type: struct cil_context
      item_type: struct
      name: cil_ioportcon
      pos:
        line_end: 855
        line_start: 850
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: dev
        type: uint32_t
      - name: '*context_str'
        type: char
      - name: '*context'
        type: struct cil_context
      item_type: struct
      name: cil_pcidevicecon
      pos:
        line_end: 861
        line_start: 857
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*path'
        type: char
      - name: '*context_str'
        type: char
      - name: '*context'
        type: struct cil_context
      item_type: struct
      name: cil_devicetreecon
      pos:
        line_end: 867
        line_start: 863
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: type
        type: enum cil_fsuse_types
      - name: '*fs_str'
        type: char
      - name: '*context_str'
        type: char
      - name: '*context'
        type: struct cil_context
      item_type: struct
      name: cil_fsuse
      pos:
        line_end: 881
        line_start: 876
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*classperms'
        type: struct cil_list
      - name: '*str_expr'
        type: struct cil_list
      - name: '*datum_expr'
        type: struct cil_list
      item_type: struct
      name: cil_constrain
      pos:
        line_end: 891
        line_start: 887
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*class_str'
        type: char
      - name: '*class'
        type: struct cil_class
      - name: '*str_expr'
        type: struct cil_list
      - name: '*datum_expr'
        type: struct cil_list
      item_type: struct
      name: cil_validatetrans
      pos:
        line_end: 898
        line_start: 893
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*str'
        type: char
      - name: flavor
        type: enum cil_flavor
      item_type: struct
      name: cil_param
      pos:
        line_end: 903
        line_start: 900
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      - name: symtab[CIL_SYM_NUM]
        type: symtab_t
      - name: '*params'
        type: struct cil_list
      item_type: struct
      name: cil_macro
      pos:
        line_end: 909
        line_start: 905
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*arg_str'
        type: char
      - name: '*arg'
        type: struct cil_symtab_datum
      - name: '*param_str'
        type: char
      - name: flavor
        type: enum cil_flavor
      item_type: struct
      name: cil_args
      pos:
        line_end: 916
        line_start: 911
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*macro_str'
        type: char
      - name: '*macro'
        type: struct cil_macro
      - name: '*args_tree'
        type: struct cil_tree
      - name: '*args'
        type: struct cil_list
      - name: copied
        type: int
      item_type: struct
      name: cil_call
      pos:
        line_end: 924
        line_start: 918
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: flavor
        type: enum cil_flavor
      - name: symtab[CIL_SYM_NUM]
        type: symtab_t
      item_type: struct
      name: cil_condblock
      pos:
        line_end: 932
        line_start: 929
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*str_expr'
        type: struct cil_list
      - name: '*datum_expr'
        type: struct cil_list
      - name: preserved_tunable
        type: int
      item_type: struct
      name: cil_booleanif
      pos:
        line_end: 938
        line_start: 934
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*str_expr'
        type: struct cil_list
      - name: '*datum_expr'
        type: struct cil_list
      item_type: struct
      name: cil_tunableif
      pos:
        line_end: 943
        line_start: 940
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: datum
        type: struct cil_symtab_datum
      item_type: struct
      name: cil_policycap
      pos:
        line_end: 947
        line_start: 945
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*parent_str'
        type: char
      - name: '*parent'
        type: void
      - name: '*child_str'
        type: char
      - name: '*child'
        type: void
      item_type: struct
      name: cil_bounds
      pos:
        line_end: 954
        line_start: 949
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: flavor
        type: enum cil_flavor
      - name: '*class_strs'
        type: struct cil_list
      - name: '*class_datums'
        type: struct cil_list
      - name: object
        type: enum cil_default_object
      item_type: struct
      name: cil_default
      pos:
        line_end: 968
        line_start: 963
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*class_strs'
        type: struct cil_list
      - name: '*class_datums'
        type: struct cil_list
      - name: object_range
        type: enum cil_default_object_range
      item_type: struct
      name: cil_defaultrange
      pos:
        line_end: 986
        line_start: 982
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: handle_unknown
        type: int
      item_type: struct
      name: cil_handleunknown
      pos:
        line_end: 990
        line_start: 988
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: value
        type: int
      item_type: struct
      name: cil_mls
      pos:
        line_end: 994
        line_start: 992
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    - fields:
      - name: '*kind'
        type: char
      - name: hll_line
        type: uint32_t
      - name: '*path'
        type: char
      item_type: struct
      name: cil_src_info
      pos:
        line_end: 1000
        line_start: 996
        source_file: /src/selinux/libsepol/cil/src/cil_internal.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/src/cil_post.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - push_hll_info
  - pop_hll_info
  - create_node
  - insert_node
  - add_hll_linemark
  - add_cil_path
  - cil_parser
  source_file: /src/selinux/libsepol/cil/src/cil_parser.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CIL_PARSER_MAX_EXPR_DEPTH
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/selinux/libsepol/cil/src/cil_parser.c
      type_or_value: (0x1 << 12)
    structs:
    - fields:
      - name: hll_offset
        type: uint32_t
      - name: hll_expand
        type: uint32_t
      item_type: struct
      name: hll_info
      pos:
        line_end: 49
        line_start: 46
        source_file: /src/selinux/libsepol/cil/src/cil_parser.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/src/cil_flavor.h
  types:
    enum:
    - enumerators:
      - name: CIL_CONDFALSE
      - name: CIL_ROLETYPE
      - name: CIL_ROLEALLOW
      - name: CIL_NODECON
      - name: CIL_IBENDPORTCON
      - name: CIL_CONS_DOMBY
      - name: CIL_CONS_H1
      - name: CIL_ROLEATTRIBUTE
      - name: CIL_DEVICETREECON
      - name: CIL_ARGS
      - name: CIL_USERPREFIX
      - name: CIL_TYPENEVERAUDIT
      - name: CIL_RANGETRANSITION
      - name: CIL_ALL
      - name: CIL_CONS_T2
      - name: CIL_PERM
      - name: CIL_CATSET
      - name: CIL_AVRULEX
      - name: CIL_NETIFCON
      - name: CIL_CLASSCOMMON
      - name: CIL_TYPEATTRIBUTESET
      - name: CIL_CONS_OPERAND
      - name: CIL_BLOCK
        value: CIL_MIN_DECLARATIVE
      - name: CIL_TYPEATTRIBUTE
      - name: CIL_MLSCONSTRAIN
      - name: CIL_DEFAULTROLE
      - name: CIL_BLOCKABSTRACT
      - name: CIL_USERATTRIBUTESET
      - name: CIL_OR
      - name: CIL_COMMON
      - name: CIL_LEVEL
      - name: CIL_BOOLEANIF
      - name: CIL_USERBOUNDS
      - name: CIL_SIDCONTEXT
      - name: CIL_HANDLEUNKNOWN
      - name: CIL_SENSCAT
      - name: CIL_EQ
      - name: CIL_CONS_R2
      - name: CIL_CLASSPERMISSION
      - name: CIL_DECLARED_STRING
      - name: CIL_DENY_RULE
      - name: CIL_DATUM
      - name: CIL_CLASSMAPPING
      - name: CIL_EXPANDTYPEATTRIBUTE
      - name: CIL_PIRQCON
      - name: CIL_CONS_U1
      - name: CIL_MACRO
      - name: CIL_TYPEALIAS
      - name: CIL_CONDBLOCK
      - name: CIL_SELINUXUSERDEFAULT
      - name: CIL_CATORDER
      - name: CIL_FILECON
      - name: CIL_SRC_INFO
      - name: CIL_RANGE
      - name: CIL_CONS_L1
      - name: CIL_USERATTRIBUTE
      - name: CIL_IPADDR
      - name: CIL_TYPE_RULE
      - name: CIL_IOPORTCON
      - name: CIL_LIST_ITEM
      - name: CIL_CLASSPERMS_SET
      - name: CIL_TYPEBOUNDS
      - name: CIL_CONS_U3
      - name: CIL_BOOL
      - name: CIL_SENSALIAS
      - name: CIL_STRING
      - name: CIL_BLOCKINHERIT
      - name: CIL_USERROLE
      - name: CIL_CONSTRAIN
      - name: CIL_DEFAULTUSER
      - name: CIL_AND
      - name: CIL_MAP_PERM
      - name: CIL_CATALIAS
      - name: CIL_PORTCON
      - name: CIL_CONDTRUE
      - name: CIL_ROLEATTRIBUTESET
      - name: CIL_SIDORDER
      - name: CIL_IBPKEYCON
      - name: CIL_CONS_DOM
      - name: CIL_CONS_L2
      - name: CIL_ROLE
      - name: CIL_POLICYCAP
      - name: CIL_IN
      - name: CIL_USERLEVEL
      - name: CIL_DEFAULTTYPE
      - name: CIL_SENSALIASACTUAL
      - name: CIL_VALIDATETRANS
      - name: CIL_XOR
      - name: CIL_CONS_T3
      - name: CIL_CLASS
      - name: CIL_LEVELRANGE
      - name: CIL_AVRULE
      - name: CIL_GENFSCON
      - name: CIL_ROOT
      - name: CIL_CLASSORDER
      - name: CIL_ROLEBOUNDS
      - name: CIL_OP
        value: CIL_MIN_OP_OPERANDS
      - name: CIL_CONS_INCOMP
      - name: CIL_CONS_H2
      - name: CIL_TYPE
      - name: CIL_LIST
      - name: CIL_CLASSPERMS
      - name: CIL_TYPEALIASACTUAL
      - name: CIL_ROLETRANSITION
      - name: CIL_IOMEMCON
      - name: CIL_CONS_U2
      - name: CIL_OPTIONAL
      - name: CIL_SENS
      - name: CIL_NONE
        value: '0'
      - name: CIL_CALL
      - name: CIL_USERRANGE
      - name: CIL_MLSVALIDATETRANS
      - name: CIL_DEFAULTRANGE
      - name: CIL_SENSITIVITYORDER
      - name: CIL_NOT
      - name: CIL_CONS_R1
      - name: CIL_MAP_CLASS
      - name: CIL_SID
      - name: CIL_PERMISSIONX
      - name: CIL_NAMETYPETRANSITION
      - name: CIL_NODE
      - name: CIL_PARAM
      - name: CIL_CLASSPERMISSIONSET
      - name: CIL_TYPEPERMISSIVE
      - name: CIL_PCIDEVICECON
      - name: CIL_CONS_T1
      - name: CIL_TUNABLE
      - name: CIL_CAT
      - name: CIL_FSUSE
      - name: CIL_MLS
      - name: CIL_TUNABLEIF
      - name: CIL_SELINUXUSER
      - name: CIL_CATALIASACTUAL
      - name: CIL_NEQ
      - name: CIL_CONS_R3
      - name: CIL_USER
      - name: CIL_CONTEXT
      item_type: enum
      name: cil_flavor
      pos:
        line_end: 192
        line_start: 38
        source_file: /src/selinux/libsepol/cil/src/cil_flavor.h
    preproc_defs:
    - item_type: preproc_def
      name: CIL_MIN_OP_OPERANDS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/selinux/libsepol/cil/src/cil_flavor.h
      type_or_value: '1000'
    - item_type: preproc_def
      name: CIL_MIN_DECLARATIVE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/selinux/libsepol/cil/src/cil_flavor.h
      type_or_value: '2000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - __cil_resolve_perms
  - cil_list_for_each
  - cil_resolve_classperms
  - cil_resolve_classperms_set
  - cil_resolve_classperms_list
  - cil_list_for_each
  - cil_resolve_classpermissionset
  - cil_type_used
  - cil_resolve_permissionx
  - cil_resolve_avrule
  - cil_resolve_deny_rule
  - cil_resolve_type_rule
  - cil_resolve_typeattributeset
  - cil_resolve_expandtypeattribute
  - cil_resolve_aliasactual
  - cil_resolve_alias_to_actual
  - cil_resolve_typepermissive
  - cil_resolve_typeneveraudit
  - cil_resolve_nametypetransition
  - cil_resolve_rangetransition
  - __class_update_perm_values
  - cil_resolve_classcommon
  - cil_resolve_classmapping
  - cil_resolve_userrole
  - cil_resolve_userlevel
  - cil_resolve_userrange
  - cil_resolve_userprefix
  - cil_resolve_selinuxuser
  - cil_resolve_roletype
  - cil_resolve_roletransition
  - cil_resolve_roleallow
  - cil_resolve_roleattributeset
  - __cil_ordered_item_insert
  - __cil_ordered_list_insert
  - __cil_ordered_find_next_match
  - __cil_ordered_lists_merge
  - insert_unordered
  - cil_list_for_each
  - __cil_ordered_lists_merge_all
  - cil_resolve_classorder
  - cil_resolve_sidorder
  - cil_set_cat_values
  - cil_list_for_each
  - cil_resolve_catorder
  - cil_resolve_sensitivityorder
  - cil_resolve_cats
  - cil_resolve_catset
  - cil_resolve_senscat
  - cil_resolve_level
  - cil_resolve_levelrange
  - cil_resolve_constrain
  - cil_resolve_validatetrans
  - cil_resolve_context
  - cil_resolve_filecon
  - cil_resolve_ibpkeycon
  - cil_resolve_portcon
  - cil_resolve_genfscon
  - cil_resolve_nodecon
  - cil_resolve_netifcon
  - cil_resolve_ibendportcon
  - cil_resolve_pirqcon
  - cil_resolve_iomemcon
  - cil_resolve_ioportcon
  - cil_resolve_pcidevicecon
  - cil_resolve_devicetreecon
  - cil_resolve_fsuse
  - cil_resolve_sidcontext
  - cil_resolve_blockinherit_link
  - cil_resolve_blockinherit_copy
  - cil_mark_subtree_abstract
  - cil_resolve_blockabstract
  - cil_resolve_in
  - cil_resolve_in_list
  - cil_list_for_each
  - cil_resolve_bounds
  - cil_resolve_default
  - cil_resolve_defaultrange
  - cil_print_recursive_call
  - cil_list_for_each
  - cil_check_recursive_call
  - cil_build_call_args
  - cil_resolve_call
  - cil_resolve_call_args
  - cil_resolve_name_call_args
  - cil_resolve_expr
  - cil_list_for_each
  - cil_resolve_boolif
  - __cil_evaluate_tunable_expr_helper
  - __cil_evaluate_tunable_expr
  - cil_resolve_tunif
  - cil_resolve_userattributeset
  - cil_count_actual
  - cil_check_inheritances
  - cil_stack_for_each
  - cil_check_for_bad_inheritance
  - __cil_resolve_ast_node
  - __cil_resolve_ast_node_helper
  - __cil_resolve_ast_first_child_helper
  - __cil_resolve_ast_last_child_helper
  - cil_resolve_ast
  - __cil_resolve_name_with_root
  - __cil_resolve_name_with_parents
  - __cil_resolve_name_helper
  - cil_resolve_name
  - cil_resolve_name_keep_aliases
  source_file: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*db'
        type: struct cil_db
      - name: pass
        type: enum cil_pass
      - name: '*changed'
        type: uint32_t
      - name: '*to_destroy'
        type: struct cil_list
      - name: '*block'
        type: struct cil_tree_node
      - name: '*macro'
        type: struct cil_tree_node
      - name: '*optional'
        type: struct cil_tree_node
      - name: '*disabled_optional'
        type: struct cil_tree_node
      - name: '*boolif'
        type: struct cil_tree_node
      - name: '*sidorder_lists'
        type: struct cil_list
      - name: '*classorder_lists'
        type: struct cil_list
      - name: '*unordered_classorder_lists'
        type: struct cil_list
      - name: '*catorder_lists'
        type: struct cil_list
      - name: '*sensitivityorder_lists'
        type: struct cil_list
      - name: '*in_list_before'
        type: struct cil_list
      - name: '*in_list_after'
        type: struct cil_list
      - name: '*abstract_blocks'
        type: struct cil_list
      item_type: struct
      name: cil_args_resolve
      pos:
        line_end: 68
        line_start: 50
        source_file: /src/selinux/libsepol/cil/src/cil_resolve_ast.c
    typedefs: []
    union: []
- function_names:
  - cil_default_log_handler
  - cil_set_log_handler
  - cil_vlog
  - cil_log
  - cil_set_log_level
  - cil_get_log_level
  source_file: /src/selinux/libsepol/cil/src/cil_log.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/src/cil_copy_ast.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cil_reset_ordered
  - __class_reset_perm_values
  - cil_reset_class
  - cil_reset_perm
  - cil_reset_classperms
  - cil_reset_classpermission
  - cil_reset_classperms_set
  - cil_reset_classperms_list
  - cil_list_for_each
  - cil_reset_classpermissionset
  - cil_reset_classmapping
  - cil_reset_alias
  - cil_reset_user
  - cil_reset_userattr
  - cil_reset_userattributeset
  - cil_reset_selinuxuser
  - cil_reset_role
  - cil_reset_roleattr
  - cil_reset_roleattributeset
  - cil_reset_type
  - cil_reset_typeattr
  - cil_reset_typeattributeset
  - cil_reset_expandtypeattribute
  - cil_reset_avrule
  - cil_reset_deny_rule
  - cil_reset_rangetransition
  - cil_reset_sens
  - cil_reset_cat
  - cil_reset_cats
  - cil_reset_senscat
  - cil_reset_catset
  - cil_reset_level
  - cil_reset_levelrange
  - cil_reset_userlevel
  - cil_reset_userrange
  - cil_reset_context
  - cil_reset_sidcontext
  - cil_reset_filecon
  - cil_reset_ibpkeycon
  - cil_reset_portcon
  - cil_reset_nodecon
  - cil_reset_genfscon
  - cil_reset_netifcon
  - cil_reset_ibendportcon
  - cil_reset_pirqcon
  - cil_reset_iomemcon
  - cil_reset_ioportcon
  - cil_reset_pcidevicecon
  - cil_reset_devicetreecon
  - cil_reset_fsuse
  - cil_reset_sid
  - cil_reset_constrain
  - cil_reset_validatetrans
  - cil_reset_default
  - cil_reset_defaultrange
  - cil_reset_booleanif
  - __cil_reset_node
  - cil_reset_ast
  source_file: /src/selinux/libsepol/cil/src/cil_reset_ast.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - spaceship_cmp
  - cats_compare
  - level_compare
  - range_compare
  - context_compare
  - cil_verify_is_list
  - cil_list_for_each
  - cil_post_fc_fill_data
  - cil_post_filecon_compare
  - cil_post_ibpkeycon_compare
  - cil_post_portcon_compare
  - cil_post_genfscon_compare
  - cil_post_netifcon_compare
  - cil_post_ibendportcon_compare
  - cil_post_nodecon_compare
  - cil_post_pirqcon_compare
  - cil_post_iomemcon_compare
  - cil_post_ioportcon_compare
  - cil_post_pcidevicecon_compare
  - cil_post_devicetreecon_compare
  - cil_post_fsuse_compare
  - cil_post_filecon_context_compare
  - cil_post_ibpkeycon_context_compare
  - cil_post_portcon_context_compare
  - cil_post_genfscon_context_compare
  - cil_post_netifcon_context_compare
  - cil_post_ibendportcon_context_compare
  - cil_post_nodecon_context_compare
  - cil_post_pirqcon_context_compare
  - cil_post_iomemcon_context_compare
  - cil_post_ioportcon_context_compare
  - cil_post_pcidevicecon_context_compare
  - cil_post_devicetreecon_context_compare
  - cil_post_fsuse_context_compare
  - __cil_post_db_count_helper
  - __cil_post_db_array_helper
  - __evaluate_type_expression
  - __cil_type_to_bitmap
  - __evaluate_user_expression
  - __cil_user_to_bitmap
  - __evaluate_role_expression
  - __cil_role_to_bitmap
  - __evaluate_permissionx_expression
  - __cil_permx_str_to_int
  - __cil_permx_to_bitmap
  - __cil_perm_to_bitmap
  - __evaluate_cat_expression
  - __cil_cat_to_bitmap
  - __cil_cat_expr_range_to_bitmap_helper
  - __cil_permissionx_expr_range_to_bitmap_helper
  - __cil_expr_to_bitmap_helper
  - __cil_expr_to_bitmap
  - __cil_expr_list_to_bitmap
  - cil_list_for_each
  - cil_typeattribute_used
  - __mark_neverallow_attrs
  - cil_list_for_each
  - __cil_post_db_neverallow_attr_helper
  - __cil_post_db_attr_helper
  - __cil_role_assign_types
  - __cil_post_db_roletype_helper
  - __cil_user_assign_roles
  - __cil_post_db_userrole_helper
  - __evaluate_level_expression
  - __evaluate_levelrange_expression
  - __cil_post_db_cat_helper
  - __perm_bits_to_list
  - __evaluate_perm_expression
  - __evaluate_classperms
  - __evaluate_classperms_list
  - cil_list_for_each
  - __evaluate_map_perm_classperms
  - __evaluate_map_class
  - __cil_post_db_classperms_helper
  - __cil_post_report_conflict
  - __cil_post_process_context_rules
  - cil_post_db
  - cil_post_verify
  - cil_pre_verify
  - cil_post_process
  source_file: /src/selinux/libsepol/cil/src/cil_post.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_CLASSPERMS_DEPTH
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/selinux/libsepol/cil/src/cil_post.c
      type_or_value: (32)
    - item_type: preproc_def
      name: GEN_REQUIRE_ATTR
      pos:
        line_end: 55
        line_start: 53
        source_file: /src/selinux/libsepol/cil/src/cil_post.c
      type_or_value: '"cil_gen_require" '
    - item_type: preproc_def
      name: TYPEATTR_INFIX
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/selinux/libsepol/cil/src/cil_post.c
      type_or_value: '"_typeattr_" '
    structs:
    - fields:
      - name: meta
        type: unsigned int
      - name: stem_len
        type: size_t
      - name: str_len
        type: size_t
      item_type: struct
      name: fc_data
      pos:
        line_end: 63
        line_start: 59
        source_file: /src/selinux/libsepol/cil/src/cil_post.c
    - fields:
      - name: flavor
        type: enum cil_flavor
      - name: '*perms'
        type: ebitmap_t
      - name: '*new_list'
        type: struct cil_list
      item_type: struct
      name: perm_to_list
      pos:
        line_end: 2201
        line_start: 2197
        source_file: /src/selinux/libsepol/cil/src/cil_post.c
    - fields:
      - name: '*db'
        type: struct cil_db
      - name: rc
        type: int
      item_type: struct
      name: class_map_args
      pos:
        line_end: 2349
        line_start: 2346
        source_file: /src/selinux/libsepol/cil/src/cil_post.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/src/cil_log.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_LOG_SIZE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/selinux/libsepol/cil/src/cil_log.h
      type_or_value: '512'
    structs: []
    typedefs: []
    union: []
- function_names:
  - cil_copy_list
  - cil_list_for_each
  - cil_copy_node
  - cil_copy_ordered
  - cil_copy_block
  - cil_copy_blockabstract
  - cil_copy_blockinherit
  - cil_copy_policycap
  - cil_copy_perm
  - cil_copy_classperms
  - cil_copy_classperms_set
  - cil_copy_classperms_list
  - cil_list_for_each
  - cil_copy_classmapping
  - cil_copy_class
  - cil_copy_classpermission
  - cil_copy_classpermissionset
  - cil_copy_classcommon
  - cil_copy_sid
  - cil_copy_sidcontext
  - cil_copy_user
  - cil_copy_userattribute
  - cil_copy_userattributeset
  - cil_copy_userrole
  - cil_copy_userlevel
  - cil_copy_userrange
  - cil_copy_userprefix
  - cil_copy_role
  - cil_copy_roletype
  - cil_copy_roleattribute
  - cil_copy_roleattributeset
  - cil_copy_roleallow
  - cil_copy_type
  - cil_copy_typepermissive
  - cil_copy_typeneveraudit
  - cil_copy_typeattribute
  - cil_copy_typeattributeset
  - cil_copy_expandtypeattribute
  - cil_copy_alias
  - cil_copy_aliasactual
  - cil_copy_roletransition
  - cil_copy_nametypetransition
  - cil_copy_rangetransition
  - cil_copy_bool
  - cil_copy_tunable
  - cil_copy_fill_permissionx
  - cil_copy_avrule
  - cil_copy_permissionx
  - cil_copy_deny_rule
  - cil_copy_type_rule
  - cil_copy_sens
  - cil_copy_cat
  - cil_copy_cats
  - cil_copy_catset
  - cil_copy_senscat
  - cil_copy_fill_level
  - cil_copy_level
  - cil_copy_fill_levelrange
  - cil_copy_levelrange
  - cil_copy_fill_context
  - cil_copy_context
  - cil_copy_netifcon
  - cil_copy_genfscon
  - cil_copy_filecon
  - cil_copy_nodecon
  - cil_copy_ibpkeycon
  - cil_copy_ibendportcon
  - cil_copy_portcon
  - cil_copy_pirqcon
  - cil_copy_iomemcon
  - cil_copy_ioportcon
  - cil_copy_pcidevicecon
  - cil_copy_devicetreecon
  - cil_copy_fsuse
  - cil_copy_expr
  - cil_list_for_each
  - cil_copy_constrain
  - cil_copy_validatetrans
  - cil_copy_call
  - cil_copy_macro
  - cil_copy_optional
  - cil_copy_fill_ipaddr
  - cil_copy_ipaddr
  - cil_copy_condblock
  - cil_copy_boolif
  - cil_copy_tunif
  - cil_copy_default
  - cil_copy_defaultrange
  - cil_copy_handleunknown
  - cil_copy_mls
  - cil_copy_bounds
  - cil_copy_src_info
  - __cil_copy_node_helper
  - __cil_copy_last_child_helper
  - cil_copy_ast
  source_file: /src/selinux/libsepol/cil/src/cil_copy_ast.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*orig_dest'
        type: struct cil_tree_node
      - name: '*dest'
        type: struct cil_tree_node
      - name: '*db'
        type: struct cil_db
      item_type: struct
      name: cil_args_copy
      pos:
        line_end: 48
        line_start: 44
        source_file: /src/selinux/libsepol/cil/src/cil_copy_ast.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/src/cil_deny.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - __cil_fqn_qualify_decls
  - __cil_fqn_qualify_blocks
  - cil_fqn_qualify
  source_file: /src/selinux/libsepol/cil/src/cil_fqn.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: prefix[CIL_MAX_NAME_LENGTH]
        type: char
      - name: len
        type: int
      - name: '*node'
        type: struct cil_tree_node
      item_type: struct
      name: cil_fqn_args
      pos:
        line_end: 43
        line_start: 39
        source_file: /src/selinux/libsepol/cil/src/cil_fqn.c
    typedefs: []
    union: []
- function_names:
  - cil_strpool_hash
  - cil_strpool_compare
  - cil_strpool_add
  - cil_strpool_entry_destroy
  - cil_strpool_init
  - cil_strpool_destroy
  source_file: /src/selinux/libsepol/cil/src/cil_strpool.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CIL_STRPOOL_TABLE_SIZE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/selinux/libsepol/cil/src/cil_strpool.c
      type_or_value: 1 << 15
    structs:
    - fields:
      - name: '*str'
        type: char
      item_type: struct
      name: cil_strpool_entry
      pos:
        line_end: 41
        line_start: 39
        source_file: /src/selinux/libsepol/cil/src/cil_strpool.c
    typedefs: []
    union: []
- function_names:
  - cil_type_match_any
  - cil_type_matches
  - cil_self_match_any
  - cil_notself_match_any
  - cil_other_match_any
  - cil_notself_other_match_any
  - cil_classperms_match_any
  - __cil_classperms_list_match_any
  - cil_list_for_each
  - cil_classperms_list_match_any
  - cil_list_for_each
  - __add_classes_from_classperms_list
  - cil_list_for_each
  - __add_classes_from_map_perms
  - cil_expand_class
  - cil_permissionx_match_any
  - cil_find_matching_avrule
  - __cil_find_matching_avrule_in_ast
  - cil_find_matching_avrule_in_ast
  source_file: /src/selinux/libsepol/cil/src/cil_find.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: flavor
        type: enum cil_flavor
      - name: '*target'
        type: void
      - name: '*matching'
        type: struct cil_list
      - name: match_self
        type: int
      item_type: struct
      name: cil_args_find
      pos:
        line_end: 43
        line_start: 38
        source_file: /src/selinux/libsepol/cil/src/cil_find.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/src/cil_write_ast.h
  types:
    enum:
    - enumerators:
      - name: CIL_WRITE_AST_PHASE_PARSE
        value: '0'
      - name: CIL_WRITE_AST_PHASE_RESOLVE
      - name: CIL_WRITE_AST_PHASE_BUILD
      - name: CIL_WRITE_AST_PHASE_POST
      item_type: enum
      name: cil_write_ast_phase
      pos:
        line_end: 41
        line_start: 36
        source_file: /src/selinux/libsepol/cil/src/cil_write_ast.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/src/cil_build_ast.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cil_malloc
  - cil_calloc
  - cil_realloc
  - cil_reallocarray
  - cil_strdup
  - cil_asprintf
  source_file: /src/selinux/libsepol/cil/src/cil_mem.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsepol/cil/include/cil/cil.h
  types:
    enum:
    - enumerators:
      - name: CIL_ERR
        value: '1'
      - name: CIL_WARN
      - name: CIL_INFO
      item_type: enum
      name: cil_log_level
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/selinux/libsepol/cil/include/cil/cil.h
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: cil_db_t
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/selinux/libsepol/cil/include/cil/cil.h
      type: cil_db
    union: []
- function_names:
  - usage
  - main
  source_file: /src/selinux/secilc/secil2conf.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/selinux/secilc/secil2tree.c
  types:
    enum:
    - enumerators:
      - name: WRITE_AST_PHASE_PARSE
        value: '0'
      - name: WRITE_AST_PHASE_POST
      - name: WRITE_AST_PHASE_RESOLVE
      - name: WRITE_AST_PHASE_BUILD
      item_type: enum
      name: write_ast_phase
      pos:
        line_end: 48
        line_start: 43
        source_file: /src/selinux/secilc/secil2tree.c
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/selinux/secilc/secilc.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_binary_policy_db
  - add_decls_to_cil
  - add_cil_file
  - usage
  - main
  source_file: /src/selinux/secilc/secilcheck.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - unset
  - main
  source_file: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XATTR_NAME_SELINUX
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/selinux/policycoreutils/unsetfiles/unsetfiles.c
      type_or_value: '"security.selinux"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmp_cmdline
  - pidof
  - load_checks_with_vendor_settings
  - load_checks
  - printf_tab
  - main
  source_file: /src/selinux/policycoreutils/sestatus/sestatus.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PROC_BASE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/selinux/policycoreutils/sestatus/sestatus.c
      type_or_value: '"/proc"'
    - item_type: preproc_def
      name: MAX_CHECK
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/selinux/policycoreutils/sestatus/sestatus.c
      type_or_value: '50'
    - item_type: preproc_def
      name: CONFDIR
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/selinux/policycoreutils/sestatus/sestatus.c
      type_or_value: '"/etc"'
    - item_type: preproc_def
      name: CONFNAME
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/selinux/policycoreutils/sestatus/sestatus.c
      type_or_value: '"sestatus"'
    - item_type: preproc_def
      name: CONFPOST
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/selinux/policycoreutils/sestatus/sestatus.c
      type_or_value: '"conf"'
    - item_type: preproc_def
      name: CONF
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/selinux/policycoreutils/sestatus/sestatus.c
      type_or_value: CONFDIR "/" CONFNAME "." CONFPOST
    - item_type: preproc_def
      name: SECTIONPROCS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/selinux/policycoreutils/sestatus/sestatus.c
      type_or_value: '"process"'
    - item_type: preproc_def
      name: SECTIONFILES
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/selinux/policycoreutils/sestatus/sestatus.c
      type_or_value: '"files"'
    - item_type: preproc_def
      name: PROCS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/selinux/policycoreutils/sestatus/sestatus.c
      type_or_value: '"[" SECTIONPROCS "]"'
    - item_type: preproc_def
      name: FILES
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/selinux/policycoreutils/sestatus/sestatus.c
      type_or_value: '"[" SECTIONFILES "]"'
    - item_type: preproc_def
      name: BUFSIZE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/selinux/policycoreutils/sestatus/sestatus.c
      type_or_value: '255'
    structs: []
    typedefs: []
    union: []
- function_names:
  - xstreq
  - usage
  - opt_program_name
  - disp_num
  - disp_none
  - disp_multi
  - cmd_line
  - my_getXcon_raw
  - my_getpidexeccon_raw
  - my_getpidfscreatecon_raw
  - my_getpidkeycreatecon_raw
  - get_scon
  - disp__color_to_ansi
  - disp__con_color_ansi
  - disp__con_val
  - disp_con
  - main
  source_file: /src/selinux/policycoreutils/secon/secon.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: 'TRUE'
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/selinux/policycoreutils/secon/secon.c
      type_or_value: '1'
    - item_type: preproc_def
      name: 'FALSE'
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/selinux/policycoreutils/secon/secon.c
      type_or_value: '0'
    - item_type: preproc_def
      name: SECON_CONF_PROG_NAME
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/selinux/policycoreutils/secon/secon.c
      type_or_value: '"secon" '
    - item_type: preproc_def
      name: SECON_OPTS_SM
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/selinux/policycoreutils/secon/secon.c
      type_or_value: '"hVurtscmPRCfLp" '
    - item_type: preproc_def
      name: SECON_OPTS_GO
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/selinux/policycoreutils/secon/secon.c
      type_or_value: '"hVurtlscmPRCf:L:p:" '
    - item_type: preproc_def
      name: OPTS_FROM_ARG
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/selinux/policycoreutils/secon/secon.c
      type_or_value: '0'
    - item_type: preproc_def
      name: OPTS_FROM_FILE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/selinux/policycoreutils/secon/secon.c
      type_or_value: '1'
    - item_type: preproc_def
      name: OPTS_FROM_LINK
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/selinux/policycoreutils/secon/secon.c
      type_or_value: '2'
    - item_type: preproc_def
      name: OPTS_FROM_STDIN
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/selinux/policycoreutils/secon/secon.c
      type_or_value: '3'
    - item_type: preproc_def
      name: OPTS_FROM_CUR
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/selinux/policycoreutils/secon/secon.c
      type_or_value: '4'
    - item_type: preproc_def
      name: OPTS_FROM_CUREXE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/selinux/policycoreutils/secon/secon.c
      type_or_value: '5'
    - item_type: preproc_def
      name: OPTS_FROM_CURFS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/selinux/policycoreutils/secon/secon.c
      type_or_value: '6'
    - item_type: preproc_def
      name: OPTS_FROM_CURKEY
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/selinux/policycoreutils/secon/secon.c
      type_or_value: '7'
    - item_type: preproc_def
      name: OPTS_FROM_PROC
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/selinux/policycoreutils/secon/secon.c
      type_or_value: '8'
    - item_type: preproc_def
      name: OPTS_FROM_PROCEXE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/selinux/policycoreutils/secon/secon.c
      type_or_value: '9'
    - item_type: preproc_def
      name: OPTS_FROM_PROCFS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/selinux/policycoreutils/secon/secon.c
      type_or_value: '10'
    - item_type: preproc_def
      name: OPTS_FROM_PROCKEY
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/selinux/policycoreutils/secon/secon.c
      type_or_value: '11'
    structs:
    - fields:
      - name: valid
        type: unsigned int
      - name: '*user_fg'
        type: char
      - name: '*user_bg'
        type: char
      - name: '*role_fg'
        type: char
      - name: '*role_bg'
        type: char
      - name: '*type_fg'
        type: char
      - name: '*type_bg'
        type: char
      - name: '*range_fg'
        type: char
      - name: '*range_bg'
        type: char
      item_type: struct
      name: context_color_t
      pos:
        line_end: 48
        line_start: 37
        source_file: /src/selinux/policycoreutils/secon/secon.c
    - fields:
      - name: disp_user
        type: unsigned int
      - name: disp_role
        type: unsigned int
      - name: disp_type
        type: unsigned int
      - name: disp_sen
        type: unsigned int
      - name: disp_clr
        type: unsigned int
      - name: disp_mlsr
        type: unsigned int
      - name: disp_raw
        type: unsigned int
      - name: disp_color
        type: unsigned int
      - name: disp_prompt
        type: unsigned int
      - name: from_type
        type: unsigned int
      - name: f
        type: "union {\n\t\tpid_t pid;\n\t\tconst char *file;\n\t\tconst char *link;\n\t\tconst
          char *arg;\n\t}"
      item_type: struct
      name: "opts[1] = { { FALSE,\n\t\tFALSE,\n\t\tFALSE,\n\t\tFALSE,\n\t\tFALSE,\n\t\tFALSE,\n\t\tFALSE,\n\t\tFALSE,\n\t\tFALSE,\n\t\tOPTS_FROM_ARG,\n\t\t{
        0 } } }"
      pos:
        line_end: 71
        line_start: 50
        source_file: /src/selinux/policycoreutils/secon/secon.c
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  - selinux_set_boolean_list
  - semanage_set_boolean_list
  - setbool
  source_file: /src/selinux/policycoreutils/setsebool/setsebool.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _
  - _
  - build_new_range
  - authenticate_via_pam
  - free_hashtab_entry
  - reqsymhash
  - reqsymcmp
  - process_pam_config
  - read_pam_config
  - memzero
  - hash_equal
  - authenticate_via_shadow_passwd
  - verify_shell
  - extract_pw_data
  - restore_environment
  - drop_capabilities
  - drop_capabilities
  - drop_capabilities
  - transition_to_caller_uid
  - send_audit_message
  - send_audit_message
  - relabel_tty
  - restore_tty_label
  - parse_command_line_arguments
  - set_signal_handles
  - sanitize_std_fds
  - main
  source_file: /src/selinux/policycoreutils/newrole/newrole.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PACKAGE
      pos:
        line_end: 91
        line_start: 89
        source_file: /src/selinux/policycoreutils/newrole/newrole.c
      type_or_value: '"policycoreutils" '
    - item_type: preproc_def
      name: 'TRUE'
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/selinux/policycoreutils/newrole/newrole.c
      type_or_value: '1'
    - item_type: preproc_def
      name: 'FALSE'
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/selinux/policycoreutils/newrole/newrole.c
      type_or_value: '0'
    - item_type: preproc_def
      name: USAGE_STRING
      pos:
        line_end: 99
        line_start: 97
        source_file: /src/selinux/policycoreutils/newrole/newrole.c
      type_or_value: '"USAGE: newrole [ -r role ] [ -t type ] [ -l level ] [ -p ]
        [ -V ] [ -- args ]"'
    - item_type: preproc_def
      name: PAM_SERVICE_CONFIG
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/selinux/policycoreutils/newrole/newrole.c
      type_or_value: '"/etc/selinux/newrole_pam.conf"'
    - item_type: preproc_def
      name: DEFAULT_PATH
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/selinux/policycoreutils/newrole/newrole.c
      type_or_value: '"/usr/bin:/bin"'
    - item_type: preproc_def
      name: PAM_SERVICE_SLOTS
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/selinux/policycoreutils/newrole/newrole.c
      type_or_value: '64'
    - item_type: preproc_def
      name: PASSWORD_PROMPT
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/selinux/policycoreutils/newrole/newrole.c
      type_or_value: '_("Password:") '
    structs: []
    typedefs: []
    union: []
- function_names:
  - hashtab_create
  - hashtab_insert
  - hashtab_remove
  - hashtab_search
  - hashtab_destroy
  - hashtab_map
  - hashtab_hash_eval
  source_file: /src/selinux/policycoreutils/newrole/hashtab.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/policycoreutils/newrole/hashtab.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HASHTAB_SUCCESS
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/selinux/policycoreutils/newrole/hashtab.h
      type_or_value: '0'
    - item_type: preproc_def
      name: HASHTAB_OVERFLOW
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/selinux/policycoreutils/newrole/hashtab.h
      type_or_value: -ENOMEM
    - item_type: preproc_def
      name: HASHTAB_PRESENT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/selinux/policycoreutils/newrole/hashtab.h
      type_or_value: -EEXIST
    - item_type: preproc_def
      name: HASHTAB_MISSING
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/selinux/policycoreutils/newrole/hashtab.h
      type_or_value: -ENOENT
    structs:
    - fields:
      - name: key
        type: hashtab_key_t
      - name: datum
        type: hashtab_datum_t
      - name: next
        type: hashtab_ptr_t
      item_type: struct
      name: hashtab_node
      pos:
        line_end: 30
        line_start: 26
        source_file: /src/selinux/policycoreutils/newrole/hashtab.h
    - fields:
      - name: '*htable'
        type: hashtab_ptr_t
      - name: size
        type: unsigned int
      - name: nel
        type: uint32_t
      - name: "(*hash_value)(struct hashtab_val *h,\n\t\t\t\t   const_hashtab_key_t
          key)"
        type: unsigned int
      - name: "(*keycmp)(struct hashtab_val *h, const_hashtab_key_t key1,\n\t\t      const_hashtab_key_t
          key2)"
        type: int
      item_type: struct
      name: hashtab_val
      pos:
        line_end: 40
        line_start: 32
        source_file: /src/selinux/policycoreutils/newrole/hashtab.h
    typedefs:
    - item_type: typedef
      name: '*hashtab_key_t'
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/selinux/policycoreutils/newrole/hashtab.h
      type: char
    - item_type: typedef
      name: '*const_hashtab_key_t'
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/selinux/policycoreutils/newrole/hashtab.h
      type: char
    - item_type: typedef
      name: '*hashtab_datum_t'
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/selinux/policycoreutils/newrole/hashtab.h
      type: void
    - item_type: typedef
      name: '*hashtab_ptr_t'
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/selinux/policycoreutils/newrole/hashtab.h
      type: hashtab_node
    - item_type: typedef
      name: '*hashtab_t'
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/selinux/policycoreutils/newrole/hashtab.h
      type: hashtab_val_t
    union: []
- function_names:
  - cleanup
  - handle_signal
  - set_store
  - set_store_root
  - create_signal_handlers
  - usage
  - set_mode
  - parse_command_line
  - hash_module_data
  - main
  source_file: /src/selinux/policycoreutils/semodule/semodule.c
  types:
    enum:
    - enumerators:
      - name: NO_MODE
      - name: INSTALL_M
      - name: REMOVE_M
      - name: EXTRACT_M
      - name: CIL_M
      - name: HLL_M
      - name: LIST_M
      - name: RELOAD
      - name: PRIORITY_M
      - name: ENABLE_M
      - name: DISABLE_M
      item_type: enum
      name: client_modes
      pos:
        line_end: 39
        line_start: 27
        source_file: /src/selinux/policycoreutils/semodule/semodule.c
    preproc_defs: []
    structs:
    - fields:
      - name: mode
        type: enum client_modes
      - name: '*arg'
        type: char
      item_type: struct
      name: command
      pos:
        line_end: 48
        line_start: 45
        source_file: /src/selinux/policycoreutils/semodule/semodule.c
    typedefs: []
    union: []
- function_names:
  - log_err
  - usage
  - main
  source_file: /src/selinux/policycoreutils/hll/pp/pp.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - _
  - _
  - usage
  - main
  source_file: /src/selinux/policycoreutils/load_policy/load_policy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PACKAGE
      pos:
        line_end: 18
        line_start: 16
        source_file: /src/selinux/policycoreutils/load_policy/load_policy.c
      type_or_value: '"policycoreutils" '
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - set_rootpath
  - canoncon
  - audit_mass_relabel
  - log_callback
  - main
  source_file: /src/selinux/policycoreutils/setfiles/setfiles.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AUDIT_FS_RELABEL
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/selinux/policycoreutils/setfiles/setfiles.c
      type_or_value: '2309'
    - item_type: preproc_def
      name: SETFILES
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/selinux/policycoreutils/setfiles/setfiles.c
      type_or_value: '"setfiles"'
    - item_type: preproc_def
      name: RESTORECON
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/selinux/policycoreutils/setfiles/setfiles.c
      type_or_value: '"restorecon"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - restore_init
  - restore_finish
  - process_glob
  - add_exclude
  source_file: /src/selinux/policycoreutils/setfiles/restore.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GLOB_BRACE
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/selinux/policycoreutils/setfiles/restore.c
      type_or_value: '0'
    - item_type: preproc_def
      name: GLOB_TILDE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/selinux/policycoreutils/setfiles/restore.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/selinux/policycoreutils/setfiles/restorecon_xattr.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/policycoreutils/setfiles/restore.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: nochange
        type: unsigned int
      - name: verbose
        type: unsigned int
      - name: progress
        type: unsigned int
      - name: mass_relabel
        type: unsigned int
      - name: set_specctx
        type: unsigned int
      - name: set_user_role
        type: unsigned int
      - name: add_assoc
        type: unsigned int
      - name: ignore_digest
        type: unsigned int
      - name: recurse
        type: unsigned int
      - name: userealpath
        type: unsigned int
      - name: xdev
        type: unsigned int
      - name: abort_on_error
        type: unsigned int
      - name: syslog_changes
        type: unsigned int
      - name: log_matches
        type: unsigned int
      - name: ignore_noent
        type: unsigned int
      - name: ignore_mounts
        type: unsigned int
      - name: conflict_error
        type: unsigned int
      - name: count_errors
        type: unsigned int
      - name: count_relabeled
        type: unsigned int
      - name: skip_multilink
        type: unsigned int
      - name: restorecon_flags
        type: unsigned int
      - name: '*rootpath'
        type: char
      - name: '*progname'
        type: char
      - name: '*hnd'
        type: struct selabel_handle
      - name: '*selabel_opt_validate'
        type: char
      - name: '*selabel_opt_path'
        type: char
      - name: '*selabel_opt_digest'
        type: char
      - name: debug
        type: int
      item_type: struct
      name: restore_opts
      pos:
        line_end: 50
        line_start: 20
        source_file: /src/selinux/policycoreutils/setfiles/restore.h
    typedefs: []
    union: []
- function_names:
  - tty_semi_raw
  - tty_atexit
  - rb_init
  - rb_isempty
  - rb_space
  - rb_chunk_size
  - rb_read
  - rb_write
  - setfd_nonblock
  - setfd_block
  - setfd_atexit
  - sigchld_handler
  - main
  source_file: /src/selinux/policycoreutils/run_init/open_init_pty.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXRETR
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/selinux/policycoreutils/run_init/open_init_pty.c
      type_or_value: '3 '
    - item_type: preproc_def
      name: BUFSIZE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/selinux/policycoreutils/run_init/open_init_pty.c
      type_or_value: '2048 '
    structs:
    - fields:
      - name: '*buf'
        type: char
      - name: '*wptr'
        type: char
      - name: '*rptr'
        type: char
      - name: size
        type: size_t
      - name: count
        type: size_t
      item_type: struct
      name: ring_buffer
      pos:
        line_end: 109
        line_start: 103
        source_file: /src/selinux/policycoreutils/run_init/open_init_pty.c
    typedefs: []
    union: []
- function_names:
  - _
  - _
  - authenticate_via_pam
  - authenticate_via_shadow_passwd
  - get_init_context
  - main
  source_file: /src/selinux/policycoreutils/run_init/run_init.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PACKAGE
      pos:
        line_end: 67
        line_start: 65
        source_file: /src/selinux/policycoreutils/run_init/run_init.c
      type_or_value: '"policycoreutils" '
    - item_type: preproc_def
      name: USAGE_STRING
      pos:
        line_end: 73
        line_start: 69
        source_file: /src/selinux/policycoreutils/run_init/run_init.c
      type_or_value: "_(\"USAGE: run_init <script> <args ...>\\n\\\n  where: <script>
        is the name of the init script to run,\\n\\\n         <args ...> are the arguments
        to that script.\")"
    - item_type: preproc_def
      name: CONTEXT_FILE
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/selinux/policycoreutils/run_init/run_init.c
      type_or_value: '"initrc_context"'
    - item_type: preproc_def
      name: SERVICE_NAME
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/selinux/policycoreutils/run_init/run_init.c
      type_or_value: '"run_init" '
    - item_type: preproc_def
      name: PASSWORD_PROMPT
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/selinux/policycoreutils/run_init/run_init.c
      type_or_value: '_("Password:") '
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/tests/test_handle.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/tests/test_other.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/tests/test_bool.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/tests/test_semanage_store.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/tests/test_port.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CU_ASSERT_CONTEXT_EQUAL
  - CU_ASSERT_FATAL
  - CU_FAIL_FATAL
  - CU_ASSERT_PTR_NOT_NULL_FATAL
  source_file: /src/selinux/libsemanage/tests/utilities.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: I_NULL
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/selinux/libsemanage/tests/utilities.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: I_FIRST
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/selinux/libsemanage/tests/utilities.h
      type_or_value: '0'
    - item_type: preproc_def
      name: I_SECOND
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/selinux/libsemanage/tests/utilities.h
      type_or_value: '1'
    - item_type: preproc_def
      name: I_THIRD
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/selinux/libsemanage/tests/utilities.h
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_file_contexts
  - fcontext_test_init
  - fcontext_test_cleanup
  - fcontext_add_tests
  - get_fcontext_nth
  - get_fcontext_key_nth
  - add_local_fcontext
  - delete_local_fcontext
  - get_fcontext_key_from_str
  - test_fcontext_compare
  - test_fcontext_compare2
  - test_fcontext_key_create
  - test_fcontext_key_extract
  - test_fcontext_get_set_expr
  - test_fcontext_get_set_type
  - helper_fcontext_get_type_str
  - test_fcontext_get_type_str
  - helper_fcontext_get_set_con
  - test_fcontext_get_set_con
  - helper_fcontext_create
  - test_fcontext_create
  - helper_fcontext_clone
  - test_fcontext_clone
  - helper_fcontext_query
  - test_fcontext_query
  - helper_fcontext_exists
  - test_fcontext_exists
  - test_fcontext_count
  - handler_fcontext_iterate
  - helper_fcontext_iterate_invalid
  - helper_fcontext_iterate
  - test_fcontext_iterate
  - helper_fcontext_list_invalid
  - helper_fcontext_list
  - test_fcontext_list
  - helper_fcontext_modify_del_local
  - test_fcontext_modify_del_local
  - test_fcontext_query_local
  - test_fcontext_exists_local
  - test_fcontext_count_local
  - handler_fcontext_iterate_local
  - test_fcontext_iterate_local
  - test_fcontext_list_local
  source_file: /src/selinux/libsemanage/tests/test_fcontext.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FCONTEXTS_COUNT
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/selinux/libsemanage/tests/test_fcontext.c
      type_or_value: '3'
    - item_type: preproc_def
      name: FCONTEXT1_EXPR
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/selinux/libsemanage/tests/test_fcontext.c
      type_or_value: '"/etc/selinux(/.*)"'
    - item_type: preproc_def
      name: FCONTEXT1_TYPE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/selinux/libsemanage/tests/test_fcontext.c
      type_or_value: SEMANAGE_FCONTEXT_SOCK
    - item_type: preproc_def
      name: FCONTEXT2_EXPR
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/selinux/libsemanage/tests/test_fcontext.c
      type_or_value: '"/etc/selinux/targeted"'
    - item_type: preproc_def
      name: FCONTEXT2_TYPE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/selinux/libsemanage/tests/test_fcontext.c
      type_or_value: SEMANAGE_FCONTEXT_REG
    - item_type: preproc_def
      name: FCONTEXT_NONEXISTENT_EXPR
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/selinux/libsemanage/tests/test_fcontext.c
      type_or_value: '"/asdf"'
    - item_type: preproc_def
      name: FCONTEXT_NONEXISTENT_TYPE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/selinux/libsemanage/tests/test_fcontext.c
      type_or_value: SEMANAGE_FCONTEXT_ALL
    structs: []
    typedefs: []
    union: []
- function_names:
  - ibendport_test_init
  - ibendport_test_cleanup
  - ibendport_add_tests
  - get_ibendport_nth
  - get_ibendport_key_nth
  - add_local_ibendport
  - delete_local_ibendport
  - test_ibendport_query
  - test_ibendport_exists
  - test_ibendport_count
  - helper_ibendport_iterate
  - helper_ibendport_iterate_error
  - helper_ibendport_iterate_break
  - test_ibendport_iterate
  - test_ibendport_list
  - test_ibendport_modify_del_query_local
  - test_ibendport_exists_local
  - test_ibendport_count_local
  - helper_ibendport_iterate_local
  - helper_ibendport_iterate_local_error
  - helper_ibendport_iterate_local_break
  - test_ibendport_iterate_local
  - test_ibendport_list_local
  source_file: /src/selinux/libsemanage/tests/test_ibendport.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IBENDPORT_COUNT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/selinux/libsemanage/tests/test_ibendport.c
      type_or_value: '3'
    - item_type: preproc_def
      name: IBENDPORT_1_NAME
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/selinux/libsemanage/tests/test_ibendport.c
      type_or_value: '"mlx4_0"'
    - item_type: preproc_def
      name: IBENDPORT_1_PORT
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/selinux/libsemanage/tests/test_ibendport.c
      type_or_value: '1'
    - item_type: preproc_def
      name: IBENDPORT_1_CON
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/selinux/libsemanage/tests/test_ibendport.c
      type_or_value: '"system_u:object_r:first_ibendport_t:s0"'
    - item_type: preproc_def
      name: IBENDPORT_2_NAME
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/selinux/libsemanage/tests/test_ibendport.c
      type_or_value: '"mlx4_1"'
    - item_type: preproc_def
      name: IBENDPORT_2_PORT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/selinux/libsemanage/tests/test_ibendport.c
      type_or_value: '2'
    - item_type: preproc_def
      name: IBENDPORT_2_CON
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/selinux/libsemanage/tests/test_ibendport.c
      type_or_value: '"system_u:object_r:second_ibendport_second_t:s0"'
    - item_type: preproc_def
      name: IBENDPORT_3_NAME
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/selinux/libsemanage/tests/test_ibendport.c
      type_or_value: '"mlx4_1"'
    - item_type: preproc_def
      name: IBENDPORT_3_PORT
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/selinux/libsemanage/tests/test_ibendport.c
      type_or_value: '3'
    - item_type: preproc_def
      name: IBENDPORT_3_CON
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/selinux/libsemanage/tests/test_ibendport.c
      type_or_value: '"system_u:object_r:third_ibendport_second_t:s0"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - semanage_utilities_test_init
  - semanage_utilities_test_cleanup
  - semanage_utilities_add_tests
  - test_semanage_is_prefix
  - test_semanage_split_on_space
  - test_semanage_split
  - test_semanage_list
  - test_semanage_str_count
  - test_semanage_rtrim
  - test_semanage_str_replace
  - test_semanage_findval
  - PREDICATE
  - test_slurp_file_filter
  - test_semanage_basename
  source_file: /src/selinux/libsemanage/tests/test_utilities.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - iface_test_init
  - iface_test_cleanup
  - iface_add_tests
  - get_iface_nth
  - get_iface_key_nth
  - add_local_iface
  - delete_local_iface
  - test_iface_compare
  - test_iface_compare2
  - test_iface_key_create
  - test_iface_key_extract
  - test_iface_get_set_name
  - test_iface_get_set_ifcon
  - test_iface_get_set_msgcon
  - test_iface_create
  - test_iface_clone
  - test_iface_query
  - test_iface_exists
  - test_iface_count
  - handler_iface_iterate
  - test_iface_iterate
  - test_iface_list
  - test_iface_modify_del_query_local
  - test_iface_exists_local
  - test_iface_count_local
  - handler_iface_iterate_local
  - test_iface_iterate_local
  - test_iface_list_local
  source_file: /src/selinux/libsemanage/tests/test_iface.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IFACE_COUNT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/selinux/libsemanage/tests/test_iface.c
      type_or_value: '3'
    - item_type: preproc_def
      name: IFACE1_NAME
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/selinux/libsemanage/tests/test_iface.c
      type_or_value: '"eth0"'
    - item_type: preproc_def
      name: IFACE1_IFCON
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/selinux/libsemanage/tests/test_iface.c
      type_or_value: '"system_u:object_r:first_netif_t:s0"'
    - item_type: preproc_def
      name: IFACE1_MSGCON
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/selinux/libsemanage/tests/test_iface.c
      type_or_value: IFACE1_IFCON
    - item_type: preproc_def
      name: IFACE2_NAME
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/selinux/libsemanage/tests/test_iface.c
      type_or_value: '"eth1"'
    - item_type: preproc_def
      name: IFACE2_IFCON
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/selinux/libsemanage/tests/test_iface.c
      type_or_value: '"system_u:object_r:second_netif_t:s0"'
    - item_type: preproc_def
      name: IFACE2_MSGCON
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/selinux/libsemanage/tests/test_iface.c
      type_or_value: IFACE2_IFCON
    - item_type: preproc_def
      name: IFACE3_NAME
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/selinux/libsemanage/tests/test_iface.c
      type_or_value: '"eth2"'
    - item_type: preproc_def
      name: IFACE3_IFCON
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/selinux/libsemanage/tests/test_iface.c
      type_or_value: '"system_u:object_r:third_netif_t:s0"'
    - item_type: preproc_def
      name: IFACE3_MSGCON
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/selinux/libsemanage/tests/test_iface.c
      type_or_value: IFACE3_IFCON
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/tests/test_iface.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/tests/test_user.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - port_test_init
  - port_test_cleanup
  - port_add_tests
  - get_port_nth
  - get_port_key_nth
  - add_local_port
  - delete_local_port
  - helper_port_compare
  - test_port_compare
  - helper_port_compare2
  - test_port_compare2
  - test_port_key_create
  - test_port_key_extract
  - helper_port_get_set_proto
  - test_port_get_set_proto
  - test_port_get_proto_str
  - test_port_get_set_port
  - test_port_get_set_con
  - test_port_create
  - test_port_clone
  - test_port_query
  - test_port_exists
  - test_port_count
  - handler_port_iterate
  - test_port_iterate
  - test_port_list
  - test_port_modify_del_local
  - test_port_query_local
  - test_port_exists_local
  - test_port_count_local
  - handler_port_iterate_local
  - test_port_iterate_local
  - test_port_list_local
  - helper_port_validate_local_noport
  - helper_port_validate_local_oneport
  - helper_port_validate_local_twoports
  - test_port_validate_local
  source_file: /src/selinux/libsemanage/tests/test_port.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PORT_COUNT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/selinux/libsemanage/tests/test_port.c
      type_or_value: '3'
    - item_type: preproc_def
      name: PORT1_LOW
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/selinux/libsemanage/tests/test_port.c
      type_or_value: '80'
    - item_type: preproc_def
      name: PORT1_HIGH
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/selinux/libsemanage/tests/test_port.c
      type_or_value: '80'
    - item_type: preproc_def
      name: PORT1_PROTO
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/selinux/libsemanage/tests/test_port.c
      type_or_value: SEPOL_PROTO_TCP
    - item_type: preproc_def
      name: PORT2_LOW
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/selinux/libsemanage/tests/test_port.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PORT2_HIGH
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/selinux/libsemanage/tests/test_port.c
      type_or_value: '1023'
    - item_type: preproc_def
      name: PORT2_PROTO
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/selinux/libsemanage/tests/test_port.c
      type_or_value: SEPOL_PROTO_UDP
    - item_type: preproc_def
      name: PORT3_LOW
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/selinux/libsemanage/tests/test_port.c
      type_or_value: '12345'
    - item_type: preproc_def
      name: PORT3_HIGH
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/selinux/libsemanage/tests/test_port.c
      type_or_value: '12345'
    - item_type: preproc_def
      name: PORT3_PROTO
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/selinux/libsemanage/tests/test_port.c
      type_or_value: SEPOL_PROTO_TCP
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_msg_handler
  - create_test_store
  - disable_test_store
  - enable_test_store
  - write_test_policy
  - write_test_policy_from_file
  - write_test_policy_src
  - destroy_test_store
  - helper_handle_create
  - helper_handle_destroy
  - helper_connect
  - helper_disconnect
  - helper_begin_transaction
  - helper_commit
  - setup_handle
  - cleanup_handle
  - setup_handle_invalid_store
  source_file: /src/selinux/libsemanage/tests/utilities.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - node_test_init
  - node_test_cleanup
  - node_add_tests
  - get_node_nth
  - get_node_key_nth
  - add_local_node
  - delete_local_node
  - test_node_compare
  - test_node_compare2
  - test_node_key_create
  - test_node_key_extract
  - test_node_get_set_addr
  - test_node_get_set_addr_bytes
  - test_node_get_set_mask
  - test_node_get_set_mask_bytes
  - test_node_get_set_proto
  - test_node_get_proto_str
  - test_node_get_set_con
  - test_node_create
  - test_node_clone
  - test_node_query
  - test_node_exists
  - test_node_count
  - handler_node_iterate
  - test_node_iterate
  - test_node_list
  - test_node_modify_del_query_local
  - test_node_exists_local
  - test_node_count_local
  - handler_node_iterate_local
  - test_node_iterate_local
  - test_node_list_local
  source_file: /src/selinux/libsemanage/tests/test_node.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NODE_COUNT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/selinux/libsemanage/tests/test_node.c
      type_or_value: '3'
    - item_type: preproc_def
      name: NODE1_ADDR
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/selinux/libsemanage/tests/test_node.c
      type_or_value: '"192.168.0.0"'
    - item_type: preproc_def
      name: NODE1_MASK
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/selinux/libsemanage/tests/test_node.c
      type_or_value: '"255.255.255.0"'
    - item_type: preproc_def
      name: NODE1_PROTO
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/selinux/libsemanage/tests/test_node.c
      type_or_value: SEPOL_PROTO_IP4
    - item_type: preproc_def
      name: NODE1_CONTEXT
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/selinux/libsemanage/tests/test_node.c
      type_or_value: '"system_u:object_r:first_node_t:s0"'
    - item_type: preproc_def
      name: NODE2_ADDR
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/selinux/libsemanage/tests/test_node.c
      type_or_value: '"2001:db8:85a3::8a2e:370:7334"'
    - item_type: preproc_def
      name: NODE2_MASK
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/selinux/libsemanage/tests/test_node.c
      type_or_value: '"2001:db8:85a3::8a2e:370:7334"'
    - item_type: preproc_def
      name: NODE2_PROTO
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/selinux/libsemanage/tests/test_node.c
      type_or_value: SEPOL_PROTO_IP6
    - item_type: preproc_def
      name: NODE2_CONTEXT
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/selinux/libsemanage/tests/test_node.c
      type_or_value: '"system_u:object_r:second_node_t:s0"'
    - item_type: preproc_def
      name: NODE3_ADDR
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/selinux/libsemanage/tests/test_node.c
      type_or_value: '"127.0.0.1"'
    - item_type: preproc_def
      name: NODE3_MASK
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/selinux/libsemanage/tests/test_node.c
      type_or_value: '"255.255.0.0"'
    - item_type: preproc_def
      name: NODE3_PROTO
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/selinux/libsemanage/tests/test_node.c
      type_or_value: SEPOL_PROTO_IP4
    - item_type: preproc_def
      name: NODE3_CONTEXT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/selinux/libsemanage/tests/test_node.c
      type_or_value: '"system_u:object_r:third_node_t:s0"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - handle_test_init
  - handle_test_cleanup
  - handle_add_tests
  - test_handle_create
  - test_connect
  - test_disconnect
  - test_transaction
  - test_commit
  - test_is_connected
  - test_access_check
  - test_is_managed
  - test_mls_enabled
  - helper_msg_set_callback
  - test_msg_set_callback
  - helper_root
  - test_root
  - helper_select_store
  - test_select_store
  source_file: /src/selinux/libsemanage/tests/test_handle.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - boolean_test_init
  - boolean_test_cleanup
  - boolean_add_tests
  - get_bool_nth
  - get_bool_new
  - get_bool_key_nth
  - get_bool_key_from_str
  - add_local_bool
  - delete_local_bool
  - helper_bool_key_create
  - test_bool_key_create
  - helper_bool_key_extract
  - test_bool_key_extract
  - helper_bool_compare
  - test_bool_compare
  - helper_bool_compare2
  - test_bool_compare2
  - helper_bool_get_set_name
  - test_bool_get_set_name
  - helper_bool_get_set_value
  - test_bool_get_set_value
  - helper_bool_create
  - test_bool_create
  - helper_bool_clone
  - test_bool_clone
  - helper_bool_query
  - test_bool_query
  - helper_bool_exists
  - test_bool_exists
  - test_bool_count
  - handler_bool_iterate
  - helper_bool_iterate_invalid
  - helper_bool_iterate
  - test_bool_iterate
  - helper_bool_list_invalid
  - helper_bool_list
  - test_bool_list
  - helper_bool_modify_del_local
  - test_bool_modify_del_local
  - test_bool_query_local
  - test_bool_exists_local
  - test_bool_count_local
  - handler_bool_iterate_local
  - test_bool_iterate_local
  - test_bool_list_local
  source_file: /src/selinux/libsemanage/tests/test_bool.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BOOL_COUNT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/selinux/libsemanage/tests/test_bool.c
      type_or_value: '3'
    - item_type: preproc_def
      name: BOOL1_NAME
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/selinux/libsemanage/tests/test_bool.c
      type_or_value: '"first_bool"'
    - item_type: preproc_def
      name: BOOL1_VALUE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/selinux/libsemanage/tests/test_bool.c
      type_or_value: '1'
    - item_type: preproc_def
      name: BOOL2_NAME
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/selinux/libsemanage/tests/test_bool.c
      type_or_value: '"second_bool"'
    - item_type: preproc_def
      name: BOOL2_VALUE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/selinux/libsemanage/tests/test_bool.c
      type_or_value: '0'
    - item_type: preproc_def
      name: BOOL3_NAME
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/selinux/libsemanage/tests/test_bool.c
      type_or_value: '"third_bool"'
    - item_type: preproc_def
      name: BOOL3_VALUE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/selinux/libsemanage/tests/test_bool.c
      type_or_value: '0'
    - item_type: preproc_def
      name: BOOL_NONEXISTENT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/selinux/libsemanage/tests/test_bool.c
      type_or_value: '"asdf"'
    - item_type: preproc_def
      name: SK_NULL
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/selinux/libsemanage/tests/test_bool.c
      type_or_value: '1'
    - item_type: preproc_def
      name: SK_NEW
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/selinux/libsemanage/tests/test_bool.c
      type_or_value: '2'
    - item_type: preproc_def
      name: SK_INDEX
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/selinux/libsemanage/tests/test_bool.c
      type_or_value: '3'
    - item_type: preproc_def
      name: SK_KEY_NULL
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/selinux/libsemanage/tests/test_bool.c
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/tests/test_node.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - user_test_init
  - user_test_cleanup
  - user_add_tests
  - get_user_nth
  - get_user_key_nth
  - add_local_user
  - delete_local_user
  - test_user_compare
  - test_user_compare2
  - test_user_key_create
  - test_user_key_extract
  - test_user_get_set_name
  - test_user_get_set_prefix
  - test_user_get_set_mlslevel
  - test_user_get_set_mlsrange
  - test_user_roles
  - test_user_create
  - test_user_clone
  - test_user_query
  - test_user_exists
  - test_user_count
  - handler_user_iterate
  - test_user_iterate
  - test_user_list
  - test_user_modify_del_query_local
  - test_user_exists_local
  - test_user_count_local
  - handler_user_iterate_local
  - test_user_iterate_local
  - test_user_list_local
  source_file: /src/selinux/libsemanage/tests/test_user.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: USER_COUNT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/selinux/libsemanage/tests/test_user.c
      type_or_value: '3'
    structs: []
    typedefs: []
    union: []
- function_names:
  - other_test_init
  - other_test_cleanup
  - other_add_tests
  - test_semanage_context
  - test_debug
  source_file: /src/selinux/libsemanage/tests/test_other.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/tests/test_fcontext.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/tests/test_utilities.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - semanage_store_test_init
  - semanage_store_test_cleanup
  - semanage_store_add_tests
  - test_semanage_store_access_check
  - test_semanage_get_lock
  - test_semanage_nc_sort
  source_file: /src/selinux/libsemanage/tests/test_semanage_store.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/tests/test_ibendport.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - DECLARE_SUITE
  - usage
  - do_tests
  - main
  source_file: /src/selinux/libsemanage/tests/libsemanage-tests.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - semanage_bool_query
  - semanage_bool_exists
  - semanage_bool_count
  - semanage_bool_iterate
  - semanage_bool_list
  source_file: /src/selinux/libsemanage/src/booleans_policy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/booleans_policy.c
      type: semanage_bool_key
    - item_type: typedef
      name: record_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/booleans_policy.c
      type: semanage_bool
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/src/boolean_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/src/node_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - semanage_user_roles
  - semanage_seuser_audit
  - semanage_seuser_modify_local
  - semanage_seuser_del_local
  - semanage_seuser_query_local
  - semanage_seuser_exists_local
  - semanage_seuser_count_local
  - semanage_seuser_iterate_local
  - semanage_seuser_list_local
  - validate_handler
  - semanage_seuser_validate_local
  source_file: /src/selinux/libsemanage/src/seusers_local.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*handle'
        type: semanage_handle_t
      - name: '*policydb'
        type: sepol_policydb_t
      item_type: struct
      name: validate_handler_arg
      pos:
        line_end: 241
        line_start: 238
        source_file: /src/selinux/libsemanage/src/seusers_local.c
    typedefs:
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/seusers_local.c
      type: semanage_seuser_key
    - item_type: typedef
      name: record_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/seusers_local.c
      type: semanage_seuser
    union: []
- function_names:
  - iface_print
  - iface_parse
  - iface_file_dbase_init
  - iface_file_dbase_release
  source_file: /src/selinux/libsemanage/src/interfaces_file.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/interfaces_file.c
      type: semanage_iface
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/interfaces_file.c
      type: semanage_iface_key
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/selinux/libsemanage/src/interfaces_file.c
      type: dbase_file
    union: []
- function_names:
  - bool_read_list
  - bool_commit_list
  - bool_activedb_dbase_init
  - bool_activedb_dbase_release
  source_file: /src/selinux/libsemanage/src/booleans_activedb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/booleans_activedb.c
      type: semanage_bool
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/booleans_activedb.c
      type: semanage_bool_key
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/selinux/libsemanage/src/booleans_activedb.c
      type: dbase_activedb
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/src/direct_api.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: activelock_file_fd
        type: int
      - name: translock_file_fd
        type: int
      item_type: struct
      name: semanage_direct_handle
      pos:
        line_end: 30
        line_start: 26
        source_file: /src/selinux/libsemanage/src/direct_api.h
    typedefs: []
    union: []
- function_names:
  - node_print
  - node_parse
  - node_file_dbase_init
  - node_file_dbase_release
  source_file: /src/selinux/libsemanage/src/nodes_file.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/nodes_file.c
      type: semanage_node
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/nodes_file.c
      type: semanage_node_key
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/selinux/libsemanage/src/nodes_file.c
      type: dbase_file
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/src/database_file.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: "(*parse)(semanage_handle_t *handle, parse_info_t *info,\n\t\t     record_t
          *record)"
        type: int
      - name: "(*print)(semanage_handle_t *handle, const record_t *record,\n\t\t     FILE
          *str)"
        type: int
      item_type: struct
      name: record_file_table
      pos:
        line_end: 25
        line_start: 14
        source_file: /src/selinux/libsemanage/src/database_file.h
    typedefs:
    - item_type: typedef
      name: dbase_file_t
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/selinux/libsemanage/src/database_file.h
      type: dbase_file
    union: []
- function_names:
  - bzip
  - bunzip
  - map_compressed_file
  - unmap_compressed_file
  - write_compressed_file
  source_file: /src/selinux/libsemanage/src/compressed_file.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BZ2_MAGICSTR
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/selinux/libsemanage/src/compressed_file.c
      type_or_value: '"BZh"'
    - item_type: preproc_def
      name: BZ2_MAGICLEN
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/selinux/libsemanage/src/compressed_file.c
      type_or_value: (sizeof(BZ2_MAGICSTR) - 1)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/src/database.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: (*create)(struct semanage_handle *handle, record_t **rec)
        type: int
      - name: "(*key_extract)(struct semanage_handle *handle, const record_t *rec,\n\t\t\t
          \  record_key_t **key)"
        type: int
      - name: (*key_free)(record_key_t *key)
        type: void
      - name: (*compare)(const record_t *rec, const record_key_t *key)
        type: int
      - name: (*compare2)(const record_t *rec, const record_t *rec2)
        type: int
      - name: (*compare2_qsort)(const void *rec, const void *rec2)
        type: int
      - name: "(*clone)(struct semanage_handle *handle, const record_t *rec,\n\t\t
          \    record_t **new_rec)"
        type: int
      - name: (*free)(record_t *rec)
        type: void
      item_type: struct
      name: record_table
      pos:
        line_end: 53
        line_start: 20
        source_file: /src/selinux/libsemanage/src/database.h
    - fields:
      - name: "(*add)(struct semanage_handle *handle, dbase_t *dbase,\n\t\t   const
          record_key_t *key, const record_t *data)"
        type: int
      - name: "(*modify)(struct semanage_handle *handle, dbase_t *dbase,\n\t\t      const
          record_key_t *key, const record_t *data)"
        type: int
      - name: "(*set)(struct semanage_handle *handle, dbase_t *dbase,\n\t\t   const
          record_key_t *key, const record_t *data)"
        type: int
      - name: "(*del)(struct semanage_handle *handle, dbase_t *dbase,\n\t\t   const
          record_key_t *key)"
        type: int
      - name: (*clear)(struct semanage_handle *handle, dbase_t *dbase)
        type: int
      - name: "(*query)(struct semanage_handle *handle, dbase_t *dbase,\n\t\t     const
          record_key_t *key, record_t **response)"
        type: int
      - name: "(*exists)(struct semanage_handle *handle, dbase_t *dbase,\n\t\t      const
          record_key_t *key, int *response)"
        type: int
      - name: "(*count)(struct semanage_handle *handle, dbase_t *dbase,\n\t\t     unsigned
          int *response)"
        type: int
      - name: "(*iterate)(struct semanage_handle *handle, dbase_t *dbase,\n\t\t       int
          (*fn)(const record_t *record, void *varg),\n\t\t       void *fn_arg)"
        type: int
      - name: "(*list)(struct semanage_handle *handle, dbase_t *dbase,\n\t\t    record_t
          ***records, unsigned int *count)"
        type: int
      - name: (*cache)(struct semanage_handle *handle, dbase_t *dbase)
        type: int
      - name: (*drop_cache)(dbase_t *dbase)
        type: void
      - name: (*is_modified)(dbase_t *dbase)
        type: int
      - name: (*flush)(struct semanage_handle *handle, dbase_t *dbase)
        type: int
      - name: '*(*get_rtable)(dbase_t *dbase)'
        type: record_table_t
      item_type: struct
      name: dbase_table
      pos:
        line_end: 161
        line_start: 56
        source_file: /src/selinux/libsemanage/src/database.h
    - fields:
      - name: '*dbase'
        type: dbase_t
      - name: '*dtable'
        type: dbase_table_t
      item_type: struct
      name: dbase_config
      pos:
        line_end: 170
        line_start: 163
        source_file: /src/selinux/libsemanage/src/database.h
    typedefs:
    - item_type: typedef
      name: '*record_t'
      pos:
        line_end: 6
        line_start: 6
        source_file: /src/selinux/libsemanage/src/database.h
      type: void
    - item_type: typedef
      name: '*record_key_t'
      pos:
        line_end: 7
        line_start: 7
        source_file: /src/selinux/libsemanage/src/database.h
      type: void
    - item_type: typedef
      name: '*dbase_t'
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/selinux/libsemanage/src/database.h
      type: void
    union: []
- function_names:
  - semanage_ibendport_modify_local
  - semanage_ibendport_del_local
  - semanage_ibendport_query_local
  - semanage_ibendport_exists_local
  - semanage_ibendport_count_local
  - semanage_ibendport_iterate_local
  - semanage_ibendport_list_local
  - semanage_ibendport_validate_local
  source_file: /src/selinux/libsemanage/src/ibendports_local.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/ibendports_local.c
      type: semanage_ibendport_key
    - item_type: typedef
      name: record_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/ibendports_local.c
      type: semanage_ibendport
    union: []
- function_names:
  - user_base_policydb_dbase_init
  - user_base_policydb_dbase_release
  source_file: /src/selinux/libsemanage/src/users_base_policydb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_t
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/selinux/libsemanage/src/users_base_policydb.c
      type: semanage_user_base
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/selinux/libsemanage/src/users_base_policydb.c
      type: semanage_user_key
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/selinux/libsemanage/src/users_base_policydb.c
      type: dbase_policydb
    union: []
- function_names:
  - semanage_set_root
  - semanage_root
  - semanage_handle_create_with_path
  - semanage_handle_create
  - semanage_set_rebuild
  - semanage_set_reload
  - semanage_set_check_ext_changes
  - semanage_get_hll_compiler_path
  - semanage_set_create_store
  - semanage_get_disable_dontaudit
  - semanage_set_disable_dontaudit
  - semanage_get_preserve_tunables
  - semanage_set_preserve_tunables
  - semanage_get_ignore_module_cache
  - semanage_set_ignore_module_cache
  - semanage_set_check_contexts
  - semanage_get_default_priority
  - semanage_set_default_priority
  - semanage_is_connected
  - semanage_select_store
  - semanage_set_store_root
  - semanage_is_managed
  - semanage_mls_enabled
  - semanage_connect
  - semanage_access_check
  - semanage_disconnect
  - semanage_handle_destroy
  - semanage_begin_transaction
  - semanage_commit
  source_file: /src/selinux/libsemanage/src/handle.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEMANAGE_COMMIT_READ_WAIT
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/selinux/libsemanage/src/handle.c
      type_or_value: '-1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - iface_policydb_dbase_init
  - iface_policydb_dbase_release
  source_file: /src/selinux/libsemanage/src/interfaces_policydb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_t
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/selinux/libsemanage/src/interfaces_policydb.c
      type: semanage_iface
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/selinux/libsemanage/src/interfaces_policydb.c
      type: semanage_iface_key
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/selinux/libsemanage/src/interfaces_policydb.c
      type: dbase_policydb
    union: []
- function_names:
  - semanage_ibpkey_modify_local
  - semanage_ibpkey_del_local
  - semanage_ibpkey_query_local
  - semanage_ibpkey_exists_local
  - semanage_ibpkey_count_local
  - semanage_ibpkey_iterate_local
  - semanage_ibpkey_list_local
  - semanage_ibpkey_validate_local
  source_file: /src/selinux/libsemanage/src/ibpkeys_local.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/ibpkeys_local.c
      type: semanage_ibpkey_key
    - item_type: typedef
      name: record_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/ibpkeys_local.c
      type: semanage_ibpkey
    union: []
- function_names:
  - semanage_port_compare
  - semanage_port_compare2
  - semanage_port_compare2_qsort
  - semanage_port_key_create
  - semanage_port_key_extract
  - semanage_port_key_free
  - semanage_port_get_proto
  - semanage_port_set_proto
  - semanage_port_get_proto_str
  - semanage_port_get_low
  - semanage_port_get_high
  - semanage_port_set_port
  - semanage_port_set_range
  - semanage_port_get_con
  - semanage_port_set_con
  - semanage_port_create
  - semanage_port_clone
  - semanage_port_free
  source_file: /src/selinux/libsemanage/src/port_record.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: semanage_context_t
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/selinux/libsemanage/src/port_record.c
      type: sepol_context_t
    - item_type: typedef
      name: semanage_port_t
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/selinux/libsemanage/src/port_record.c
      type: sepol_port_t
    - item_type: typedef
      name: semanage_port_key_t
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/selinux/libsemanage/src/port_record.c
      type: sepol_port_key_t
    - item_type: typedef
      name: record_t
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/selinux/libsemanage/src/port_record.c
      type: semanage_port_t
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/selinux/libsemanage/src/port_record.c
      type: semanage_port_key_t
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/src/genhomedircon.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/src/utilities.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WARN_UNUSED
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/selinux/libsemanage/src/utilities.h
      type_or_value: __attribute__((__warn_unused_result__))
    structs:
    - fields:
      - name: '*data'
        type: char
      - name: '*next'
        type: struct list
      item_type: struct
      name: list
      pos:
        line_end: 38
        line_start: 35
        source_file: /src/selinux/libsemanage/src/utilities.h
    typedefs: []
    union: []
- function_names:
  - semanage_user_base_key_extract
  - semanage_user_base_compare
  - semanage_user_base_compare2
  - semanage_user_base_compare2_qsort
  - semanage_user_base_get_name
  - semanage_user_base_set_name
  - semanage_user_base_get_mlslevel
  - semanage_user_base_set_mlslevel
  - semanage_user_base_get_mlsrange
  - semanage_user_base_set_mlsrange
  - semanage_user_base_get_num_roles
  - semanage_user_base_add_role
  - semanage_user_base_del_role
  - semanage_user_base_has_role
  - semanage_user_base_get_roles
  - semanage_user_base_set_roles
  - semanage_user_base_create
  - semanage_user_base_clone
  - semanage_user_base_free
  source_file: /src/selinux/libsemanage/src/user_base_record.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: semanage_user_key_t
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/selinux/libsemanage/src/user_base_record.c
      type: sepol_user_key_t
    - item_type: typedef
      name: semanage_user_base_t
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/selinux/libsemanage/src/user_base_record.c
      type: sepol_user_t
    - item_type: typedef
      name: record_t
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/selinux/libsemanage/src/user_base_record.c
      type: semanage_user_base_t
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/selinux/libsemanage/src/user_base_record.c
      type: semanage_user_key_t
    union: []
- function_names:
  - dbase_activedb_cache
  - dbase_activedb_flush
  - dbase_activedb_init
  - dbase_activedb_release
  source_file: /src/selinux/libsemanage/src/database_activedb.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: llist
        type: dbase_llist_t
      - name: '*ratable'
        type: record_activedb_table_t
      item_type: struct
      name: dbase_activedb
      pos:
        line_end: 28
        line_start: 20
        source_file: /src/selinux/libsemanage/src/database_activedb.c
    typedefs:
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 8
        line_start: 8
        source_file: /src/selinux/libsemanage/src/database_activedb.c
      type: dbase_activedb
    union: []
- function_names:
  - ibpkey_print
  - ibpkey_parse
  - ibpkey_file_dbase_init
  - ibpkey_file_dbase_release
  source_file: /src/selinux/libsemanage/src/ibpkeys_file.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/ibpkeys_file.c
      type: semanage_ibpkey
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/ibpkeys_file.c
      type: semanage_ibpkey_key
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/selinux/libsemanage/src/ibpkeys_file.c
      type: dbase_file
    union: []
- function_names:
  - semanage_bool_modify_local
  - semanage_bool_del_local
  - semanage_bool_query_local
  - semanage_bool_exists_local
  - semanage_bool_count_local
  - semanage_bool_iterate_local
  - semanage_bool_list_local
  source_file: /src/selinux/libsemanage/src/booleans_local.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/booleans_local.c
      type: semanage_bool_key
    - item_type: typedef
      name: record_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/booleans_local.c
      type: semanage_bool
    union: []
- function_names:
  - semanage_seuser_query
  - semanage_seuser_exists
  - semanage_seuser_count
  - semanage_seuser_iterate
  - semanage_seuser_list
  source_file: /src/selinux/libsemanage/src/seusers_policy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/seusers_policy.c
      type: semanage_seuser_key
    - item_type: typedef
      name: record_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/seusers_policy.c
      type: semanage_seuser
    union: []
- function_names:
  - semanage_ibendport_compare
  - semanage_ibendport_compare2
  - semanage_ibendport_compare2_qsort
  - semanage_ibendport_key_create
  - semanage_ibendport_key_extract
  - semanage_ibendport_key_free
  - semanage_ibendport_get_ibdev_name
  - semanage_ibendport_set_ibdev_name
  - semanage_ibendport_get_port
  - semanage_ibendport_set_port
  - semanage_ibendport_get_con
  - semanage_ibendport_set_con
  - semanage_ibendport_create
  - semanage_ibendport_clone
  - semanage_ibendport_free
  source_file: /src/selinux/libsemanage/src/ibendport_record.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: semanage_context_t
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/selinux/libsemanage/src/ibendport_record.c
      type: sepol_context_t
    - item_type: typedef
      name: semanage_ibendport_t
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/selinux/libsemanage/src/ibendport_record.c
      type: sepol_ibendport_t
    - item_type: typedef
      name: semanage_ibendport_key_t
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/selinux/libsemanage/src/ibendport_record.c
      type: sepol_ibendport_key_t
    - item_type: typedef
      name: record_t
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/selinux/libsemanage/src/ibendport_record.c
      type: semanage_ibendport_t
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/selinux/libsemanage/src/ibendport_record.c
      type: semanage_ibendport_key_t
    union: []
- function_names:
  - semanage_port_query
  - semanage_port_exists
  - semanage_port_count
  - semanage_port_iterate
  - semanage_port_list
  source_file: /src/selinux/libsemanage/src/ports_policy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/ports_policy.c
      type: semanage_port_key
    - item_type: typedef
      name: record_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/ports_policy.c
      type: semanage_port
    union: []
- function_names:
  - semanage_msg_get_level
  - semanage_msg_get_channel
  - semanage_msg_get_fname
  - semanage_msg_default_handler
  - semanage_msg_relay_handler
  - semanage_msg_set_callback
  source_file: /src/selinux/libsemanage/src/debug.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - bool_policydb_dbase_init
  - bool_policydb_dbase_release
  source_file: /src/selinux/libsemanage/src/booleans_policydb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_t
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/selinux/libsemanage/src/booleans_policydb.c
      type: semanage_bool
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/selinux/libsemanage/src/booleans_policydb.c
      type: semanage_bool_key
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/selinux/libsemanage/src/booleans_policydb.c
      type: dbase_policydb
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/src/parse_utils.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: lineno
        type: unsigned int
      - name: '*orig_line'
        type: char
      - name: '*working_copy'
        type: char
      - name: '*ptr'
        type: char
      - name: '*filename'
        type: char
      - name: '*file_stream'
        type: FILE
      - name: '*parse_arg'
        type: void
      item_type: struct
      name: parse_info
      pos:
        line_end: 18
        line_start: 8
        source_file: /src/selinux/libsemanage/src/parse_utils.h
    typedefs: []
    union: []
- function_names:
  - dbase_llist_cache_init
  - dbase_llist_init
  - dbase_llist_set_modified
  - dbase_llist_is_modified
  - dbase_llist_get_rtable
  source_file: /src/selinux/libsemanage/src/database_llist.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*data'
        type: record_t
      - name: '*prev'
        type: struct cache_entry
      - name: '*next'
        type: struct cache_entry
      item_type: struct
      name: cache_entry
      pos:
        line_end: 13
        line_start: 9
        source_file: /src/selinux/libsemanage/src/database_llist.h
    - fields:
      - name: '*rtable'
        type: record_table_t
      - name: '*dtable'
        type: dbase_table_t
      - name: '*cache'
        type: cache_entry_t
      - name: '*cache_tail'
        type: cache_entry_t
      - name: cache_sz
        type: unsigned int
      - name: cache_serial
        type: int
      - name: modified
        type: int
      item_type: struct
      name: dbase_llist
      pos:
        line_end: 28
        line_start: 16
        source_file: /src/selinux/libsemanage/src/database_llist.h
    typedefs: []
    union: []
- function_names:
  - semanage_user_base_dbase_local
  - semanage_user_extra_dbase_local
  - semanage_user_dbase_local
  - semanage_port_dbase_local
  - semanage_ibpkey_dbase_local
  - semanage_ibendport_dbase_local
  - semanage_iface_dbase_local
  - semanage_bool_dbase_local
  - semanage_fcontext_dbase_local
  - semanage_seuser_dbase_local
  - semanage_node_dbase_local
  - semanage_user_base_dbase_policy
  - semanage_user_extra_dbase_policy
  - semanage_user_dbase_policy
  - semanage_port_dbase_policy
  - semanage_ibpkey_dbase_policy
  - semanage_ibendport_dbase_policy
  - semanage_iface_dbase_policy
  - semanage_bool_dbase_policy
  - semanage_fcontext_dbase_policy
  - semanage_fcontext_dbase_homedirs
  - semanage_seuser_dbase_policy
  - semanage_node_dbase_policy
  - semanage_bool_dbase_active
  source_file: /src/selinux/libsemanage/src/handle.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DBASE_COUNT
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '24'
    - item_type: preproc_def
      name: DBASE_LOCAL_USERS_BASE
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DBASE_LOCAL_USERS_EXTRA
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DBASE_LOCAL_USERS
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DBASE_LOCAL_PORTS
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '3'
    - item_type: preproc_def
      name: DBASE_LOCAL_INTERFACES
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '4'
    - item_type: preproc_def
      name: DBASE_LOCAL_BOOLEANS
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '5'
    - item_type: preproc_def
      name: DBASE_LOCAL_FCONTEXTS
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '6'
    - item_type: preproc_def
      name: DBASE_LOCAL_SEUSERS
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '7'
    - item_type: preproc_def
      name: DBASE_LOCAL_NODES
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '8'
    - item_type: preproc_def
      name: DBASE_LOCAL_IBPKEYS
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '9'
    - item_type: preproc_def
      name: DBASE_LOCAL_IBENDPORTS
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '10'
    - item_type: preproc_def
      name: DBASE_POLICY_USERS_BASE
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '11'
    - item_type: preproc_def
      name: DBASE_POLICY_USERS_EXTRA
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '12'
    - item_type: preproc_def
      name: DBASE_POLICY_USERS
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '13'
    - item_type: preproc_def
      name: DBASE_POLICY_PORTS
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '14'
    - item_type: preproc_def
      name: DBASE_POLICY_INTERFACES
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '15'
    - item_type: preproc_def
      name: DBASE_POLICY_BOOLEANS
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '16'
    - item_type: preproc_def
      name: DBASE_POLICY_FCONTEXTS
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '17'
    - item_type: preproc_def
      name: DBASE_POLICY_FCONTEXTS_H
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '18'
    - item_type: preproc_def
      name: DBASE_POLICY_SEUSERS
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '19'
    - item_type: preproc_def
      name: DBASE_POLICY_NODES
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '20'
    - item_type: preproc_def
      name: DBASE_POLICY_IBPKEYS
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '21'
    - item_type: preproc_def
      name: DBASE_POLICY_IBENDPORTS
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '22'
    - item_type: preproc_def
      name: DBASE_ACTIVE_BOOLEANS
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/selinux/libsemanage/src/handle.h
      type_or_value: '23'
    structs: []
    typedefs: []
    union: []
- function_names:
  - user_base_print
  - user_base_parse
  - user_base_file_dbase_init
  - user_base_file_dbase_release
  source_file: /src/selinux/libsemanage/src/users_base_file.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/users_base_file.c
      type: semanage_user_base
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/users_base_file.c
      type: semanage_user_key
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/selinux/libsemanage/src/users_base_file.c
      type: dbase_file
    union: []
- function_names:
  - dbase_file_cache
  - dbase_file_flush
  - dbase_file_init
  - dbase_file_release
  source_file: /src/selinux/libsemanage/src/database_file.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: llist
        type: dbase_llist_t
      - name: '*path[2]'
        type: char
      - name: '*rftable'
        type: record_file_table_t
      item_type: struct
      name: dbase_file
      pos:
        line_end: 36
        line_start: 25
        source_file: /src/selinux/libsemanage/src/database_file.c
    typedefs:
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 8
        line_start: 8
        source_file: /src/selinux/libsemanage/src/database_file.c
      type: dbase_file
    union: []
- function_names:
  - bool_print
  - bool_parse
  - bool_file_dbase_init
  - bool_file_dbase_release
  source_file: /src/selinux/libsemanage/src/booleans_file.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/booleans_file.c
      type: semanage_bool
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/booleans_file.c
      type: semanage_bool_key
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/selinux/libsemanage/src/booleans_file.c
      type: dbase_file
    union: []
- function_names:
  - msg_write
  - ERR
  - INFO
  - WARN
  source_file: /src/selinux/libsemanage/src/debug.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: STATUS_SUCCESS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/selinux/libsemanage/src/debug.h
      type_or_value: '0'
    - item_type: preproc_def
      name: STATUS_ERR
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/selinux/libsemanage/src/debug.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: STATUS_NODATA
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/selinux/libsemanage/src/debug.h
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - semanage_init_paths
  - semanage_init_store_paths
  - semanage_init_final
  - semanage_init_final_suffix
  - semanage_init_final_paths
  - semanage_check_init
  - semanage_fname
  - semanage_path
  - semanage_final_path
  - semanage_conf_path
  - mkdir_recursive
  - semanage_create_store
  - semanage_store_access_check
  - semanage_filename_select
  - semanage_copy_file
  - semanage_rename
  - semanage_copy_dir
  - semanage_copy_dir_flags
  - semanage_remove_directory
  - semanage_mkpath
  - semanage_mkdir
  - semanage_make_sandbox
  - semanage_make_final
  - semanage_get_active_modules_cmp
  - semanage_get_cil_paths
  - semanage_get_active_modules
  - append
  - append_str
  - append_arg
  - free_argv
  - split_args
  - semanage_exec_prog
  - semanage_reload_policy
  - semanage_split_fc
  - sefcontext_compile
  - semanage_validate_and_compile_fcontexts
  - semanage_install_final_tmp
  - semanage_commit_sandbox
  - semanage_install_sandbox
  - semanage_get_lock
  - semanage_get_trans_lock
  - semanage_get_active_lock
  - semanage_release_trans_lock
  - semanage_release_active_lock
  - semanage_direct_get_serial
  - semanage_load_files
  - semanage_read_policydb
  - semanage_write_policydb
  - semanage_verify_modules
  - semanage_verify_linked
  - semanage_verify_kernel
  - semanage_fc_node_destroy
  - semanage_fc_node_list_destroy
  - semanage_fc_bucket_list_destroy
  - semanage_fc_compare
  - semanage_fc_merge
  - semanage_fc_merge_sort
  - semanage_fc_find_meta
  - semanage_strnchr
  - semanage_get_line_end
  - semanage_fc_sort
  - semanage_nc_destroy_ruletab
  - semanage_nc_sort
  - log_callback_mute
  - semanage_setfiles
  source_file: /src/selinux/libsemanage/src/semanage_store.c
  types:
    enum:
    - enumerators:
      - name: SEMANAGE_ROOT
      - name: SEMANAGE_READ_LOCK
      - name: SEMANAGE_NUM_FILES
      - name: SEMANAGE_TRANS_LOCK
      item_type: enum
      name: semanage_file_defs
      pos:
        line_end: 74
        line_start: 69
        source_file: /src/selinux/libsemanage/src/semanage_store.c
    preproc_defs:
    - item_type: preproc_def
      name: SEMANAGE_CONF_FILE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/selinux/libsemanage/src/semanage_store.c
      type_or_value: '"semanage.conf"'
    - item_type: preproc_def
      name: NC_SORT_NAMES
      pos:
        line_end: 2900
        line_start: 2899
        source_file: /src/selinux/libsemanage/src/semanage_store.c
      type_or_value: '{ "pre", "base", "module", "local", "post" }'
    - item_type: preproc_def
      name: NC_SORT_NAMES_LEN
      pos:
        line_end: 2901
        line_start: 2900
        source_file: /src/selinux/libsemanage/src/semanage_store.c
      type_or_value: '{ 3, 4, 6, 5, 4 }'
    - item_type: preproc_def
      name: NC_SORT_NEL
      pos:
        line_end: 2902
        line_start: 2901
        source_file: /src/selinux/libsemanage/src/semanage_store.c
      type_or_value: '5'
    structs:
    - fields:
      - name: '*path'
        type: char
      - name: '*file_type'
        type: char
      - name: '*context'
        type: char
      - name: path_len
        type: size_t
      - name: effective_len
        type: size_t
      - name: type_len
        type: size_t
      - name: context_len
        type: size_t
      - name: meta
        type: int
      - name: '*next'
        type: struct semanage_file_context_node
      item_type: struct
      name: semanage_file_context_node
      pos:
        line_end: 143
        line_start: 133
        source_file: /src/selinux/libsemanage/src/semanage_store.c
    - fields:
      - name: '*data'
        type: semanage_file_context_node_t
      - name: '*next'
        type: struct semanage_file_context_bucket
      item_type: struct
      name: semanage_file_context_bucket
      pos:
        line_end: 151
        line_start: 148
        source_file: /src/selinux/libsemanage/src/semanage_store.c
    - fields:
      - name: '*rule'
        type: char
      - name: rule_len
        type: size_t
      - name: '*next'
        type: struct semanage_netfilter_context_node
      item_type: struct
      name: semanage_netfilter_context_node
      pos:
        line_end: 159
        line_start: 155
        source_file: /src/selinux/libsemanage/src/semanage_store.c
    typedefs:
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/selinux/libsemanage/src/semanage_store.c
      type: dbase_policydb
    union: []
- function_names:
  - semanage_iface_compare
  - semanage_iface_compare2
  - semanage_iface_compare2_qsort
  - semanage_iface_key_create
  - semanage_iface_key_extract
  - semanage_iface_key_free
  - semanage_iface_get_name
  - semanage_iface_set_name
  - semanage_iface_get_ifcon
  - semanage_iface_set_ifcon
  - semanage_iface_get_msgcon
  - semanage_iface_set_msgcon
  - semanage_iface_create
  - semanage_iface_clone
  - semanage_iface_free
  source_file: /src/selinux/libsemanage/src/iface_record.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: semanage_context_t
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/selinux/libsemanage/src/iface_record.c
      type: sepol_context_t
    - item_type: typedef
      name: semanage_iface_t
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/selinux/libsemanage/src/iface_record.c
      type: sepol_iface_t
    - item_type: typedef
      name: semanage_iface_key_t
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/selinux/libsemanage/src/iface_record.c
      type: sepol_iface_key_t
    - item_type: typedef
      name: record_t
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/selinux/libsemanage/src/iface_record.c
      type: sepol_iface_t
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/selinux/libsemanage/src/iface_record.c
      type: sepol_iface_key_t
    union: []
- function_names:
  - ibendport_print
  - ibendport_parse
  - ibendport_file_dbase_init
  - ibendport_file_dbase_release
  source_file: /src/selinux/libsemanage/src/ibendports_file.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/ibendports_file.c
      type: semanage_ibendport
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/ibendports_file.c
      type: semanage_ibendport_key
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/selinux/libsemanage/src/ibendports_file.c
      type: dbase_file
    union: []
- function_names:
  - node_policydb_dbase_init
  - node_policydb_dbase_release
  source_file: /src/selinux/libsemanage/src/nodes_policydb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_t
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/selinux/libsemanage/src/nodes_policydb.c
      type: semanage_node
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/selinux/libsemanage/src/nodes_policydb.c
      type: semanage_node_key
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/selinux/libsemanage/src/nodes_policydb.c
      type: dbase_policydb
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/src/ibendport_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ibendport_policydb_dbase_init
  - ibendport_policydb_dbase_release
  source_file: /src/selinux/libsemanage/src/ibendports_policydb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_t
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/selinux/libsemanage/src/ibendports_policydb.c
      type: semanage_ibendport
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/selinux/libsemanage/src/ibendports_policydb.c
      type: semanage_ibendport_key
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/selinux/libsemanage/src/ibendports_policydb.c
      type: dbase_policydb
    union: []
- function_names:
  - semanage_iface_modify_local
  - semanage_iface_del_local
  - semanage_iface_query_local
  - semanage_iface_exists_local
  - semanage_iface_count_local
  - semanage_iface_iterate_local
  - semanage_iface_list_local
  source_file: /src/selinux/libsemanage/src/interfaces_local.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/interfaces_local.c
      type: semanage_iface_key
    - item_type: typedef
      name: record_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/interfaces_local.c
      type: semanage_iface
    union: []
- function_names:
  - port_print
  - port_parse
  - port_file_dbase_init
  - port_file_dbase_release
  source_file: /src/selinux/libsemanage/src/ports_file.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/ports_file.c
      type: semanage_port
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/ports_file.c
      type: semanage_port_key
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/selinux/libsemanage/src/ports_file.c
      type: dbase_file
    union: []
- function_names:
  - semanage_iface_query
  - semanage_iface_exists
  - semanage_iface_count
  - semanage_iface_iterate
  - semanage_iface_list
  source_file: /src/selinux/libsemanage/src/interfaces_policy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/interfaces_policy.c
      type: semanage_iface_key
    - item_type: typedef
      name: record_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/interfaces_policy.c
      type: semanage_iface
    union: []
- function_names:
  - semanage_node_modify_local
  - semanage_node_del_local
  - semanage_node_query_local
  - semanage_node_exists_local
  - semanage_node_count_local
  - semanage_node_iterate_local
  - semanage_node_list_local
  source_file: /src/selinux/libsemanage/src/nodes_local.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/nodes_local.c
      type: semanage_node_key
    - item_type: typedef
      name: record_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/nodes_local.c
      type: semanage_node
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/src/user_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: semanage_user_base_t
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/selinux/libsemanage/src/user_internal.h
      type: semanage_user_base
    - item_type: typedef
      name: semanage_user_extra_t
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/selinux/libsemanage/src/user_internal.h
      type: semanage_user_extra
    union: []
- function_names:
  - semanage_user_extra_key_extract
  - semanage_user_extra_compare
  - semanage_user_extra_compare2
  - semanage_user_extra_compare2_qsort
  - semanage_user_extra_get_name
  - semanage_user_extra_set_name
  - semanage_user_extra_get_prefix
  - semanage_user_extra_set_prefix
  - semanage_user_extra_create
  - semanage_user_extra_free
  - semanage_user_extra_clone
  source_file: /src/selinux/libsemanage/src/user_extra_record.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*prefix'
        type: char
      item_type: struct
      name: semanage_user_extra
      pos:
        line_end: 31
        line_start: 25
        source_file: /src/selinux/libsemanage/src/user_extra_record.c
    typedefs:
    - item_type: typedef
      name: semanage_user_key_t
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/selinux/libsemanage/src/user_extra_record.c
      type: sepol_user_key_t
    - item_type: typedef
      name: record_t
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/selinux/libsemanage/src/user_extra_record.c
      type: semanage_user_extra
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/selinux/libsemanage/src/user_extra_record.c
      type: semanage_user_key_t
    union: []
- function_names:
  - semanage_user_key_create
  - semanage_user_key_extract
  - semanage_user_key_free
  - semanage_user_key_unpack
  - semanage_user_compare
  - semanage_user_compare2
  - semanage_user_compare2_qsort
  - semanage_user_get_name
  - semanage_user_set_name
  - semanage_user_get_prefix
  - semanage_user_set_prefix
  - semanage_user_get_mlslevel
  - semanage_user_set_mlslevel
  - semanage_user_get_mlsrange
  - semanage_user_set_mlsrange
  - semanage_user_get_num_roles
  - semanage_user_add_role
  - semanage_user_del_role
  - semanage_user_has_role
  - semanage_user_get_roles
  - semanage_user_set_roles
  - semanage_user_create
  - semanage_user_clone
  - semanage_user_free
  - semanage_user_join
  - semanage_user_split
  source_file: /src/selinux/libsemanage/src/user_record.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*base'
        type: semanage_user_base_t
      - name: '*extra'
        type: semanage_user_extra_t
      item_type: struct
      name: semanage_user
      pos:
        line_end: 29
        line_start: 25
        source_file: /src/selinux/libsemanage/src/user_record.c
    typedefs:
    - item_type: typedef
      name: semanage_user_key_t
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/selinux/libsemanage/src/user_record.c
      type: sepol_user_key_t
    - item_type: typedef
      name: record_t
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/selinux/libsemanage/src/user_record.c
      type: semanage_user
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/selinux/libsemanage/src/user_record.c
      type: semanage_user_key_t
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/src/seuser_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/src/database_join.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: "(*join)(semanage_handle_t *handle, const record1_t *record1,\n\t\t
          \   const record2_t *record2, record_t **result)"
        type: int
      - name: "(*split)(semanage_handle_t *handle, const record_t *record,\n\t\t     record1_t
          **split1, record2_t **split2)"
        type: int
      item_type: struct
      name: record_join_table
      pos:
        line_end: 28
        line_start: 18
        source_file: /src/selinux/libsemanage/src/database_join.h
    typedefs:
    - item_type: typedef
      name: '*record1_t'
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/selinux/libsemanage/src/database_join.h
      type: void
    - item_type: typedef
      name: '*record2_t'
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/selinux/libsemanage/src/database_join.h
      type: void
    - item_type: typedef
      name: dbase_join_t
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/selinux/libsemanage/src/database_join.h
      type: dbase_join
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/src/modules.h
  types:
    enum:
    - enumerators:
      - name: SEMANAGE_MODULE_PATH_PRIORITY
      - name: SEMANAGE_MODULE_PATH_LANG_EXT
      - name: SEMANAGE_MODULE_PATH_NAME
      - name: SEMANAGE_MODULE_PATH_CIL
      - name: SEMANAGE_MODULE_PATH_HLL
      - name: SEMANAGE_MODULE_PATH_DISABLED
      item_type: enum
      name: semanage_module_path_type
      pos:
        line_end: 91
        line_start: 84
        source_file: /src/selinux/libsemanage/src/modules.h
    preproc_defs: []
    structs:
    - fields:
      - name: priority
        type: uint16_t
      - name: '*name'
        type: char
      - name: '*lang_ext'
        type: char
      - name: enabled
        type: int
      item_type: struct
      name: semanage_module_info
      pos:
        line_end: 39
        line_start: 34
        source_file: /src/selinux/libsemanage/src/modules.h
    - fields:
      - name: priority
        type: uint16_t
      - name: '*name'
        type: char
      item_type: struct
      name: semanage_module_key
      pos:
        line_end: 73
        line_start: 70
        source_file: /src/selinux/libsemanage/src/modules.h
    typedefs: []
    union: []
- function_names:
  - semanage_user_modify_local
  - lookup_seuser
  - semanage_user_del_local
  - semanage_user_query_local
  - semanage_user_exists_local
  - semanage_user_count_local
  - semanage_user_iterate_local
  - semanage_user_list_local
  source_file: /src/selinux/libsemanage/src/users_local.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/users_local.c
      type: semanage_user_key
    - item_type: typedef
      name: record_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/users_local.c
      type: semanage_user
    union: []
- function_names:
  - semanage_user_query
  - semanage_user_exists
  - semanage_user_count
  - semanage_user_iterate
  - semanage_user_list
  source_file: /src/selinux/libsemanage/src/users_policy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/users_policy.c
      type: semanage_user_key
    - item_type: typedef
      name: record_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/users_policy.c
      type: semanage_user
    union: []
- function_names:
  - user_join_dbase_init
  - user_join_dbase_release
  source_file: /src/selinux/libsemanage/src/users_join.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/users_join.c
      type: semanage_user
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/users_join.c
      type: semanage_user_key
    - item_type: typedef
      name: record1_t
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/selinux/libsemanage/src/users_join.c
      type: semanage_user_base
    - item_type: typedef
      name: record2_t
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/selinux/libsemanage/src/users_join.c
      type: semanage_user_extra
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/selinux/libsemanage/src/users_join.c
      type: dbase_join
    union: []
- function_names:
  - semanage_findval
  - semanage_is_prefix
  - semanage_split_on_space
  - semanage_split
  - semanage_list_push
  - semanage_list_pop
  - semanage_list_destroy
  - semanage_list_find
  - semanage_list_sort
  - semanage_cmp_plist_t
  - semanage_str_count
  - semanage_rtrim
  - semanage_str_replace
  - list_addafter_controlmem
  - semanage_slurp_file_filter
  - write_full
  - semanage_basename
  source_file: /src/selinux/libsemanage/src/utilities.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/src/policy.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: (*get_serial)(struct semanage_handle *)
        type: int
      - name: (*destroy)(struct semanage_handle *)
        type: void
      - name: (*disconnect)(struct semanage_handle *)
        type: int
      - name: (*begin_trans)(struct semanage_handle *)
        type: int
      - name: (*commit)(struct semanage_handle *)
        type: int
      - name: "(*install)(struct semanage_handle *, char *, size_t, const char *,\n\t\t
          \      const char *)"
        type: int
      - name: (*install_file)(struct semanage_handle *, const char *)
        type: int
      - name: "(*extract)(struct semanage_handle *, semanage_module_key_t *,\n\t\t
          \      int extract_cil, void **, size_t *,\n\t\t       semanage_module_info_t
          **)"
        type: int
      - name: (*remove)(struct semanage_handle *, char *)
        type: int
      - name: (*list)(struct semanage_handle *, semanage_module_info_t **, int *)
        type: int
      - name: "(*get_enabled)(struct semanage_handle *sh,\n\t\t\t   const semanage_module_key_t
          *key, int *enabled)"
        type: int
      - name: "(*set_enabled)(struct semanage_handle *sh,\n\t\t\t   const semanage_module_key_t
          *key, int enabled)"
        type: int
      - name: "(*get_module_info)(struct semanage_handle *,\n\t\t\t       const semanage_module_key_t
          *,\n\t\t\t       semanage_module_info_t **)"
        type: int
      - name: "(*list_all)(struct semanage_handle *, semanage_module_info_t **,\n\t\t\tint
          *)"
        type: int
      - name: "(*install_info)(struct semanage_handle *,\n\t\t\t    const semanage_module_info_t
          *, char *, size_t)"
        type: int
      - name: "(*remove_key)(struct semanage_handle *,\n\t\t\t  const semanage_module_key_t
          *)"
        type: int
      item_type: struct
      name: semanage_policy_table
      pos:
        line_end: 89
        line_start: 30
        source_file: /src/selinux/libsemanage/src/policy.h
    typedefs: []
    union: []
- function_names:
  - semanage_seuser_key_create
  - semanage_seuser_key_extract
  - semanage_seuser_key_free
  - semanage_seuser_compare
  - semanage_seuser_compare2
  - semanage_seuser_compare2_qsort
  - semanage_seuser_get_name
  - semanage_seuser_set_name
  - semanage_seuser_get_sename
  - semanage_seuser_set_sename
  - semanage_seuser_get_mlsrange
  - semanage_seuser_set_mlsrange
  - semanage_seuser_create
  - semanage_seuser_clone
  - semanage_seuser_free
  source_file: /src/selinux/libsemanage/src/seuser_record.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*sename'
        type: char
      - name: '*mls_range'
        type: char
      item_type: struct
      name: semanage_seuser
      pos:
        line_end: 31
        line_start: 21
        source_file: /src/selinux/libsemanage/src/seuser_record.c
    - fields:
      - name: '*name'
        type: char
      item_type: struct
      name: semanage_seuser_key
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/selinux/libsemanage/src/seuser_record.c
    typedefs:
    - item_type: typedef
      name: record_t
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/selinux/libsemanage/src/seuser_record.c
      type: semanage_seuser
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/selinux/libsemanage/src/seuser_record.c
      type: semanage_seuser_key
    union: []
- function_names:
  - ibpkey_policydb_dbase_init
  - ibpkey_policydb_dbase_release
  source_file: /src/selinux/libsemanage/src/ibpkeys_policydb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_t
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/selinux/libsemanage/src/ibpkeys_policydb.c
      type: semanage_ibpkey
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/selinux/libsemanage/src/ibpkeys_policydb.c
      type: semanage_ibpkey_key
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/selinux/libsemanage/src/ibpkeys_policydb.c
      type: dbase_policydb
    union: []
- function_names:
  - ignore_free
  - ignore_setup
  - ignore
  - prefix_is_homedir_role
  - default_shell_list
  - is_nologin_shell
  - get_shell_list
  - fcontext_matches
  - rstrip_oexpr_len
  - rstrip_oexpr
  - parse_uid_config
  - get_home_dirs
  - genhomedircon_warn_conv_fail
  - write_file_context_header
  - HOME_ROOT_PRED
  - HOME_DIR_PRED
  - USERNAME_CONTEXT_PRED
  - USER_CONTEXT_PRED
  - STR_COMPARATOR
  - make_template
  - replace_all
  - extract_context
  - check_line
  - write_replacements
  - write_contexts
  - write_home_dir_context
  - write_home_root_context
  - write_username_context
  - write_user_context
  - seuser_sort_func
  - user_sort_func
  - name_user_cmp
  - push_user_entry
  - pop_user_entry
  - setup_fallback_user
  - find_user
  - add_user
  - get_group_users
  - get_users
  - write_gen_home_dir_context
  - write_context_file
  - semanage_genhomedircon
  source_file: /src/selinux/libsemanage/src/genhomedircon.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PATH_ETC_USERADD
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: '"/etc/default/useradd"'
    - item_type: preproc_def
      name: PATH_ETC_LIBUSER
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: '"/etc/libuser.conf"'
    - item_type: preproc_def
      name: PATH_DEFAULT_HOME
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: '"/home"'
    - item_type: preproc_def
      name: PATH_EXPORT_HOME
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: '"/export/home"'
    - item_type: preproc_def
      name: PATH_ETC_LOGIN_DEFS
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: '"/etc/login.defs"'
    - item_type: preproc_def
      name: PATH_SHELLS_FILE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: '"/etc/shells"'
    - item_type: preproc_def
      name: PATH_NOLOGIN_SHELL
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: '"/sbin/nologin"'
    - item_type: preproc_def
      name: FALLBACK_MINUID
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: '1000'
    - item_type: preproc_def
      name: FALLBACK_MAXUID
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: '60000'
    - item_type: preproc_def
      name: FALLBACK_LU_UIDNUMBER
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: '500'
    - item_type: preproc_def
      name: COMMENT_FILE_CONTEXT_HEADER
      pos:
        line_end: 77
        line_start: 72
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: "\"#\\n#\\n# \"                                                 \\\n\t\"User-specific
        file contexts, generated via libsemanage\\n\" \\\n\t\"# use semanage command
        to manage system users to change\"  \\\n\t\" the file_context\\n#\\n#\\n\""
    - item_type: preproc_def
      name: COMMENT_USER_HOME_CONTEXT
      pos:
        line_end: 81
        line_start: 78
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: "\"\\n\\n#\\n# Home Context for user %s\" \\\n\t\"\\n#\\n\\n\""
    - item_type: preproc_def
      name: TEMPLATE_HOME_ROOT
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: '"HOME_ROOT"'
    - item_type: preproc_def
      name: TEMPLATE_HOME_DIR
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: '"HOME_DIR"'
    - item_type: preproc_def
      name: TEMPLATE_USER
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: '"USER"'
    - item_type: preproc_def
      name: TEMPLATE_ROLE
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: '"ROLE"'
    - item_type: preproc_def
      name: TEMPLATE_USERNAME
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: '"%{USERNAME}"'
    - item_type: preproc_def
      name: TEMPLATE_USERID
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: '"%{USERID}"'
    - item_type: preproc_def
      name: FALLBACK_SENAME
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: '"user_u"'
    - item_type: preproc_def
      name: FALLBACK_PREFIX
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: '"user"'
    - item_type: preproc_def
      name: FALLBACK_LEVEL
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: '"s0"'
    - item_type: preproc_def
      name: FALLBACK_NAME
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: '"[^/]+"'
    - item_type: preproc_def
      name: FALLBACK_UIDGID
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: '"[0-9]+"'
    - item_type: preproc_def
      name: DEFAULT_LOGIN
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: '"__default__"'
    - item_type: preproc_def
      name: CONTEXT_NONE
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
      type_or_value: '"<<none>>"'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: '*uid'
        type: char
      - name: '*gid'
        type: char
      - name: '*sename'
        type: char
      - name: '*prefix'
        type: char
      - name: '*home'
        type: char
      - name: '*level'
        type: char
      - name: '*login'
        type: char
      - name: '*homedir_role'
        type: char
      - name: '*next'
        type: struct user_entry
      item_type: struct
      name: user_entry
      pos:
        line_end: 113
        line_start: 102
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
    - fields:
      - name: '*fcfilepath'
        type: char
      - name: usepasswd
        type: int
      - name: '*homedir_template_path'
        type: char
      - name: '*fallback'
        type: genhomedircon_user_entry_t
      - name: '*h_semanage'
        type: semanage_handle_t
      - name: '*policydb'
        type: sepol_policydb_t
      item_type: struct
      name: genhomedircon_settings_t
      pos:
        line_end: 122
        line_start: 115
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
    - fields:
      - name: '*search_for'
        type: char
      - name: '*replace_with'
        type: char
      item_type: struct
      name: replacement_pair_t
      pos:
        line_end: 127
        line_start: 124
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
    - fields:
      - name: '*dir'
        type: char
      - name: matched
        type: int
      item_type: struct
      name: fc_match_handle_t
      pos:
        line_end: 132
        line_start: 129
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
    - fields:
      - name: '*next'
        type: struct IgnoreDir
      - name: '*dir'
        type: char
      item_type: struct
      name: IgnoreDir
      pos:
        line_end: 137
        line_start: 134
        source_file: /src/selinux/libsemanage/src/genhomedircon.c
    typedefs: []
    union: []
- function_names:
  - parse_init
  - parse_release
  - parse_open
  - parse_close
  - parse_dispose_line
  - parse_skip_space
  - parse_assert_noeof
  - parse_assert_space
  - parse_assert_ch
  - parse_assert_str
  - parse_optional_ch
  - parse_optional_str
  - parse_fetch_int
  - parse_fetch_string
  source_file: /src/selinux/libsemanage/src/parse_utils.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - semanage_bool_key_create
  - semanage_bool_key_extract
  - semanage_bool_key_free
  - semanage_bool_compare
  - semanage_bool_compare2
  - semanage_bool_compare2_qsort
  - semanage_bool_get_name
  - semanage_bool_set_name
  - semanage_bool_get_value
  - semanage_bool_set_value
  - semanage_bool_create
  - semanage_bool_clone
  - semanage_bool_free
  source_file: /src/selinux/libsemanage/src/boolean_record.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: semanage_bool_t
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/selinux/libsemanage/src/boolean_record.c
      type: sepol_bool_t
    - item_type: typedef
      name: semanage_bool_key_t
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/selinux/libsemanage/src/boolean_record.c
      type: sepol_bool_key_t
    - item_type: typedef
      name: record_t
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/selinux/libsemanage/src/boolean_record.c
      type: semanage_bool_t
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/selinux/libsemanage/src/boolean_record.c
      type: semanage_bool_key_t
    union: []
- function_names:
  - semanage_node_compare
  - semanage_node_compare2
  - semanage_node_compare2_qsort
  - semanage_node_key_create
  - semanage_node_key_extract
  - semanage_node_key_free
  - semanage_node_get_addr
  - semanage_node_get_addr_bytes
  - semanage_node_set_addr
  - semanage_node_set_addr_bytes
  - semanage_node_get_mask
  - semanage_node_get_mask_bytes
  - semanage_node_set_mask
  - semanage_node_set_mask_bytes
  - semanage_node_get_proto
  - semanage_node_set_proto
  - semanage_node_get_proto_str
  - semanage_node_get_con
  - semanage_node_set_con
  - semanage_node_create
  - semanage_node_clone
  - semanage_node_free
  source_file: /src/selinux/libsemanage/src/node_record.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: semanage_context_t
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/selinux/libsemanage/src/node_record.c
      type: sepol_context_t
    - item_type: typedef
      name: semanage_node_t
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/selinux/libsemanage/src/node_record.c
      type: sepol_node_t
    - item_type: typedef
      name: semanage_node_key_t
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/selinux/libsemanage/src/node_record.c
      type: sepol_node_key_t
    - item_type: typedef
      name: record_t
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/selinux/libsemanage/src/node_record.c
      type: semanage_node_t
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/selinux/libsemanage/src/node_record.c
      type: semanage_node_key_t
    union: []
- function_names:
  - dbase_llist_needs_resync
  - dbase_llist_cache_prepend
  - dbase_llist_drop_cache
  - dbase_llist_set_serial
  - dbase_llist_cache_locate
  - dbase_llist_exists
  - dbase_llist_add
  - dbase_llist_set
  - dbase_llist_modify
  - dbase_llist_count
  - dbase_llist_query
  - dbase_llist_iterate
  - dbase_llist_del
  - dbase_llist_clear
  - dbase_llist_list
  source_file: /src/selinux/libsemanage/src/database_llist.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 7
        line_start: 7
        source_file: /src/selinux/libsemanage/src/database_llist.c
      type: dbase_llist
    union: []
- function_names:
  - user_extra_print
  - user_extra_parse
  - user_extra_file_dbase_init
  - user_extra_file_dbase_release
  source_file: /src/selinux/libsemanage/src/users_extra_file.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/users_extra_file.c
      type: semanage_user_extra
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/users_extra_file.c
      type: semanage_user_key
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/selinux/libsemanage/src/users_extra_file.c
      type: dbase_file
    union: []
- function_names:
  - port_policydb_dbase_init
  - port_policydb_dbase_release
  source_file: /src/selinux/libsemanage/src/ports_policydb.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_t
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/selinux/libsemanage/src/ports_policydb.c
      type: semanage_port
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/selinux/libsemanage/src/ports_policydb.c
      type: semanage_port_key
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/selinux/libsemanage/src/ports_policydb.c
      type: dbase_policydb
    union: []
- function_names:
  - ARRAY_SIZE
  - semanage_direct_is_managed
  - semanage_direct_connect
  - semanage_direct_destroy
  - semanage_remove_tmps
  - semanage_direct_disconnect
  - semanage_direct_begintrans
  - parse_module_headers
  - write_file
  - semanage_direct_update_user_extra
  - semanage_direct_update_seuser
  - append_read
  - pump_pipes
  - ERR_CHILD_STDERR
  - semanage_pipe_data
  - semanage_direct_write_langext
  - update_checksum_with_len
  - update_checksum_with_bool
  - semanage_compile_module
  - modinfo_cmp
  - semanage_compile_hll_modules
  - semanage_compare_checksum
  - semanage_write_modules_checksum
  - copy_file_if_exists
  - semanage_direct_commit
  - semanage_direct_install
  - semanage_direct_install_file
  - semanage_direct_extract
  - semanage_direct_remove
  - semanage_direct_list
  - semanage_direct_get_enabled
  - semanage_direct_set_enabled
  - semanage_direct_access_check
  - semanage_direct_mls_enabled
  - semanage_direct_get_module_info
  - semanage_direct_set_module_info
  - semanage_priorities_filename_select
  - semanage_modules_filename_select
  - semanage_direct_list_all
  - semanage_direct_install_info
  - semanage_direct_remove_key
  source_file: /src/selinux/libsemanage/src/direct_api.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PIPE_READ
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/selinux/libsemanage/src/direct_api.c
      type_or_value: '0'
    - item_type: preproc_def
      name: PIPE_WRITE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/selinux/libsemanage/src/direct_api.c
      type_or_value: '1'
    structs:
    - fields:
      - name: disable_dontaudit
        type: int
      - name: preserve_tunables
        type: int
      - name: target_platform
        type: int
      - name: policyvers
        type: int
      item_type: struct
      name: extra_checksum_params
      pos:
        line_end: 1086
        line_start: 1081
        source_file: /src/selinux/libsemanage/src/direct_api.c
    typedefs: []
    union: []
- function_names:
  - semanage_fcontext_query
  - semanage_fcontext_exists
  - semanage_fcontext_count
  - semanage_fcontext_iterate
  - semanage_fcontext_list
  - semanage_fcontext_list_homedirs
  source_file: /src/selinux/libsemanage/src/fcontexts_policy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/fcontexts_policy.c
      type: semanage_fcontext_key
    - item_type: typedef
      name: record_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/fcontexts_policy.c
      type: semanage_fcontext
    union: []
- function_names:
  - semanage_module_install
  - semanage_module_install_file
  - semanage_module_extract
  - semanage_module_upgrade_file
  - semanage_module_remove
  - semanage_module_list
  - semanage_module_info_datum_destroy
  - semanage_module_list_nth
  - semanage_module_get_name
  - semanage_module_get_version
  - semanage_module_info_create
  - semanage_module_info_destroy
  - semanage_module_info_init
  - semanage_module_info_clone
  - semanage_module_info_get_priority
  - semanage_module_info_get_name
  - semanage_module_info_get_lang_ext
  - semanage_module_info_get_enabled
  - semanage_module_info_set_priority
  - semanage_module_info_set_name
  - semanage_module_info_set_lang_ext
  - semanage_module_info_set_enabled
  - semanage_module_get_path
  - semanage_module_key_create
  - semanage_module_key_destroy
  - semanage_module_key_init
  - semanage_module_key_get_name
  - semanage_module_key_get_priority
  - semanage_module_key_set_name
  - semanage_module_key_set_priority
  - semanage_module_get_enabled
  - semanage_module_set_enabled
  - semanage_string_to_priority
  - semanage_module_info_validate
  - semanage_module_validate_priority
  - semanage_module_validate_name
  - ISVALIDCHAR
  - semanage_module_validate_enabled
  - semanage_module_validate_lang_ext
  - ISVALIDCHAR
  - semanage_module_get_module_info
  - semanage_module_list_all
  - semanage_module_install_info
  - semanage_module_remove_key
  - semanage_hash_to_checksum_string
  - semanage_module_compute_checksum
  source_file: /src/selinux/libsemanage/src/modules.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PRIORITY_MIN
      pos:
        line_end: 748
        line_start: 747
        source_file: /src/selinux/libsemanage/src/modules.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PRIORITY_MAX
      pos:
        line_end: 749
        line_start: 748
        source_file: /src/selinux/libsemanage/src/modules.c
      type_or_value: '999'
    structs: []
    typedefs: []
    union: []
- function_names:
  - assert_init
  - enter_ro
  - exit_ro
  - enter_rw
  - dbase_modify
  - dbase_set
  - dbase_del
  - dbase_query
  - dbase_exists
  - dbase_count
  - dbase_iterate
  - dbase_list
  source_file: /src/selinux/libsemanage/src/database.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/src/semanage_conf.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: store_type
        type: enum semanage_connect_type
      - name: '*store_path'
        type: char
      - name: '*compiler_directory_path'
        type: char
      - name: server_port
        type: int
      - name: policyvers
        type: int
      - name: target_platform
        type: int
      - name: expand_check
        type: bool
      - name: save_previous
        type: bool
      - name: save_linked
        type: bool
      - name: disable_genhomedircon
        type: bool
      - name: usepasswd
        type: bool
      - name: handle_unknown
        type: int
      - name: file_mode
        type: mode_t
      - name: bzip_blocksize
        type: int
      - name: bzip_small
        type: bool
      - name: remove_hll
        type: bool
      - name: ignore_module_cache
        type: bool
      - name: optimize_policy
        type: bool
      - name: multiple_decls
        type: bool
      - name: relabel_store
        type: bool
      - name: '*ignoredirs'
        type: char
      - name: '*load_policy'
        type: struct external_prog
      - name: '*setfiles'
        type: struct external_prog
      - name: '*sefcontext_compile'
        type: struct external_prog
      - name: '*mod_prog'
        type: struct external_prog
      - name: '*store_root_path'
        type: char
      item_type: struct
      name: semanage_conf
      pos:
        line_end: 59
        line_start: 32
        source_file: /src/selinux/libsemanage/src/semanage_conf.h
    - fields:
      - name: '*path'
        type: char
      - name: '*args'
        type: char
      - name: '*next'
        type: struct external_prog
      item_type: struct
      name: external_prog
      pos:
        line_end: 68
        line_start: 64
        source_file: /src/selinux/libsemanage/src/semanage_conf.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/src/iface_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dbase_join_cache
  - dbase_join_flush
  - dbase_join_init
  - dbase_join_release
  source_file: /src/selinux/libsemanage/src/database_join.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: llist
        type: dbase_llist_t
      - name: '*join1'
        type: dbase_config_t
      - name: '*join2'
        type: dbase_config_t
      - name: '*rjtable'
        type: record_join_table_t
      item_type: struct
      name: dbase_join
      pos:
        line_end: 33
        line_start: 20
        source_file: /src/selinux/libsemanage/src/database_join.c
    typedefs:
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 8
        line_start: 8
        source_file: /src/selinux/libsemanage/src/database_join.c
      type: dbase_join
    union: []
- function_names:
  - clear_obsolete
  - load_records
  - semanage_base_merge_components
  - semanage_commit_components
  source_file: /src/selinux/libsemanage/src/policy_components.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MODE_SET
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/selinux/libsemanage/src/policy_components.c
      type_or_value: '1'
    - item_type: preproc_def
      name: MODE_MODIFY
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/selinux/libsemanage/src/policy_components.c
      type_or_value: '2'
    - item_type: preproc_def
      name: MODE_SORT
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/selinux/libsemanage/src/policy_components.c
      type_or_value: '4'
    structs:
    - fields:
      - name: '*src'
        type: dbase_config_t
      - name: '*dst'
        type: dbase_config_t
      - name: mode
        type: int
      item_type: struct
      name: load_table
      pos:
        line_end: 97
        line_start: 93
        source_file: /src/selinux/libsemanage/src/policy_components.c
    typedefs: []
    union: []
- function_names:
  - semanage_port_modify_local
  - semanage_port_del_local
  - semanage_port_query_local
  - semanage_port_exists_local
  - semanage_port_count_local
  - semanage_port_iterate_local
  - semanage_port_list_local
  - semanage_port_validate_local
  source_file: /src/selinux/libsemanage/src/ports_local.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/ports_local.c
      type: semanage_port_key
    - item_type: typedef
      name: record_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/ports_local.c
      type: semanage_port
    union: []
- function_names:
  - semanage_fcontext_key_create
  - semanage_fcontext_key_extract
  - semanage_fcontext_key_free
  - semanage_fcontext_compare
  - semanage_fcontext_compare2
  - semanage_fcontext_compare2_qsort
  - semanage_fcontext_create
  - semanage_fcontext_get_expr
  - semanage_fcontext_set_expr
  - semanage_fcontext_get_type
  - semanage_fcontext_get_type_str
  - semanage_fcontext_set_type
  - semanage_fcontext_get_con
  - semanage_fcontext_set_con
  - semanage_fcontext_clone
  - semanage_fcontext_free
  source_file: /src/selinux/libsemanage/src/fcontext_record.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*expr'
        type: char
      - name: type
        type: int
      - name: '*con'
        type: semanage_context_t
      item_type: struct
      name: semanage_fcontext
      pos:
        line_end: 20
        line_start: 11
        source_file: /src/selinux/libsemanage/src/fcontext_record.c
    - fields:
      - name: '*expr'
        type: char
      - name: type
        type: int
      item_type: struct
      name: semanage_fcontext_key
      pos:
        line_end: 28
        line_start: 22
        source_file: /src/selinux/libsemanage/src/fcontext_record.c
    typedefs:
    - item_type: typedef
      name: record_t
      pos:
        line_end: 2
        line_start: 2
        source_file: /src/selinux/libsemanage/src/fcontext_record.c
      type: semanage_fcontext
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 3
        line_start: 3
        source_file: /src/selinux/libsemanage/src/fcontext_record.c
      type: semanage_fcontext_key
    union: []
- function_names:
  - semanage_bool_set_active
  - semanage_bool_query_active
  - semanage_bool_exists_active
  - semanage_bool_count_active
  - semanage_bool_iterate_active
  - semanage_bool_list_active
  source_file: /src/selinux/libsemanage/src/booleans_active.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/booleans_active.c
      type: semanage_bool_key
    - item_type: typedef
      name: record_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/booleans_active.c
      type: semanage_bool
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/src/semanage_store.h
  types:
    enum:
    - enumerators:
      - name: SEMANAGE_ACTIVE
      - name: SEMANAGE_PREVIOUS
      - name: SEMANAGE_TMP
      - name: SEMANAGE_NUM_STORES
      item_type: enum
      name: semanage_store_defs
      pos:
        line_end: 37
        line_start: 32
        source_file: /src/selinux/libsemanage/src/semanage_store.h
    - enumerators:
      - name: SEMANAGE_FC_TMPL
      - name: SEMANAGE_PORTS_LOCAL
      - name: SEMANAGE_SEUSERS_LOCAL
      - name: SEMANAGE_USERS_EXTRA_LINKED
      - name: SEMANAGE_MODULES_DISABLED
      - name: SEMANAGE_STORE_FC_HOMEDIRS
      - name: SEMANAGE_STORE_NUM_PATHS
      - name: SEMANAGE_MODULES
      - name: SEMANAGE_COMMIT_NUM_FILE
      - name: SEMANAGE_INTERFACES_LOCAL
      - name: SEMANAGE_USERS_EXTRA
      - name: SEMANAGE_SEUSERS_LINKED
      - name: SEMANAGE_MODULES_CHECKSUM
      - name: SEMANAGE_STORE_FC
      - name: SEMANAGE_LINKED
      - name: SEMANAGE_IBPKEYS_LOCAL
      - name: SEMANAGE_DISABLE_DONTAUDIT
      - name: SEMANAGE_USERS_BASE_LOCAL
      - name: SEMANAGE_NODES_LOCAL
      - name: SEMANAGE_STORE_KERNEL
      - name: SEMANAGE_STORE_SEUSERS
      - name: SEMANAGE_TOPLEVEL
      - name: SEMANAGE_HOMEDIR_TMPL
      - name: SEMANAGE_IBENDPORTS_LOCAL
      - name: SEMANAGE_USERS_EXTRA_LOCAL
      - name: SEMANAGE_BOOLEANS_LOCAL
      - name: SEMANAGE_PRESERVE_TUNABLES
      - name: SEMANAGE_STORE_FC_LOCAL
      item_type: enum
      name: semanage_sandbox_defs
      pos:
        line_end: 69
        line_start: 40
        source_file: /src/selinux/libsemanage/src/semanage_store.h
    - enumerators:
      - name: SEMANAGE_FINAL_TMP
      - name: SEMANAGE_FINAL_SELINUX
      - name: SEMANAGE_FINAL_NUM
      item_type: enum
      name: semanage_final_defs
      pos:
        line_end: 75
        line_start: 71
        source_file: /src/selinux/libsemanage/src/semanage_store.h
    - enumerators:
      - name: SEMANAGE_FINAL_TOPLEVEL
      - name: SEMANAGE_FC_HOMEDIRS_BIN
      - name: SEMANAGE_FC_HOMEDIRS
      - name: SEMANAGE_FC
      - name: SEMANAGE_FC_BIN
      - name: SEMANAGE_FC_LOCAL
      - name: SEMANAGE_FC_LOCAL_BIN
      - name: SEMANAGE_KERNEL
      - name: SEMANAGE_NC
      - name: SEMANAGE_SEUSERS
      - name: SEMANAGE_FINAL_PATH_NUM
      item_type: enum
      name: semanage_final_path_defs
      pos:
        line_end: 89
        line_start: 77
        source_file: /src/selinux/libsemanage/src/semanage_store.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/src/port_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dbase_policydb_drop_cache
  - dbase_policydb_set_serial
  - dbase_policydb_needs_resync
  - dbase_policydb_cache
  - dbase_policydb_flush
  - dbase_policydb_is_modified
  - dbase_policydb_init
  - dbase_policydb_release
  - dbase_policydb_attach
  - dbase_policydb_detach
  - dbase_policydb_add
  - dbase_policydb_set
  - dbase_policydb_modify
  - dbase_policydb_del
  - dbase_policydb_clear
  - dbase_policydb_query
  - dbase_policydb_exists
  - dbase_policydb_count
  - dbase_policydb_iterate
  - list_handler
  - dbase_policydb_list
  - dbase_policydb_get_rtable
  source_file: /src/selinux/libsemanage/src/database_policydb.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*path[2]'
        type: char
      - name: '*rtable'
        type: record_table_t
      - name: '*rptable'
        type: record_policydb_table_t
      - name: '*policydb'
        type: sepol_policydb_t
      - name: cache_serial
        type: int
      - name: modified
        type: int
      - name: attached
        type: int
      item_type: struct
      name: dbase_policydb
      pos:
        line_end: 40
        line_start: 25
        source_file: /src/selinux/libsemanage/src/database_policydb.c
    - fields:
      - name: '*handle'
        type: semanage_handle_t
      - name: '*rtable'
        type: record_table_t
      - name: '**records'
        type: record_t
      - name: pos
        type: int
      item_type: struct
      name: list_handler_arg
      pos:
        line_end: 352
        line_start: 347
        source_file: /src/selinux/libsemanage/src/database_policydb.c
    typedefs:
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 7
        line_start: 7
        source_file: /src/selinux/libsemanage/src/database_policydb.c
      type: dbase_policydb
    union: []
- function_names:
  - semanage_context_get_user
  - semanage_context_set_user
  - semanage_context_get_role
  - semanage_context_set_role
  - semanage_context_get_type
  - semanage_context_set_type
  - semanage_context_get_mls
  - semanage_context_set_mls
  - semanage_context_create
  - semanage_context_clone
  - semanage_context_free
  - semanage_context_from_string
  - semanage_context_to_string
  source_file: /src/selinux/libsemanage/src/context_record.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: semanage_context_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/context_record.c
      type: sepol_context_t
    union: []
- function_names:
  - semanage_ibendport_query
  - semanage_ibendport_exists
  - semanage_ibendport_count
  - semanage_ibendport_iterate
  - semanage_ibendport_list
  source_file: /src/selinux/libsemanage/src/ibendports_policy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/ibendports_policy.c
      type: semanage_ibendport_key
    - item_type: typedef
      name: record_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/ibendports_policy.c
      type: semanage_ibendport
    union: []
- function_names:
  - type_str
  - fcontext_print
  - fcontext_parse
  - fcontext_file_dbase_init
  - fcontext_file_dbase_release
  source_file: /src/selinux/libsemanage/src/fcontexts_file.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/fcontexts_file.c
      type: semanage_fcontext
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/fcontexts_file.c
      type: semanage_fcontext_key
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/selinux/libsemanage/src/fcontexts_file.c
      type: dbase_file
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/src/database_activedb.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: "(*read_list)(semanage_handle_t *handle, record_t ***records,\n\t\t\t
          unsigned int *count)"
        type: int
      - name: "(*commit_list)(semanage_handle_t *handle, record_t **records,\n\t\t\t
          \  unsigned int count)"
        type: int
      item_type: struct
      name: record_activedb_table
      pos:
        line_end: 21
        line_start: 12
        source_file: /src/selinux/libsemanage/src/database_activedb.h
    typedefs:
    - item_type: typedef
      name: dbase_activedb_t
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/selinux/libsemanage/src/database_activedb.h
      type: dbase_activedb
    union: []
- function_names:
  - seuser_print
  - seuser_parse
  - seuser_file_dbase_init
  - seuser_file_dbase_release
  source_file: /src/selinux/libsemanage/src/seusers_file.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/seusers_file.c
      type: semanage_seuser
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/seusers_file.c
      type: semanage_seuser_key
    - item_type: typedef
      name: dbase_t
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/selinux/libsemanage/src/seusers_file.c
      type: dbase_file
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/src/fcontext_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/src/sha256.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHA256_HASH_SIZE
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/selinux/libsemanage/src/sha256.h
      type_or_value: (256 / 8)
    structs:
    - fields:
      - name: length
        type: uint64_t
      - name: state[8]
        type: uint32_t
      - name: curlen
        type: uint32_t
      - name: buf[64]
        type: uint8_t
      item_type: struct
      name: Sha256Context
      pos:
        line_end: 24
        line_start: 19
        source_file: /src/selinux/libsemanage/src/sha256.h
    - fields:
      - name: bytes[SHA256_HASH_SIZE]
        type: uint8_t
      item_type: struct
      name: SHA256_HASH
      pos:
        line_end: 30
        line_start: 28
        source_file: /src/selinux/libsemanage/src/sha256.h
    typedefs: []
    union: []
- function_names:
  - semanage_ibpkey_query
  - semanage_ibpkey_exists
  - semanage_ibpkey_count
  - semanage_ibpkey_iterate
  - semanage_ibpkey_list
  source_file: /src/selinux/libsemanage/src/ibpkeys_policy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/ibpkeys_policy.c
      type: semanage_ibpkey_key
    - item_type: typedef
      name: record_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/ibpkeys_policy.c
      type: semanage_ibpkey
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/src/database_policydb.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: add
        type: record_policydb_table_add_t
      - name: modify
        type: record_policydb_table_modify_t
      - name: set
        type: record_policydb_table_set_t
      - name: query
        type: record_policydb_table_query_t
      - name: count
        type: record_policydb_table_count_t
      - name: exists
        type: record_policydb_table_exists_t
      - name: iterate
        type: record_policydb_table_iterate_t
      item_type: struct
      name: record_policydb_table
      pos:
        line_end: 82
        line_start: 65
        source_file: /src/selinux/libsemanage/src/database_policydb.h
    typedefs:
    - item_type: typedef
      name: dbase_policydb_t
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/selinux/libsemanage/src/database_policydb.h
      type: dbase_policydb
    - item_type: typedef
      name: "(*record_policydb_table_add_t)(sepol_handle_t *h,\n\t\t\t\t\t   sepol_policydb_t
        *p,\n\t\t\t\t\t   const record_key_t *rkey,\n\t\t\t\t\t   const record_t *record)"
      pos:
        line_end: 34
        line_start: 31
        source_file: /src/selinux/libsemanage/src/database_policydb.h
      type: int
    - item_type: typedef
      name: "(*record_policydb_table_modify_t)(sepol_handle_t *h,\n\t\t\t\t\t      sepol_policydb_t
        *p,\n\t\t\t\t\t      const record_key_t *rkey,\n\t\t\t\t\t      const record_t
        *record)"
      pos:
        line_end: 39
        line_start: 36
        source_file: /src/selinux/libsemanage/src/database_policydb.h
      type: int
    - item_type: typedef
      name: "(*record_policydb_table_set_t)(sepol_handle_t *h,\n\t\t\t\t\t   sepol_policydb_t
        *p,\n\t\t\t\t\t   const record_key_t *rkey,\n\t\t\t\t\t   const record_t *record)"
      pos:
        line_end: 44
        line_start: 41
        source_file: /src/selinux/libsemanage/src/database_policydb.h
      type: int
    - item_type: typedef
      name: "(*record_policydb_table_query_t)(sepol_handle_t *h,\n\t\t\t\t\t     const
        sepol_policydb_t *p,\n\t\t\t\t\t     const record_key_t *rkey,\n\t\t\t\t\t
        \    record_t **response)"
      pos:
        line_end: 49
        line_start: 46
        source_file: /src/selinux/libsemanage/src/database_policydb.h
      type: int
    - item_type: typedef
      name: "(*record_policydb_table_count_t)(sepol_handle_t *h,\n\t\t\t\t\t     const
        sepol_policydb_t *p,\n\t\t\t\t\t     unsigned int *response)"
      pos:
        line_end: 53
        line_start: 51
        source_file: /src/selinux/libsemanage/src/database_policydb.h
      type: int
    - item_type: typedef
      name: "(*record_policydb_table_exists_t)(sepol_handle_t *h,\n\t\t\t\t\t      const
        sepol_policydb_t *p,\n\t\t\t\t\t      const record_key_t *rkey,\n\t\t\t\t\t
        \     int *response)"
      pos:
        line_end: 58
        line_start: 55
        source_file: /src/selinux/libsemanage/src/database_policydb.h
      type: int
    - item_type: typedef
      name: "(*record_policydb_table_iterate_t)(\n\tsepol_handle_t *h, const sepol_policydb_t
        *p,\n\tint (*fn)(const record_t *r, void *fn_arg), void *arg)"
      pos:
        line_end: 62
        line_start: 60
        source_file: /src/selinux/libsemanage/src/database_policydb.h
      type: int
    union: []
- function_names:
  - ror
  - MIN
  - STORE32H
  - LOAD32H
  - STORE64H
  - Ch
  - Maj
  - S
  - R
  - Sigma0
  - Sigma1
  - Gamma0
  - Gamma1
  - Sha256Round
  - TransformFunction
  - Sha256Initialise
  - Sha256Update
  - Sha256Finalise
  - Sha256Calculate
  source_file: /src/selinux/libsemanage/src/sha256.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BLOCK_SIZE
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/selinux/libsemanage/src/sha256.c
      type_or_value: '64'
    structs: []
    typedefs: []
    union: []
- function_names:
  - semanage_node_query
  - semanage_node_exists
  - semanage_node_count
  - semanage_node_iterate
  - semanage_node_list
  source_file: /src/selinux/libsemanage/src/nodes_policy.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/nodes_policy.c
      type: semanage_node_key
    - item_type: typedef
      name: record_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/nodes_policy.c
      type: semanage_node
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/src/ibpkey_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/src/compressed_file.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*data'
        type: void
      - name: len
        type: size_t
      - name: compressed
        type: int
      item_type: struct
      name: file_contents
      pos:
        line_end: 34
        line_start: 30
        source_file: /src/selinux/libsemanage/src/compressed_file.h
    typedefs: []
    union: []
- function_names:
  - semanage_ibpkey_compare
  - semanage_ibpkey_compare2
  - semanage_ibpkey_compare2_qsort
  - semanage_ibpkey_key_create
  - semanage_ibpkey_key_extract
  - semanage_ibpkey_key_free
  - semanage_ibpkey_get_subnet_prefix
  - semanage_ibpkey_get_subnet_prefix_bytes
  - semanage_ibpkey_set_subnet_prefix
  - semanage_ibpkey_set_subnet_prefix_bytes
  - semanage_ibpkey_get_low
  - semanage_ibpkey_get_high
  - semanage_ibpkey_set_pkey
  - semanage_ibpkey_set_range
  - semanage_ibpkey_get_con
  - semanage_ibpkey_set_con
  - semanage_ibpkey_create
  - semanage_ibpkey_clone
  - semanage_ibpkey_free
  source_file: /src/selinux/libsemanage/src/ibpkey_record.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: semanage_context_t
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/selinux/libsemanage/src/ibpkey_record.c
      type: sepol_context_t
    - item_type: typedef
      name: semanage_ibpkey_t
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/selinux/libsemanage/src/ibpkey_record.c
      type: sepol_ibpkey_t
    - item_type: typedef
      name: semanage_ibpkey_key_t
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/selinux/libsemanage/src/ibpkey_record.c
      type: sepol_ibpkey_key_t
    - item_type: typedef
      name: record_t
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/selinux/libsemanage/src/ibpkey_record.c
      type: semanage_ibpkey_t
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/selinux/libsemanage/src/ibpkey_record.c
      type: semanage_ibpkey_key_t
    union: []
- function_names:
  - semanage_fcontext_modify_local
  - semanage_fcontext_del_local
  - semanage_fcontext_query_local
  - semanage_fcontext_exists_local
  - semanage_fcontext_count_local
  - semanage_fcontext_iterate_local
  - semanage_fcontext_list_local
  - validate_handler
  - semanage_fcontext_validate_local
  source_file: /src/selinux/libsemanage/src/fcontexts_local.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*handle'
        type: semanage_handle_t
      - name: '*policydb'
        type: sepol_policydb_t
      item_type: struct
      name: validate_handler_arg
      pos:
        line_end: 74
        line_start: 71
        source_file: /src/selinux/libsemanage/src/fcontexts_local.c
    typedefs:
    - item_type: typedef
      name: record_key_t
      pos:
        line_end: 4
        line_start: 4
        source_file: /src/selinux/libsemanage/src/fcontexts_local.c
      type: semanage_fcontext_key
    - item_type: typedef
      name: record_t
      pos:
        line_end: 5
        line_start: 5
        source_file: /src/selinux/libsemanage/src/fcontexts_local.c
      type: semanage_fcontext
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/interfaces_policy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/semanage.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/booleans_policy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/ibpkeys_policy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/booleans_local.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/ibendports_policy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/ports_local.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/handle.h
  types:
    enum:
    - enumerators:
      - name: SEMANAGE_CON_INVALID
        value: '0'
      - name: SEMANAGE_CON_DIRECT
      - name: SEMANAGE_CON_POLSERV_REMOTE
      - name: SEMANAGE_CON_POLSERV_LOCAL
      item_type: enum
      name: semanage_connect_type
      pos:
        line_end: 53
        line_start: 48
        source_file: /src/selinux/libsemanage/include/semanage/handle.h
    preproc_defs:
    - item_type: preproc_def
      name: SEMANAGE_CAN_READ
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/selinux/libsemanage/include/semanage/handle.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SEMANAGE_CAN_WRITE
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/selinux/libsemanage/include/semanage/handle.h
      type_or_value: '2'
    structs: []
    typedefs:
    - item_type: typedef
      name: semanage_handle_t
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/selinux/libsemanage/include/semanage/handle.h
      type: semanage_handle
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/users_policy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/debug.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEMANAGE_MSG_ERR
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/selinux/libsemanage/include/semanage/debug.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SEMANAGE_MSG_WARN
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/selinux/libsemanage/include/semanage/debug.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SEMANAGE_MSG_INFO
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/selinux/libsemanage/include/semanage/debug.h
      type_or_value: '3'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/user_record.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: semanage_user_t
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/selinux/libsemanage/include/semanage/user_record.h
      type: semanage_user
    - item_type: typedef
      name: semanage_user_key_t
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/selinux/libsemanage/include/semanage/user_record.h
      type: semanage_user_key
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/fcontexts_policy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/users_local.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/ibpkey_record.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: semanage_ibpkey_t
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/selinux/libsemanage/include/semanage/ibpkey_record.h
      type: semanage_ibpkey
    - item_type: typedef
      name: semanage_ibpkey_key_t
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/selinux/libsemanage/include/semanage/ibpkey_record.h
      type: semanage_ibpkey_key
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/modules.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: semanage_module_key_t
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/selinux/libsemanage/include/semanage/modules.h
      type: semanage_module_key
    - item_type: typedef
      name: semanage_module_info_t
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/selinux/libsemanage/include/semanage/modules.h
      type: semanage_module_info
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/nodes_local.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/interfaces_local.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/iface_record.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: semanage_iface_t
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/selinux/libsemanage/include/semanage/iface_record.h
      type: semanage_iface
    - item_type: typedef
      name: semanage_iface_key_t
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/selinux/libsemanage/include/semanage/iface_record.h
      type: semanage_iface_key
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/seusers_policy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/context_record.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: semanage_context_t
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/selinux/libsemanage/include/semanage/context_record.h
      type: semanage_context
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/boolean_record.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: semanage_bool_t
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/selinux/libsemanage/include/semanage/boolean_record.h
      type: semanage_bool
    - item_type: typedef
      name: semanage_bool_key_t
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/selinux/libsemanage/include/semanage/boolean_record.h
      type: semanage_bool_key
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/seusers_local.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/fcontext_record.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEMANAGE_FCONTEXT_ALL
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/selinux/libsemanage/include/semanage/fcontext_record.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SEMANAGE_FCONTEXT_REG
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/selinux/libsemanage/include/semanage/fcontext_record.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SEMANAGE_FCONTEXT_DIR
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/selinux/libsemanage/include/semanage/fcontext_record.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SEMANAGE_FCONTEXT_CHAR
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/selinux/libsemanage/include/semanage/fcontext_record.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SEMANAGE_FCONTEXT_BLOCK
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/selinux/libsemanage/include/semanage/fcontext_record.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SEMANAGE_FCONTEXT_SOCK
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/selinux/libsemanage/include/semanage/fcontext_record.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SEMANAGE_FCONTEXT_LINK
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/selinux/libsemanage/include/semanage/fcontext_record.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SEMANAGE_FCONTEXT_PIPE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/selinux/libsemanage/include/semanage/fcontext_record.h
      type_or_value: '7'
    structs: []
    typedefs:
    - item_type: typedef
      name: semanage_fcontext_t
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/selinux/libsemanage/include/semanage/fcontext_record.h
      type: semanage_fcontext
    - item_type: typedef
      name: semanage_fcontext_key_t
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/selinux/libsemanage/include/semanage/fcontext_record.h
      type: semanage_fcontext_key
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/nodes_policy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/seuser_record.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: semanage_seuser_t
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/selinux/libsemanage/include/semanage/seuser_record.h
      type: semanage_seuser
    - item_type: typedef
      name: semanage_seuser_key_t
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/selinux/libsemanage/include/semanage/seuser_record.h
      type: semanage_seuser_key
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/ibendports_local.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/ibendport_record.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: semanage_ibendport_t
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/selinux/libsemanage/include/semanage/ibendport_record.h
      type: semanage_ibendport
    - item_type: typedef
      name: semanage_ibendport_key_t
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/selinux/libsemanage/include/semanage/ibendport_record.h
      type: semanage_ibendport_key
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/port_record.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEMANAGE_PROTO_UDP
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/selinux/libsemanage/include/semanage/port_record.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SEMANAGE_PROTO_TCP
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/selinux/libsemanage/include/semanage/port_record.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SEMANAGE_PROTO_DCCP
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/selinux/libsemanage/include/semanage/port_record.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SEMANAGE_PROTO_SCTP
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/selinux/libsemanage/include/semanage/port_record.h
      type_or_value: '3'
    structs: []
    typedefs:
    - item_type: typedef
      name: semanage_port_t
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/selinux/libsemanage/include/semanage/port_record.h
      type: semanage_port
    - item_type: typedef
      name: semanage_port_key_t
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/selinux/libsemanage/include/semanage/port_record.h
      type: semanage_port_key
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/booleans_active.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/node_record.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEMANAGE_PROTO_IP4
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/selinux/libsemanage/include/semanage/node_record.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SEMANAGE_PROTO_IP6
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/selinux/libsemanage/include/semanage/node_record.h
      type_or_value: '1'
    structs: []
    typedefs:
    - item_type: typedef
      name: semanage_node_t
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/selinux/libsemanage/include/semanage/node_record.h
      type: semanage_node
    - item_type: typedef
      name: semanage_node_key_t
      pos:
        line_end: 13
        line_start: 13
        source_file: /src/selinux/libsemanage/include/semanage/node_record.h
      type: semanage_node_key
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/ibpkeys_local.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/fcontexts_local.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libsemanage/include/semanage/ports_policy.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/selinux/libsemanage/example/test_fcontext.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - perm_name
  - render_access_mask
  - render_key
  - output_avrule
  - attribute_callback
  - load_policy
  - usage
  - main
  source_file: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: val
        type: unsigned int
      - name: '*name'
        type: char
      item_type: struct
      name: val_to_name
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c
    - fields:
      - name: attr
        type: uint32_t
      - name: '*policy'
        type: policydb_t
      - name: '*fp'
        type: FILE
      item_type: struct
      name: callback_data
      pos:
        line_end: 110
        line_start: 106
        source_file: /src/selinux/python/audit2allow/sepolgen-ifgen-attr-helper.c
    typedefs: []
    union: []
- function_names:
  - mls_level_from_string
  - mls_compute_string_len
  - mls_level_to_string
  source_file: /src/selinux/mcstrans/src/mls_level.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/mcstrans/src/mcstrans.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - log_error
  - log_debug
  - log_debug
  - hash
  - add_to_hashtable
  - parse_category
  - parse_ebitmap
  - parse_raw
  - destroy_word
  - create_word
  - destroy_group
  - create_group
  - destroy_domain
  - create_domain
  - add_word
  - add_constraint
  - violates_constraints
  - destroy_sens_constraint
  - destroy_cat_constraint
  - add_base_classification
  - add_cache
  - find_in_table
  - trim
  - triml
  - update
  - append
  - process_trans
  - read_translations
  - init_translations
  - extract_range
  - new_context_str
  - find_in_hashtable
  - spaceship_cmp
  - string_size
  - word_size
  - buf_append
  - build_regexp
  - build_regexps
  - APPEND
  - RESET
  - compute_raw_from_trans
  - compute_trans_from_raw
  - OAPPEND
  - trans_context
  - untrans_context
  - finish_context_translations
  source_file: /src/selinux/mcstrans/src/mcstrans.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: N_BUCKETS
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/selinux/mcstrans/src/mcstrans.c
      type_or_value: '1453'
    - item_type: preproc_def
      name: CACHE_MAX_ENTRIES
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/selinux/mcstrans/src/mcstrans.c
      type_or_value: '65536'
    - item_type: preproc_def
      name: MAX_CATS
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/selinux/mcstrans/src/mcstrans.c
      type_or_value: '1024'
    structs:
    - fields:
      - name: '*raw'
        type: char
      - name: '*trans'
        type: char
      item_type: struct
      name: context_map
      pos:
        line_end: 60
        line_start: 57
        source_file: /src/selinux/mcstrans/src/mcstrans.c
    - fields:
      - name: '*key'
        type: char
      - name: '*map'
        type: context_map_t
      - name: '*next'
        type: struct context_map_node
      item_type: struct
      name: context_map_node
      pos:
        line_end: 66
        line_start: 62
        source_file: /src/selinux/mcstrans/src/mcstrans.c
    - fields:
      - name: '*text'
        type: char
      - name: '*next'
        type: struct affix
      item_type: struct
      name: affix
      pos:
        line_end: 71
        line_start: 68
        source_file: /src/selinux/mcstrans/src/mcstrans.c
    - fields:
      - name: '*text'
        type: char
      - name: cat
        type: ebitmap_t
      - name: normal
        type: ebitmap_t
      - name: inverse
        type: ebitmap_t
      - name: '*next'
        type: struct word
      item_type: struct
      name: word
      pos:
        line_end: 79
        line_start: 73
        source_file: /src/selinux/mcstrans/src/mcstrans.c
    - fields:
      - name: '*name'
        type: char
      - name: '*whitespace'
        type: char
      - name: '*join'
        type: char
      - name: '*prefixes'
        type: affix_t
      - name: '*suffixes'
        type: affix_t
      - name: '*words'
        type: word_t
      - name: '*prefix_regexp'
        type: pcre2_code
      - name: '*word_regexp'
        type: pcre2_code
      - name: '*suffix_regexp'
        type: pcre2_code
      - name: def
        type: ebitmap_t
      - name: '**sword'
        type: word_t
      - name: sword_len
        type: unsigned int
      - name: '*next'
        type: struct word_group
      item_type: struct
      name: word_group
      pos:
        line_end: 100
        line_start: 81
        source_file: /src/selinux/mcstrans/src/mcstrans.c
    - fields:
      - name: '*trans'
        type: char
      - name: '*level'
        type: mls_level_t
      - name: '*next'
        type: struct base_classification
      item_type: struct
      name: base_classification
      pos:
        line_end: 106
        line_start: 102
        source_file: /src/selinux/mcstrans/src/mcstrans.c
    - fields:
      - name: '*name'
        type: char
      - name: cache_entries
        type: unsigned int
      - name: '*raw_to_trans[N_BUCKETS]'
        type: context_map_node_t
      - name: '*trans_to_raw[N_BUCKETS]'
        type: context_map_node_t
      - name: '*base_classifications'
        type: base_classification_t
      - name: '*groups'
        type: word_group_t
      - name: '*base_classification_regexp'
        type: pcre2_code
      - name: '*next'
        type: struct domain
      item_type: struct
      name: domain
      pos:
        line_end: 120
        line_start: 108
        source_file: /src/selinux/mcstrans/src/mcstrans.c
    - fields:
      - name: op
        type: char
      - name: '*text'
        type: char
      - name: sens
        type: unsigned int
      - name: cat
        type: ebitmap_t
      - name: '*next'
        type: struct sens_constraint
      item_type: struct
      name: sens_constraint
      pos:
        line_end: 130
        line_start: 124
        source_file: /src/selinux/mcstrans/src/mcstrans.c
    - fields:
      - name: op
        type: char
      - name: '*text'
        type: char
      - name: nbits
        type: int
      - name: mask
        type: ebitmap_t
      - name: cat
        type: ebitmap_t
      - name: '*next'
        type: struct cat_constraint
      item_type: struct
      name: cat_constraint
      pos:
        line_end: 141
        line_start: 134
        source_file: /src/selinux/mcstrans/src/mcstrans.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/mcstrans/src/mls_level.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/mcstrans/src/mcscolor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - UNUSED
  - UNUSED
  - UNUSED
  - log_debug
  - log_debug
  - cleanup_exit
  - clean_exit
  - send_response
  - get_peer_pid
  - process_request
  - service_request
  - add_pollfd
  - adj_pollfds
  - process_events
  - process_connections
  - sigterm_handler
  - sighup_handler
  - initialize
  - dropprivs
  - usage
  - main
  source_file: /src/selinux/mcstrans/src/mcstransd.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SETRANS_UNIX_SOCKET
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/selinux/mcstrans/src/mcstransd.c
      type_or_value: '"/var/run/setrans/.setrans-unix"'
    - item_type: preproc_def
      name: SETRANS_INIT
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/selinux/mcstrans/src/mcstransd.c
      type_or_value: '1'
    - item_type: preproc_def
      name: RAW_TO_TRANS_CONTEXT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/selinux/mcstrans/src/mcstransd.c
      type_or_value: '2'
    - item_type: preproc_def
      name: TRANS_TO_RAW_CONTEXT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/selinux/mcstrans/src/mcstransd.c
      type_or_value: '3'
    - item_type: preproc_def
      name: RAW_CONTEXT_TO_COLOR
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/selinux/mcstrans/src/mcstransd.c
      type_or_value: '4'
    - item_type: preproc_def
      name: MAX_DATA_BUF
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/selinux/mcstrans/src/mcstransd.c
      type_or_value: '4096'
    - item_type: preproc_def
      name: MAX_DESCRIPTORS
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/selinux/mcstrans/src/mcstransd.c
      type_or_value: '8192'
    - item_type: preproc_def
      name: MAX_CLIENTS
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/selinux/mcstrans/src/mcstransd.c
      type_or_value: (MAX_DESCRIPTORS - 32)
    - item_type: preproc_def
      name: SETRANSD_PATHNAME
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/selinux/mcstrans/src/mcstransd.c
      type_or_value: '"/sbin/mcstransd"'
    - item_type: preproc_def
      name: SETRANSD_PROGNAME
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/selinux/mcstrans/src/mcstransd.c
      type_or_value: '"mcstransd"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - finish_context_colors
  - check_dominance
  - find_color
  - add_secolor
  - find_mnemonic
  - add_mnemonic
  - process_color
  - init_colors
  - parse_components
  - raw_color
  source_file: /src/selinux/mcstrans/src/mcscolor.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COLOR_USER
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/selinux/mcstrans/src/mcscolor.c
      type_or_value: '0'
    - item_type: preproc_def
      name: COLOR_ROLE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/selinux/mcstrans/src/mcscolor.c
      type_or_value: '1'
    - item_type: preproc_def
      name: COLOR_TYPE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/selinux/mcstrans/src/mcscolor.c
      type_or_value: '2'
    - item_type: preproc_def
      name: COLOR_RANGE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/selinux/mcstrans/src/mcscolor.c
      type_or_value: '3'
    - item_type: preproc_def
      name: N_COLOR
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/selinux/mcstrans/src/mcscolor.c
      type_or_value: '4'
    - item_type: preproc_def
      name: AUX_RULE_COLOR
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/selinux/mcstrans/src/mcscolor.c
      type_or_value: '"color"'
    - item_type: preproc_def
      name: CHARS_PER_COLOR
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/selinux/mcstrans/src/mcscolor.c
      type_or_value: '16'
    structs:
    - fields:
      - name: fg
        type: uint32_t
      - name: bg
        type: uint32_t
      item_type: struct
      name: secolor
      pos:
        line_end: 21
        line_start: 18
        source_file: /src/selinux/mcstrans/src/mcscolor.c
    - fields:
      - name: '*name'
        type: char
      - name: color
        type: uint32_t
      - name: '*next'
        type: struct semnemonic
      item_type: struct
      name: semnemonic
      pos:
        line_end: 27
        line_start: 23
        source_file: /src/selinux/mcstrans/src/mcscolor.c
    - fields:
      - name: '*pattern'
        type: char
      - name: color
        type: secolor_t
      - name: '*next'
        type: struct setab
      item_type: struct
      name: setab
      pos:
        line_end: 33
        line_start: 29
        source_file: /src/selinux/mcstrans/src/mcscolor.c
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/selinux/mcstrans/utils/transcon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/selinux/mcstrans/utils/untranscon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fgets_unlocked
  - COMPAT_LOG
  source_file: /src/selinux/libselinux/src/label_internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DIGEST_SPECFILE_SIZE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/selinux/libselinux/src/label_internal.h
      type_or_value: SHA1_HASH_SIZE
    - item_type: preproc_def
      name: DIGEST_FILES_MAX
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/selinux/libselinux/src/label_internal.h
      type_or_value: '8'
    structs:
    - fields:
      - name: '*digest'
        type: unsigned char
      - name: '*hashbuf'
        type: unsigned char
      - name: hashbuf_size
        type: size_t
      - name: specfile_cnt
        type: size_t
      - name: '**specfile_list'
        type: char
      item_type: struct
      name: selabel_digest
      pos:
        line_end: 56
        line_start: 50
        source_file: /src/selinux/libselinux/src/label_internal.h
    - fields:
      - name: '*ctx_raw'
        type: char
      - name: '*ctx_trans'
        type: char
      - name: lock
        type: pthread_mutex_t
      - name: lineno
        type: unsigned int
      - name: validated
        type: bool
      item_type: struct
      name: selabel_lookup_rec
      pos:
        line_end: 69
        line_start: 63
        source_file: /src/selinux/libselinux/src/label_internal.h
    - fields:
      - name: backend
        type: unsigned int
      - name: validating
        type: int
      - name: "*(*func_lookup)(struct selabel_handle *h,\n\t\t\t\t\t\t  const char
          *key, int type)"
        type: struct selabel_lookup_rec
      - name: (*func_close)(struct selabel_handle *h)
        type: void
      - name: (*func_stats)(struct selabel_handle *h)
        type: void
      - name: (*func_partial_match)(struct selabel_handle *h, const char *key)
        type: bool
      - name: "(*func_get_digests_all_partial_matches)(\n\t\tstruct selabel_handle
          *h, const char *key,\n\t\tuint8_t **calculated_digest, uint8_t **xattr_digest,\n\t\tsize_t
          *digest_len)"
        type: bool
      - name: "(*func_hash_all_partial_matches)(struct selabel_handle *h,\n\t\t\t\t\t
          \     const char *key, uint8_t *digest)"
        type: bool
      - name: "*(*func_lookup_best_match)(\n\t\tstruct selabel_handle *h, const char
          *key, const char **aliases,\n\t\tint type)"
        type: struct selabel_lookup_rec
      - name: "(*func_cmp)(const struct selabel_handle *h1,\n\t\t\t\t\t    const struct
          selabel_handle *h2)"
        type: enum selabel_cmp_result
      - name: '*data'
        type: void
      - name: spec_files_len
        type: size_t
      - name: '**spec_files'
        type: char
      - name: '*digest'
        type: struct selabel_digest
      item_type: struct
      name: selabel_handle
      pos:
        line_end: 105
        line_start: 71
        source_file: /src/selinux/libselinux/src/label_internal.h
    typedefs: []
    union: []
- function_names:
  - regex_arch_string_init
  - regex_arch_string
  - regex_prepare_data
  - regex_version
  - regex_load_mmap
  - regex_writef
  - match_data_thread_free
  - match_data_key_init
  - match_data_key_destroy
  - regex_data_free
  - regex_match
  - regex_cmp
  - regex_data_create
  - regex_arch_string
  - regex_prepare_data
  - regex_version
  - regex_load_mmap
  - get_pcre_extra
  - regex_writef
  - regex_data_free
  - regex_match
  - regex_cmp
  - regex_data_create
  - regex_format_error
  source_file: /src/selinux/libselinux/src/regex.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: REGEX_ARCH_SIZE_T
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/selinux/libselinux/src/regex.c
      type_or_value: PCRE2_SIZE
    - item_type: preproc_def
      name: REGEX_ARCH_SIZE_T
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/selinux/libselinux/src/regex.c
      type_or_value: size_t
    - item_type: preproc_def
      name: __ORDER_LITTLE_ENDIAN
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/selinux/libselinux/src/regex.c
      type_or_value: __LITTLE_ENDIAN
    - item_type: preproc_def
      name: __ORDER_BIG_ENDIAN
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/selinux/libselinux/src/regex.c
      type_or_value: __BIG_ENDIAN
    - item_type: preproc_def
      name: __BYTE_ORDER__
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/selinux/libselinux/src/regex.c
      type_or_value: __BYTE_ORDER
    - item_type: preproc_def
      name: REGEX_MATCH_LIMIT
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/selinux/libselinux/src/regex.c
      type_or_value: 10000000U
    - item_type: preproc_def
      name: pcre_free_study
      pos:
        line_end: 355
        line_start: 354
        source_file: /src/selinux/libselinux/src/regex.c
      type_or_value: pcre_free
    structs:
    - fields:
      - name: '*regex'
        type: pcre2_code
      item_type: struct
      name: regex_data
      pos:
        line_end: 86
        line_start: 84
        source_file: /src/selinux/libselinux/src/regex.c
    - fields:
      - name: owned
        type: int
      - name: '*regex'
        type: pcre
      item_type: struct
      name: regex_data
      pos:
        line_end: 367
        line_start: 357
        source_file: /src/selinux/libselinux/src/regex.c
    typedefs: []
    union: []
- function_names:
  - security_policyvers
  source_file: /src/selinux/libselinux/src/policyvers.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_default_type
  - find_default_type
  source_file: /src/selinux/libselinux/src/get_default_type.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - security_compute_av_flags_raw
  - security_compute_av_raw
  - security_compute_av_flags
  - security_compute_av
  source_file: /src/selinux/libselinux/src/compute_av.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - security_setenforce
  source_file: /src/selinux/libselinux/src/setenforce.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fgetxattr_wrapper
  - fgetfilecon_raw
  - fgetfilecon
  source_file: /src/selinux/libselinux/src/fgetfilecon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - free_spec_node
  - sort_spec_node
  - nodups_spec_node
  - process_text_file
  - merge_mmap_spec_nodes
  - entry_size_check
  - free_context_array
  - load_mmap_ctxarray
  - load_mmap_literal_spec
  - load_mmap_regex_spec
  - load_mmap_spec_node
  - load_mmap
  - rolling_append
  - fcontext_is_binary
  - ARRAY_SIZE
  - open_file
  - process_file
  - selabel_subs_fini
  - selabel_apply_subs
  - selabel_subs_init
  - selabel_sub_key
  - init
  - closef
  - search_literal_spec
  - free_lookup_result
  - all_node_specs
  - lookup_check_node
  - search_child_node
  - lookup_find_deepest_node
  - mode_to_file_kind
  - lookup_all
  - lookup_common
  - get_digests_all_partial_matches
  - hash_all_partial_matches
  - lookup
  - partial_match
  - lookup_best_match
  - spec_node_stats
  - stats
  - fmt_stem
  - lspec_incomp
  - rspec_incomp
  - spec_node_cmp
  - cmp
  - selabel_file_init
  source_file: /src/selinux/libselinux/src/label_file.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FUZZ_EXTERN
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/selinux/libselinux/src/label_file.c
      type_or_value: static
    structs:
    - fields:
      - name: '**data'
        type: char
      - name: size
        type: uint32_t
      item_type: struct
      name: context_array
      pos:
        line_end: 460
        line_start: 457
        source_file: /src/selinux/libselinux/src/label_file.c
    - fields:
      - name: '*suffix'
        type: char
      - name: sb
        type: struct stat
      item_type: struct
      name: file_details
      pos:
        line_end: 1120
        line_start: 1117
        source_file: /src/selinux/libselinux/src/label_file.c
    typedefs: []
    union: []
- function_names:
  - __selinux_once
  - __selinux_key_create
  - __selinux_key_delete
  - __selinux_setspecific
  - __selinux_getspecific
  - __pthread_mutex_init
  - __pthread_mutex_destroy
  - __pthread_mutex_lock
  - __pthread_mutex_unlock
  - fclose_errno_safe
  - likely
  - unlikely
  - likely
  - unlikely
  - spaceship_cmp
  - selinux_reset_errno
  source_file: /src/selinux/libselinux/src/selinux_internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __pthread_supported
      pos:
        line_end: 90
        line_start: 87
        source_file: /src/selinux/libselinux/src/selinux_internal.h
      type_or_value: "(pthread_create && pthread_join && pthread_cond_init && \\\n\t
        pthread_cond_destroy && pthread_cond_signal && pthread_cond_wait)"
    - item_type: preproc_def
      name: SELINUXDIR
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/selinux/libselinux/src/selinux_internal.h
      type_or_value: '"/etc/selinux/"'
    - item_type: preproc_def
      name: SELINUXCONFIG
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/selinux/libselinux/src/selinux_internal.h
      type_or_value: SELINUXDIR "config"
    - item_type: preproc_def
      name: ignore_unsigned_overflow_
      pos:
        line_end: 110
        line_start: 107
        source_file: /src/selinux/libselinux/src/selinux_internal.h
      type_or_value: "__attribute__((no_sanitize(\"unsigned-integer-overflow\", \\\n\t\t\t\t
        \  \"unsigned-shift-base\")))"
    - item_type: preproc_def
      name: ignore_unsigned_overflow_
      pos:
        line_end: 113
        line_start: 111
        source_file: /src/selinux/libselinux/src/selinux_internal.h
      type_or_value: __attribute__((no_sanitize("unsigned-integer-overflow")))
    - item_type: preproc_def
      name: IGNORE_DEPRECATED_DECLARATION_BEGIN
      pos:
        line_end: 123
        line_start: 120
        source_file: /src/selinux/libselinux/src/selinux_internal.h
      type_or_value: "_Pragma(\"clang diagnostic push\") _Pragma( \\\n\t\t\"clang
        diagnostic ignored \\\"-Wdeprecated-declarations\\\"\")"
    - item_type: preproc_def
      name: IGNORE_DEPRECATED_DECLARATION_END
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/selinux/libselinux/src/selinux_internal.h
      type_or_value: _Pragma("clang diagnostic pop")
    - item_type: preproc_def
      name: IGNORE_DEPRECATED_DECLARATION_BEGIN
      pos:
        line_end: 128
        line_start: 125
        source_file: /src/selinux/libselinux/src/selinux_internal.h
      type_or_value: "_Pragma(\"GCC diagnostic push\") _Pragma( \\\n\t\t\"GCC diagnostic
        ignored \\\"-Wdeprecated-declarations\\\"\")"
    - item_type: preproc_def
      name: IGNORE_DEPRECATED_DECLARATION_END
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/selinux/libselinux/src/selinux_internal.h
      type_or_value: _Pragma("GCC diagnostic pop")
    - item_type: preproc_def
      name: SELINUX_PROTECT_ERRNO
      pos:
        line_end: 161
        line_start: 158
        source_file: /src/selinux/libselinux/src/selinux_internal.h
      type_or_value: "__attribute__((__cleanup__(selinux_reset_errno))) \\\n\t__attribute__((__unused__))
        int _saved_errno = errno"
    structs: []
    typedefs: []
    union: []
- function_names:
  - string_to_file_kind
  - file_kind_to_string
  - regex_has_meta_chars
  - regex_simplify
  - compare_literal_spec
  - compare_spec_node
  - sort_specs
  - compile_regex
  - GROW_ARRAY
  - insert_spec
  - next_entry
  - process_line
  source_file: /src/selinux/libselinux/src/label_file.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SELINUX_MAGIC_COMPILED_FCONTEXT
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/selinux/libselinux/src/label_file.h
      type_or_value: '0xf97cff8a'
    - item_type: preproc_def
      name: SELINUX_COMPILED_FCONTEXT_NOPCRE_VERS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/selinux/libselinux/src/label_file.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SELINUX_COMPILED_FCONTEXT_PCRE_VERS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/selinux/libselinux/src/label_file.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SELINUX_COMPILED_FCONTEXT_MODE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/selinux/libselinux/src/label_file.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SELINUX_COMPILED_FCONTEXT_PREFIX_LEN
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/selinux/libselinux/src/label_file.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SELINUX_COMPILED_FCONTEXT_REGEX_ARCH
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/selinux/libselinux/src/label_file.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SELINUX_COMPILED_FCONTEXT_TREE_LAYOUT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/selinux/libselinux/src/label_file.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SELINUX_COMPILED_FCONTEXT_MAX_VERS
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/selinux/libselinux/src/label_file.h
      type_or_value: SELINUX_COMPILED_FCONTEXT_TREE_LAYOUT
    - item_type: preproc_def
      name: RESTORECON_PARTIAL_MATCH_DIGEST
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/selinux/libselinux/src/label_file.h
      type_or_value: '"security.sehash"'
    - item_type: preproc_def
      name: LABEL_FILE_KIND_INVALID
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/selinux/libselinux/src/label_file.h
      type_or_value: '255'
    - item_type: preproc_def
      name: LABEL_FILE_KIND_ALL
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/selinux/libselinux/src/label_file.h
      type_or_value: '0'
    - item_type: preproc_def
      name: LABEL_FILE_KIND_DIR
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/selinux/libselinux/src/label_file.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LABEL_FILE_KIND_CHR
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/selinux/libselinux/src/label_file.h
      type_or_value: '2'
    - item_type: preproc_def
      name: LABEL_FILE_KIND_BLK
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/selinux/libselinux/src/label_file.h
      type_or_value: '3'
    - item_type: preproc_def
      name: LABEL_FILE_KIND_SOCK
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/selinux/libselinux/src/label_file.h
      type_or_value: '4'
    - item_type: preproc_def
      name: LABEL_FILE_KIND_FIFO
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/selinux/libselinux/src/label_file.h
      type_or_value: '5'
    - item_type: preproc_def
      name: LABEL_FILE_KIND_LNK
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/selinux/libselinux/src/label_file.h
      type_or_value: '6'
    - item_type: preproc_def
      name: LABEL_FILE_KIND_REG
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/selinux/libselinux/src/label_file.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SPEC_NODE_MAX_DEPTH
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/selinux/libselinux/src/label_file.h
      type_or_value: '3'
    structs:
    - fields:
      - name: '*regex_str'
        type: char
      - name: '*lr'
        type: struct selabel_lookup_rec
      - name: prefix_len
        type: uint16_t
      - name: file_kind
        type: uint8_t
      - name: has_meta_chars
        type: bool
      - name: '*next'
        type: struct lookup_result
      item_type: struct
      name: lookup_result
      pos:
        line_end: 59
        line_start: 52
        source_file: /src/selinux/libselinux/src/label_file.h
    - fields:
      - name: '*src'
        type: char
      - name: '*dst'
        type: char
      - name: slen
        type: uint32_t
      - name: dlen
        type: uint32_t
      item_type: struct
      name: selabel_sub
      pos:
        line_end: 81
        line_start: 76
        source_file: /src/selinux/libselinux/src/label_file.h
    - fields:
      - name: lr
        type: struct selabel_lookup_rec
      - name: '*regex_str'
        type: char
      - name: '*regex'
        type: struct regex_data
      - name: regex_lock
        type: pthread_mutex_t
      - name: lineno
        type: uint32_t
      - name: prefix_len
        type: uint16_t
      - name: inputno
        type: uint8_t
      - name: file_kind
        type: uint8_t
      - name: regex_compiled
        type: bool
      - name: any_matches
        type: bool
      - name: from_mmap
        type: bool
      item_type: struct
      name: regex_spec
      pos:
        line_end: 96
        line_start: 84
        source_file: /src/selinux/libselinux/src/label_file.h
    - fields:
      - name: lr
        type: struct selabel_lookup_rec
      - name: '*regex_str'
        type: char
      - name: '*literal_match'
        type: char
      - name: prefix_len
        type: uint16_t
      - name: inputno
        type: uint8_t
      - name: file_kind
        type: uint8_t
      - name: any_matches
        type: bool
      - name: from_mmap
        type: bool
      item_type: struct
      name: literal_spec
      pos:
        line_end: 108
        line_start: 99
        source_file: /src/selinux/libselinux/src/label_file.h
    - fields:
      - name: '*stem'
        type: char
      - name: '*parent'
        type: struct spec_node
      - name: '*literal_specs'
        type: struct literal_spec
      - name: literal_specs_num
        type: uint32_t
      - name: '*regex_specs'
        type: struct regex_spec
      - name: regex_specs_num
        type: uint32_t
      - name: '*children'
        type: struct spec_node
      - name: children_num
        type: uint32_t
      - name: stem_len
        type: uint16_t
      - name: from_mmap
        type: bool
      item_type: struct
      name: spec_node
      pos:
        line_end: 150
        line_start: 120
        source_file: /src/selinux/libselinux/src/label_file.h
    - fields:
      - name: '*addr'
        type: void
      - name: len
        type: size_t
      - name: '*next_addr'
        type: void
      - name: next_len
        type: size_t
      - name: '*next'
        type: struct mmap_area
      item_type: struct
      name: mmap_area
      pos:
        line_end: 159
        line_start: 153
        source_file: /src/selinux/libselinux/src/label_file.h
    - fields:
      - name: '*root'
        type: struct spec_node
      - name: num_specs
        type: uint64_t
      - name: '*mmap_areas'
        type: struct mmap_area
      - name: '*dist_subs'
        type: struct selabel_sub
      - name: dist_subs_num
        type: uint32_t
      - name: '*subs'
        type: struct selabel_sub
      - name: subs_num
        type: uint32_t
      item_type: struct
      name: saved_data
      pos:
        line_end: 182
        line_start: 162
        source_file: /src/selinux/libselinux/src/label_file.h
    typedefs: []
    union: []
- function_names:
  - security_getenforce
  source_file: /src/selinux/libselinux/src/getenforce.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - security_validatetrans_raw
  - security_validatetrans
  source_file: /src/selinux/libselinux/src/validatetrans.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ARRAY_SIZE
  - CONFIG_MEDIA_BACKEND
  - CONFIG_MEDIA_BACKEND
  - CONFIG_X_BACKEND
  - CONFIG_X_BACKEND
  - CONFIG_DB_BACKEND
  - CONFIG_DB_BACKEND
  - CONFIG_ANDROID_BACKEND
  - CONFIG_ANDROID_BACKEND
  - selabel_is_digest_set
  - selabel_digest_fini
  - selabel_is_validate_set
  - selabel_validate
  - selabel_fini
  - selabel_lookup_common
  - selabel_lookup_bm_common
  - selabel_open
  - selabel_lookup
  - selabel_lookup_raw
  - selabel_partial_match
  - selabel_get_digests_all_partial_matches
  - selabel_hash_all_partial_matches
  - selabel_lookup_best_match
  - selabel_lookup_best_match_raw
  - selabel_cmp
  - selabel_digest
  - selabel_close
  - selabel_stats
  source_file: /src/selinux/libselinux/src/label.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: "(*selabel_initfunc)(struct selabel_handle *rec,\n\t\t\t\tconst struct
        selinux_opt *opts, unsigned nopts)"
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/selinux/libselinux/src/label.c
      type: int
    union: []
- function_names: []
  source_file: /src/selinux/libselinux/src/mapping.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getpeercon_raw
  - getpeercon
  source_file: /src/selinux/libselinux/src/getpeercon.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SO_PEERSEC
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/selinux/libselinux/src/getpeercon.c
      type_or_value: '31'
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_spec_entry
  - read_spec_entries
  - digest_gen_hash
  - digest_add_specfile
  source_file: /src/selinux/libselinux/src/label_support.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - process_line
  - init
  - close
  - lookup
  - stats
  - selabel_x_init
  source_file: /src/selinux/libselinux/src/label_x.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: lr
        type: struct selabel_lookup_rec
      - name: '*key'
        type: char
      - name: type
        type: int
      - name: matches
        type: int
      item_type: struct
      name: spec
      pos:
        line_end: 27
        line_start: 22
        source_file: /src/selinux/libselinux/src/label_x.c
    - fields:
      - name: nspec
        type: unsigned int
      - name: '*spec_arr'
        type: spec_t
      item_type: struct
      name: saved_data
      pos:
        line_end: 32
        line_start: 29
        source_file: /src/selinux/libselinux/src/label_x.c
    typedefs: []
    union: []
- function_names:
  - security_compute_relabel_raw
  - security_compute_relabel
  source_file: /src/selinux/libselinux/src/compute_relabel.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libselinux/src/context_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - object_name_encode
  - security_compute_create_name_raw
  - security_compute_create_raw
  - security_compute_create_name
  - security_compute_create
  source_file: /src/selinux/libselinux/src/compute_create.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - default_printf
  - set_matchpathcon_printf
  - compat_validate
  - free_array_elts
  - add_array_elt
  - set_matchpathcon_invalidcon
  - default_canoncon
  - set_matchpathcon_canoncon
  - set_matchpathcon_flags
  - matchpathcon_filespec_add
  - matchpathcon_filespec_add
  - matchpathcon_filespec_eval
  - matchpathcon_filespec_destroy
  - matchpathcon_fini_internal
  - matchpathcon_thread_destructor
  - matchpathcon_lib_destructor
  - matchpathcon_init_once
  - matchpathcon_init_prefix
  - matchpathcon_init
  - matchpathcon_fini
  - realpath_not_final
  - matchpathcon_internal
  - matchpathcon
  - matchpathcon_index
  - matchpathcon_checkmatches
  - selinux_file_context_cmp
  - selinux_file_context_verify
  - selinux_lsetfilecon_default
  source_file: /src/selinux/libselinux/src/matchpathcon.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HASH_BITS
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/selinux/libselinux/src/matchpathcon.c
      type_or_value: '16'
    - item_type: preproc_def
      name: HASH_BUCKETS
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/selinux/libselinux/src/matchpathcon.c
      type_or_value: (1 << HASH_BITS)
    - item_type: preproc_def
      name: HASH_MASK
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/selinux/libselinux/src/matchpathcon.c
      type_or_value: (HASH_BUCKETS - 1)
    structs:
    - fields:
      - name: ino
        type: ino_t
      - name: specind
        type: int
      - name: '*file'
        type: char
      - name: '*next'
        type: struct file_spec
      item_type: struct
      name: file_spec
      pos:
        line_end: 203
        line_start: 198
        source_file: /src/selinux/libselinux/src/matchpathcon.c
    typedefs: []
    union: []
- function_names:
  - selinux_gettid
  - procattr_thread_destructor
  - procattr_destructor
  - init_thread_destructor
  - init_procattr
  - openattr
  - getprocattrcon_raw
  - getprocattrcon
  - setprocattrcon_raw
  - setprocattrcon
  - getselfattr_def
  - setselfattr_def
  - all_selfattr_def
  - getpidcon_raw
  - getpidcon
  - getpidprevcon_raw
  - getpidprevcon
  source_file: /src/selinux/libselinux/src/procattr.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UNSET
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/selinux/libselinux/src/procattr.c
      type_or_value: ((char *)-1)
    - item_type: preproc_def
      name: HAVE_GETTID
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/selinux/libselinux/src/procattr.c
      type_or_value: '1'
    - item_type: preproc_def
      name: HAVE_GETTID
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/selinux/libselinux/src/procattr.c
      type_or_value: '0'
    - item_type: preproc_def
      name: HAVE_GETTID
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/selinux/libselinux/src/procattr.c
      type_or_value: '0'
    - item_type: preproc_def
      name: HAVE_GETTID
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/selinux/libselinux/src/procattr.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - L1
  - L2
  - S_
  - selinux_getenforcemode
  - selinux_getpolicytype
  - setpolicytype
  - init_selinux_config
  - fini_selinux_policyroot
  - selinux_reset_config
  - get_path
  - selinux_default_type_path
  - selinux_policy_root
  - selinux_set_policy_root
  - selinux_path
  - selinux_default_context_path
  - selinux_securetty_types_path
  - selinux_failsafe_context_path
  - selinux_removable_context_path
  - selinux_binary_policy_path
  - selinux_current_policy_path
  - selinux_file_context_path
  - selinux_homedir_context_path
  - selinux_media_context_path
  - selinux_customizable_types_path
  - selinux_contexts_path
  - selinux_user_contexts_path
  - selinux_booleans_path
  - selinux_users_path
  - selinux_usersconf_path
  - selinux_translations_path
  - selinux_colors_path
  - selinux_netfilter_context_path
  - selinux_file_context_homedir_path
  - selinux_file_context_local_path
  - selinux_x_context_path
  - selinux_virtual_domain_context_path
  - selinux_virtual_image_context_path
  - selinux_lxc_contexts_path
  - selinux_openrc_contexts_path
  - selinux_openssh_contexts_path
  - selinux_snapperd_contexts_path
  - selinux_systemd_contexts_path
  - selinux_booleans_subs_path
  - selinux_file_context_subs_path
  - selinux_file_context_subs_dist_path
  - selinux_sepgsql_context_path
  source_file: /src/selinux/libselinux/src/selinux_config.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SELINUXDEFAULT
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '"targeted"'
    - item_type: preproc_def
      name: SELINUXTYPETAG
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '"SELINUXTYPE="'
    - item_type: preproc_def
      name: SELINUXTAG
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '"SELINUX="'
    - item_type: preproc_def
      name: REQUIRESEUSERS
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '"REQUIRESEUSERS="'
    - item_type: preproc_def
      name: BINPOLICY
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '0'
    - item_type: preproc_def
      name: CONTEXTS_DIR
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '1'
    - item_type: preproc_def
      name: FILE_CONTEXTS
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '2'
    - item_type: preproc_def
      name: HOMEDIR_CONTEXTS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '3'
    - item_type: preproc_def
      name: DEFAULT_CONTEXTS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '4'
    - item_type: preproc_def
      name: USER_CONTEXTS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '5'
    - item_type: preproc_def
      name: FAILSAFE_CONTEXT
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '6'
    - item_type: preproc_def
      name: DEFAULT_TYPE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '7'
    - item_type: preproc_def
      name: BOOLEANS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '8'
    - item_type: preproc_def
      name: MEDIA_CONTEXTS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '9'
    - item_type: preproc_def
      name: REMOVABLE_CONTEXT
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '10'
    - item_type: preproc_def
      name: CUSTOMIZABLE_TYPES
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '11'
    - item_type: preproc_def
      name: USERS_DIR
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '12'
    - item_type: preproc_def
      name: SEUSERS
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '13'
    - item_type: preproc_def
      name: TRANSLATIONS
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '14'
    - item_type: preproc_def
      name: NETFILTER_CONTEXTS
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '15'
    - item_type: preproc_def
      name: FILE_CONTEXTS_HOMEDIR
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '16'
    - item_type: preproc_def
      name: FILE_CONTEXTS_LOCAL
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '17'
    - item_type: preproc_def
      name: SECURETTY_TYPES
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '18'
    - item_type: preproc_def
      name: X_CONTEXTS
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '19'
    - item_type: preproc_def
      name: COLORS
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '20'
    - item_type: preproc_def
      name: VIRTUAL_DOMAIN
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '21'
    - item_type: preproc_def
      name: VIRTUAL_IMAGE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '22'
    - item_type: preproc_def
      name: FILE_CONTEXT_SUBS
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '23'
    - item_type: preproc_def
      name: SEPGSQL_CONTEXTS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '24'
    - item_type: preproc_def
      name: FILE_CONTEXT_SUBS_DIST
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '25'
    - item_type: preproc_def
      name: LXC_CONTEXTS
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '26'
    - item_type: preproc_def
      name: BOOLEAN_SUBS
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '27'
    - item_type: preproc_def
      name: OPENSSH_CONTEXTS
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '28'
    - item_type: preproc_def
      name: SYSTEMD_CONTEXTS
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '29'
    - item_type: preproc_def
      name: SNAPPERD_CONTEXTS
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '30'
    - item_type: preproc_def
      name: OPENRC_CONTEXTS
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '31'
    - item_type: preproc_def
      name: NEL
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/selinux/libselinux/src/selinux_config.c
      type_or_value: '32'
    structs: []
    typedefs: []
    union:
    - fields:
      - name: str[0]
        type: char
      item_type: union
      name: file_path_suffixes_data
      pos:
        line_end: 72
        line_start: 65
        source_file: /src/selinux/libselinux/src/selinux_config.c
- function_names:
  - lsetfilecon_raw
  - lsetfilecon
  source_file: /src/selinux/libselinux/src/lsetfilecon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - selinux_check_securetty_context
  source_file: /src/selinux/libselinux/src/selinux_check_securetty_context.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - security_check_context_raw
  - security_check_context
  source_file: /src/selinux/libselinux/src/check_context.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - load_booleans
  - check_booleans
  - finish
  - __policy_init
  - init
  - RETURN
  - analyze
  - PyInit_audit2why
  source_file: /src/selinux/libselinux/src/audit2why.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: UNKNOWN
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/selinux/libselinux/src/audit2why.c
      type_or_value: '-1'
    - item_type: preproc_def
      name: BADSCON
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/selinux/libselinux/src/audit2why.c
      type_or_value: '-2'
    - item_type: preproc_def
      name: BADTCON
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/selinux/libselinux/src/audit2why.c
      type_or_value: '-3'
    - item_type: preproc_def
      name: BADTCLASS
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/selinux/libselinux/src/audit2why.c
      type_or_value: '-4'
    - item_type: preproc_def
      name: BADPERM
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/selinux/libselinux/src/audit2why.c
      type_or_value: '-5'
    - item_type: preproc_def
      name: BADCOMPUTE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/selinux/libselinux/src/audit2why.c
      type_or_value: '-6'
    - item_type: preproc_def
      name: NOPOLICY
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/selinux/libselinux/src/audit2why.c
      type_or_value: '-7'
    - item_type: preproc_def
      name: ALLOW
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/selinux/libselinux/src/audit2why.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DONTAUDIT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/selinux/libselinux/src/audit2why.c
      type_or_value: '1'
    - item_type: preproc_def
      name: TERULE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/selinux/libselinux/src/audit2why.c
      type_or_value: '2'
    - item_type: preproc_def
      name: BOOLEAN
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/selinux/libselinux/src/audit2why.c
      type_or_value: '3'
    - item_type: preproc_def
      name: CONSTRAINT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/selinux/libselinux/src/audit2why.c
      type_or_value: '4'
    - item_type: preproc_def
      name: RBAC
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/selinux/libselinux/src/audit2why.c
      type_or_value: '5'
    - item_type: preproc_def
      name: BOUNDS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/selinux/libselinux/src/audit2why.c
      type_or_value: '6'
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: active
        type: int
      item_type: struct
      name: boolean_t
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/selinux/libselinux/src/audit2why.c
    - fields:
      - name: '*handle'
        type: sepol_handle_t
      - name: '*policydb'
        type: sepol_policydb_t
      - name: ssid
        type: sepol_security_id_t
      - name: tsid
        type: sepol_security_id_t
      - name: tclass
        type: sepol_security_class_t
      - name: av
        type: sepol_access_vector_t
      item_type: struct
      name: avc_t
      pos:
        line_end: 42
        line_start: 35
        source_file: /src/selinux/libselinux/src/audit2why.c
    typedefs: []
    union: []
- function_names:
  - security_disable
  source_file: /src/selinux/libselinux/src/disable.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libselinux/src/avc_sidtab.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SIDTAB_HASH_BITS
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/selinux/libselinux/src/avc_sidtab.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SIDTAB_HASH_BUCKETS
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/selinux/libselinux/src/avc_sidtab.h
      type_or_value: (1 << SIDTAB_HASH_BITS)
    - item_type: preproc_def
      name: SIDTAB_HASH_MASK
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/selinux/libselinux/src/avc_sidtab.h
      type_or_value: (SIDTAB_HASH_BUCKETS - 1)
    - item_type: preproc_def
      name: SIDTAB_SIZE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/selinux/libselinux/src/avc_sidtab.h
      type_or_value: SIDTAB_HASH_BUCKETS
    structs:
    - fields:
      - name: sid_s
        type: struct security_id
      - name: '*next'
        type: struct sidtab_node
      item_type: struct
      name: sidtab_node
      pos:
        line_end: 13
        line_start: 10
        source_file: /src/selinux/libselinux/src/avc_sidtab.h
    - fields:
      - name: '**htable'
        type: struct sidtab_node
      - name: nel
        type: unsigned
      item_type: struct
      name: sidtab
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/selinux/libselinux/src/avc_sidtab.h
    typedefs: []
    union: []
- function_names:
  - context_new
  - conditional_free
  - context_free
  - context_str
  - context_to_str
  - set_comp
  - def_get
  - def_set
  source_file: /src/selinux/libselinux/src/context.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COMP_USER
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/selinux/libselinux/src/context.c
      type_or_value: '0'
    - item_type: preproc_def
      name: COMP_ROLE
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/selinux/libselinux/src/context.c
      type_or_value: '1'
    - item_type: preproc_def
      name: COMP_TYPE
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/selinux/libselinux/src/context.c
      type_or_value: '2'
    - item_type: preproc_def
      name: COMP_RANGE
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/selinux/libselinux/src/context.c
      type_or_value: '3'
    structs:
    - fields:
      - name: '*current_str'
        type: char
      - name: '*(component[4])'
        type: char
      item_type: struct
      name: context_private_t
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/selinux/libselinux/src/context.c
    typedefs: []
    union: []
- function_names:
  - setexecfilecon
  - rpm_execcon
  source_file: /src/selinux/libselinux/src/setexecfilecon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libselinux/src/sha1.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHA1_HASH_SIZE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/selinux/libselinux/src/sha1.h
      type_or_value: (160 / 8)
    structs:
    - fields:
      - name: State[5]
        type: uint32_t
      - name: Count[2]
        type: uint32_t
      - name: Buffer[64]
        type: uint8_t
      item_type: struct
      name: Sha1Context
      pos:
        line_end: 31
        line_start: 27
        source_file: /src/selinux/libselinux/src/sha1.h
    - fields:
      - name: bytes[SHA1_HASH_SIZE]
        type: uint8_t
      item_type: struct
      name: SHA1_HASH
      pos:
        line_end: 37
        line_start: 35
        source_file: /src/selinux/libselinux/src/sha1.h
    typedefs: []
    union: []
- function_names:
  - security_canonicalize_context_raw
  - security_canonicalize_context
  source_file: /src/selinux/libselinux/src/canonicalize_context.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - setransd_open
  - send_request
  - receive_response
  - raw_to_trans_context
  - trans_to_raw_context
  - raw_context_to_color
  - setrans_thread_destructor
  - setrans_lib_destructor
  - init_thread_destructor
  - init_context_translations
  - selinux_trans_to_raw_context
  - selinux_raw_to_trans_context
  - selinux_raw_context_to_color
  - selinux_trans_to_raw_context
  - selinux_raw_to_trans_context
  source_file: /src/selinux/libselinux/src/setrans_client.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - customizable_init
  - is_context_customizable
  source_file: /src/selinux/libselinux/src/is_customizable_type.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libselinux/src/policy.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: XATTR_NAME_SELINUX
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/selinux/libselinux/src/policy.h
      type_or_value: '"security.selinux"'
    - item_type: preproc_def
      name: INITCONTEXTLEN
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/selinux/libselinux/src/policy.h
      type_or_value: '255'
    - item_type: preproc_def
      name: SELINUXFS
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/selinux/libselinux/src/policy.h
      type_or_value: '"selinuxfs"'
    - item_type: preproc_def
      name: SELINUX_MAGIC
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/selinux/libselinux/src/policy.h
      type_or_value: '0xf97cff8c'
    - item_type: preproc_def
      name: SELINUXMNT
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/selinux/libselinux/src/policy.h
      type_or_value: '"/sys/fs/selinux"'
    - item_type: preproc_def
      name: FILECONTEXTS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/selinux/libselinux/src/policy.h
      type_or_value: '"/etc/security/selinux/file_contexts"'
    - item_type: preproc_def
      name: DEFAULT_POLICY_VERSION
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/selinux/libselinux/src/policy.h
      type_or_value: '15'
    structs: []
    typedefs: []
    union: []
- function_names:
  - avc_hash
  - avc_context_to_sid_raw
  - avc_context_to_sid
  - avc_sid_to_context_raw
  - avc_sid_to_context
  - sidget
  - sidput
  - avc_get_initial_sid
  - avc_init_internal
  - avc_open
  - avc_init
  - avc_cache_stats
  - avc_sid_stats
  - avc_av_stats
  - avc_reclaim_node
  - avc_clear_avc_entry
  - avc_claim_node
  - avc_search_node
  - avc_lookup
  - avc_insert
  - avc_cleanup
  - avc_reset
  - avc_destroy
  - avc_ratelimit
  - check_avc_ratelimit
  - avc_dump_av
  - avc_dump_query
  - avc_audit
  - avd_init
  - avc_has_perm_noaudit
  - avc_has_perm
  - avc_compute_create
  - avc_compute_member
  - avc_add_callback
  - avc_sidcmp
  - avc_update_node
  - avc_update_cache
  - avc_control
  - avc_ss_grant
  - avc_ss_try_revoke
  - avc_ss_revoke
  - avc_ss_reset
  - avc_ss_set_auditallow
  - avc_ss_set_auditdeny
  source_file: /src/selinux/libselinux/src/avc.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AVC_CACHE_SLOTS
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/selinux/libselinux/src/avc.c
      type_or_value: '512'
    - item_type: preproc_def
      name: AVC_CACHE_MAXNODES
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/selinux/libselinux/src/avc.c
      type_or_value: '410'
    - item_type: preproc_def
      name: AVC_MSG_COST
      pos:
        line_end: 598
        line_start: 597
        source_file: /src/selinux/libselinux/src/avc.c
      type_or_value: 5 * HZ
    - item_type: preproc_def
      name: AVC_MSG_BURST
      pos:
        line_end: 599
        line_start: 598
        source_file: /src/selinux/libselinux/src/avc.c
      type_or_value: 10 * 5 * HZ
    structs:
    - fields:
      - name: ssid
        type: security_id_t
      - name: tsid
        type: security_id_t
      - name: tclass
        type: security_class_t
      - name: avd
        type: struct av_decision
      - name: create_sid
        type: security_id_t
      - name: used
        type: int
      item_type: struct
      name: avc_entry
      pos:
        line_end: 25
        line_start: 18
        source_file: /src/selinux/libselinux/src/avc.c
    - fields:
      - name: ae
        type: struct avc_entry
      - name: '*next'
        type: struct avc_node
      item_type: struct
      name: avc_node
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/selinux/libselinux/src/avc.c
    - fields:
      - name: '*slots[AVC_CACHE_SLOTS]'
        type: struct avc_node
      - name: lru_hint
        type: uint32_t
      - name: active_nodes
        type: uint32_t
      - name: latest_notif
        type: uint32_t
      item_type: struct
      name: avc_cache
      pos:
        line_end: 37
        line_start: 32
        source_file: /src/selinux/libselinux/src/avc.c
    - fields:
      - name: "(*callback)(uint32_t event, security_id_t ssid, security_id_t tsid,\n\t\t\tsecurity_class_t
          tclass, access_vector_t perms,\n\t\t\taccess_vector_t *out_retained)"
        type: int
      - name: events
        type: uint32_t
      - name: ssid
        type: security_id_t
      - name: tsid
        type: security_id_t
      - name: tclass
        type: security_class_t
      - name: perms
        type: access_vector_t
      - name: '*next'
        type: struct avc_callback_node
      item_type: struct
      name: avc_callback_node
      pos:
        line_end: 49
        line_start: 39
        source_file: /src/selinux/libselinux/src/avc.c
    typedefs: []
    union: []
- function_names:
  - context_menu
  - query_user_context
  - get_field
  - manual_user_enter_context
  source_file: /src/selinux/libselinux/src/query_user_context.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - fsetxattr_wrapper
  - fsetfilecon_raw
  - fsetfilecon
  source_file: /src/selinux/libselinux/src/fsetfilecon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_sequence
  - selinux_status_updated
  - selinux_status_getenforce
  - selinux_status_policyload
  - selinux_status_deny_unknown
  - fallback_cb_setenforce
  - fallback_cb_policyload
  - selinux_status_open
  - selinux_status_close
  source_file: /src/selinux/libselinux/src/sestatus.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: version
        type: uint32_t
      - name: sequence
        type: uint32_t
      - name: enforcing
        type: uint32_t
      - name: policyload
        type: uint32_t
      - name: deny_unknown
        type: uint32_t
      item_type: struct
      name: selinux_status_t
      pos:
        line_end: 28
        line_start: 21
        source_file: /src/selinux/libselinux/src/sestatus.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libselinux/src/selinux_netlink.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SELNL_MSG_BASE
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/selinux/libselinux/src/selinux_netlink.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: SELNL_GRP_NONE
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/selinux/libselinux/src/selinux_netlink.h
      type_or_value: '0x00000000'
    - item_type: preproc_def
      name: SELNL_GRP_AVC
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/selinux/libselinux/src/selinux_netlink.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: SELNL_GRP_ALL
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/selinux/libselinux/src/selinux_netlink.h
      type_or_value: '0xffffffff'
    structs:
    - fields:
      - name: val
        type: int32_t
      item_type: struct
      name: selnl_msg_setenforce
      pos:
        line_end: 24
        line_start: 22
        source_file: /src/selinux/libselinux/src/selinux_netlink.h
    - fields:
      - name: seqno
        type: uint32_t
      item_type: struct
      name: selnl_msg_policyload
      pos:
        line_end: 28
        line_start: 26
        source_file: /src/selinux/libselinux/src/selinux_netlink.h
    typedefs: []
    union: []
- function_names:
  - avc_init_once
  - selinux_check_access
  - selinux_check_passwd_access_internal
  - selinux_check_passwd_access
  - checkPasswdAccess
  source_file: /src/selinux/libselinux/src/checkAccess.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - cmp
  - nodups_specs
  - process_line
  - init
  - closef
  - property_lookup
  - service_lookup
  - stats
  - selabel_property_init
  - selabel_service_init
  source_file: /src/selinux/libselinux/src/label_backends_android.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: lr
        type: struct selabel_lookup_rec
      - name: '*property_key'
        type: char
      item_type: struct
      name: spec
      pos:
        line_end: 20
        line_start: 17
        source_file: /src/selinux/libselinux/src/label_backends_android.c
    - fields:
      - name: '*spec_arr'
        type: spec_t
      - name: nspec
        type: unsigned int
      item_type: struct
      name: saved_data
      pos:
        line_end: 30
        line_start: 23
        source_file: /src/selinux/libselinux/src/label_backends_android.c
    typedefs: []
    union: []
- function_names:
  - lgetfilecon_raw
  - lgetfilecon
  source_file: /src/selinux/libselinux/src/lgetfilecon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - selinux_log
  source_file: /src/selinux/libselinux/src/callbacks.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - probe_proc
  - fd_path_getfilecon
  - fd_path_setfilecon
  - restorecon_init
  - remove_exclude
  - add_exclude
  - check_excluded
  - file_system_count
  - exclude_non_seclabel_mounts
  - add_xattr_entry
  - filespec_add
  - filespec_eval
  - filespec_eval
  - filespec_destroy
  - compare_portions
  - restorecon_sb
  - check_context_match_for_dir
  - walk_push
  - prune_pathbuf
  - walk_pop
  - walk_free
  - walk_path_append
  - walk_is_cycle
  - note_walk_error
  - d_type_to_mode
  - open_final
  - safe_open
  - walk_next
  - selinux_restorecon_thread
  - selinux_restorecon_common
  - selinux_restorecon
  - selinux_restorecon_parallel
  - selinux_restorecon_set_sehandle
  - selinux_restorecon_default_handle
  - selinux_restorecon_set_exclude_list
  - selinux_restorecon_set_alt_rootpath
  - selinux_restorecon_xattr
  - selinux_restorecon_get_skipped_errors
  - selinux_restorecon_get_relabeled_files
  source_file: /src/selinux/libselinux/src/selinux_restorecon.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CALLER_EXCLUDED
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/selinux/libselinux/src/selinux_restorecon.c
      type_or_value: 'true'
    - item_type: preproc_def
      name: HASH_BITS
      pos:
        line_end: 466
        line_start: 465
        source_file: /src/selinux/libselinux/src/selinux_restorecon.c
      type_or_value: '16'
    - item_type: preproc_def
      name: HASH_BUCKETS
      pos:
        line_end: 467
        line_start: 466
        source_file: /src/selinux/libselinux/src/selinux_restorecon.c
      type_or_value: (1 << HASH_BITS)
    - item_type: preproc_def
      name: HASH_MASK
      pos:
        line_end: 468
        line_start: 467
        source_file: /src/selinux/libselinux/src/selinux_restorecon.c
      type_or_value: (HASH_BUCKETS - 1)
    structs:
    - fields:
      - name: '*directory'
        type: char
      - name: size
        type: size_t
      - name: caller_excluded
        type: bool
      item_type: struct
      name: edir
      pos:
        line_end: 57
        line_start: 52
        source_file: /src/selinux/libselinux/src/selinux_restorecon.c
    - fields:
      - name: nochange
        type: bool
      - name: verbose
        type: bool
      - name: progress
        type: bool
      - name: mass_relabel
        type: bool
      - name: set_specctx
        type: bool
      - name: set_user_role
        type: bool
      - name: add_assoc
        type: bool
      - name: recurse
        type: bool
      - name: userealpath
        type: bool
      - name: set_xdev
        type: bool
      - name: abort_on_error
        type: bool
      - name: syslog_changes
        type: bool
      - name: log_matches
        type: bool
      - name: ignore_noent
        type: bool
      - name: warnonnomatch
        type: bool
      - name: conflicterror
        type: bool
      - name: count_errors
        type: bool
      - name: count_relabeled
        type: bool
      - name: skip_multilink
        type: bool
      item_type: struct
      name: rest_flags
      pos:
        line_end: 98
        line_start: 78
        source_file: /src/selinux/libselinux/src/selinux_restorecon.c
    - fields:
      - name: ino
        type: ino_t
      - name: '*con'
        type: char
      - name: '*file'
        type: char
      - name: '*next'
        type: struct file_spec
      item_type: struct
      name: file_spec
      pos:
        line_end: 477
        line_start: 472
        source_file: /src/selinux/libselinux/src/selinux_restorecon.c
    - fields:
      - name: '*dirp'
        type: DIR
      - name: dev
        type: dev_t
      - name: ino
        type: ino_t
      - name: pathlen
        type: size_t
      - name: digest[SHA1_HASH_SIZE]
        type: uint8_t
      - name: write_digest
        type: bool
      item_type: struct
      name: walk_level
      pos:
        line_end: 942
        line_start: 935
        source_file: /src/selinux/libselinux/src/selinux_restorecon.c
    - fields:
      - name: flags
        type: struct rest_flags
      - name: dev_num
        type: dev_t
      - name: sfsb
        type: struct statfs
      - name: ignore_digest
        type: bool
      - name: setrestorecondigest
        type: bool
      - name: parallel
        type: bool
      - name: '*stack'
        type: struct walk_level
      - name: depth
        type: size_t
      - name: stack_cap
        type: size_t
      - name: pathbuf[PATH_MAX]
        type: char
      - name: root_fd
        type: int
      - name: root_sb
        type: struct stat
      - name: abort
        type: bool
      - name: error
        type: int
      - name: skipped_errors
        type: long unsigned
      - name: relabeled_files
        type: long unsigned
      - name: saved_errno
        type: int
      - name: mutex
        type: pthread_mutex_t
      item_type: struct
      name: rest_state
      pos:
        line_end: 966
        line_start: 944
        source_file: /src/selinux/libselinux/src/selinux_restorecon.c
    typedefs: []
    union: []
- function_names:
  - setfilecon_raw
  - setfilecon
  source_file: /src/selinux/libselinux/src/setfilecon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - filename_select
  - security_get_boolean_names
  - selinux_boolean_sub
  - bool_open
  - get_bool_value
  - security_get_boolean_pending
  - security_get_boolean_active
  - security_set_boolean
  - security_commit_booleans
  - rollback
  - security_set_boolean_list
  - security_load_booleans
  - security_set_boolean_list
  - security_load_booleans
  - security_get_boolean_names
  - security_get_boolean_pending
  - security_get_boolean_active
  - security_set_boolean
  - security_commit_booleans
  - selinux_boolean_sub
  source_file: /src/selinux/libselinux/src/booleans.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SELINUX_BOOL_DIR
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/selinux/libselinux/src/booleans.c
      type_or_value: '"/booleans/"'
    - item_type: preproc_def
      name: STRBUF_SIZE
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/selinux/libselinux/src/booleans.c
      type_or_value: '3'
    structs: []
    typedefs: []
    union: []
- function_names:
  - getfilecon_raw
  - getfilecon
  source_file: /src/selinux/libselinux/src/getfilecon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - verify_selinuxmnt
  - selinuxfs_exists
  - init_selinuxmnt
  - fini_selinuxmnt
  - set_selinuxmnt
  - init_lib
  - fini_lib
  source_file: /src/selinux/libselinux/src/init.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libselinux/src/file_path_suffixes.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - security_reject_unknown
  source_file: /src/selinux/libselinux/src/reject_unknown.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - process_seusers
  - get_default_gid
  - check_group
  - getseuserbyname
  - getseuser
  source_file: /src/selinux/libselinux/src/seusers.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - security_load_policy
  - max
  - selinux_mkload_policy
  - DLERR
  - selinux_init_load_policy
  source_file: /src/selinux/libselinux/src/load_policy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MNT_DETACH
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/selinux/libselinux/src/load_policy.c
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_class_cache_entry_name
  - get_class_cache_entry_value
  - discover_class
  - selinux_flush_class_cache
  - string_to_security_class
  - mode_to_security_class
  - string_to_av_perm
  - security_class_to_string
  - security_av_perm_to_string
  - security_av_string
  - print_access_vector
  source_file: /src/selinux/libselinux/src/stringrep.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAXVECTORS
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/selinux/libselinux/src/stringrep.c
      type_or_value: (8 * sizeof(access_vector_t))
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: value
        type: security_class_t
      - name: '**perms'
        type: char
      - name: '*next'
        type: struct discover_class_node
      item_type: struct
      name: discover_class_node
      pos:
        line_end: 27
        line_start: 21
        source_file: /src/selinux/libselinux/src/stringrep.c
    typedefs: []
    union: []
- function_names:
  - rol
  - blk0
  - blk
  - R0
  - R1
  - R2
  - R3
  - R4
  - TransformFunction
  - Sha1Initialise
  - Sha1Update
  - Sha1Finalise
  source_file: /src/selinux/libselinux/src/sha1.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union:
    - fields:
      - name: c[64]
        type: uint8_t
      - name: l[16]
        type: uint32_t
      item_type: union
      name: CHAR64LONG16
      pos:
        line_end: 37
        line_start: 34
        source_file: /src/selinux/libselinux/src/sha1.c
- function_names: []
  source_file: /src/selinux/libselinux/src/setrans_internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SETRANS_UNIX_SOCKET
      pos:
        line_end: 4
        line_start: 3
        source_file: /src/selinux/libselinux/src/setrans_internal.h
      type_or_value: SELINUX_TRANS_DIR "/.setrans-unix"
    - item_type: preproc_def
      name: RAW_TO_TRANS_CONTEXT
      pos:
        line_end: 6
        line_start: 5
        source_file: /src/selinux/libselinux/src/setrans_internal.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TRANS_TO_RAW_CONTEXT
      pos:
        line_end: 7
        line_start: 6
        source_file: /src/selinux/libselinux/src/setrans_internal.h
      type_or_value: '3'
    - item_type: preproc_def
      name: RAW_CONTEXT_TO_COLOR
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/selinux/libselinux/src/setrans_internal.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MAX_DATA_BUF
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/selinux/libselinux/src/setrans_internal.h
      type_or_value: '8192'
    structs: []
    typedefs: []
    union: []
- function_names:
  - freeconary
  source_file: /src/selinux/libselinux/src/freeconary.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - process_line
  - db_close
  - db_lookup
  - db_stats
  - db_init
  - selabel_db_init
  source_file: /src/selinux/libselinux/src/label_db.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: lr
        type: struct selabel_lookup_rec
      - name: '*key'
        type: char
      - name: type
        type: int
      - name: matches
        type: int
      item_type: struct
      name: spec
      pos:
        line_end: 75
        line_start: 70
        source_file: /src/selinux/libselinux/src/label_db.c
    - fields:
      - name: nspec
        type: unsigned int
      - name: limit
        type: unsigned int
      - name: specs[0]
        type: spec_t
      item_type: struct
      name: catalog
      pos:
        line_end: 84
        line_start: 80
        source_file: /src/selinux/libselinux/src/label_db.c
    typedefs: []
    union: []
- function_names:
  - process_line
  - init
  - close
  - lookup
  - stats
  - selabel_media_init
  source_file: /src/selinux/libselinux/src/label_media.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: lr
        type: struct selabel_lookup_rec
      - name: '*key'
        type: char
      - name: matches
        type: int
      item_type: struct
      name: spec
      pos:
        line_end: 25
        line_start: 21
        source_file: /src/selinux/libselinux/src/label_media.c
    - fields:
      - name: nspec
        type: unsigned int
      - name: '*spec_arr'
        type: spec_t
      item_type: struct
      name: saved_data
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/selinux/libselinux/src/label_media.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libselinux/src/regex.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: error_code
        type: int
      - name: error_offset
        type: PCRE2_SIZE
      item_type: struct
      name: regex_error_data
      pos:
        line_end: 25
        line_start: 22
        source_file: /src/selinux/libselinux/src/regex.h
    - fields:
      - name: '*error_buffer'
        type: char
      - name: error_offset
        type: int
      item_type: struct
      name: regex_error_data
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/selinux/libselinux/src/regex.h
    typedefs: []
    union: []
- function_names:
  - security_get_checkreqprot
  source_file: /src/selinux/libselinux/src/checkreqprot.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sidtab_hash
  - sidtab_init
  - sidtab_insert
  - sidtab_context_lookup
  - sidtab_context_to_sid
  - sidtab_sid_stats
  - sidtab_destroy
  source_file: /src/selinux/libselinux/src/avc_sidtab.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - security_compute_user_raw
  - security_compute_user
  source_file: /src/selinux/libselinux/src/compute_user.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_default_context_with_role
  - get_default_context_with_rolelevel
  - get_default_context
  - is_in_reachable
  - get_context_user
  - get_failsafe_context
  - get_ordered_context_list_with_level
  - get_default_context_with_level
  - get_ordered_context_list
  source_file: /src/selinux/libselinux/src/get_context_list.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - matchmediacon
  source_file: /src/selinux/libselinux/src/matchmediacon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ARRAY_SIZE
  - selinux_set_mapping
  - unmap_class
  - unmap_perm
  - map_class
  - map_perm
  - map_decision
  source_file: /src/selinux/libselinux/src/mapping.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: value
        type: security_class_t
      - name: num_perms
        type: unsigned
      - name: perms[sizeof(access_vector_t) * 8]
        type: access_vector_t
      item_type: struct
      name: selinux_mapping
      pos:
        line_end: 26
        line_start: 22
        source_file: /src/selinux/libselinux/src/mapping.c
    typedefs: []
    union: []
- function_names:
  - set_callbacks
  - avc_malloc
  - avc_free
  - avc_log
  - avc_suppl_audit
  - avc_create_thread
  - avc_stop_thread
  - avc_alloc_lock
  - avc_get_lock
  - avc_release_lock
  - avc_free_lock
  - avc_cache_stats_incr
  - avc_cache_stats_add
  - avc_cache_stats_incr
  - avc_cache_stats_add
  - log_append
  source_file: /src/selinux/libselinux/src/avc_internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: AVC_PREFIX_SIZE
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/selinux/libselinux/src/avc_internal.h
      type_or_value: '16'
    - item_type: preproc_def
      name: AVC_AUDIT_BUFSIZE
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/selinux/libselinux/src/avc_internal.h
      type_or_value: '1024'
    structs: []
    typedefs: []
    union: []
- function_names:
  - security_compute_member_raw
  - security_compute_member
  source_file: /src/selinux/libselinux/src/compute_member.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - security_get_initial_context_raw
  - security_get_initial_context
  source_file: /src/selinux/libselinux/src/get_initial_context.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SELINUX_INITCON_DIR
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/selinux/libselinux/src/get_initial_context.c
      type_or_value: '"/initial_contexts/"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - freecon
  source_file: /src/selinux/libselinux/src/freecon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - strlcpy
  - reallocarray
  source_file: /src/selinux/libselinux/src/selinux_internal.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - security_deny_unknown
  source_file: /src/selinux/libselinux/src/deny_unknown.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - avc_process_setenforce
  - avc_process_policyload
  - avc_netlink_open
  - avc_netlink_close
  - avc_netlink_receive
  - avc_netlink_process
  - avc_netlink_check_nb
  - avc_netlink_loop
  - avc_netlink_acquire_fd
  - avc_netlink_release_fd
  source_file: /src/selinux/libselinux/src/avc_internal.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NETLINK_SELINUX
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/selinux/libselinux/src/avc_internal.c
      type_or_value: '7'
    structs: []
    typedefs: []
    union: []
- function_names:
  - is_selinux_enabled
  - is_selinux_mls_enabled
  source_file: /src/selinux/libselinux/src/enabled.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libselinux/src/get_context_list_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libselinux/src/get_default_type_internal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - default_selinux_log
  - default_selinux_audit
  - default_selinux_validate
  - default_selinux_setenforce
  - default_selinux_policyload
  - selinux_set_callback
  - selinux_get_callback
  source_file: /src/selinux/libselinux/src/callbacks.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libselinux/include/selinux/get_context_list.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SELINUX_DEFAULTUSER
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/selinux/libselinux/include/selinux/get_context_list.h
      type_or_value: '"user_u"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libselinux/include/selinux/get_default_type.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libselinux/include/selinux/restorecon.h
  types:
    enum:
    - enumerators:
      - name: MATCH
        value: '0'
      - name: DELETED_MATCH
      - name: DELETED_NOMATCH
      - name: NOMATCH
      - name: ERROR
      item_type: enum
      name: digest_result
      pos:
        line_end: 205
        line_start: 199
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
    preproc_defs:
    - item_type: preproc_def
      name: SELINUX_RESTORECON_IGNORE_DIGEST
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x00001'
    - item_type: preproc_def
      name: SELINUX_RESTORECON_NOCHANGE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x00002'
    - item_type: preproc_def
      name: SELINUX_RESTORECON_SET_SPECFILE_CTX
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x00004'
    - item_type: preproc_def
      name: SELINUX_RESTORECON_RECURSE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x00008'
    - item_type: preproc_def
      name: SELINUX_RESTORECON_VERBOSE
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x00010'
    - item_type: preproc_def
      name: SELINUX_RESTORECON_PROGRESS
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x00020'
    - item_type: preproc_def
      name: SELINUX_RESTORECON_REALPATH
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x00040'
    - item_type: preproc_def
      name: SELINUX_RESTORECON_XDEV
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x00080'
    - item_type: preproc_def
      name: SELINUX_RESTORECON_ADD_ASSOC
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x00100'
    - item_type: preproc_def
      name: SELINUX_RESTORECON_ABORT_ON_ERROR
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x00200'
    - item_type: preproc_def
      name: SELINUX_RESTORECON_SYSLOG_CHANGES
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x00400'
    - item_type: preproc_def
      name: SELINUX_RESTORECON_LOG_MATCHES
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x00800'
    - item_type: preproc_def
      name: SELINUX_RESTORECON_IGNORE_NOENTRY
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x01000'
    - item_type: preproc_def
      name: SELINUX_RESTORECON_IGNORE_MOUNTS
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x02000'
    - item_type: preproc_def
      name: SELINUX_RESTORECON_MASS_RELABEL
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x04000'
    - item_type: preproc_def
      name: SELINUX_RESTORECON_SKIP_DIGEST
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x08000'
    - item_type: preproc_def
      name: SELINUX_RESTORECON_CONFLICT_ERROR
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: SELINUX_RESTORECON_COUNT_ERRORS
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x20000'
    - item_type: preproc_def
      name: SELINUX_RESTORECON_SET_USER_ROLE
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x40000'
    - item_type: preproc_def
      name: SELINUX_RESTORECON_COUNT_RELABELED
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x80000'
    - item_type: preproc_def
      name: SELINUX_RESTORECON_SKIP_MULTILINK
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x100000'
    - item_type: preproc_def
      name: SELINUX_RESTORECON_XATTR_RECURSE
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: SELINUX_RESTORECON_XATTR_DELETE_NONMATCH_DIGESTS
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: SELINUX_RESTORECON_XATTR_DELETE_ALL_DIGESTS
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: SELINUX_RESTORECON_XATTR_IGNORE_MOUNTS
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
      type_or_value: '0x0008'
    structs:
    - fields:
      - name: '*directory'
        type: char
      - name: '*digest'
        type: char
      - name: result
        type: enum digest_result
      - name: '*next'
        type: struct dir_xattr
      item_type: struct
      name: dir_xattr
      pos:
        line_end: 212
        line_start: 207
        source_file: /src/selinux/libselinux/include/selinux/restorecon.h
    typedefs: []
    union: []
- function_names:
  - avc_entry_ref_init
  source_file: /src/selinux/libselinux/include/selinux/avc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SECSID_WILD
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/selinux/libselinux/include/selinux/avc.h
      type_or_value: '((security_id_t)NULL) '
    - item_type: preproc_def
      name: AVC_OPT_UNUSED
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/selinux/libselinux/include/selinux/avc.h
      type_or_value: '0'
    - item_type: preproc_def
      name: AVC_OPT_SETENFORCE
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/selinux/libselinux/include/selinux/avc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: AVC_CALLBACK_GRANT
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/selinux/libselinux/include/selinux/avc.h
      type_or_value: '1'
    - item_type: preproc_def
      name: AVC_CALLBACK_TRY_REVOKE
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/selinux/libselinux/include/selinux/avc.h
      type_or_value: '2'
    - item_type: preproc_def
      name: AVC_CALLBACK_REVOKE
      pos:
        line_end: 364
        line_start: 363
        source_file: /src/selinux/libselinux/include/selinux/avc.h
      type_or_value: '4'
    - item_type: preproc_def
      name: AVC_CALLBACK_RESET
      pos:
        line_end: 365
        line_start: 364
        source_file: /src/selinux/libselinux/include/selinux/avc.h
      type_or_value: '8'
    - item_type: preproc_def
      name: AVC_CALLBACK_AUDITALLOW_ENABLE
      pos:
        line_end: 366
        line_start: 365
        source_file: /src/selinux/libselinux/include/selinux/avc.h
      type_or_value: '16'
    - item_type: preproc_def
      name: AVC_CALLBACK_AUDITALLOW_DISABLE
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/selinux/libselinux/include/selinux/avc.h
      type_or_value: '32'
    - item_type: preproc_def
      name: AVC_CALLBACK_AUDITDENY_ENABLE
      pos:
        line_end: 368
        line_start: 367
        source_file: /src/selinux/libselinux/include/selinux/avc.h
      type_or_value: '64'
    - item_type: preproc_def
      name: AVC_CALLBACK_AUDITDENY_DISABLE
      pos:
        line_end: 369
        line_start: 368
        source_file: /src/selinux/libselinux/include/selinux/avc.h
      type_or_value: '128'
    - item_type: preproc_def
      name: AVC_CACHE_STATS
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/selinux/libselinux/include/selinux/avc.h
      type_or_value: '1'
    structs:
    - fields:
      - name: '*ctx'
        type: char
      - name: id
        type: unsigned int
      item_type: struct
      name: security_id
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/selinux/libselinux/include/selinux/avc.h
    - fields:
      - name: '*ae'
        type: struct avc_entry
      item_type: struct
      name: avc_entry_ref
      pos:
        line_end: 105
        line_start: 103
        source_file: /src/selinux/libselinux/include/selinux/avc.h
    - fields:
      - name: '*(*func_malloc)(size_t size)'
        type: void
      - name: (*func_free)(void *ptr)
        type: void
      item_type: struct
      name: avc_memory_callback
      pos:
        line_end: 136
        line_start: 129
        source_file: /src/selinux/libselinux/include/selinux/avc.h
    - fields:
      - name: '*(*func_create_thread)(void (*run)(void))'
        type: void
      - name: (*func_stop_thread)(void *thread)
        type: void
      item_type: struct
      name: avc_thread_callback
      pos:
        line_end: 157
        line_start: 151
        source_file: /src/selinux/libselinux/include/selinux/avc.h
    - fields:
      - name: '*(*func_alloc_lock)(void)'
        type: void
      - name: (*func_get_lock)(void *lock)
        type: void
      - name: (*func_release_lock)(void *lock)
        type: void
      - name: (*func_free_lock)(void *lock)
        type: void
      item_type: struct
      name: avc_lock_callback
      pos:
        line_end: 168
        line_start: 159
        source_file: /src/selinux/libselinux/include/selinux/avc.h
    - fields:
      - name: entry_lookups
        type: unsigned
      - name: entry_hits
        type: unsigned
      - name: entry_misses
        type: unsigned
      - name: entry_discards
        type: unsigned
      - name: cav_lookups
        type: unsigned
      - name: cav_hits
        type: unsigned
      - name: cav_probes
        type: unsigned
      - name: cav_misses
        type: unsigned
      item_type: struct
      name: avc_cache_stats
      pos:
        line_end: 410
        line_start: 401
        source_file: /src/selinux/libselinux/include/selinux/avc.h
    typedefs:
    - item_type: typedef
      name: '*security_id_t'
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/selinux/libselinux/include/selinux/avc.h
      type: security_id
    union: []
- function_names: []
  source_file: /src/selinux/libselinux/include/selinux/label.h
  types:
    enum:
    - enumerators:
      - name: SELABEL_SUBSET
      - name: SELABEL_INCOMPARABLE
      - name: SELABEL_EQUAL
      - name: SELABEL_SUPERSET
      item_type: enum
      name: selabel_cmp_result
      pos:
        line_end: 150
        line_start: 145
        source_file: /src/selinux/libselinux/include/selinux/label.h
    preproc_defs:
    - item_type: preproc_def
      name: SELABEL_CTX_FILE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SELABEL_CTX_MEDIA
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SELABEL_CTX_X
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SELABEL_CTX_DB
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SELABEL_CTX_ANDROID_PROP
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SELABEL_CTX_ANDROID_SERVICE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '5'
    - item_type: preproc_def
      name: _SELABEL_CTX_NUM
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SELABEL_OPT_UNUSED
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SELABEL_OPT_VALIDATE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SELABEL_OPT_BASEONLY
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SELABEL_OPT_PATH
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SELABEL_OPT_SUBSET
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SELABEL_OPT_DIGEST
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SELABEL_NOPT
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SELABEL_X_PROP
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SELABEL_X_EXT
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SELABEL_X_CLIENT
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SELABEL_X_EVENT
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SELABEL_X_SELN
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SELABEL_X_POLYPROP
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SELABEL_X_POLYSELN
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SELABEL_DB_DATABASE
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SELABEL_DB_SCHEMA
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SELABEL_DB_TABLE
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SELABEL_DB_COLUMN
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SELABEL_DB_SEQUENCE
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SELABEL_DB_VIEW
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '6'
    - item_type: preproc_def
      name: SELABEL_DB_PROCEDURE
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '7'
    - item_type: preproc_def
      name: SELABEL_DB_BLOB
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '8'
    - item_type: preproc_def
      name: SELABEL_DB_TUPLE
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '9'
    - item_type: preproc_def
      name: SELABEL_DB_LANGUAGE
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '10'
    - item_type: preproc_def
      name: SELABEL_DB_EXCEPTION
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '11'
    - item_type: preproc_def
      name: SELABEL_DB_DATATYPE
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/selinux/libselinux/include/selinux/label.h
      type_or_value: '12'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/libselinux/include/selinux/context.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*ptr'
        type: void
      item_type: struct
      name: context_s_t
      pos:
        line_end: 13
        line_start: 11
        source_file: /src/selinux/libselinux/include/selinux/context.h
    typedefs:
    - item_type: typedef
      name: '*context_t'
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/selinux/libselinux/include/selinux/context.h
      type: context_s_t
    union: []
- function_names: []
  source_file: /src/selinux/libselinux/include/selinux/selinux.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SELINUX_AVD_FLAGS_PERMISSIVE
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/selinux/libselinux/include/selinux/selinux.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: SELINUX_CB_LOG
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/selinux/libselinux/include/selinux/selinux.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SELINUX_CB_AUDIT
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/selinux/libselinux/include/selinux/selinux.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SELINUX_CB_VALIDATE
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/selinux/libselinux/include/selinux/selinux.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SELINUX_CB_SETENFORCE
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/selinux/libselinux/include/selinux/selinux.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SELINUX_CB_POLICYLOAD
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/selinux/libselinux/include/selinux/selinux.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SELINUX_ERROR
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/selinux/libselinux/include/selinux/selinux.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SELINUX_WARNING
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/selinux/libselinux/include/selinux/selinux.h
      type_or_value: '1'
    - item_type: preproc_def
      name: SELINUX_INFO
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/selinux/libselinux/include/selinux/selinux.h
      type_or_value: '2'
    - item_type: preproc_def
      name: SELINUX_AVC
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/selinux/libselinux/include/selinux/selinux.h
      type_or_value: '3'
    - item_type: preproc_def
      name: SELINUX_POLICYLOAD
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/selinux/libselinux/include/selinux/selinux.h
      type_or_value: '4'
    - item_type: preproc_def
      name: SELINUX_SETENFORCE
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/selinux/libselinux/include/selinux/selinux.h
      type_or_value: '5'
    - item_type: preproc_def
      name: SELINUX_TRANS_DIR
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/selinux/libselinux/include/selinux/selinux.h
      type_or_value: '"/var/run/setrans"'
    - item_type: preproc_def
      name: MATCHPATHCON_BASEONLY
      pos:
        line_end: 453
        line_start: 452
        source_file: /src/selinux/libselinux/include/selinux/selinux.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: MATCHPATHCON_NOTRANS
      pos:
        line_end: 454
        line_start: 453
        source_file: /src/selinux/libselinux/include/selinux/selinux.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: MATCHPATHCON_VALIDATE
      pos:
        line_end: 456
        line_start: 454
        source_file: /src/selinux/libselinux/include/selinux/selinux.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: matchpathcon_filespec_add
      pos:
        line_end: 513
        line_start: 512
        source_file: /src/selinux/libselinux/include/selinux/selinux.h
      type_or_value: matchpathcon_filespec_add64
    structs:
    - fields:
      - name: allowed
        type: access_vector_t
      - name: decided
        type: access_vector_t
      - name: auditallow
        type: access_vector_t
      - name: auditdeny
        type: access_vector_t
      - name: seqno
        type: unsigned int
      - name: flags
        type: unsigned int
      item_type: struct
      name: av_decision
      pos:
        line_end: 145
        line_start: 138
        source_file: /src/selinux/libselinux/include/selinux/selinux.h
    - fields:
      - name: type
        type: int
      - name: '*value'
        type: char
      item_type: struct
      name: selinux_opt
      pos:
        line_end: 154
        line_start: 151
        source_file: /src/selinux/libselinux/include/selinux/selinux.h
    - fields:
      - name: '*name'
        type: char
      - name: value
        type: int
      item_type: struct
      name: SELboolean
      pos:
        line_end: 309
        line_start: 306
        source_file: /src/selinux/libselinux/include/selinux/selinux.h
    - fields:
      - name: '*name'
        type: char
      - name: '*perms[sizeof(access_vector_t) * 8 + 1]'
        type: char
      item_type: struct
      name: security_class_mapping
      pos:
        line_end: 377
        line_start: 374
        source_file: /src/selinux/libselinux/include/selinux/selinux.h
    typedefs:
    - item_type: typedef
      name: '*security_context_t'
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/selinux/libselinux/include/selinux/selinux.h
      type: char
    - item_type: typedef
      name: access_vector_t
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/selinux/libselinux/include/selinux/selinux.h
      type: unsigned int
    - item_type: typedef
      name: security_class_t
      pos:
        line_end: 136
        line_start: 136
        source_file: /src/selinux/libselinux/include/selinux/selinux.h
      type: unsigned short
    union: []
- function_names:
  - null_log
  - validate_context
  - write_full
  - convert_data
  - LLVMFuzzerTestOneInput
  source_file: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MEMFD_FILE_NAME
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
      type_or_value: '"file_contexts"'
    - item_type: preproc_def
      name: CTRL_PARTIAL
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: CTRL_FIND_ALL
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: CTRL_MODE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/selinux/libselinux/fuzz/selabel_file_compiled-fuzzer.c
      type_or_value: (1U << 2)
    structs: []
    typedefs: []
    union: []
- function_names:
  - null_log
  - validate_context
  - write_full
  - convert_data
  - LLVMFuzzerTestOneInput
  source_file: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MEMFD_FILE_NAME
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c
      type_or_value: '"file_contexts"'
    - item_type: preproc_def
      name: CTRL_PARTIAL
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: CTRL_FIND_ALL
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: CTRL_MODE
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/selinux/libselinux/fuzz/selabel_file_text-fuzzer.c
      type_or_value: (1U << 2)
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/selinux/libselinux/utils/getconlist.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/selinux/libselinux/utils/policyvers.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/selinux/libselinux/utils/selabel_lookup.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/selinux/libselinux/utils/getseuser.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/selinux/libselinux/utils/compute_av.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/selinux/libselinux/utils/setenforce.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - cb_auditinfo
  - main
  source_file: /src/selinux/libselinux/utils/selinux_check_access.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rollback
  - main
  source_file: /src/selinux/libselinux/utils/togglesebool.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/selinux/libselinux/utils/getenforce.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/selinux/libselinux/utils/validatetrans.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/selinux/libselinux/utils/getpidcon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/selinux/libselinux/utils/compute_relabel.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/selinux/libselinux/utils/compute_create.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - printmatchpathcon
  - string_to_mode
  - main
  source_file: /src/selinux/libselinux/utils/matchpathcon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - string_to_mode
  - main
  source_file: /src/selinux/libselinux/utils/selabel_lookup_best_match.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/selinux/libselinux/utils/selinux_check_securetty_context.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - run_check_digest
  - main
  source_file: /src/selinux/libselinux/utils/selabel_digest.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - compare
  - main
  source_file: /src/selinux/libselinux/utils/selabel_compare.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/selinux/libselinux/utils/getpolicyload.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - get_selinux_proc_context
  - main
  source_file: /src/selinux/libselinux/utils/selinuxexeccon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - validate_context
  - process_file
  - literal_spec_to_sidtab
  - regex_spec_to_sidtab
  - spec_node_to_sidtab
  - create_sidtab
  - security_id_compare
  - write_sidtab
  - write_literal_spec
  - write_regex_spec
  - write_spec_node
  - write_binary_file
  - usage
  - main
  source_file: /src/selinux/libselinux/utils/sefcontext_compile.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/selinux/libselinux/utils/getsebool.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/selinux/libselinux/utils/selinuxenabled.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - die
  - usage
  - set_window_rows
  - sighandler
  - main
  source_file: /src/selinux/libselinux/utils/avcstat.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEF_STAT_FILE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/selinux/libselinux/utils/avcstat.c
      type_or_value: '"/avc/cache_stats"'
    - item_type: preproc_def
      name: DEF_BUF_SIZE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/selinux/libselinux/utils/avcstat.c
      type_or_value: '8192'
    - item_type: preproc_def
      name: HEADERS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/selinux/libselinux/utils/avcstat.c
      type_or_value: '"lookups hits misses allocations reclaims frees"'
    structs:
    - fields:
      - name: lookups
        type: unsigned long long
      - name: hits
        type: unsigned long long
      - name: misses
        type: unsigned long long
      - name: allocations
        type: unsigned long long
      - name: reclaims
        type: unsigned long long
      - name: frees
        type: unsigned long long
      item_type: struct
      name: avc_cache_stats
      pos:
        line_end: 35
        line_start: 28
        source_file: /src/selinux/libselinux/utils/avcstat.c
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/selinux/libselinux/utils/getpidprevcon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/selinux/libselinux/utils/setfilecon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/selinux/libselinux/utils/getfilecon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/selinux/libselinux/utils/selabel_get_digests_all_partial_matches.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/selinux/libselinux/utils/selabel_partial_match.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/selinux/libselinux/utils/compute_member.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/selinux/libselinux/utils/getdefaultcon.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EXPANDPOLICY_VERSION
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/selinux/semodule-utils/semodule_expand/semodule_expand.c
      type_or_value: '"1.0"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - load_module
  - main
  source_file: /src/selinux/semodule-utils/semodule_link/semodule_link.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LINKPOLICY_VERSION
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/selinux/semodule-utils/semodule_link/semodule_link.c
      type_or_value: '"1.0"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - main
  source_file: /src/selinux/semodule-utils/semodule_package/semodule_unpackage.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - file_to_data
  - main
  source_file: /src/selinux/semodule-utils/semodule_package/semodule_package.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/checkpolicy/policy_define.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COND_ERR
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/selinux/checkpolicy/policy_define.h
      type_or_value: ((avrule_t *)-1)
    - item_type: preproc_def
      name: 'TRUE'
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/selinux/checkpolicy/policy_define.h
      type_or_value: '1'
    - item_type: preproc_def
      name: 'FALSE'
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/selinux/checkpolicy/policy_define.h
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/checkpolicy/parse_util.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - queue_create
  - queue_insert
  - queue_push
  - queue_remove
  - queue_head
  - queue_clear
  - queue_destroy
  - queue_map
  - queue_map_remove_on_error
  source_file: /src/selinux/checkpolicy/queue.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - usage
  - FGETS
  - print_sid
  - find_perm
  - insert_type_rule
  - create_type_rules
  - free_type_rules
  - identify_equiv_types
  - display_bools
  - display_expr
  - display_cond_expressions
  - change_bool
  - check_level
  - main
  source_file: /src/selinux/checkpolicy/checkpolicy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IPPROTO_DCCP
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/selinux/checkpolicy/checkpolicy.c
      type_or_value: '33'
    - item_type: preproc_def
      name: IPPROTO_SCTP
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/selinux/checkpolicy/checkpolicy.c
      type_or_value: '132'
    structs:
    - fields:
      - name: val
        type: unsigned int
      - name: '*name'
        type: char
      item_type: struct
      name: val_to_name
      pos:
        line_end: 143
        line_start: 140
        source_file: /src/selinux/checkpolicy/checkpolicy.c
    typedefs: []
    union: []
- function_names:
  - init_parser
  - yyerror2
  - yywarn2
  - insert_separator
  - insert_id
  - id_has_dot
  - define_class
  - define_permissive
  - define_neveraudit
  - define_polcap
  - define_initial_sid
  - read_classes
  - define_default_user
  - define_default_role
  - define_default_type
  - define_default_range
  - define_common_perms
  - define_av_perms
  - define_sens
  - define_dominance
  - define_category
  - clone_level
  - define_level
  - define_attrib
  - expand_attrib
  - add_aliases_to_type
  - define_typealias
  - define_typeattribute
  - define_typebounds_helper
  - define_typebounds
  - define_type
  - set_types
  - define_compute_type_helper
  - define_compute_type
  - define_cond_compute_type
  - define_bool_tunable
  - define_cond_pol_list
  - avrule_sort_xperms
  - avrule_merge_xperms
  - avrule_read_xperm_value
  - avrule_read_xperm_ranges
  - avrule_omit_xperms
  - avrule_xperm_ranges
  - define_te_avtab_xperms_helper
  - XPERM_IDX
  - XPERM_SETBITS
  - XPERM_LOW
  - XPERM_HIGH
  - avrule_xperm_setrangebits
  - avrule_xperms_used
  - IOC_DRIV
  - IOC_FUNC
  - IOC_CMD
  - avrule_xperm_partialdriver
  - avrule_ioctl_completedriver
  - avrule_xperm_func
  - xperms_for_each_bit
  - avrule_cpy
  - define_te_avtab_ioctl
  - define_te_avtab_netlink
  - define_cond_te_avtab_extended_perms
  - define_te_avtab_extended_perms
  - PERMISSION_MASK
  - define_te_avtab_helper
  - define_cond_te_avtab
  - define_te_avtab
  - define_role_types
  - define_attrib_role
  - define_role_attr
  - define_roleattribute
  - role_val_to_name_helper
  - role_val_to_name
  - set_roles
  - define_role_trans
  - define_role_allow
  - define_cond_filename_trans
  - define_filename_trans
  - constraint_expr_clone
  - define_constraint
  - define_validatetrans
  - define_cexpr
  - define_conditional
  - define_cond_expr
  - set_user_roles
  - parse_categories
  - mls_semantic_cats_merge
  - mls_add_or_check_level
  - parse_semantic_categories
  - define_user
  - parse_security_context
  - define_initial_sid_context
  - define_pirq_context
  - define_iomem_context
  - define_ioport_context
  - define_pcidevice_context
  - define_devicetree_context
  - define_port_context
  - define_ibpkey_context
  - define_ibendport_context
  - define_netif_context
  - insert_ipv4_node
  - define_ipv4_node_context
  - define_ipv4_cidr_node_context
  - ipv6_is_mask_contiguous
  - ipv6_has_host_bits_set
  - ipv6_cidr_bits_to_mask
  - ipv6_apply_mask
  - insert_ipv6_node
  - define_ipv6_node_context
  - define_ipv6_cidr_node_context
  - define_fs_use
  - define_genfs_context_helper
  - define_genfs_context
  - define_range_trans
  source_file: /src/selinux/checkpolicy/policy_define.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IPPROTO_DCCP
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/selinux/checkpolicy/policy_define.c
      type_or_value: '33'
    - item_type: preproc_def
      name: IPPROTO_SCTP
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/selinux/checkpolicy/policy_define.c
      type_or_value: '132'
    structs:
    - fields:
      - name: val
        type: unsigned int
      - name: '*name'
        type: char
      item_type: struct
      name: val_to_name
      pos:
        line_end: 1657
        line_start: 1654
        source_file: /src/selinux/checkpolicy/policy_define.c
    - fields:
      - name: low
        type: uint16_t
      - name: high
        type: uint16_t
      item_type: struct
      name: av_xperm_range
      pos:
        line_end: 1962
        line_start: 1959
        source_file: /src/selinux/checkpolicy/policy_define.c
    - fields:
      - name: omit
        type: uint8_t
      - name: range
        type: av_xperm_range_t
      - name: '*next'
        type: struct av_xperm_range_list
      item_type: struct
      name: av_xperm_range_list
      pos:
        line_end: 1968
        line_start: 1964
        source_file: /src/selinux/checkpolicy/policy_define.c
    typedefs: []
    union: []
- function_names:
  - print_error_msg
  - define_policy
  - is_creation_allowed
  - create_symbol
  - declare_symbol
  - role_implicit_bounds
  - create_role
  - declare_role
  - create_type
  - declare_type
  - user_implicit_bounds
  - create_user
  - declare_user
  - get_local_type
  - get_local_role
  - require_symbol
  - add_perm_to_class
  - perm_destroy
  - class_datum_destroy
  - require_class
  - require_role_or_attribute
  - require_role
  - require_attribute_role
  - require_type_or_attribute
  - require_type
  - require_attribute
  - require_user
  - require_bool_tunable
  - require_bool
  - require_tunable
  - require_sens
  - require_cat
  - is_scope_in_stack
  - is_id_in_scope
  - is_perm_in_scope_index
  - is_perm_in_stack
  - is_perm_in_scope
  - get_current_cond_list
  - append_cond_list
  - append_avrule
  - append_role_trans
  - append_role_allow
  - append_filename_trans
  - append_range_trans
  - begin_optional
  - end_optional
  - begin_optional_else
  - copy_requirements
  - end_avrule_block
  - push_stack
  - pop_stack
  - module_compiler_reset
  source_file: /src/selinux/checkpolicy/module_compiler.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: int
      - name: '*decl'
        type: avrule_decl_t
      - name: '*last_avrule'
        type: avrule_t
      - name: in_else
        type: int
      - name: require_given
        type: int
      - name: '*parent'
        type: struct scope_stack
      item_type: struct
      name: scope_stack
      pos:
        line_end: 31
        line_start: 23
        source_file: /src/selinux/checkpolicy/module_compiler.c
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/checkpolicy/queue.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: element
        type: queue_element_t
      - name: next
        type: queue_node_ptr_t
      item_type: struct
      name: queue_node
      pos:
        line_end: 21
        line_start: 18
        source_file: /src/selinux/checkpolicy/queue.h
    - fields:
      - name: head
        type: queue_node_ptr_t
      - name: tail
        type: queue_node_ptr_t
      item_type: struct
      name: queue_info
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/selinux/checkpolicy/queue.h
    typedefs:
    - item_type: typedef
      name: '*queue_element_t'
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/selinux/checkpolicy/queue.h
      type: void
    - item_type: typedef
      name: '*queue_node_ptr_t'
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/selinux/checkpolicy/queue.h
      type: queue_node
    - item_type: typedef
      name: '*queue_t'
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/selinux/checkpolicy/queue.h
      type: queue_info_t
    union: []
- function_names:
  - read_source_policy
  source_file: /src/selinux/checkpolicy/parse_util.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - read_binary_policy
  - write_binary_policy
  - usage
  - main
  source_file: /src/selinux/checkpolicy/checkmodule.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/checkpolicy/module_compiler.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - le32_to_cpu
  - le32_to_cpu
  - usage
  - render_access_mask
  - render_access_bitmap
  - display_id
  - display_type_set
  - display_mod_role_set
  - display_avrule
  - display_type_callback
  - display_types
  - display_users
  - display_bools
  - display_expr
  - display_policycon
  - display_initial_sids
  - display_class_set
  - display_role_trans
  - display_role_allow
  - display_filename_trans
  - role_display_callback
  - display_scope_index
  - display_cond_expressions
  - change_bool
  - display_avdecl
  - display_avblock
  - display_handle_unknown
  - read_policy
  - link_module
  - display_policycaps
  - menu
  - print_version_info
  - main
  source_file: /src/selinux/checkpolicy/test/dismod.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DISPLAY_AVBLOCK_COND_AVTAB
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/selinux/checkpolicy/test/dismod.c
      type_or_value: '0'
    - item_type: preproc_def
      name: DISPLAY_AVBLOCK_UNCOND_AVTAB
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/selinux/checkpolicy/test/dismod.c
      type_or_value: '1'
    - item_type: preproc_def
      name: DISPLAY_AVBLOCK_ROLE_TYPE_NODE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/selinux/checkpolicy/test/dismod.c
      type_or_value: '2 '
    - item_type: preproc_def
      name: DISPLAY_AVBLOCK_ROLE_TRANS
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/selinux/checkpolicy/test/dismod.c
      type_or_value: '3'
    - item_type: preproc_def
      name: DISPLAY_AVBLOCK_ROLE_ALLOW
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/selinux/checkpolicy/test/dismod.c
      type_or_value: '4'
    - item_type: preproc_def
      name: DISPLAY_AVBLOCK_REQUIRES
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/selinux/checkpolicy/test/dismod.c
      type_or_value: '5'
    - item_type: preproc_def
      name: DISPLAY_AVBLOCK_DECLARES
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/selinux/checkpolicy/test/dismod.c
      type_or_value: '6'
    - item_type: preproc_def
      name: DISPLAY_AVBLOCK_FILENAME_TRANS
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/selinux/checkpolicy/test/dismod.c
      type_or_value: '7'
    structs:
    - fields:
      - name: meta
        type: "enum {\n\t\tEOL = 0,\n\t\tHEADER = 1,\n\t\tCMD = 1 << 1,\n\t\tNOOPT
          = 1 << 2,\n\t}"
      - name: cmd
        type: char
      - name: '*desc'
        type: char
      item_type: struct
      name: command
      pos:
        line_end: 69
        line_start: 60
        source_file: /src/selinux/checkpolicy/test/dismod.c
    typedefs: []
    union: []
- function_names:
  - usage
  - render_access_mask
  - render_type
  - render_key
  - render_av_rule
  - display_avtab
  - display_expr
  - display_cond_expressions
  - display_handle_unknown
  - change_bool
  - display_booleans
  - display_policycaps
  - display_classes
  - display_id
  - display_permissive
  - display_users
  - display_roles
  - display_types
  - display_attributes
  - display_role_trans
  - filenametr_display
  - display_filename_trans
  - menu
  - main
  source_file: /src/selinux/checkpolicy/test/dispol.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RENDER_UNCONDITIONAL
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/selinux/checkpolicy/test/dispol.c
      type_or_value: '0x0001 '
    - item_type: preproc_def
      name: RENDER_ENABLED
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/selinux/checkpolicy/test/dispol.c
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: RENDER_DISABLED
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/selinux/checkpolicy/test/dispol.c
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: RENDER_CONDITIONAL
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/selinux/checkpolicy/test/dispol.c
      type_or_value: (RENDER_ENABLED | RENDER_DISABLED)
    structs:
    - fields:
      - name: meta
        type: "enum {\n\t\tEOL = 0,\n\t\tHEADER = 1,\n\t\tCMD = 1 << 1,\n\t\tNOOPT
          = 1 << 2,\n\t}"
      - name: cmd
        type: char
      - name: '*desc'
        type: char
      item_type: struct
      name: command
      pos:
        line_end: 44
        line_start: 35
        source_file: /src/selinux/checkpolicy/test/dispol.c
    - fields:
      - name: '*p'
        type: policydb_t
      - name: '*fp'
        type: FILE
      item_type: struct
      name: filenametr_display_args
      pos:
        line_end: 461
        line_start: 458
        source_file: /src/selinux/checkpolicy/test/dispol.c
    typedefs: []
    union: []
- function_names:
  - full_write
  - read_source_policy
  - write_binary_policy
  - LLVMFuzzerTestOneInput
  source_file: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: VERBOSE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/selinux/checkpolicy/fuzz/checkpolicy-fuzzer.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _
  - _
  - strdup_or_err
  - drop_caps
  - drop_privs
  - handler
  - set_signal_handles
  - status_to_retval
  - spawn_command
  - check_owner_uid
  - check_owner_gid
  - pin_dir
  - verify_shell
  - seunshare_mount
  - seunshare_mount_file
  - bad_path
  - free_args
  - rsynccmd
  - rm_rf
  - setfsuid_checked
  - cleanup_tmpdir
  - create_tmpdir
  - main
  source_file: /src/selinux/sandbox/seunshare.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MS_REC
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/selinux/sandbox/seunshare.c
      type_or_value: 1 << 14
    - item_type: preproc_def
      name: MS_SLAVE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/selinux/sandbox/seunshare.c
      type_or_value: 1 << 19
    - item_type: preproc_def
      name: PACKAGE
      pos:
        line_end: 56
        line_start: 54
        source_file: /src/selinux/sandbox/seunshare.c
      type_or_value: '"policycoreutils" '
    - item_type: preproc_def
      name: DEFAULT_PATH
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/selinux/sandbox/seunshare.c
      type_or_value: '"/usr/bin:/bin"'
    - item_type: preproc_def
      name: USAGE_STRING
      pos:
        line_end: 62
        line_start: 59
        source_file: /src/selinux/sandbox/seunshare.c
      type_or_value: '_("USAGE: seunshare [ -v ] [ -C ] [ -k ] [ -t tmpdir ] [ -h
        homedir ] \

        [ -r runuserdir ] [ -P pipewiresocket ] [ -W waylandsocket ] [ -Z CONTEXT
        ] -- executable [args] ")'
    - item_type: preproc_def
      name: RM_RF_MAXDEPTH
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/selinux/sandbox/seunshare.c
      type_or_value: '128'
    structs: []
    typedefs: []
    union: []
- function_names:
  - watch_list_isempty
  - open_final
  - safe_open
  - nofollow_opendir
  - nofollow_readdir
  - nofollow_closedir
  - nofollow_lstat
  - watch_list_add
  - watch_list_find
  - watch_list_free
  - watch
  - process_config
  - read_config
  source_file: /src/selinux/restorecond/watch.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GLOB_TILDE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/selinux/restorecond/watch.c
      type_or_value: '0'
    - item_type: preproc_def
      name: EVENT_SIZE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/selinux/restorecond/watch.c
      type_or_value: (sizeof(struct inotify_event))
    - item_type: preproc_def
      name: BUF_LEN
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/selinux/restorecond/watch.c
      type_or_value: (1024 * (EVENT_SIZE + 16))
    structs:
    - fields:
      - name: '*next'
        type: struct watchList
      - name: wd
        type: int
      - name: '*dir'
        type: char
      - name: '*files'
        type: struct stringsList
      item_type: struct
      name: watchList
      pos:
        line_end: 41
        line_start: 36
        source_file: /src/selinux/restorecond/watch.c
    typedefs: []
    union: []
- function_names:
  - strings_list_add
  - strings_list_find
  - strings_list_free
  - strings_list_diff
  - strings_list_print
  - exitApp
  - main
  source_file: /src/selinux/restorecond/stringslist.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/restorecond/utmpwatcher.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/restorecond/restorecond.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - utmpwatcher_handle
  - watch_file
  - utmpwatcher_add
  - utmpwatcher_free
  - main
  source_file: /src/selinux/restorecond/utmpwatcher.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/restorecond/stringslist.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*next'
        type: struct stringsList
      - name: '*string'
        type: char
      item_type: struct
      name: stringsList
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/selinux/restorecond/stringslist.h
    typedefs: []
    union: []
- function_names:
  - dbus_server
  - io_channel_callback
  - stdin_callback
  - start
  - local_server
  - end_local_server
  - sigterm_handler
  - server
  source_file: /src/selinux/restorecond/user.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: EVENT_SIZE
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/selinux/restorecond/user.c
      type_or_value: (sizeof(struct inotify_event))
    - item_type: preproc_def
      name: BUF_LEN
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/selinux/restorecond/user.c
      type_or_value: (1024 * (EVENT_SIZE + 16))
    structs: []
    typedefs: []
    union: []
- function_names:
  - restore_init
  source_file: /src/selinux/restorecond/restore.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/selinux/restorecond/restore.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: nochange
        type: unsigned int
      - name: verbose
        type: unsigned int
      - name: progress
        type: unsigned int
      - name: set_specctx
        type: unsigned int
      - name: add_assoc
        type: unsigned int
      - name: ignore_digest
        type: unsigned int
      - name: recurse
        type: unsigned int
      - name: userealpath
        type: unsigned int
      - name: xdev
        type: unsigned int
      - name: abort_on_error
        type: unsigned int
      - name: syslog_changes
        type: unsigned int
      - name: log_matches
        type: unsigned int
      - name: ignore_noent
        type: unsigned int
      - name: ignore_mounts
        type: unsigned int
      - name: skip_multilink
        type: unsigned int
      - name: restorecon_flags
        type: unsigned int
      - name: '*rootpath'
        type: char
      - name: '*progname'
        type: char
      - name: '*hnd'
        type: struct selabel_handle
      - name: '*selabel_opt_validate'
        type: char
      - name: '*selabel_opt_path'
        type: char
      - name: '*selabel_opt_digest'
        type: char
      - name: debug
        type: int
      - name: '*outfile'
        type: FILE
      item_type: struct
      name: restore_opts
      pos:
        line_end: 44
        line_start: 18
        source_file: /src/selinux/restorecond/restore.h
    typedefs: []
    union: []
- function_names:
  - done
  - write_pid_file
  - term_handler
  - usage
  - exitApp
  - main
  source_file: /src/selinux/restorecond/restorecond.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
